Version in base suite: 12.0.0~b5+dfsg-0+deb13u1
Base version: ansible_12.0.0~b5+dfsg-0+deb13u1
Target version: ansible_12.0.0+dfsg-0+deb13u1
Base file: /srv/ftp-master.debian.org/ftp/pool/main/a/ansible/ansible_12.0.0~b5+dfsg-0+deb13u1.dsc
Target file: /srv/ftp-master.debian.org/policy/pool/main/a/ansible/ansible_12.0.0+dfsg-0+deb13u1.dsc
CHANGELOG-v12.md | 8976 ++--------
CHANGELOG-v12.rst | 8051 ++------
PKG-INFO | 2
ansible.egg-info/PKG-INFO | 2
ansible.egg-info/SOURCES.txt | 228
ansible_collections/ansible_community.py | 2
ansible_collections/ansible_release.py | 2
ansible_collections/azure/azcollection/CHANGELOG.md | 31
ansible_collections/azure/azcollection/FILES.json | 70
ansible_collections/azure/azcollection/MANIFEST.json | 4
ansible_collections/azure/azcollection/README.md | 89
ansible_collections/azure/azcollection/meta/runtime.yml | 6
ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py | 71
ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py | 11
ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py | 28
ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py | 27
ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py | 158
ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py | 397
ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py | 251
ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py | 2
ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate.py | 4
ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate_info.py | 4
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py | 514
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py | 258
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py | 490
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py | 241
ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py | 2
ansible_collections/azure/azcollection/pr-pipelines.yml | 5
ansible_collections/azure/azcollection/requirements.txt | 2
ansible_collections/cloud/common/.ansible-lint | 9
ansible_collections/cloud/common/.github/patchback.yml | 4
ansible_collections/cloud/common/.github/workflows/changelog.yaml | 21
ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml | 15
ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml | 162
ansible_collections/cloud/common/.github/workflows/integration-tests.yaml | 61
ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml | 18
ansible_collections/cloud/common/.github/workflows/linters.yaml | 25
ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml | 52
ansible_collections/cloud/common/.github/workflows/unit-tests.yaml | 52
ansible_collections/cloud/common/CHANGELOG.rst | 227
ansible_collections/cloud/common/CI.md | 12
ansible_collections/cloud/common/FILES.json | 572
ansible_collections/cloud/common/LICENSE | 674
ansible_collections/cloud/common/MANIFEST.json | 31
ansible_collections/cloud/common/README.md | 218
ansible_collections/cloud/common/changelogs/changelog.yaml | 226
ansible_collections/cloud/common/changelogs/config.yaml | 29
ansible_collections/cloud/common/meta/runtime.yml | 2
ansible_collections/cloud/common/plugins/lookup/turbo_demo.py | 69
ansible_collections/cloud/common/plugins/module_utils/turbo/common.py | 123
ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py | 65
ansible_collections/cloud/common/plugins/module_utils/turbo/module.py | 179
ansible_collections/cloud/common/plugins/module_utils/turbo/server.py | 420
ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py | 1
ansible_collections/cloud/common/plugins/modules/turbo_demo.py | 74
ansible_collections/cloud/common/plugins/modules/turbo_fail.py | 58
ansible_collections/cloud/common/plugins/modules/turbo_import.py | 46
ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py | 93
ansible_collections/cloud/common/pytest.ini | 2
ansible_collections/cloud/common/test-requirements.txt | 3
ansible_collections/cloud/common/tests/config.yml | 2
ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml | 24
ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml | 81
ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh | 3
ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml | 5
ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh | 4
ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml | 77
ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory | 50
ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini | 10
ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml | 36
ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh | 3
ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt | 1
ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt | 1
ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt | 1
ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt | 1
ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt | 1
ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt | 1
ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py | 19
ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py | 65
ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py | 171
ansible_collections/cloud/common/tests/unit/requirements.txt | 4
ansible_collections/cloud/common/tox.ini | 61
ansible_collections/community/dns/CHANGELOG.md | 481
ansible_collections/community/dns/CHANGELOG.rst | 14
ansible_collections/community/dns/FILES.json | 34
ansible_collections/community/dns/MANIFEST.json | 4
ansible_collections/community/dns/changelogs/changelog.yaml | 13
ansible_collections/community/dns/plugins/lookup/lookup.py | 9
ansible_collections/community/dns/plugins/lookup/lookup_as_dict.py | 9
ansible_collections/community/dns/plugins/lookup/reverse_lookup.py | 9
ansible_collections/community/dns/plugins/module_utils/resolver.py | 19
ansible_collections/community/dns/plugins/public_suffix_list.dat | 121
ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml | 14
ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml | 14
ansible_collections/community/dns/tests/integration/targets/lookup_reverse_lookup/tasks/main.yml | 14
ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml | 22
ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml | 21
ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml | 18
ansible_collections/community/dns/tests/sanity/ignore-2.20.txt | 5
ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup.py | 2
ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup_as_dict.py | 2
ansible_collections/community/routeros/.github/workflows/nox.yml | 2
ansible_collections/community/routeros/CHANGELOG.md | 357
ansible_collections/community/routeros/CHANGELOG.rst | 27
ansible_collections/community/routeros/FILES.json | 16
ansible_collections/community/routeros/MANIFEST.json | 4
ansible_collections/community/routeros/changelogs/changelog.yaml | 41
ansible_collections/community/routeros/plugins/module_utils/_api_data.py | 7
ansible_collections/community/routeros/plugins/modules/api_facts.py | 8
ansible_collections/community/routeros/tests/sanity/ignore-2.20.txt | 3
ansible_collections/community/routeros/tests/unit/plugins/modules/test_api_info.py | 8
ansible_collections/community/sops/.github/workflows/nox.yml | 2
ansible_collections/community/sops/CHANGELOG.md | 243
ansible_collections/community/sops/CHANGELOG.rst | 14
ansible_collections/community/sops/FILES.json | 28
ansible_collections/community/sops/MANIFEST.json | 4
ansible_collections/community/sops/changelogs/changelog.yaml | 19
ansible_collections/community/sops/noxfile.py | 11
ansible_collections/community/sops/plugins/doc_fragments/sops.py | 4
ansible_collections/community/sops/plugins/filter/decrypt.py | 2
ansible_collections/community/sops/plugins/module_utils/sops.py | 8
ansible_collections/community/sops/plugins/plugin_utils/action_module.py | 2
ansible_collections/community/sops/tests/integration/targets/filter_decrypt/files/fake-sops.sh | 2
ansible_collections/community/sops/tests/integration/targets/filter_decrypt/tasks/main.yml | 2
ansible_collections/community/sops/tests/integration/targets/lookup_sops/files/fake-sops.sh | 2
ansible_collections/community/sops/tests/integration/targets/lookup_sops/tasks/main.yml | 4
ansible_collections/community/sops/tests/sanity/ignore-2.20.txt | 2
ansible_collections/netbox/netbox/.github/workflows/main.yml | 8
ansible_collections/netbox/netbox/FILES.json | 3937 ++--
ansible_collections/netbox/netbox/MANIFEST.json | 2
ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml | 6
ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml | 2
ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml | 2
ansible_collections/netbox/netbox/docs/getting_started/contributing/modules/architecture.rst | 3
ansible_collections/netbox/netbox/docs/plugins/nb_lookup_lookup.rst | 2
ansible_collections/netbox/netbox/docs/plugins/netbox_device_type_module.rst | 2
ansible_collections/netbox/netbox/docs/plugins/netbox_platform_module.rst | 2
ansible_collections/netbox/netbox/docs/plugins/netbox_prefix_module.rst | 2
ansible_collections/netbox/netbox/plugins/doc_fragments/common.py | 4
ansible_collections/netbox/netbox/plugins/inventory/nb_inventory.py | 92
ansible_collections/netbox/netbox/plugins/lookup/nb_lookup.py | 18
ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py | 20
ansible_collections/netbox/netbox/plugins/module_utils/netbox_ipam.py | 14
ansible_collections/netbox/netbox/plugins/module_utils/netbox_utils.py | 10
ansible_collections/netbox/netbox/plugins/modules/netbox_circuit_termination.py | 64
ansible_collections/netbox/netbox/plugins/modules/netbox_custom_field.py | 6
ansible_collections/netbox/netbox/plugins/modules/netbox_device_type.py | 2
ansible_collections/netbox/netbox/plugins/modules/netbox_platform.py | 2
ansible_collections/netbox/netbox/plugins/modules/netbox_prefix.py | 2
ansible_collections/netbox/netbox/plugins/modules/netbox_tag.py | 16
ansible_collections/netbox/netbox/poetry.lock | 347
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.1/compare_inventory_json.py | 2
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/compare_inventory_json.py | 2
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore | 1
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases | 1
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py | 152
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json | 1347 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml | 32
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json | 1170 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml | 33
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json | 390
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml | 62
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json | 441
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml | 10
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json | 1377 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml | 28
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json | 1302 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml | 41
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json | 390
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml | 62
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json | 446
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml | 33
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json | 1421 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml | 38
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json | 1423 +
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml | 31
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh | 72
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template | 6
ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml | 284
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml | 40
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_service.yml | 6
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_tag.yml | 6
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml | 743
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml | 115
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml | 88
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml | 193
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml | 109
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml | 155
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml | 96
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml | 102
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml | 96
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml | 96
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml | 107
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml | 82
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml | 108
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml | 108
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml | 100
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml | 94
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml | 129
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml | 113
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml | 243
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml | 87
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml | 81
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml | 332
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml | 109
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml | 101
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml | 132
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml | 118
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml | 91
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml | 92
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml | 150
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml | 147
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml | 203
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml | 98
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml | 401
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml | 94
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml | 26
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml | 99
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml | 94
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml | 85
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml | 70
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml | 91
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml | 107
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml | 97
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml | 169
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml | 92
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml | 126
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml | 114
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml | 111
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml | 125
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml | 212
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml | 254
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml | 79
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml | 83
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml | 226
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml | 62
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml | 81
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml | 139
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml | 136
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml | 79
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml | 79
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml | 204
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml | 196
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml | 115
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml | 165
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml | 81
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml | 110
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml | 106
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml | 129
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml | 104
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml | 96
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml | 81
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml | 105
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml | 127
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml | 131
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml | 87
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml | 131
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml | 193
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml | 314
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml | 159
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml | 137
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml | 121
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml | 103
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml | 97
ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml | 130
ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml | 25
ansible_collections/netbox/netbox/tests/unit/module_utils/test_netbox_base_class.py | 1
ansible_collections/vmware/vmware_rest/CHANGELOG.rst | 13
ansible_collections/vmware/vmware_rest/FILES.json | 347
ansible_collections/vmware/vmware_rest/MANIFEST.json | 8
ansible_collections/vmware/vmware_rest/Makefile | 1
ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml | 748
ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml | 11
ansible_collections/vmware/vmware_rest/plugins/lookup/cluster_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/datacenter_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/datastore_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/folder_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/host_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/network_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/resource_pool_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/lookup/vm_moid.py | 16
ansible_collections/vmware/vmware_rest/plugins/module_utils/vmware_rest.py | 30
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_applmgmt_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_database_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_databasestorage_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_load_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_mem_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_softwarepackages_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_storage_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_swap_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_system_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_query.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_version_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_update_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_library_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_library_item_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_library_subscriptions_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_cluster_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datastore_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_folder_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_network_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_ovf_libraryitem.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_storage_policies_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm.py | 22
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_customization.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_filesystem_directories.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_identity_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_localfilesystem_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_routes_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_operations_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_libraryitem_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer_info.py | 10
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems.py | 14
ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems_info.py | 10
ansible_collections/vmware/vmware_rest/tests/integration/targets/prepare_vm/tasks/main.yml | 6
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml | 36
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml | 32
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml | 14
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml | 36
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml | 24
ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml | 14
build-ansible.sh | 2
debian/changelog | 18
debian/patches/0004-no_log-keycloak_user-credentials.patch | 28
debian/patches/cloud-common-flaky-test.patch | 44
debian/patches/series | 2
debian/watch | 2
porting_guide_12.rst | 1233 -
setup.cfg | 28
tags.yaml | 24
443 files changed, 36357 insertions(+), 20575 deletions(-)
gpgv: Signature made Wed Aug 27 11:03:09 2025 UTC
gpgv: using RSA key D847C62510A9C2FF242CE02CD604A1C4823EE0F8
gpgv: Note: signatures using the SHA1 algorithm are rejected
gpgv: WARNING: signing subkey D604A1C4823EE0F8 has an invalid cross-certification
gpgv: Can't check signature: General error
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpatmkfctz/ansible_12.0.0~b5+dfsg-0+deb13u1.dsc: no acceptable signature found
gpgv: Signature made Sat Nov 29 10:10:39 2025 UTC
gpgv: using RSA key D847C62510A9C2FF242CE02CD604A1C4823EE0F8
gpgv: Note: signatures using the SHA1 algorithm are rejected
gpgv: WARNING: signing subkey D604A1C4823EE0F8 has an invalid cross-certification
gpgv: Can't check signature: General error
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpatmkfctz/ansible_12.0.0+dfsg-0+deb13u1.dsc: no acceptable signature found
diff -Nru ansible-12.0.0~b5+dfsg/CHANGELOG-v12.md ansible-12.0.0+dfsg/CHANGELOG-v12.md
--- ansible-12.0.0~b5+dfsg/CHANGELOG-v12.md 2025-08-26 19:32:32.000000000 +0000
+++ ansible-12.0.0+dfsg/CHANGELOG-v12.md 2025-09-09 13:44:55.000000000 +0000
@@ -2,6152 +2,304 @@
This changelog describes changes since Ansible 11\.0\.0\.
-- v12\.0\.0b5
+- v12\.0\.0
- Release Summary
+ - Removed Collections
+ - Added Collections
- Ansible\-core
- - Unchanged Collections
-- v12\.0\.0b4
- - Release Summary
- - Ansible\-core
- - Changed Collections
+ - Included Collections
- Major Changes
- Minor Changes
+ - Breaking Changes / Porting Guide
- Deprecated Features
+ - Removed Features \(previously deprecated\)
+ - Security Fixes
- Bugfixes
+ - Known Issues
- New Plugins
- New Modules
- - Unchanged Collections
-- v12\.0\.0b3
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Bugfixes
- - Known Issues
- - New Modules
- - Unchanged Collections
-- v12\.0\.0b2
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Minor Changes
- - Bugfixes
- - Unchanged Collections
-- v12\.0\.0b1
- - Release Summary
- - Added Collections
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Removed Features \(previously deprecated\)
- - Bugfixes
- - Known Issues
- - New Plugins
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a9
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Deprecated Features
- - Bugfixes
- - Known Issues
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a8
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Minor Changes
- - Bugfixes
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a7
- - Release Summary
- - Removed Collections
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Removed Features \(previously deprecated\)
- - Security Fixes
- - Bugfixes
- - Known Issues
- - New Plugins
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a6
- - Release Summary
- - Added Collections
- - Ansible\-core
- - Changed Collections
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Bugfixes
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a5
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Removed Features \(previously deprecated\)
- - Bugfixes
- - Known Issues
- - New Plugins
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a4
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Bugfixes
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a3
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Removed Features \(previously deprecated\)
- - Bugfixes
- - Known Issues
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a2
- - Release Summary
- - Ansible\-core
- - Changed Collections
- - Major Changes
- - Minor Changes
- - Deprecated Features
- - Bugfixes
- - Known Issues
- - New Plugins
- - New Modules
- - Unchanged Collections
-- v12\.0\.0a1
- - Release Summary
- - Removed Collections
- - Added Collections
- - Ansible\-core
- - Included Collections
- - Major Changes
- - Minor Changes
- - Breaking Changes / Porting Guide
- - Deprecated Features
- - Removed Features \(previously deprecated\)
- - Security Fixes
- - Bugfixes
- - Known Issues
- - New Plugins
- - New Modules
- - Unchanged Collections
+ - Unchanged Collections
-
-## v12\.0\.0b5
+
+## v12\.0\.0
- Release Summary
+- Removed Collections
+- Added Collections
- Ansible\-core
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-08\-26
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0b5 contains ansible\-core version 2\.19\.1\.
-This is a newer version than version 2\.19\.1rc1 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.1\)
-* ansible\.netcommon \(still version 8\.1\.0\)
-* ansible\.posix \(still version 2\.1\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.2\.0\)
-* arista\.eos \(still version 12\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.7\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.12\.0\)
-* cisco\.dnac \(still version 6\.39\.0\)
-* cisco\.intersight \(still version 2\.2\.0\)
-* cisco\.ios \(still version 11\.0\.0\)
-* cisco\.iosxr \(still version 12\.0\.0\)
-* cisco\.meraki \(still version 2\.21\.4\)
-* cisco\.mso \(still version 2\.11\.0\)
-* cisco\.nxos \(still version 11\.0\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.2\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.11\)
-* community\.crypto \(still version 3\.0\.3\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.3\.1\)
-* community\.docker \(still version 4\.7\.0\)
-* community\.general \(still version 11\.2\.1\)
-* community\.grafana \(still version 2\.3\.0\)
-* community\.hashi\_vault \(still version 7\.0\.0\)
-* community\.hrobot \(still version 2\.5\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 2\.0\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.15\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxmox \(still version 1\.3\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.6\.0\)
-* community\.routeros \(still version 3\.9\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.2\.1\)
-* community\.vmware \(still version 5\.7\.2\)
-* community\.windows \(still version 3\.0\.1\)
-* community\.zabbix \(still version 4\.1\.0\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.conjur \(still version 1\.3\.7\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.3\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* dellemc\.unity \(still version 2\.1\.0\)
-* f5networks\.f5\_modules \(still version 1\.38\.0\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* google\.cloud \(still version 1\.7\.0\)
-* grafana\.grafana \(still version 6\.0\.3\)
-* hetzner\.hcloud \(still version 5\.2\.0\)
-* hitachivantara\.vspone\_block \(still version 4\.1\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.6\.3\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 11\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.1\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.7\.0\)
-* microsoft\.ad \(still version 1\.9\.2\)
-* microsoft\.iis \(still version 1\.0\.3\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.1\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.36\.0\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.4\.0\)
-* theforeman\.foreman \(still version 5\.5\.0\)
-* vmware\.vmware \(still version 2\.3\.0\)
-* vmware\.vmware\_rest \(still version 4\.8\.1\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0b4
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
+- Included Collections
- Major Changes
+ - Ansible\-core
+ - amazon\.aws
+ - ansible\.netcommon
+ - ansible\.utils
+ - arista\.eos
- cisco\.ios
- cisco\.iosxr
- cisco\.nxos
+ - community\.aws
+ - community\.libvirt
+ - community\.postgresql
+ - community\.vmware
+ - community\.zabbix
+ - dellemc\.openmanage
- dellemc\.unity
+ - fortinet\.fortios
+ - google\.cloud
+ - grafana\.grafana
+ - junipernetworks\.junos
+ - netapp\.ontap
+ - vmware\.vmware
+ - vmware\.vmware\_rest
+ - vyos\.vyos
- Minor Changes
- Ansible\-core
- - ansible\.netcommon
- - cisco\.dnac
- - cisco\.nxos
- - community\.general
- - community\.proxmox
- - community\.routeros
- - hetzner\.hcloud
- - hitachivantara\.vspone\_block
- - kubernetes\.core
- - lowlydba\.sqlserver
- - theforeman\.foreman
- - vmware\.vmware
-- Deprecated Features
- - community\.general
-- Bugfixes
- - Ansible\-core
- - amazon\.aws
+ - amazon\.aws
- ansible\.netcommon
- - arista\.eos
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.nxos
- - community\.dns
- - community\.general
- - community\.proxmox
- - community\.routeros
- - community\.vmware
- - hetzner\.hcloud
- - junipernetworks\.junos
- - kubernetes\.core
- - theforeman\.foreman
- - vmware\.vmware
-- New Plugins
- - Lookup
-- New Modules
- - community\.dns
- - community\.general
- - community\.proxmox
- - hitachivantara\.vspone\_block
- - theforeman\.foreman
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-08\-21
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0b4 contains ansible\-core version 2\.19\.1rc1\.
-This is a newer version than version 2\.19\.0 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0b3 | Ansible 12.0.0b4 | Notes |
-| --------------------------- | ---------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| amazon.aws | 10.1.0 | 10.1.1 | |
-| ansible.netcommon | 8.0.1 | 8.1.0 | |
-| arista.eos | 11.0.1 | 12.0.0 | |
-| cisco.dnac | 6.37.0 | 6.39.0 | |
-| cisco.ios | 10.1.1 | 11.0.0 | |
-| cisco.iosxr | 11.1.0 | 12.0.0 | |
-| cisco.nxos | 10.2.0 | 11.0.0 | |
-| community.dns | 3.2.7 | 3.3.1 | |
-| community.general | 11.1.2 | 11.2.1 | |
-| community.proxmox | 1.2.0 | 1.3.0 | |
-| community.routeros | 3.8.1 | 3.9.0 | |
-| community.vmware | 5.7.1 | 5.7.2 | |
-| cyberark.conjur | 1.3.6 | 1.3.7 | You can find the collection's changelog at [https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md](https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md). |
-| dellemc.unity | 2.0.0 | 2.1.0 | |
-| f5networks.f5_modules | 1.37.1 | 1.38.0 | There are no changes recorded in the changelog. |
-| hetzner.hcloud | 5.1.0 | 5.2.0 | |
-| hitachivantara.vspone_block | 4.0.1 | 4.1.0 | |
-| junipernetworks.junos | 10.0.0 | 11.0.0 | |
-| kubernetes.core | 6.0.0 | 6.1.0 | |
-| lowlydba.sqlserver | 2.6.1 | 2.7.0 | |
-| theforeman.foreman | 5.4.0 | 5.5.0 | |
-| vmware.vmware | 2.2.0 | 2.3.0 | |
-
-
-### Major Changes
-
-
-#### cisco\.ios
-
-* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
-
-
-#### cisco\.iosxr
-
-* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
-
-
-#### cisco\.nxos
-
-* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
-
-
-#### dellemc\.unity
-
-* Adding support for Unity v5\.5\.
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* AnsibleModule \- Add temporary internal monkeypatch\-able hook to alter module result serialization by splitting serialization from \_return\_formatted into \_record\_module\_result\.
-* ansible\-test \- Improve formatting of generated coverage config file\.
-* ansible\-test \- Use OS packages to satisfy controller requirements on FreeBSD 13\.5 during managed instance bootstrapping\.
-* encrypt \- check datatype of salt\_size in password\_hash filter\.
-* service\_facts \- handle keyerror exceptions with warning\.
-* service\_facts \- warn user about missing service details instead of ignoring\.
-
-
-#### ansible\.netcommon
-
-* Changes to supplement direct execution of Ansible module in validate\_config\(utils\.py\) and \_patch\_update\_module\(network\.py\) added\.
-* Override new 2\.19\.1\+ AnsibleModule\.\_record\_module\_result hook in network action plugin to bypass module result serialization when direct execution is enabled
-
-
-#### cisco\.dnac
-
-* Added attribute \'config\_file\_types\' in device\_configs\_backup\_workflow\_manager module
-* Added attribute \'device\_controllability\_details\' in network\_settings\_workflow\_manager module
-* Added attribute \'projects\' in template\_workflow\_manager module
-* Added attribute \'template\_description\' in template\_workflow\_manager module
-* Added attribute \'wireless\_controller\_settings\' in sda\_fabric\_devices\_workflow\_manager module
-* Changes in assurance\_icap\_settings\_workflow\_manager module
-* Changes in device\_configs\_backup\_workflow\_manager module
-* Changes in dnac\.py module
-* Changes in inventory\_workflow\_manager module
-* Changes in network\_settings\_workflow\_manager module
-* Changes in provision\_workflow\_manager module
-* Changes in sda\_fabric\_devices\_workflow\_manager module
-* Changes in sda\_fabric\_multicast\_workflow\_manager module
-* Changes in sda\_host\_port\_onboarding\_workflow\_manager module
-* Changes in site\_workflow\_manager module
-* Changes in template\_workflow\_manager module
-* Documentation changes in assurance\_issue\_workflow\_manager module
-* Documentation changes in inventory\_workflow\_manager module
-* Removed attribute \'description\' in template\_workflow\_manager module
-
-
-#### cisco\.nxos
-
-* cisco\.nxos\.nxos\_l3\_interfaces \- Rewrite of l3\_interfaces with bug fixes and enhancements\.
-
-
-#### community\.general
-
-* apk \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/issues/10479](https\://github\.com/ansible\-collections/community\.general/issues/10479)\, [https\://github\.com/ansible\-collections/community\.general/pull/10520](https\://github\.com/ansible\-collections/community\.general/pull/10520)\)\.
-* bzr \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10523](https\://github\.com/ansible\-collections/community\.general/pull/10523)\)\.
-* capabilities \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10524](https\://github\.com/ansible\-collections/community\.general/pull/10524)\)\.
-* composer \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10525](https\://github\.com/ansible\-collections/community\.general/pull/10525)\)\.
-* django module utils \- remove deprecated parameter \_DjangoRunner call \([https\://github\.com/ansible\-collections/community\.general/pull/10574](https\://github\.com/ansible\-collections/community\.general/pull/10574)\)\.
-* easy\_install \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10526](https\://github\.com/ansible\-collections/community\.general/pull/10526)\)\.
-* imgadm \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10536](https\://github\.com/ansible\-collections/community\.general/pull/10536)\)\.
-* jenkins\_plugin \- install dependencies for specific version \([https\://github\.com/ansible\-collections/community\.general/issue/4995](https\://github\.com/ansible\-collections/community\.general/issue/4995)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
-* keycloak\_identity\_provider – add support for fromUrl to automatically fetch OIDC endpoints from the well\-known discovery URL\, simplifying identity provider configuration \([https\://github\.com/ansible\-collections/community\.general/pull/10527](https\://github\.com/ansible\-collections/community\.general/pull/10527)\)\.
-* keycloak\_realm \- add support for brute\_force\_strategy and max\_temporary\_lockouts \([https\://github\.com/ansible\-collections/community\.general/issues/10412](https\://github\.com/ansible\-collections/community\.general/issues/10412)\, [https\://github\.com/ansible\-collections/community\.general/pull/10415](https\://github\.com/ansible\-collections/community\.general/pull/10415)\)\.
-* keycloak\_realm \- add support for client\-related options and Oauth2 device \([https\://github\.com/ansible\-collections/community\.general/pull/10538](https\://github\.com/ansible\-collections/community\.general/pull/10538)\)\.
-* logstash\_plugin \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/issues/10479](https\://github\.com/ansible\-collections/community\.general/issues/10479)\, [https\://github\.com/ansible\-collections/community\.general/pull/10520](https\://github\.com/ansible\-collections/community\.general/pull/10520)\)\.
-* nagios \- make parameter services a list instead of a str \([https\://github\.com/ansible\-collections/community\.general/pull/10493](https\://github\.com/ansible\-collections/community\.general/pull/10493)\)\.
-* open\_iscsi \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10599](https\://github\.com/ansible\-collections/community\.general/pull/10599)\)\.
-* pear \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10601](https\://github\.com/ansible\-collections/community\.general/pull/10601)\)\.
-* portage \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10602](https\://github\.com/ansible\-collections/community\.general/pull/10602)\)\.
-* riak \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10603](https\://github\.com/ansible\-collections/community\.general/pull/10603)\)\.
-* scaleway\_\* modules\, scaleway inventory plugin \- update available zones and API URLs \([https\://github\.com/ansible\-collections/community\.general/issues/10383](https\://github\.com/ansible\-collections/community\.general/issues/10383)\, [https\://github\.com/ansible\-collections/community\.general/pull/10424](https\://github\.com/ansible\-collections/community\.general/pull/10424)\)\.
-* sensu\_subscription \- normalize quotes in the module output \([https\://github\.com/ansible\-collections/community\.general/pull/10483](https\://github\.com/ansible\-collections/community\.general/pull/10483)\)\.
-* solaris\_zone \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10604](https\://github\.com/ansible\-collections/community\.general/pull/10604)\)\.
-* swupd \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10605](https\://github\.com/ansible\-collections/community\.general/pull/10605)\)\.
-* tasks\_only callback plugin \- add result\_format and pretty\_results options similarly to the default callback \([https\://github\.com/ansible\-collections/community\.general/pull/10422](https\://github\.com/ansible\-collections/community\.general/pull/10422)\)\.
-* timezone \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10612](https\://github\.com/ansible\-collections/community\.general/pull/10612)\)\.
-* urpmi \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10606](https\://github\.com/ansible\-collections/community\.general/pull/10606)\)\.
-* xbps \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10608](https\://github\.com/ansible\-collections/community\.general/pull/10608)\)\.
-* xfs\_quota \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10609](https\://github\.com/ansible\-collections/community\.general/pull/10609)\)\.
-
-
-#### community\.proxmox
-
-* proxmox\* modules \- added fallback environment variables for api\_token\, api\_secret\, and validate\_certs \([https\://github\.com/ansible\-collections/community\.proxmox/issues/63](https\://github\.com/ansible\-collections/community\.proxmox/issues/63)\, [https\://github\.com/ansible\-collections/community\.proxmox/pull/136](https\://github\.com/ansible\-collections/community\.proxmox/pull/136)\)\.
-* proxmox\_cluster\_ha\_groups \- fix idempotency in proxmox\_cluster\_ha\_groups module \([https\://github\.com/ansible\-collections/community\.proxmox/issues/138](https\://github\.com/ansible\-collections/community\.proxmox/issues/138)\, [https\://github\.com/ansible\-collections/community\.proxmox/pull/139](https\://github\.com/ansible\-collections/community\.proxmox/pull/139)\)\.
-* proxmox\_cluster\_ha\_resources \- Fix idempotency proxmox\_cluster\_ha\_resources \([https\://github\.com/ansible\-collections/community\.proxmox/pull/135](https\://github\.com/ansible\-collections/community\.proxmox/pull/135)\)\.
-* proxmox\_kvm \- Add missing \'storage\' parameter to create\_vm\(\)\-call\.
-* proxmox\_kvm \- add new purge parameter to proxmox\_kvm module \([https\://github\.com/ansible\-collections/community\.proxmox/issues/60](https\://github\.com/ansible\-collections/community\.proxmox/issues/60)\, [https\://github\.com/ansible\-collections/community\.proxmox/pull/148](https\://github\.com/ansible\-collections/community\.proxmox/pull/148)\)\.
-
-
-#### community\.routeros
-
-* api\_info\, api modify \- add remote\-log\-format\, remote\-protocol\, and event\-delimiter to system logging action \([https\://github\.com/ansible\-collections/community\.routeros/pull/381](https\://github\.com/ansible\-collections/community\.routeros/pull/381)\)\.
-* api\_info\, api\_modify \- add disable\-link\-local\-address and stale\-neighbor\-timeout fields to ipv6 settings \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
-* api\_info\, api\_modify \- adjust neighbor limit fields in ipv6 settings to match RouterOS 7\.18 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
-* api\_info\, api\_modify \- set passthrough default in ip firewall mangle to true for RouterOS 7\.19 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/382](https\://github\.com/ansible\-collections/community\.routeros/pull/382)\)\.
-* api\_info\, api\_modify \- since RouterOS 7\.17 VRF is supported for OVPN server\. It now supports multiple entries\, while api\_modify so far only accepted a single entry\. The interface ovpn\-server server path now allows multiple entries on RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/383](https\://github\.com/ansible\-collections/community\.routeros/pull/383)\)\.
-
-
-#### hetzner\.hcloud
-
-* volume \- Allow renaming a volume\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Added a new \"hv\_journal\" module as a replacement for the \"hv\_journal\_volume\" module\.
-* Added a new \"hv\_journal\_facts\" module as a replacement for the \"hv\_journal\_volume\_facts\" module\.
-* Added a new \"hv\_sds\_block\_authentication\_ticket\" module to create\, delete and update authentication tickets\.
-* Added a new \"hv\_sds\_block\_cluster\" module to add and remove storage nodes from the cluster\, and download cluster configuration files\.
-* Added a new \"hv\_sds\_block\_cluster\_config\_facts\" module to retrieve information about SDS block cluster configurations\.
-* Added a new \"hv\_sds\_block\_control\_port\_facts\" module to retrieve control port information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_drives\_facts\" module to retrieve drive information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_event\_logs\_facts\" module to retrieve event logs from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_fault\_domain\_facts\" module to retrieve fault domains information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_internode\_port\_facts\" module to retrieve internode port information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_job\_facts\" module to retrieve job details from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_protection\_domain\_facts\" module to retrieve protection domains from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_snapshot\" module to manage snapshots on SDS block cluster\.
-* Added a new \"hv\_sds\_block\_snapshot\_facts\" module to retrieve snapshot information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_controller\_facts\" module to retrieve storage controller information from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_network\_setting\_facts\" module to retrieve storage network settings from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_node\" module to block and restore storage nodes\.
-* Added a new \"hv\_sds\_block\_storage\_node\_facts\" module to retrieve information about storage nodes\.
-* Added a new \"hv\_sds\_block\_storage\_node\_network\_settings\_facts\" module to retrieve storage node network settings from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_pool\" module to expand storage pools on SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_pool\_facts\" module to retrieve storage pools from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_storage\_time\_facts\" module to retrieve storage time from SDS block cluster\.
-* Added a new \"hv\_sds\_block\_user\" module to create and update users on SDS block cluster\.
-* Added a new \"hv\_sds\_block\_user\_facts\" module to retrieve users on SDS block cluster\.
-* Note \"hv\_journal\_volume\" and \"hv\_journal\_volume\_facts\" modules will be deprecated from future release\.
-
-
-#### kubernetes\.core
-
-* Module helm\_registry\_auth do not support idempotency with helm \>\= 3\.18\.0 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/946](https\://github\.com/ansible\-collections/kubernetes\.core/pull/946)\)
-* Module k8s\_json\_patch \- Add support for hidden\_fields \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/964](https\://github\.com/ansible\-collections/kubernetes\.core/pull/964)\)\.
-* helm \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
-* helm \- Parameter take\_ownership added \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/957](https\://github\.com/ansible\-collections/kubernetes\.core/pull/957)\)\.
-* helm\_pull \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
-* helm\_template \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
-
-
-#### lowlydba\.sqlserver
-
-* agent\_job\_step \- Added output\_file parameter to specify the output file path for SQL Agent job steps \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/329](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/329)\)\.
-
-
-#### theforeman\.foreman
-
-* content\_view \- add rolling\-flag to create a Rolling Content View
-
-
-#### vmware\.vmware
-
-* add folder\_paths\_are\_absolute option to all modules that support folder paths\, allowing users to specify if folder paths are absolute and override the default behavior of intelligently determining if the path is absolute or relative\. \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/202](https\://github\.com/ansible\-collections/vmware\.vmware/issues/202)\)
-* vcsa\_settings \- Add always\_update\_password parameter to proxy settings\, which can be used to control if the password should be updated\.
-
-
-### Deprecated Features
-
-* The ibm\.qradar collection has been deprecated\.
- It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13\.
- See [Collections Removal Process for unmaintained collections](https\://docs\.ansible\.com/ansible/devel/community/collection\_contributors/collection\_package\_removal\.html\#unmaintained\-collections) for more details \([https\://forum\.ansible\.com/t/44259](https\://forum\.ansible\.com/t/44259)\)\.
-
-
-#### community\.general
-
-* bearychat \- module is deprecated and will be removed in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10514](https\://github\.com/ansible\-collections/community\.general/issues/10514)\)\.
-* cpanm \- deprecate mode\=compatibility\, mode\=new should be used instead \([https\://github\.com/ansible\-collections/community\.general/pull/10434](https\://github\.com/ansible\-collections/community\.general/pull/10434)\)\.
-* github\_repo \- deprecate force\_defaults\=true \([https\://github\.com/ansible\-collections/community\.general/pull/10435](https\://github\.com/ansible\-collections/community\.general/pull/10435)\)\.
-* rocketchat \- the default value for is\_pre740\, currently true\, is deprecated and will change to false in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10490](https\://github\.com/ansible\-collections/community\.general/pull/10490)\)\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* ansible\-test \- Always exclude the tests/output/ directory from a collection\'s code coverage\. \([https\://github\.com/ansible/ansible/issues/84244](https\://github\.com/ansible/ansible/issues/84244)\)
-* ansible\-test \- Limit package install retries during managed remote instance bootstrapping\.
-* ansible\-test \- Use a consistent coverage config for all collection testing\.
-* argspec validation \- The str argspec type treats None values as empty string for better consistency with pre\-2\.19 templating conversions\.
-* conditionals \- When displaying a broken conditional error or deprecation warning\, the origin of the non\-boolean result is included \(if available\)\, and the raw result is omitted\.
-* failed\_when \- When using failed\_when to suppress an error\, the exception key in the result is renamed to failed\_when\_suppressed\_exception\. This prevents the error from being displayed by callbacks after being suppressed\. \([https\://github\.com/ansible/ansible/issues/85505](https\://github\.com/ansible/ansible/issues/85505)\)
-* import\_tasks \- fix templating parent include arguments\.
-* plugins config\, get\_option\_and\_origin now correctly displays the value and origin of the option\.
-* template lookup \- Skip finalization on the internal templating operation to allow markers to be returned and handled by\, e\.g\. the default filter\. Previously\, finalization tripped markers\, causing an exception to end processing of the current template pipeline\. \([https\://github\.com/ansible/ansible/issues/85674](https\://github\.com/ansible/ansible/issues/85674)\)
-* templating \- Avoid tripping markers within Jinja generated code\. \([https\://github\.com/ansible/ansible/issues/85674](https\://github\.com/ansible/ansible/issues/85674)\)
-* templating \- Ensure filter plugin result processing occurs under the correct call context\. \([https\://github\.com/ansible/ansible/issues/85585](https\://github\.com/ansible/ansible/issues/85585)\)
-* templating \- Fix slicing of tuples in templating \([https\://github\.com/ansible/ansible/issues/85606](https\://github\.com/ansible/ansible/issues/85606)\)\.
-* templating \- Multi\-node template results coerce embedded None nodes to empty string \(instead of rendering literal None to the output\)\.
-* templating \- Undefined marker values sourced from the Jinja getattr\-\>getitem fallback are now accessed correctly\, raising AnsibleUndefinedVariable for user plugins that do not understand markers\. Previously\, these values were erroneously returned to user plugin code that had not opted in to marker acceptance\.
-* tqm \- use display\.error\_as\_warning instead of display\.warning\_as\_error\.
-* tqm \- use display\.error\_as\_warning instead of self\.warning\.
-
-
-#### amazon\.aws
-
-* ec2\_instance \- corrected typo for InsufficientInstanceCapacity\. Fix now will retry Ec2 creation when InsufficientInstanceCapacity error occurs \([https\://github\.com/ansible\-collections/amazon\.aws/issues/1038](https\://github\.com/ansible\-collections/amazon\.aws/issues/1038)\)\.
-
-
-#### ansible\.netcommon
-
-* Improved error handling in DirectExecutionModule\.\_record\_module\_result method for better compatibility with core\<\=2\.18
-
-
-#### arista\.eos
-
-* Add unit and integration tests to verify the change
-* Fix regex in route\_map module to support match community with or without exact\-match
-* Update the ACL module to support using protocol names for source port
-* arista\.eos\.eos\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes
-
-
-#### cisco\.ios
-
-* ios\_vrf\_address\_family \- fixed an issue where the module failed to gather mdt configuration options\.
-
-
-#### cisco\.iosxr
-
-* iosxr\_route\_map \- Fixes route\-policy attribute facts gathering\.
-
-
-#### cisco\.nxos
-
-* cisco\.nxos\.nxos\_vrf\_global \- Added support for rd attribute for nxos\_vrf\_global module\.
-
-
-#### community\.dns
-
-* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.dns/pull/280](https\://github\.com/ansible\-collections/community\.dns/pull/280)\)\.
-* Update Public Suffix List\.
-* nameserver\_record\_info \- removed type ALL\, which never worked \([https\://github\.com/ansible\-collections/community\.dns/issues/278](https\://github\.com/ansible\-collections/community\.dns/issues/278)\, [https\://github\.com/ansible\-collections/community\.dns/pull/279](https\://github\.com/ansible\-collections/community\.dns/pull/279)\)\.
-
-
-#### community\.general
-
-* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.general/pull/10687](https\://github\.com/ansible\-collections/community\.general/pull/10687)\)\.
-* apache2\_module \- check the cgi module restrictions only during activation \([https\://github\.com/ansible\-collections/community\.general/pull/10423](https\://github\.com/ansible\-collections/community\.general/pull/10423)\)\.
-* composer \- fix broken command lines \([https\://github\.com/ansible\-collections/community\.general/issues/10662](https\://github\.com/ansible\-collections/community\.general/issues/10662)\, [https\://github\.com/ansible\-collections/community\.general/pull/10669](https\://github\.com/ansible\-collections/community\.general/pull/10669)\)\.
-* jenkins\_plugin \- install latest compatible version instead of latest \([https\://github\.com/ansible\-collections/community\.general/issues/854](https\://github\.com/ansible\-collections/community\.general/issues/854)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
-* jenkins\_plugin \- separate Jenkins and external URL credentials \([https\://github\.com/ansible\-collections/community\.general/issues/4419](https\://github\.com/ansible\-collections/community\.general/issues/4419)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
-* lvm\_pv \- properly detect SCSI or NVMe devices to rescan \([https\://github\.com/ansible\-collections/community\.general/issues/10444](https\://github\.com/ansible\-collections/community\.general/issues/10444)\, [https\://github\.com/ansible\-collections/community\.general/pull/10596](https\://github\.com/ansible\-collections/community\.general/pull/10596)\)\.
-* pacemaker\_resource \- fix resource\_type parameter formatting \([https\://github\.com/ansible\-collections/community\.general/issues/10426](https\://github\.com/ansible\-collections/community\.general/issues/10426)\, [https\://github\.com/ansible\-collections/community\.general/pull/10663](https\://github\.com/ansible\-collections/community\.general/pull/10663)\)\.
-* pids \- prevent error when an empty string is provided for name \([https\://github\.com/ansible\-collections/community\.general/issues/10672](https\://github\.com/ansible\-collections/community\.general/issues/10672)\, [https\://github\.com/ansible\-collections/community\.general/pull/10688](https\://github\.com/ansible\-collections/community\.general/pull/10688)\)\.
-
-
-#### community\.proxmox
-
-* proxmox\_pct\_remote connection plugin \- avoid deprecated ansible\-core paramiko import helper\, import paramiko directly instead \([https\://github\.com/ansible\-collections/community\.proxmox/issues/146](https\://github\.com/ansible\-collections/community\.proxmox/issues/146)\, [https\://github\.com/ansible\-collections/community\.proxmox/pull/151](https\://github\.com/ansible\-collections/community\.proxmox/pull/151)\)\.
-
-
-#### community\.routeros
-
-* routeros terminal plugin \- fix terminal\_stdout\_re pattern to handle long system identities when connecting to RouterOS through SSH \([https\://github\.com/ansible\-collections/community\.routeros/pull/386](https\://github\.com/ansible\-collections/community\.routeros/pull/386)\)\.
-
-
-#### community\.vmware
-
-* vmware\_deploy\_ovf \- Fix detection of HTTP range support in WebHandle to support HTTP/2 endpoints like Nexus that do not return accept\-ranges header \([https\://github\.com/ansible\-collections/community\.vmware/pull/2399](https\://github\.com/ansible\-collections/community\.vmware/pull/2399)\)\.
-* vmware\_guest\_file\_operation \- Fix to use custom port provided to the module \([https\://github\.com/ansible\-collections/community\.vmware/pull/2397](https\://github\.com/ansible\-collections/community\.vmware/pull/2397)\)\.
-* vmware\_vm\_config\_option \- change to use \'disk\_ctl\_device\_type\' defined in \'device\_helper\' and add \'support\_cpu\_hotadd\'\, \'support\_memory\_hotadd\'\, \'support\_for\_create\' in output\. \([https\://github\.com/ansible\-collections/community\.vmware/pull/2428](https\://github\.com/ansible\-collections/community\.vmware/pull/2428)\)
-
-
-#### hetzner\.hcloud
-
-* volume\_attachment \- Add hcloud\_volume\_attachment alias to volume\_attachment module\.
-* volume\_attachment \- Add volume\_attachment module to action group all\.
-
-
-#### junipernetworks\.junos
-
-* Fixes interface\_type parameter in the proccesses block\.
-
-
-#### kubernetes\.core
-
-* module\_utils/k8s/service \- hide fields first before creating diffs \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/915](https\://github\.com/ansible\-collections/kubernetes\.core/pull/915)\)\.
-
-
-#### theforeman\.foreman
-
-* activation\_key \- ensure LCE and CV are always sent together when updating one of them
-* hostgroup \- fix idempotency of hostgroup module when assigning Ansible roles to a hostgroup with a parent hostgroup \([https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1865](https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1865)\)
-
-
-#### vmware\.vmware
-
-* vcsa\_settings \- Fix bug where proxy settings cannot be disabled\, even if enabled is set to false\. \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/207](https\://github\.com/ansible\-collections/vmware\.vmware/issues/207)\)
-
-
-### New Plugins
-
-
-#### Lookup
-
-* community\.general\.binary\_file \- Read binary file and return it Base64 encoded\.
-
-
-### New Modules
-
-
-#### community\.dns
-
-* community\.dns\.adguardhome\_rewrite \- Add\, update or delete DNS rewrite rules from AdGuardHome\.
-* community\.dns\.adguardhome\_rewrite\_info \- Retrieve DNS rewrite rules from AdGuardHome\.
-
-
-#### community\.general
-
-* community\.general\.lvm\_pv\_move\_data \- Move data between LVM Physical Volumes \(PVs\)\.
-* community\.general\.pacemaker\_info \- Gather information about Pacemaker cluster\.
-
-
-#### community\.proxmox
-
-* community\.proxmox\.proxmox\_storage \- Manage storage in PVE clusters and nodes\.
-
-
-#### hitachivantara\.vspone\_block
-
-
-##### Sds Block
-
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_authentication\_ticket \- Manages Hitachi SDS block storage system authentication tickets\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_cluster \- Manages storage cluster on Hitachi SDS block storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_cluster\_config\_facts \- Retrieves information about configuration of SDS block clusters from Hitachi SDS block storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_control\_port\_facts \- Get control port from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_drives\_facts \- Get drives from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_event\_logs\_facts \- Get event logs from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_fault\_domain\_facts \- Get fault domains from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_internode\_port\_facts \- Get internode port from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_job\_facts \- Retrieves information about Hitachi SDS block storage system storage nodes\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_protection\_domain\_facts \- Get protection domains from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_snapshot \- Manages snapshots on Hitachi SDS Block storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_snapshot\_facts \- Gather facts about snapshots on Hitachi SDS Block storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_controller\_facts \- Get storage\_controllers from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_network\_setting\_facts \- Get storage network settings from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_node \- Manages storage node on Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_node\_facts \- Retrieves information about Hitachi SDS block storage system storage nodes\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_node\_network\_settings\_facts \- Get storage node network settings from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_pool \- Manages storage pool on Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_pool\_facts \- Retrieves information about Hitachi SDS block storage system storage pools\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_storage\_time\_facts \- Get storage time from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_user \- Create and update users from storage system\.
-* hitachivantara\.vspone\_block\.hv\_sds\_block\_user\_facts \- Get users from storage system\.
-
-
-#### theforeman\.foreman
-
-* theforeman\.foreman\.flatpak\_remote \- Manage Flatpak Remotes
-* theforeman\.foreman\.flatpak\_remote\_repository\_mirror \- Mirror a Flatpak Remote Repository
-* theforeman\.foreman\.flatpak\_remote\_scan \- Scan a Flatpak Remote
-
-
-### Unchanged Collections
-
-* ansible\.posix \(still version 2\.1\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.2\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.7\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.12\.0\)
-* cisco\.intersight \(still version 2\.2\.0\)
-* cisco\.meraki \(still version 2\.21\.4\)
-* cisco\.mso \(still version 2\.11\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.2\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.11\)
-* community\.crypto \(still version 3\.0\.3\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.docker \(still version 4\.7\.0\)
-* community\.grafana \(still version 2\.3\.0\)
-* community\.hashi\_vault \(still version 7\.0\.0\)
-* community\.hrobot \(still version 2\.5\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 2\.0\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.15\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.6\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.2\.1\)
-* community\.windows \(still version 3\.0\.1\)
-* community\.zabbix \(still version 4\.1\.0\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.3\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* google\.cloud \(still version 1\.7\.0\)
-* grafana\.grafana \(still version 6\.0\.3\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.6\.3\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* microsoft\.ad \(still version 1\.9\.2\)
-* microsoft\.iis \(still version 1\.0\.3\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.1\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.36\.0\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.4\.0\)
-* vmware\.vmware\_rest \(still version 4\.8\.1\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0b3
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - dellemc\.openmanage
- - netapp\.ontap
-- Minor Changes
- - cisco\.dnac
- - cloudscale\_ch\.cloud
- - community\.docker
- - community\.general
- - community\.mysql
- - google\.cloud
- - netapp\.ontap
-- Bugfixes
- - community\.crypto
- - community\.docker
- - community\.general
- - community\.mysql
- - community\.sops
- - google\.cloud
- - netapp\.ontap
-- Known Issues
- - dellemc\.openmanage
-- New Modules
- - netapp\.ontap
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-08\-05
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0b3 contains ansible\-core version 2\.19\.0\.
-This is the same version of ansible\-core as in the previous Ansible release\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0b2 | Ansible 12.0.0b3 | Notes |
-| ------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| azure.azcollection | 3.6.0 | 3.7.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| cisco.dnac | 6.36.0 | 6.37.0 | |
-| cisco.intersight | 2.1.0 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| cloudscale_ch.cloud | 2.5.1 | 2.5.2 | |
-| community.crypto | 3.0.2 | 3.0.3 | |
-| community.docker | 4.6.2 | 4.7.0 | |
-| community.general | 11.1.1 | 11.1.2 | |
-| community.mysql | 3.14.0 | 3.15.0 | |
-| community.sops | 2.2.0 | 2.2.1 | |
-| dellemc.openmanage | 9.12.2 | 9.12.3 | |
-| google.cloud | 1.6.0 | 1.7.0 | |
-| infinidat.infinibox | 1.4.5 | 1.6.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| netapp.ontap | 23.0.0 | 23.1.0 | |
-
-
-### Major Changes
-
-
-#### dellemc\.openmanage
-
-* OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2\.19\.
-* idrac\_bios \- This role is enhanced to support iDRAC10\.
-* idrac\_boot \- This module is enhanced to support iDRAC10\.
-* idrac\_boot \- This role is enhanced to support iDRAC10\.
-* idrac\_certificates \- This module is enhanced to support iDRAC10\.
-* idrac\_reset \- This module is enhanced to support iDRAC10\.
-* idrac\_reset \- This role is enhanced to support iDRAC10\.
-* idrac\_support\_assist \- This module is enhanced to support iDRAC10\.
-* idrac\_user \- This module is enhanced to support iDRAC10\.
-* idrac\_user \- This role is enhanced to support iDRAC10\.
-* ome\_firmware \- This module is enhanced to support OME 4\.5\.
-* ome\_firmware\_baseline \- This module is enhanced to support OME 4\.5\.
-* ome\_firmware\_baseline\_compliance\_info \- This module is enhanced to support OME 4\.5\.
-* ome\_firmware\_baseline\_info \- This module is enhanced to support OME 4\.5\.
-* ome\_firmware\_catalog \- This module is enhanced to support OME 4\.5\.
-* redfish\_firmware \- This module is enhanced to support iDRAC10\.
-
-
-#### netapp\.ontap
-
-* na\_ontap\_autoupdate\_support \- REST only support to enable automatic software update\, requires ONTAP 9\.10 or later\.
-* na\_ontap\_s3\_buckets \- new option snapshot\_policy added in REST\, requires ONTAP 9\.16\.1 or later\.
-
-
-### Minor Changes
-
-
-#### cisco\.dnac
-
-* Added attribute \'ignore\_duration\' in assurance\_issue\_workflow\_manager module
-* Added attribute \'new\_name\' in tags\_workflow\_manager module
-* Added attributes \'commit\' and \'version\' in template\_workflow\_manager module
-* Adding log messages and minor documentation changes in accesspoint\_workflow\_manager module
-* Changes in application\_policy\_workflow\_manager workflow manager module
-* Changes in device\_credential\_workflow\_manager module
-* Changes in discovery\_workflow\_manager module
-* Changes in inventory\_workflow\_manager module
-* Changes in network\_profile\_switching\_workflow\_manager module
-* Changes in network\_profile\_wireless\_workflow\_manager module
-* Changes in networks\_profile module
-* Changes in path\_trace\_workflow\_manager module
-* Changes in pnp\_workflow\_manager module
-* Changes in provision\_workflow\_manager module
-* Changes in sda\_fabric\_virtual\_networks\_workflow\_manager module
-* Changes in sda\_host\_port\_onboarding\_workflow\_manager module
-* Changes in site\_workflow\_manager module
-* Changes in swim\_workflow\_manager module
-* Changes in tags\_workflow\_manager module
-* Changes in template\_workflow\_manager module
-* Changes in user\_role\_workflow\_manager module
-* Changes in validation\.py module
-* Changes in wireless\_design\_workflow\_manger module
-* Documentation changes in device\_configs\_backup\_workflow\_manager module
-* Enhancements in assurance\_issue\_workflow\_manager module to support ignore duration
-
-
-#### cloudscale\_ch\.cloud
-
-* Remove the custom error message from snapshots module to fix root volume snapshots/restores on stopped servers
-
-
-#### community\.docker
-
-* docker\_swarm\_service \- add support for replicated\-job mode for Swarm services \([https\://github\.com/ansible\-collections/community\.docker/issues/626](https\://github\.com/ansible\-collections/community\.docker/issues/626)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1108](https\://github\.com/ansible\-collections/community\.docker/pull/1108)\)\.
-
-
-#### community\.general
-
-* gem \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* git\_config\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* github\_deploy\_key \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* github\_repo \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* github\_webhook \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* github\_webhook\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_branch \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_group\_access\_token \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_group\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_hook \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_instance\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_issue \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_label \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_merge\_request \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_milestone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_project \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_project\_access\_token \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* gitlab\_project\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* grove \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* hg \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* homebrew \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* homebrew\_cask \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* homebrew\_tap \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* honeybadger\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* htpasswd \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* icinga2\_host \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* influxdb\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ini\_file \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ipa\_dnsrecord \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ipa\_dnszone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ipa\_service \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ipbase\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* ipwcli\_dns \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* irc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* jabber \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* jenkins\_credential \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* jenkins\_job \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* jenkins\_script \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
-* keycloak\_authz\_authorization\_scope \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* keycloak\_authz\_permission \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* keycloak\_role \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* keycloak\_userprofile \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* keyring \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* kibana\_plugin \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* layman \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* ldap\_attrs \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* ldap\_inc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* librato\_annotation \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* lldp \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* logentries \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* lxca\_cmms \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* lxca\_nodes \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* macports \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* mail \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_alerts \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_group \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_policies \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_policies\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_tags \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* manageiq\_tenant \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* matrix \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* mattermost \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* maven\_artifact \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* memset\_dns\_reload \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* memset\_zone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* memset\_zone\_record \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* mqtt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* mssql\_db \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* mssql\_script \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* netcup\_dns \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* newrelic\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* nsupdate \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
-* oci\_vcn \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* one\_image\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* one\_template \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* one\_vnet \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* onepassword\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* oneview\_fc\_network\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* opendj\_backendprop \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* ovh\_monthly\_billing \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pagerduty \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pagerduty\_change \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pagerduty\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pam\_limits \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pear \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pkgng \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pnpm \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* portage \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pritunl\_org \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pritunl\_org\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pritunl\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pritunl\_user\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pubnub\_blocks \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pushbullet \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* pushover \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* redis\_data \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* redis\_data\_incr \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* riak \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* rocketchat \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* rollbar\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* say \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* scaleway\_database\_backup \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* sendgrid \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* sensu\_silence \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* sorcery \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* ssh\_config \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* statusio\_maintenance \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* svr4pkg \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* swdepot \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* syslogger \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* sysrc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* systemd\_creds\_decrypt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* systemd\_creds\_encrypt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
-* taiga\_issue \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* twilio \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_aaa\_group \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_ca\_host\_key\_cert \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_dns\_host \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_network\_interface\_address \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_proxy\_auth\_profile \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_proxy\_exception \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_proxy\_frontend \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* utm\_proxy\_location \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* vertica\_configuration \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* vertica\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* vertica\_role \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* xbps \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* yarn \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* zypper \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-* zypper\_repository \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-
-
-#### community\.mysql
-
-* mysql\_db \- Add support for sql\_log\_bin option \([https\://github\.com/ansible\-collections/community\.mysql/issues/700](https\://github\.com/ansible\-collections/community\.mysql/issues/700)\)\.
-
-
-#### google\.cloud
-
-* gcp\_parameter\_manager \- added module support for managing parameters and versions \([https\://github\.com/ansible\-collections/google\.cloud/pull/684](https\://github\.com/ansible\-collections/google\.cloud/pull/684)\)\.
-* gcp\_storage\_bucket \- added support for iam\_configuration \([https\://github\.com/ansible\-collections/google\.cloud/pull/693](https\://github\.com/ansible\-collections/google\.cloud/pull/693)\)\.
-* lookup \- added lookup via gcp\_parameter\_manager \([https\://github\.com/ansible\-collections/google\.cloud/pull/684](https\://github\.com/ansible\-collections/google\.cloud/pull/684)\)\.
-
-
-#### netapp\.ontap
-
-* na\_ontap\_cifs\_acl \- added example showing ACL deletion\.
-* na\_ontap\_cluster\_peer \- new options local\_name\_for\_peer and local\_name\_for\_source added in REST\.
-* na\_ontap\_nfs \- new option nfsv3\_hide\_snapdir added in REST\.
-* na\_ontap\_rest\_cli \- added next key to enable API pagination support\.
-* na\_ontap\_security\_certificates \- updated examples for create server type certificate and install with intermediate certificates\.
-* na\_ontap\_snapmirror \- new option quick\_resync added in REST\.
-* na\_ontap\_support\_config\_backup \- new option set\_password added in REST\.
-* na\_ontap\_svm \- new option storage\_limit added in REST\, requires ONTAP 9\.13\.1 or later\.
-* na\_ontap\_user \- added totp option for application\_dicts\.second\_authentication\_method in REST\.
-* na\_ontap\_volume \- new option tiering\_object\_tags added in REST\.
-* updated README template\, added CHANGELOG\.md for release notes\.
-
-
-### Bugfixes
-
-
-#### community\.crypto
-
-* acme\_\* modules \- also retry on HTTP responses 502 Bad Gateway and 504 Gateway Timeout\. The latter is needed for ZeroSSL\, which seems to have a lot of 504s \([https\://github\.com/ansible\-collections/community\.crypto/issues/945](https\://github\.com/ansible\-collections/community\.crypto/issues/945)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/947](https\://github\.com/ansible\-collections/community\.crypto/pull/947)\)\.
-* acme\_\* modules \- increase the maximum amount of retries from 10 to 20 to accomodate ZeroSSL\'s buggy implementation \([https\://github\.com/ansible\-collections/community\.crypto/pull/949](https\://github\.com/ansible\-collections/community\.crypto/pull/949)\)\.
-
-
-#### community\.docker
-
-* docker\_image\, docker\_image\_push \- work around a bug in Docker 28\.3\.3 that prevents pushing without authentication to a registry \([https\://github\.com/ansible\-collections/community\.docker/pull/1110](https\://github\.com/ansible\-collections/community\.docker/pull/1110)\)\.
-
-
-#### community\.general
-
-* apk \- fix check for empty/whitespace\-only package names \([https\://github\.com/ansible\-collections/community\.general/pull/10532](https\://github\.com/ansible\-collections/community\.general/pull/10532)\)\.
-* capabilities \- using invalid path \(symlink/directory/\.\.\.\) returned unrelated and incoherent error messages \([https\://github\.com/ansible\-collections/community\.general/issues/5649](https\://github\.com/ansible\-collections/community\.general/issues/5649)\, [https\://github\.com/ansible\-collections/community\.general/pull/10455](https\://github\.com/ansible\-collections/community\.general/pull/10455)\)\.
-* doas become plugin \- disable pipelining on ansible\-core 2\.19\+\. The plugin does not work with pipelining\, and since ansible\-core 2\.19 become plugins can indicate that they do not work with pipelining \([https\://github\.com/ansible\-collections/community\.general/issues/9977](https\://github\.com/ansible\-collections/community\.general/issues/9977)\, [https\://github\.com/ansible\-collections/community\.general/pull/10537](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
-* json\_query filter plugin \- make compatible with lazy evaluation list and dictionary types of ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10539](https\://github\.com/ansible\-collections/community\.general/pull/10539)\)\.
-* machinectl become plugin \- disable pipelining on ansible\-core 2\.19\+\. The plugin does not work with pipelining\, and since ansible\-core 2\.19 become plugins can indicate that they do not work with pipelining \([https\://github\.com/ansible\-collections/community\.general/pull/10537](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
-* merge\_variables lookup plugin \- avoid deprecated functionality from ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10566](https\://github\.com/ansible\-collections/community\.general/pull/10566)\)\.
-* wsl connection plugin \- avoid deprecated ansible\-core paramiko import helper\, import paramiko directly instead \([https\://github\.com/ansible\-collections/community\.general/issues/10515](https\://github\.com/ansible\-collections/community\.general/issues/10515)\, [https\://github\.com/ansible\-collections/community\.general/pull/10531](https\://github\.com/ansible\-collections/community\.general/pull/10531)\)\.
-
-
-#### community\.mysql
-
-* mysql\_query \- fix a Python 2 compatibility issue caused by the addition of execution\_time\_ms in version 3\.12 \(see [https\://github\.com/ansible\-collections/community\.mysql/issues/716](https\://github\.com/ansible\-collections/community\.mysql/issues/716)\)\.
-* mysql\_user \- fix a crash \(unable to parse the MySQL grant string\: SET DEFAULT ROLE somerole FOR someuser\`\@\`\%\) when using the mysql\_user module with a DEFAULT role present in MariaDB\. The DEFAULT role is now ignored by the parser \([https\://github\.com/ansible\-collections/community\.mysql/issues/710](https\://github\.com/ansible\-collections/community\.mysql/issues/710)\)\.
-
-
-#### community\.sops
-
-* install role \- avoid deprecated parameter value for the ansible\.builtin\.uri module \([https\://github\.com/ansible\-collections/community\.sops/pull/255](https\://github\.com/ansible\-collections/community\.sops/pull/255)\)\.
-
-
-#### google\.cloud
-
-* gcp\_bigquery\_table \- fixed nested schema definitions \([https\://github\.com/ansible\-collections/google\.cloud/issues/637](https\://github\.com/ansible\-collections/google\.cloud/issues/637)\)\.
-
-
-#### netapp\.ontap
-
-* Corrected typo in email address from ng\-ansibleteam\@netapp\.com to ng\-ansible\-team\@netapp\.com across Ansible collection\.
-* na\_ontap\_cg\_snapshot \- fixed issue with CG not being found with given volumes in REST\.
-* na\_ontap\_firmware\_upgrade \- fixed typo in example\.
-* na\_ontap\_ndmp \- fix idempotency issue and added example for ndmp user generate password in REST\.
-* na\_ontap\_user \- fixed issue with idempotency while creating a user account in REST\.
-* na\_ontap\_volume \- fixed indentation in example\.
-
-
-### Known Issues
-
-
-#### dellemc\.openmanage
-
-* idrac\_attributes \- The module accepts both the string as well as integer value for the field \"SNMP\.1\.AgentCommunity\" for iDRAC10\.
-* idrac\_diagnostics \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
-* ome\_smart\_fabric\_uplink \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
-
-
-### New Modules
-
-
-#### netapp\.ontap
-
-* netapp\.ontap\.na\_ontap\_autoupdate\_support \- NetApp ONTAP enable auto update status\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.1\)
-* ansible\.posix \(still version 2\.1\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.2\.0\)
-* arista\.eos \(still version 11\.0\.1\)
-* awx\.awx \(still version 24\.6\.1\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.12\.0\)
-* cisco\.ios \(still version 10\.1\.1\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.meraki \(still version 2\.21\.4\)
-* cisco\.mso \(still version 2\.11\.0\)
-* cisco\.nxos \(still version 10\.2\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.11\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.7\)
-* community\.grafana \(still version 2\.3\.0\)
-* community\.hashi\_vault \(still version 7\.0\.0\)
-* community\.hrobot \(still version 2\.5\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 2\.0\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxmox \(still version 1\.2\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.6\.0\)
-* community\.routeros \(still version 3\.8\.1\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.vmware \(still version 5\.7\.1\)
-* community\.windows \(still version 3\.0\.1\)
-* community\.zabbix \(still version 4\.1\.0\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.conjur \(still version 1\.3\.6\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.37\.1\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.3\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* hitachivantara\.vspone\_block \(still version 4\.0\.1\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.2\)
-* microsoft\.iis \(still version 1\.0\.3\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.36\.0\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.4\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware \(still version 2\.2\.0\)
-* vmware\.vmware\_rest \(still version 4\.8\.1\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0b2
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Minor Changes
- - community\.general
- - hitachivantara\.vspone\_block
-- Bugfixes
- - community\.crypto
- - community\.dns
- - community\.docker
- - community\.general
- - community\.routeros
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-07\-29
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0b2 contains ansible\-core version 2\.19\.0\.
-This is the same version of ansible\-core as in the previous Ansible release\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0b1 | Ansible 12.0.0b2 | Notes |
-| --------------------------- | ---------------- | ---------------- | -------------------------------------------------------- |
-| community.crypto | 3.0.1 | 3.0.2 | |
-| community.dns | 3.2.6 | 3.2.7 | |
-| community.docker | 4.6.1 | 4.6.2 | |
-| community.general | 11.1.0 | 11.1.1 | |
-| community.routeros | 3.8.0 | 3.8.1 | |
-| grafana.grafana | 6.0.2 | 6.0.3 | The collection did not have a changelog in this version. |
-| hitachivantara.vspone_block | 4.0.0 | 4.0.1 | |
-
-
-### Minor Changes
-
-
-#### community\.general
-
-* aerospike\_migrations \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* airbrake\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* bigpanda \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* bootc\_manage \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* bower \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* btrfs\_subvolume \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* bundler \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* campfire \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* cargo \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* catapult \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* cisco\_webex \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* consul\_kv \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* consul\_policy \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* copr \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* datadog\_downtime \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* datadog\_monitor \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dconf \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dimensiondata\_network \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dimensiondata\_vlan \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dnf\_config\_manager \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dnsmadeeasy \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* dpkg\_divert \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* easy\_install \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* elasticsearch\_plugin \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* facter \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* filesystem \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
-* sysrc \- adjustments to the code \([https\://github\.com/ansible\-collections/community\.general/pull/10417](https\://github\.com/ansible\-collections/community\.general/pull/10417)\)\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Added support to \'create\' and \'delete\' external parity group in the \'hv\_external\_paritygroup\' modules\.
-* Added support to get ldev details using \'pool\_id\'\, \'resource\_group\_id\'\, \'journal\_id\' and \'parity\_group\_id\' in the \"hv\_ldev\_facts\" module\.
-
-
-### Bugfixes
-
-
-#### community\.crypto
-
-* Improve error message when loading a private key fails due to correct private key files or wrong passwords\. Also include the original cryptography error since it likely contains more helpful information \([https\://github\.com/ansible\-collections/community\.crypto/issues/936](https\://github\.com/ansible\-collections/community\.crypto/issues/936)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/939](https\://github\.com/ansible\-collections/community\.crypto/pull/939)\)\.
-
-
-#### community\.dns
-
-* Update Public Suffix List\.
-
-
-#### community\.docker
-
-* docker\_compose\_v2 \- adjust to new dry\-run build events in Docker Compose 2\.39\.0\+ \([https\://github\.com/ansible\-collections/community\.docker/pull/1101](https\://github\.com/ansible\-collections/community\.docker/pull/1101)\)\.
-
-
-#### community\.general
-
-* apache2\_module \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
-* apk \- handle empty name strings properly \([https\://github\.com/ansible\-collections/community\.general/issues/10441](https\://github\.com/ansible\-collections/community\.general/issues/10441)\, [https\://github\.com/ansible\-collections/community\.general/pull/10442](https\://github\.com/ansible\-collections/community\.general/pull/10442)\)\.
-* cronvar \- fix crash on missing cron\_file parent directories \([https\://github\.com/ansible\-collections/community\.general/issues/10460](https\://github\.com/ansible\-collections/community\.general/issues/10460)\, [https\://github\.com/ansible\-collections/community\.general/pull/10461](https\://github\.com/ansible\-collections/community\.general/pull/10461)\)\.
-* cronvar \- handle empty strings on value properly \([https\://github\.com/ansible\-collections/community\.general/issues/10439](https\://github\.com/ansible\-collections/community\.general/issues/10439)\, [https\://github\.com/ansible\-collections/community\.general/pull/10445](https\://github\.com/ansible\-collections/community\.general/pull/10445)\)\.
-* htpasswd \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
-* irc \- pass hostname to wrap\_socket\(\) if use\_tls\=true and validate\_certs\=true \([https\://github\.com/ansible\-collections/community\.general/issues/10472](https\://github\.com/ansible\-collections/community\.general/issues/10472)\, [https\://github\.com/ansible\-collections/community\.general/pull/10491](https\://github\.com/ansible\-collections/community\.general/pull/10491)\)\.
-* listen\_port\_facts \- avoid crash when required commands are missing \([https\://github\.com/ansible\-collections/community\.general/issues/10457](https\://github\.com/ansible\-collections/community\.general/issues/10457)\, [https\://github\.com/ansible\-collections/community\.general/pull/10458](https\://github\.com/ansible\-collections/community\.general/pull/10458)\)\.
-* syspatch \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
-* sysrc \- fixes parsing with multi\-line variables \([https\://github\.com/ansible\-collections/community\.general/issues/10394](https\://github\.com/ansible\-collections/community\.general/issues/10394)\, [https\://github\.com/ansible\-collections/community\.general/pull/10417](https\://github\.com/ansible\-collections/community\.general/pull/10417)\)\.
-* sysupgrade \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
-* zypper\_repository \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
-
-
-#### community\.routeros
-
-* facts and api\_facts modules \- prevent deprecation warnings when used with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.routeros/pull/384](https\://github\.com/ansible\-collections/community\.routeros/pull/384)\)\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.1\)
-* ansible\.posix \(still version 2\.1\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.2\.0\)
-* arista\.eos \(still version 11\.0\.1\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.6\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.12\.0\)
-* cisco\.dnac \(still version 6\.36\.0\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.ios \(still version 10\.1\.1\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.meraki \(still version 2\.21\.4\)
-* cisco\.mso \(still version 2\.11\.0\)
-* cisco\.nxos \(still version 10\.2\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.11\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.grafana \(still version 2\.3\.0\)
-* community\.hashi\_vault \(still version 7\.0\.0\)
-* community\.hrobot \(still version 2\.5\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 2\.0\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxmox \(still version 1\.2\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.6\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.2\.0\)
-* community\.vmware \(still version 5\.7\.1\)
-* community\.windows \(still version 3\.0\.1\)
-* community\.zabbix \(still version 4\.1\.0\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.conjur \(still version 1\.3\.6\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.2\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.37\.1\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* google\.cloud \(still version 1\.6\.0\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.2\)
-* microsoft\.iis \(still version 1\.0\.3\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.36\.0\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.4\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware \(still version 2\.2\.0\)
-* vmware\.vmware\_rest \(still version 4\.8\.1\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0b1
-
-- Release Summary
-- Added Collections
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - community\.libvirt
- - community\.zabbix
-- Minor Changes
- ansible\.posix
- ansible\.windows
+ - arista\.eos
+ - check\_point\.mgmt
- cisco\.aci
+ - cisco\.dnac
+ - cisco\.ios
+ - cisco\.iosxr
+ - cisco\.meraki
- cisco\.mso
+ - cisco\.nxos
+ - cloudscale\_ch\.cloud
+ - community\.aws
- community\.ciscosmb
- - community\.general
+ - community\.crypto
+ - community\.dns
+ - community\.docker
+ - community\.general
- community\.grafana
- - community\.proxmox
+ - community\.hrobot
+ - community\.library\_inventory\_filtering\_v1
+ - community\.libvirt
+ - community\.mysql
+ - community\.okd
+ - community\.postgresql
- community\.rabbitmq
- - community\.sops
+ - community\.routeros
+ - community\.sops
+ - community\.vmware
+ - community\.windows
- community\.zabbix
- - hitachivantara\.vspone\_block
+ - containers\.podman
+ - dellemc\.enterprise\_sonic
+ - dellemc\.openmanage
+ - dellemc\.powerflex
+ - f5networks\.f5\_modules
+ - fortinet\.fortimanager
+ - google\.cloud
+ - grafana\.grafana
+ - hetzner\.hcloud
+ - ibm\.storage\_virtualize
+ - kubernetes\.core
+ - lowlydba\.sqlserver
+ - microsoft\.ad
+ - netapp\.ontap
+ - netapp\.storagegrid
+ - netbox\.netbox
+ - ovirt\.ovirt
- purestorage\.flasharray
+ - purestorage\.flashblade
- telekom\_mms\.icinga\_director
+ - theforeman\.foreman
+ - vmware\.vmware
+ - vmware\.vmware\_rest
+ - vyos\.vyos
- Breaking Changes / Porting Guide
+ - Ansible\-core
+ - amazon\.aws
+ - ansible\.posix
+ - community\.aws
+ - community\.crypto
- community\.hashi\_vault
-- Deprecated Features
- - community\.general
- - community\.hashi\_vault
+ - community\.okd
+ - community\.postgresql
- community\.zabbix
+ - dellemc\.enterprise\_sonic
+ - hetzner\.hcloud
+ - kubernetes\.core
+ - theforeman\.foreman
+ - vmware\.vmware
+ - vyos\.vyos
+- Deprecated Features
+ - Ansible\-core
+ - amazon\.aws
+ - ansible\.netcommon
+ - cisco\.ios
+ - cisco\.nxos
+ - community\.aws
+ - community\.crypto
+ - community\.general
+ - community\.hashi\_vault
+ - community\.hrobot
+ - community\.postgresql
+ - community\.vmware
+ - community\.windows
+ - community\.zabbix
+ - vmware\.vmware\_rest
+ - vyos\.vyos
- Removed Features \(previously deprecated\)
- - community\.libvirt
- - hitachivantara\.vspone\_block
-- Bugfixes
- - ansible\.posix
+ - Ansible\-core
+ - ansible\.posix
- ansible\.windows
+ - cisco\.nxos
+ - community\.crypto
+ - community\.general
+ - community\.libvirt
+ - community\.postgresql
+ - community\.windows
+ - junipernetworks\.junos
+ - vmware\.vmware
+- Security Fixes
+ - Ansible\-core
+ - cloudscale\_ch\.cloud
+ - community\.general
+- Bugfixes
+ - Ansible\-core
+ - amazon\.aws
+ - ansible\.netcommon
+ - ansible\.posix
+ - ansible\.windows
+ - arista\.eos
+ - check\_point\.mgmt
- cisco\.aci
- - cisco\.meraki
+ - cisco\.dnac
+ - cisco\.ios
+ - cisco\.iosxr
+ - cisco\.meraki
- cisco\.mso
- - community\.crypto
- - community\.dns
- - community\.general
+ - cisco\.nxos
+ - cloudscale\_ch\.cloud
+ - community\.aws
+ - community\.crypto
+ - community\.dns
+ - community\.docker
+ - community\.general
- community\.grafana
- community\.hashi\_vault
- - community\.libvirt
- - community\.rabbitmq
- - community\.windows
- - community\.zabbix
- - microsoft\.ad
- - microsoft\.iis
- - purestorage\.flasharray
-- Known Issues
+ - community\.hrobot
+ - community\.library\_inventory\_filtering\_v1
- community\.libvirt
-- New Plugins
- - Callback
-- New Modules
- - cisco\.aci
- - cisco\.mso
- - community\.general
- - community\.libvirt
- - community\.proxmox
- - hitachivantara\.vspone\_block
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-07\-22
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Added Collections
-
-* google\.cloud \(version 1\.6\.0\)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0b1 contains ansible\-core version 2\.19\.0\.
-This is a newer version than version 2\.19\.0rc2 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a9 | Ansible 12.0.0b1 | Notes |
-| --------------------------- | ---------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| ansible.posix | 2.0.0 | 2.1.0 | |
-| ansible.windows | 3.1.0 | 3.2.0 | |
-| cisco.aci | 2.11.0 | 2.12.0 | |
-| cisco.meraki | 2.21.3 | 2.21.4 | |
-| cisco.mso | 2.10.0 | 2.11.0 | |
-| community.ciscosmb | 1.0.10 | 1.0.11 | |
-| community.crypto | 3.0.0 | 3.0.1 | |
-| community.dns | 3.2.5 | 3.2.6 | |
-| community.general | 11.0.0 | 11.1.0 | |
-| community.grafana | 2.2.0 | 2.3.0 | |
-| community.hashi_vault | 6.2.0 | 7.0.0 | |
-| community.libvirt | 1.4.0 | 2.0.0 | |
-| community.proxmox | 1.1.0 | 1.2.0 | |
-| community.rabbitmq | 1.5.0 | 1.6.0 | |
-| community.sops | 2.1.0 | 2.2.0 | |
-| community.windows | 3.0.0 | 3.0.1 | |
-| community.zabbix | 4.0.0 | 4.1.0 | |
-| cyberark.conjur | 1.3.3 | 1.3.6 | You can find the collection's changelog at [https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md](https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md). |
-| google.cloud | | 1.6.0 | The collection was added to Ansible |
-| hitachivantara.vspone_block | 3.5.1 | 4.0.0 | |
-| microsoft.ad | 1.9.1 | 1.9.2 | |
-| microsoft.iis | 1.0.2 | 1.0.3 | |
-| purestorage.flasharray | 1.35.1 | 1.36.0 | |
-| telekom_mms.icinga_director | 2.3.0 | 2.4.0 | |
-
-
-### Major Changes
-
-* The previously removed collection google\.cloud was re\-added to Ansible 12 \([https\://forum\.ansible\.com/t/8609](https\://forum\.ansible\.com/t/8609)\)\.
- The sanity test failures have been addressed\.
-
-
-#### community\.libvirt
-
-* virt\_volume \- a new command \'create\_cidata\_cdrom\' enables the creation of a cloud\-init CDROM\, which can be attached to a cloud\-init enabled base image\, for bootstrapping networking\, users etc\.
-* virt\_volume \- the commands create\_from\, delete\, download\, info\, resize\, upload\, wipe\, facts did not work and were not tested\. They have either been refactored to work\, and tested\, or removed\.
-* virt\_volume \- the mechanism of passing variables to the member functions was not flexible enough to cope with differing parameter requirements\. All parameters are now passed as kwargs\, which allows the member functions to select the parameters they need\.
-* virt\_volume \- the module appears to have been derived from virt\_pool\, but not cleaned up to remove much non\-functional code\. It has been refactored to remove the pool\-specific code\, and to make it more flexible\.
-
-
-#### community\.zabbix
-
-* All Roles \- Updated to support Zabbix 7\.4
-
-
-### Minor Changes
-
-
-#### ansible\.posix
-
-* profile\_tasks and profile\_roles callback plugins \- avoid deleted/deprecated callback functions\, instead use modern interface that was introduced a longer time ago \([https\://github\.com/ansible\-collections/ansible\.posix/issues/650](https\://github\.com/ansible\-collections/ansible\.posix/issues/650)\)\.
-
-
-#### ansible\.windows
-
-* win\_find \- add support for \'any\' to find both directories and files \([https\://github\.com/ansible\-collections/ansible\.windows/issues/797](https\://github\.com/ansible\-collections/ansible\.windows/issues/797)\)\.
-* win\_template \- Preserve user\-supplied value for ansible\_managed when set on Ansible Core 2\.19\+\.
-
-
-#### cisco\.aci
-
-* Add description\, console\_log\_severity\, local\_file\_log\_format\, and console\_log\_format to aci\_syslog\_group module\.
-* Add enhanced\_log and rfc5424\-ts options to attribute format of aci\_syslog\_group module\.
-* Add epg\_cos\, epg\_cos\_preference\, ipam\_dhcp\_override\, ipam\_enabled\, ipam\_gateway\, lag\_policy\_name\, netflow\_direction\, primary\_encap\_inner\, and secondary\_encap\_inner atributes to aci\_epg\_to\_domain module\.
-* Add missing options to priority attribute and vrf to scope attribute in aci\_contract module\.
-* Add nutanix support for aci\_aep\_to\_domain\, aci\_domain\, aci\_domain\_to\_encap\_pool\, aci\_domain\_to\_vlan\_pool\, aci\_vmm\_controller\, aci\_vmm\_credential modules\.
-* Add pod\_id attribute to aci\_switch\_policy\_vpc\_protection\_group module\.
-
-
-#### cisco\.mso
-
-* Add admin\_state attribute to mso\_schema\_site\_anp\_epg module\.
-* Improved ndo modules returned current value with actual API response\.
-
-
-#### community\.ciscosmb
-
-* Update modules to conform core 2\.19 and templating changes
-* solves
-
-
-#### community\.general
-
-* cloudflare\_dns \- adds support for PTR records \([https\://github\.com/ansible\-collections/community\.general/pull/10267](https\://github\.com/ansible\-collections/community\.general/pull/10267)\)\.
-* cloudflare\_dns \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* cloudflare\_dns \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10269](https\://github\.com/ansible\-collections/community\.general/pull/10269)\)\.
-* crypttab \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* datadog\_monitor \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* dense callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* gitlab\_deploy\_key \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* gitlab\_group\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* gitlab\_hook \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* gitlab\_project\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* gitlab\_runner \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* iocage inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* ipa\_group \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* jc filter plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* jenkins\_build \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* jenkins\_build\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* keycloak \- add support for grant\_type\=client\_credentials to all keycloak modules\, so that specifying auth\_client\_id and auth\_client\_secret is sufficient for authentication \([https\://github\.com/ansible\-collections/community\.general/pull/10231](https\://github\.com/ansible\-collections/community\.general/pull/10231)\)\.
-* keycloak module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* logstash callback plugin \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* mail callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* nmcli \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* nmcli \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10323](https\://github\.com/ansible\-collections/community\.general/pull/10323)\)\.
-* oneandone\_firewall\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* oneandone\_load\_balancer \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* oneandone\_monitoring\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* onepassword\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* osx\_defaults \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* ovh\_ip\_loadbalancing\_backend \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* pacemaker\_cluster \- add state\=maintenance for managing pacemaker maintenance mode \([https\://github\.com/ansible\-collections/community\.general/issues/10200](https\://github\.com/ansible\-collections/community\.general/issues/10200)\, [https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
-* pacemaker\_cluster \- rename node to name and add node alias \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
-* pacemaker\_resource \- enhance module by removing duplicative code \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
-* packet\_device \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* pagerduty \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* pingdom \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* python\_runner module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* rhevm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* rocketchat \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* sensu\_silence \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* sl\_vm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* urpmi \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* wsl connection plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* xattr \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-* xen\_orchestra inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
-* xfconf \- minor adjustments the the code \([https\://github\.com/ansible\-collections/community\.general/pull/10311](https\://github\.com/ansible\-collections/community\.general/pull/10311)\)\.
-* xml \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
-
-
-#### community\.grafana
-
-* grafana\_team \- integrate parameter org\_id
-* grafana\_team \- integrate parameter org\_name
-
-
-#### community\.proxmox
-
-* proxmox inventory plugin \- always provide basic information regardless of want\_facts \([https\://github\.com/ansible\-collections/community\.proxmox/pull/124](https\://github\.com/ansible\-collections/community\.proxmox/pull/124)\)\.
-* proxmox\_cluster \- cluster creation has been made idempotent \([https\://github\.com/ansible\-collections/community\.proxmox/pull/125](https\://github\.com/ansible\-collections/community\.proxmox/pull/125)\)\.
-* proxmox\_pct\_remote \- allow forward agent with paramiko \([https\://github\.com/ansible\-collections/community\.proxmox/pull/130](https\://github\.com/ansible\-collections/community\.proxmox/pull/130)\)\.
-
-
-#### community\.rabbitmq
-
-* rabbitmq\_policy \- add support to policy manipulation through RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/203](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/203)\)
-* rabbitmq\_vhost \- make rabbitmqctl optional when configuring vhosts using the RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/201](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/201)\)
-
-
-#### community\.sops
-
-* load\_vars \- expressions can now be lazily evaluated when using ansible\-core 2\.19 or newer \([https\://github\.com/ansible\-collections/community\.sops/pull/229](https\://github\.com/ansible\-collections/community\.sops/pull/229)\)\.
-
-
-#### community\.zabbix
-
-* Web Role \- Added zabbix\_web\_custom\_php to allow for addition of customer PHP settings
-* Web Role \- Added support for ssl\_prefer\_server\_ciphers
-* Web Role \- Added support for zabbix\_web\_ssl\_session\_protocols
-* Web Role \- Added support for zabbix\_web\_ssl\_session\_stapling
-* roles/proxy \- Fixing the zabbix\_proxy\_proxyconfigfrequency functionality
-* zabbix\_group\_info \- Add the possibility to retrive all host Group
-* zabbix\_template\_info \- Add the possibility to retrive all template Group
-
-
-#### hitachivantara\.vspone\_block
-
-* Added a new \"hv\_audit\_log\_transfer\_dest\" module to set the transfer destinations of audit log files using UDP/TCP ports\.
-* Added a new \"hv\_audit\_log\_transfer\_dest\_facts\" module to get information about the transfer destinations of audit log files\.
-* Added a new \"hv\_clpr\" module to create\, update\, and delete CLPR information\.
-* Added a new \"hv\_clpr\_facts\" module to get CLPR information\.
-* Added a new \"hv\_external\_paritygroup\" module to assign external volume groups to a CLPR\.
-* Added a new \"hv\_external\_paritygroup\" module to change the MP blade assigned to an external volume group\.
-* Added a new \"hv\_server\_priority\_manager\" module to set\, change\, and delete Server Priority Manager information\.
-* Added a new \"hv\_server\_priority\_manager\_facts\" module to get Server Priority Manager information\.
-* Added a new \"hv\_snmp\_setting\" module to manage SNMP settings\.
-* Added a new \"hv\_snmp\_settings\_facts\" module to get SNMP settings for a storage system\.
-* Added a new \"hv\_storage\_system\" module to set the date and time in a storage system with NTP disabled/enabled\.
-* Added a new \"hv\_storage\_system\_monitor\_facts\" module to get alert\, hardware installed\, and channel board information\.
-* Added a new \"hv\_upload\_file\" module to upload a primary/secondary client certificate file to a storage system for audit log\.
-* Added support for a secondary volume takeover HUR pair to the \"hv\_hur\" module\.
-* Added support for assigning a CLPR ID to a parity group to the \"hv\_paritygroup\" module\.
-* Added support for changing pool settings by pool name and by pool ID with new parameters to the \"hv\_storage\_pool\" module\.
-* Added support for creating a HUR pair with \"provisioned\_secondary\_volume\_id\" to the \"hv\_hur\"\, \"hv\_gad\" and \"hv\_truecopy\" modules\.
-* Added support for creating a pair with \"provisioned\_secondary\_volume\_id\" and hostgroups to the \"hv\_hur\" \, \"hv\_gad\" and \"hv\_truecopy\" modules\.
-* Added support for creating a storage pool with a specific pool ID and LDEV numbers to the \"hv\_storage\_pool\" module\.
-* Added support for creating a storage pool with a specific pool ID and start and end LDEV numbers to the \"hv\_storage\_pool\" module\.
-* Added support for deleting a pool including pool volumes to the \"hv\_storage\_pool\" module\.
-* Added support for getting a list of time zones that can be used in a storage system to the \"hv\_storagesystem\_facts\" module\.
-* Added support for getting free LDEV IDs to the \"hv\_ldev\_facts\" module\.
-* Added support for initializing the capacity saving function for a pool to the \"hv\_storage\_pool\" module\.
-* Added support for performing tier relocation of a pool to the \"hv\_storage\_pool\" module\.
-* Added support for restoring a pool to the \"hv\_storage\_pool\" module\.
-* Added support for running performance monitoring of a pool to the \"hv\_storage\_pool\" module\.
-* Added support for setting the CLPR ID of a volume to the \"hv\_ldev\" module\.
-* Added support for taking over a remote copy group for the HUR replication type to the \"hv\_remote\_copy\_group\" module\.
-* Enhanced the \"hv\_storagepool\_facts\" module to support additional output parameters\.
-* Removed query for ports\, quorum disks\, journalPools\, and freeLogicalUnitList from the \"hv\_storagesystem\_facts\" module\.
-
-
-#### purestorage\.flasharray
-
-* purefa\_user \- No longer tries to expose API tokens as these are not required in the module
-
-
-#### telekom\_mms\.icinga\_director
-
-* Add zone option for icinga\_user\_group module \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/286](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/286)\)
-
-
-### Breaking Changes / Porting Guide
-
-
-#### community\.hashi\_vault
-
-* ansible\-core \- support for all end\-of\-life versions of ansible\-core has been dropped\. The collection is tested with ansible\-core\>\=2\.17 \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470)\)\.
-* python \- support for older versions of Python has been dropped\. The collection is tested with all supported controller\-side versions and a few lower target\-side versions depending on the tests \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470)\)\.
-
-
-### Deprecated Features
-
-
-#### community\.general
-
-* catapult \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10329](https\://github\.com/ansible\-collections/community\.general/pull/10329)\)\.
-* pacemaker\_cluster \- the parameter state will become a required parameter in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
-
-
-#### community\.hashi\_vault
-
-* ansible\-core \- support for several ansible\-core versions will be dropped in v7\.0\.0\. The collection will focus on current supported versions of ansible\-core going forward and more agressively drop end\-of\-life or soon\-to\-be EOL versions \([https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html](https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html)\)\.
-* python \- support for several python versions will be dropped in v7\.0\.0\. The collection will focus on python versions that are supported by the active versions of ansible\-core on the controller side at a minimum\, and some subset of target versions \([https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html](https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html)\)\.
-
-
-#### community\.zabbix
-
-* Web Role \- Depricated zabbix\_web\_SSLSessionCacheTimeout for zabbix\_web\_ssl\_session\_cache\_timeout
-* Web Role \- Depricated zabbix\_web\_SSLSessionCache for zabbix\_web\_ssl\_session\_cache
-
-
-### Removed Features \(previously deprecated\)
-
-
-#### community\.libvirt
-
-* virt\_volume \- PoolConnection class has been removed
-* virt\_volume \- the \'deleted\' state has been removed as its definition was not entirely accurate\, and the \'wipe\' boolean option is added to \'state/absent\' and \'command/delete\'\.
-* virt\_volume \- undocumented but unused FLAGS have been removed\.
-* virt\_volume \- undocumented but unused/non\-functional functions \(get\_status\, get\_status2\, get\_state\, get\_uuid\, build\) have been removed\.
-
-
-#### hitachivantara\.vspone\_block
-
-* hv\_gateway\_admin\_password module has been removed\.
-* hv\_gateway\_subscriber\_facts module has been removed\.
-* hv\_gateway\_subscriber module has been removed\.
-* hv\_gateway\_subscription\_facts module has been removed\.
-* hv\_gateway\_unsubscribe\_resource module has been removed\.
-* hv\_storagesystem module has been removed\.
-* hv\_system\_facts module has been removed\.
-* hv\_uaig\_token\_facts module has been removed\.
-
-
-### Bugfixes
-
-
-#### ansible\.posix
-
-* ansible\.posix\.cgroup\_perf\_recap \- fixes json module load path \([https\://github\.com/ansible\-collections/ansible\.posix/issues/630](https\://github\.com/ansible\-collections/ansible\.posix/issues/630)\)\.
-
-
-#### ansible\.windows
-
-* win\_copy \- report correct information about symlinks in action plugin\.
-* win\_service \- Fix crash when attempting to create a service with the \-\-check flag\.
-
-
-#### cisco\.aci
-
-* Fix API call and index error for non\-existing configExportP in aci\_config\_snapshot\.
-* Fix the aci\_access\_port\_block\_to\_access\_port module to query a specific object with the object name\.
-* Fix to read the last\_as from the module params in aci\_action\_rule\_set\_as\_path\.
-* Fix type of subnet\_control in aci\_bd\_subnet from string to list of strings\.
-
-
-#### cisco\.meraki
-
-* cisco\.meraki\.networks\_appliance\_traffic\_shaping\_uplink\_bandwidth \- fix idempotency error\.
-
-
-#### cisco\.mso
-
-* Fix API endpoint to query local and remote users in ND4\.0
-
-
-#### community\.crypto
-
-* openssl\_csr and openssl\_csr\_pipe \- the idempotency check for key\_usage resulted in a crash if Key Agreement/keyAgreement was not set \([https\://github\.com/ansible\-collections/community\.crypto/issues/934](https\://github\.com/ansible\-collections/community\.crypto/issues/934)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/935](https\://github\.com/ansible\-collections/community\.crypto/pull/935)\)\.
-
-
-#### community\.dns
-
-* Update Public Suffix List\.
-* hetzner\_dns\_records inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.dns/pull/266](https\://github\.com/ansible\-collections/community\.dns/pull/266)\)\.
-* hosttech\_dns\_records inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.dns/pull/266](https\://github\.com/ansible\-collections/community\.dns/pull/266)\)\.
-
-
-#### community\.general
-
-* dependent lookup plugin \- avoid deprecated ansible\-core 2\.19 functionality \([https\://github\.com/ansible\-collections/community\.general/pull/10359](https\://github\.com/ansible\-collections/community\.general/pull/10359)\)\.
-* github\_release \- support multiple types of GitHub tokens\; no longer failing when ghs\_ token type is provided \([https\://github\.com/ansible\-collections/community\.general/issues/10338](https\://github\.com/ansible\-collections/community\.general/issues/10338)\, [https\://github\.com/ansible\-collections/community\.general/pull/10339](https\://github\.com/ansible\-collections/community\.general/pull/10339)\)\.
-* icinga2 inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\.
-* incus connection plugin \- fix error handling to return more useful Ansible errors to the user \([https\://github\.com/ansible\-collections/community\.general/issues/10344](https\://github\.com/ansible\-collections/community\.general/issues/10344)\, [https\://github\.com/ansible\-collections/community\.general/pull/10349](https\://github\.com/ansible\-collections/community\.general/pull/10349)\)\.
-* linode inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\.
-* logstash callback plugin \- remove reference to Python 2 library \([https\://github\.com/ansible\-collections/community\.general/pull/10345](https\://github\.com/ansible\-collections/community\.general/pull/10345)\)\.
-
-
-#### community\.grafana
-
-* Fix parsing of grafana version for pre\-releases and security releases
-* grafana\_dashboard \- fix change detection for dashboards in folders
-
-
-#### community\.hashi\_vault
-
-* connection\_options \- the validate\_certs option had no effect if the retries option was set\. Fix now also sets the parameter correctly in the retry request session \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/461](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/461)\)\.
-
-
-#### community\.libvirt
-
-* virt\_volume \- create\_from was non\-functional\, and is now folded into create \(added clone\_source parameter\)\. Fixes
-* virt\_volume \- info\, facts\, download\, upload commands have been removed as they were not functional \(and not tested\)\.
-* virt\_volume \- wipe command now works \(and is also a boolean option for \'state/absent\' and \'command/delete\'\)\.
-
-
-#### community\.rabbitmq
-
-* rabbitmq\_user \- URL encode the vhost and user fields to allow for input with \'/\' characters\. \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/205](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/205)\)
-* rabbitmq\_vhost \- Fail module if the requests library is missing\. This maintains the same behavior across all the modules\.
-* setup\_rabbitmq \- incorrect SSL library was selected for install on Ubuntu Noble\. Fix now installs the correct version on newer Ubuntu versions\. \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/199](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/199)\)
-
-
-#### community\.windows
-
-* win\_rabbitmq\_plugin \- removed redundant quotes that caused failures when specifying rabbitmq\_bin\_path \([https\://github\.com/ansible\-collections/community\.windows/issues/635](https\://github\.com/ansible\-collections/community\.windows/issues/635)\)\.
-* win\_scoop \- Fix issue when scoop is installed at a path with spaces like C\:\\Program Files \- [https\://github\.com/ansible\-collections/community\.windows/issues/614](https\://github\.com/ansible\-collections/community\.windows/issues/614)
-
-
-#### community\.zabbix
-
-* Token Module \- Fixed integration with Zabbix 7\.4
-
-
-#### microsoft\.ad
-
-* microsoft\.ad\.object\_info \- Correctly return multivalued attributes with one entry as array with on item \(instead of returning a string\) \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/199](https\://github\.com/ansible\-collections/microsoft\.ad/issues/199)
-
-
-#### microsoft\.iis
-
-* website\_info \- fixed a crash when the specified iis site does not exist\, ensuring the module no longer inserts a null in the site list\. \([https\://github\.com/ansible\-collections/microsoft\.iis/pull/36](https\://github\.com/ansible\-collections/microsoft\.iis/pull/36)\)
-
-
-#### purestorage\.flasharray
-
-* purefa\_vg \- Fixed issue where VG QoS updates were being ignored
-
-
-### Known Issues
-
-
-#### community\.libvirt
-
-* virt\_volume \- check\_mode is disabled\. It was not fully supported in the previous code either \(\'state/present\'\, \'command/create\' did not support it\)\.
-
-
-### New Plugins
-
-
-#### Callback
-
-* community\.general\.tasks\_only \- Only show tasks\.
-
-
-### New Modules
-
-
-#### cisco\.aci
-
-* cisco\.aci\.aci\_interface\_policy\_port\_channel\_member \- Manage Port Channel Member interface policies \(lacp\:IfPol\)
-* cisco\.aci\.aci\_l4l7\_concrete\_device \- Manage L4\-L7 Concrete Devices \(vns\:CDev\)
-* cisco\.aci\.aci\_l4l7\_concrete\_interface \- Manage L4\-L7 Concrete Interfaces \(vns\:CIf\)
-* cisco\.aci\.aci\_l4l7\_concrete\_interface\_attachment \- Manage L4\-L7 Concrete Interface Attachment \(vns\:RsCIfAttN\)
-* cisco\.aci\.aci\_l4l7\_device \- Manage L4\-L7 Devices \(vns\:LDevVip\)
-* cisco\.aci\.aci\_l4l7\_device\_selection\_interface\_context \- Manage L4\-L7 Device Selection Policy Logical Interface Contexts \(vns\:LIfCtx\)
-* cisco\.aci\.aci\_l4l7\_device\_selection\_policy \- Manage L4\-L7 Device Selection Policies \(vns\:LDevCtx\)
-* cisco\.aci\.aci\_l4l7\_logical\_interface \- Manage L4\-L7 Logical Interface \(vns\:LIf\)
-* cisco\.aci\.aci\_l4l7\_policy\_based\_redirect \- Manage L4\-L7 Policy Based Redirection Policies \(vns\:SvcRedirectPol\)
-* cisco\.aci\.aci\_l4l7\_policy\_based\_redirect\_destination \- Manage L4\-L7 Policy Based Redirect Destinations \(vns\:RedirectDest and vns\:L1L2RedirectDest\)
-* cisco\.aci\.aci\_l4l7\_redirect\_health\_group \- Manage L4\-L7 Redirect Health Groups \(vns\:RedirectHealthGroup\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template \- Manage L4\-L7 Service Graph Templates \(vns\:AbsGraph\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_connection \- Manage L4\-L7 Service Graph Template Abs Connections \(vns\:AbsConnection\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_connection\_to\_connector \- Manage L4\-L7 Service Graph Template Connections between function nodes and terminal nodes \(vns\:RsAbsConnectionConns\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_functional\_connection \- Manage L4\-L7 Service Graph Templates Functional Connections \(vns\:AbsFuncConn\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_node \- Manage L4\-L7 Service Graph Templates Nodes \(vns\:AbsNode\)
-* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_term\_node \- Manage L4\-L7 SGT Term Nodes \(vns\:AbsTermNodeCon\, vns\:AbsTermNodeProv and vns\:AbsTermConn\)
-* cisco\.aci\.aci\_node\_mgmt\_epg\_to\_contract \- Bind Node Management EPGs to Contracts \(fv\:RsCons\, fv\:RsProv\, fv\:RsProtBy\, fv\:RsConsIf and mgmt\:RsOoBProv\)
-* cisco\.aci\.aci\_oob\_contract \- Manage Out\-of\-Band \(OOB\) Contract resources \(vz\:OOBBrCP\)
-* cisco\.aci\.aci\_vmm\_enhanced\_lag\_policy \- Manage Enhanced LACP Policy for Virtual Machine Manager \(VMM\) in Cisco ACI \(lacp\:EnhancedLagPol\)
-* cisco\.aci\.aci\_vrf\_fallback\_route\_group \- Manage VRF Fallback Route Groups \(fv\:FBRGroup\, fv\:FBRoute\, and fv\:FBRMember\)
-
-
-#### cisco\.mso
-
-* cisco\.mso\.ndo\_fabric\_span\_session \- Manage Fabric SPAN Sessions on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_fabric\_span\_session\_source \- Manage Fabric SPAN Sessions Source on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_fabric\_span\_session\_source\_filter \- Manage Fabric SPAN Sessions Source Filter on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_l3out\_bgp\_peer \- Manage L3Out BGP Peer on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_l3out\_node\_static\_route \- Manage L3Out Node Static Routes on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_l3out\_node\_static\_route\_next\_hop \- Manage L3Out Node Static Route Next Hops on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_l3out\_routed\_interface \- Manage L3Out Routed Interfaces on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_l3out\_routed\_sub\_interface \- Manage L3Out Routed Sub\-Interfaces on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_pod\_profile \- Manage Pod Profiles on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_pod\_settings \- Manage Pod Settings on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_qos\_class\_policy \- Manage QoS Class Policies on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_schema\_template\_contract\_service\_chain \- Manage the Schema Template Contract Service Chaining workflow on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_service\_device\_cluster \- Manage Service Device Clusters on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-* cisco\.mso\.ndo\_tenant\_span\_session \- Manage Tenant SPAN Sessions on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
-
-
-#### community\.general
-
-* community\.general\.jenkins\_credential \- Manage Jenkins credentials and domains via API\.
-
-
-#### community\.libvirt
-
-* community\.libvirt\.virt\_install \- Provision new virtual machines using virt\-install tool
-
-
-#### community\.proxmox
-
-* community\.proxmox\.proxmox\_group \- Group management for Proxmox VE cluster\.
-* community\.proxmox\.proxmox\_node \- Manage Proxmox VE nodes\.
-* community\.proxmox\.proxmox\_user \- User management for Proxmox VE cluster\.
-
-
-#### hitachivantara\.vspone\_block
-
-
-##### Vsp
-
-* hitachivantara\.vspone\_block\.hv\_audit\_log\_transfer\_dest \- This module specifies settings related to the transfer of audit log files from a storage system to the syslog servers\.
-* hitachivantara\.vspone\_block\.hv\_audit\_log\_transfer\_dest\_facts \- Retrieves about the settings related to the transfer of audit log files to the syslog servers\.
-* hitachivantara\.vspone\_block\.hv\_external\_paritygroup \- Manages assignment of MP blade and CLPR to an External Parity Group from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_server\_priority\_manager \- Manage Server Priority Manager information on Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_server\_priority\_manager\_facts \- Retrieves Server Priority Manager information from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_snmp\_settings \- Manage SNMP settings on Hitachi Vantara storage systems\.
-* hitachivantara\.vspone\_block\.hv\_snmp\_settings\_facts \- Retrieves SNMP configuration from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_storage\_system \- This module specifies storage systems settings like updating the date and time\.
-* hitachivantara\.vspone\_block\.hv\_storage\_system\_monitor\_facts \- Retrieves alerts\, hardware installed\, and channel boards information from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_upload\_file \- This uploads the files required to set the transfer destination of audit log files\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.1\)
-* ansible\.utils \(still version 6\.0\.0\)
-* arista\.eos \(still version 11\.0\.1\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.6\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.dnac \(still version 6\.36\.0\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.ios \(still version 10\.1\.1\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.nxos \(still version 10\.2\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.docker \(still version 4\.6\.1\)
-* community\.hrobot \(still version 2\.5\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.routeros \(still version 3\.8\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.vmware \(still version 5\.7\.1\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.2\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.37\.1\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.2\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware \(still version 2\.2\.0\)
-* vmware\.vmware\_rest \(still version 4\.8\.1\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a9
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
+ - community\.mysql
+ - community\.postgresql
+ - community\.rabbitmq
+ - community\.routeros
+ - community\.sops
+ - community\.vmware
+ - community\.windows
+ - community\.zabbix
+ - containers\.podman
+ - dellemc\.enterprise\_sonic
- dellemc\.openmanage
- - vmware\.vmware\_rest
-- Minor Changes
- - cisco\.dnac
- - cisco\.nxos
- - community\.hrobot
- - community\.proxmox
- - vmware\.vmware\_rest
-- Deprecated Features
- - Ansible\-core
- - community\.crypto
- - vmware\.vmware\_rest
-- Bugfixes
- - ansible\.netcommon
- - arista\.eos
- - cisco\.dnac
- - cisco\.ios
- - cisco\.nxos
- - community\.hrobot
- - community\.proxmox
- - f5networks\.f5\_modules
- - vmware\.vmware\_rest
-- Known Issues
- - community\.hrobot
- - dellemc\.openmanage
-- New Modules
- - community\.proxmox
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-07\-09
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a9 contains ansible\-core version 2\.19\.0rc2\.
-This is a newer version than version 2\.19\.0rc1 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a8 | Ansible 12.0.0a9 | Notes |
-| --------------------- | ---------------- | ---------------- | ----- |
-| ansible.netcommon | 8.0.0 | 8.0.1 | |
-| arista.eos | 11.0.0 | 11.0.1 | |
-| cisco.dnac | 6.35.0 | 6.36.0 | |
-| cisco.ios | 10.1.0 | 10.1.1 | |
-| cisco.nxos | 10.1.0 | 10.2.0 | |
-| community.crypto | 3.0.0-rc1 | 3.0.0 | |
-| community.hrobot | 2.4.0 | 2.5.0 | |
-| community.proxmox | 1.0.1 | 1.1.0 | |
-| dellemc.openmanage | 9.12.1 | 9.12.2 | |
-| f5networks.f5_modules | 1.36.0 | 1.37.1 | |
-| vmware.vmware_rest | 4.7.0 | 4.8.1 | |
-
-
-### Major Changes
-
-
-#### dellemc\.openmanage
-
-* idrac\_bios \- This module is enhanced to support iDRAC10\.
-* idrac\_diagnostics \- This module is enhanced to support iDRAC10\.
-* idrac\_firmware \- This module is enhanced to support iDRAC10\.
-* idrac\_job\_queue \- This role is enhanced to support iDRAC10\.
-* idrac\_lifecycle\_controller\_logs \- This module is enhanced to support iDRAC10\.
-* idrac\_network\_attributes \- This module is enhanced to support iDRAC10\.
-* idrac\_secure\_boot \- This module is enhanced to support iDRAC10\.
-* idrac\_server\_powerstate \- This role is enhanced to support iDRAC10\.
-* idrac\_session \- This module is enhanced to support iDRAC10\.
-* idrac\_system\_erase \- This module is enhanced to support iDRAC10\.
-* redfish\_event\_subscription \- This module is enhanced to support iDRAC10\.
-* redfish\_power\_state \- This module is enhanced to support iDRAC10\.
-
-
-#### vmware\.vmware\_rest
-
-* modules \- disable turbo mode for module execution by default\. Make it optional to enable it using an environment variable \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/499](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/499)\)
-
-
-### Minor Changes
-
-
-#### cisco\.dnac
-
-* Added create in configuration\_template module
-* Changes in lan\_automation\_create module
-* Update dnacentersdk requirement from 2\.7\.0 to 2\.10\.1
-
-
-#### cisco\.nxos
-
-* nxos\_interfaces \- Added service\-policy\, logging\, mac\-address and snmp configuration options for interface\.
-* nxos\_l2\_interfaces \- Enhances capability of the module to deal with addition attributes under l2 interfaces\. Adds support for CDP\, Link flap and beacon\.
-
-
-#### community\.hrobot
-
-* Introduced a new action group \(module defaults group\) community\.hrobot\.api that includes all modules that support the new Hetzner API\. This is currently limited to a subset of the storage box modules\; these currently support both the community\.hrobot\.robot and the new community\.hrobot\.api action group\, and will eventually drop the community\.hrobot\.robot action group once the Robot API for storage boxes is removed by Hetzner \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/169](https\://github\.com/ansible\-collections/community\.hrobot/pull/169)\)\.
-* storagebox \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
-* storagebox\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
-* storagebox\_set\_password \- support the new Hetzner API\. Note that the new API does not support setting a random password\; you must always provide a password when using the new API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-* storagebox\_snapshot \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-* storagebox\_snapshot\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-* storagebox\_snapshot\_plan \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\)\.
-* storagebox\_snapshot\_plan\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\)\.
-* storagebox\_subaccount \- no longer mark password\_mode as no\_log \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-* storagebox\_subaccount \- support the new Hetzner API\. Note that the new API does not support setting a random password\; you must always provide a password when using the new API to create a storagebox \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-* storagebox\_subaccount\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
-
-
-#### community\.proxmox
-
-* proxmox \- allow force deletion of LXC containers \([https\://github\.com/ansible\-collections/community\.proxmox/pull/105](https\://github\.com/ansible\-collections/community\.proxmox/pull/105)\)\.
-* proxmox \- validate the cluster name length \([https\://github\.com/ansible\-collections/community\.proxmox/pull/119](https\://github\.com/ansible\-collections/community\.proxmox/pull/119)\)\.
-
-
-#### vmware\.vmware\_rest
-
-* change cloud\.common dependency to 4\.1 to support anisble 2\.19
-
-
-### Deprecated Features
-
-
-#### Ansible\-core
-
-* Jinja test plugins \- Returning a non\-boolean result from a Jinja test plugin is deprecated\.
-* YAML parsing \- Usage of the YAML 1\.1 \!\!omap and \!\!pairs tags is deprecated\. Use standard mappings instead\.
-* YAML parsing \- Usage of the undocumented \!vault\-encrypted YAML tag is deprecated\. Use \!vault instead\.
-* config \- The DEFAULT\_ALLOW\_UNSAFE\_LOOKUPS configuration option is deprecated and no longer has any effect\. Ansible templating no longer encounters situations where use of lookup plugins is considered \"unsafe\"\.
-* config \- The DEFAULT\_UNDEFINED\_VAR\_BEHAVIOR configuration option is deprecated and no longer has any effect\. Attempting to use an undefined variable where undefined values are unexpected is now always an error\. This behavior was enabled by default in previous versions\, and disabling it yielded inconsistent results\.
-* config \- The STRING\_TYPE\_FILTERS configuration option is deprecated and no longer has any effect\. Since the template engine now always preserves native types\, there is no longer a risk of unintended conversion from strings to native types\.
-* config \- Using the DEFAULT\_JINJA2\_EXTENSIONS configuration option to enable Jinja2 extensions is deprecated\. Previously\, custom Jinja extensions were disabled by default\, as they can destabilize the Ansible templating environment\. Templates should only make use of filter\, test and lookup plugins\.
-* config \- Using the DEFAULT\_MANAGED\_STR configuration option to customize the value of the ansible\_managed variable is deprecated\. The ansible\_managed variable can now be set the same as any other variable\.
-* playbook \- The timedout\.frame task result value \(injected when a task timeout occurs\) is deprecated\. Include error in the DISPLAY\_TRACEBACK config value to capture a full Python traceback for timed out actions\.
-* public API \- The ansible\.errors\.AnsibleFilterTypeError exception type has been deprecated\. Use AnsibleTypeError instead\.
-* public API \- The ansible\.errors\.\_AnsibleActionDone exception type has been deprecated\. Action plugins should return a task result dictionary in success cases instead of raising\.
-* public API \- The ansible\.module\_utils\.common\.json\.json\_dump function is deprecated\. Call Python stdlib json\.dumps instead\, with cls set to an Ansible profile encoder type from ansible\.module\_utils\.common\.json\.get\_encoder\.
-
-
-#### community\.crypto
-
-* acme\_certificate \- the option modify\_account\'s default value true has been deprecated\. It will change to false in community\.crypto 4\.0\.0\. We recommend to set the option to an explicit value to avoid deprecation warnings\, and to prefer setting it to false already now\. Better use the community\.crypto\.acme\_account module instead \([https\://github\.com/ansible\-collections/community\.crypto/issues/924](https\://github\.com/ansible\-collections/community\.crypto/issues/924)\)\.
-
-
-#### vmware\.vmware\_rest
-
-* lookup plugins \- Deprecate all lookup plugins in favor of vmware\.vmware\.moid\_from\_path \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/608](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/608)\)
-
-
-### Bugfixes
-
-
-#### ansible\.netcommon
-
-* \(\#633\) Fixed typo in ansible\.netcommon\.telnet parameter crlf \(was clrf by mistake\)
-* netconf \- Adds check for netconf session\_close RPC happens only if connection is alive\.
-
-
-#### arista\.eos
-
-* Fix route map community handling to include missing community\_attributes level in the dictionary
-* Fixed idempotency regarding logging port in differing versions of EOS
-* Fixed idempotency when using replaced state on host with multiple ACLs present\.
-* Fixed parsing of relative route\-map metric adjustments in when extracting settings from device output\.
-* Support colon\-delimited format in BGP community strings
-* Update route\_maps to correctly handle ipv6 next\-hop address
-
-
-#### cisco\.dnac
-
-* Fixed get in sites\_telemetry\_settings module
-
-
-#### cisco\.ios
-
-* cisco\.ios\.ios\_acls \- Added default acls to not get updated/removed in any state\.
-* cisco\.ios\.ios\_hsrp\_interfaces \- Fix module operation around the preempt attributes\, also addressed issues around command ordering\.
-* cisco\.ios\.ios\_l3\_interfaces \- Fixed Helper Address command support for l3 interface\.
-* cisco\.ios\.ios\_ospfv2 \- Fix ospf admin distance parameter and fix other distance specific attributes to be optional\.
-* cisco\.ios\.ios\_vlans \- Fixed errors during VLAN overrides where primary VLANs have private VLAN associations referencing non\-existent or higher VLAN IDs\, ensuring smoother private VLAN handling and preventing module failures\.
-* ios\_bgp\_address\_family \- Refined state handling for replaced and overridden modes and enhanced address\-family parsing to accurately differentiate between types such as unicast\, multicast\, and others\.
-* ios\_static\_routes \- Add missing interface names in parser
-* ios\_vrf\_address\_family \- Added support for parsing the stitching attribute under route targets when gathering facts\. Enhanced handling of import\_config and export and renamed them to imports and exports to consistently represent them as lists of dictionaries during fact collection\.
-
-
-#### cisco\.nxos
-
-* nxos\_acls \- Fix issue where Not sufficient TCAM bank error not being captured by error regex\.
-
-
-#### community\.hrobot
-
-* robot inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.hrobot/pull/165](https\://github\.com/ansible\-collections/community\.hrobot/pull/165)\)\.
-
-
-#### community\.proxmox
-
-* proxmox inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.proxmox/pull/108](https\://github\.com/ansible\-collections/community\.proxmox/pull/108)\)\.
-
-
-#### f5networks\.f5\_modules
-
-* added github actions
-* fixed automation hub import log issues
-
-
-#### vmware\.vmware\_rest
-
-* Allow cloud\.common 5\.0\.0 and later again \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/614](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/614)\)\.
-
-
-### Known Issues
-
-
-#### community\.hrobot
-
-* storagebox\* modules \- the Hetzner Robot API for storage boxes is [deprecated and will be sunset on July 30\, 2025](https\://docs\.hetzner\.cloud/changelog\#2025\-06\-25\-new\-api\-for\-storage\-boxes)\. The modules are currently not compatible with the new API\. We will try to adjust them until then\, but usage and return values might change slightly due to differences in the APIs\.
- For the new API\, an API token needs to be registered and provided as hetzner\_token \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
-
-
-#### dellemc\.openmanage
-
-* idrac\_attributes \- The module accepts both the string as well as integer value for the field \"SNMP\.1\.AgentCommunity\" for iDRAC10\.
-* idrac\_diagnostics \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
-* ome\_smart\_fabric\_uplink \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
-
-
-### New Modules
-
-
-#### community\.proxmox
-
-* community\.proxmox\.proxmox\_access\_acl \- Management of ACLs for objects in Proxmox VE Cluster\.
-* community\.proxmox\.proxmox\_cluster\_ha\_groups \- Management of HA groups in Proxmox VE Cluster\.
-* community\.proxmox\.proxmox\_cluster\_ha\_resources \- Management of HA groups in Proxmox VE Cluster\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.1\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.6\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.meraki \(still version 2\.21\.3\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.5\)
-* community\.docker \(still version 4\.6\.1\)
-* community\.general \(still version 11\.0\.0\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.4\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.5\.0\)
-* community\.routeros \(still version 3\.8\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.1\.0\)
-* community\.vmware \(still version 5\.7\.1\)
-* community\.windows \(still version 3\.0\.0\)
-* community\.zabbix \(still version 4\.0\.0\)
-* containers\.podman \(still version 1\.17\.0\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.powerflex \(still version 2\.6\.1\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.2\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* hitachivantara\.vspone\_block \(still version 3\.5\.1\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.35\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.3\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware \(still version 2\.2\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a8
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Minor Changes
- - Ansible\-core
- - containers\.podman
- - dellemc\.powerflex
-- Bugfixes
- - Ansible\-core
- dellemc\.powerflex
- - hitachivantara\.vspone\_block
-- New Modules
- - containers\.podman
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-07\-01
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a8 contains ansible\-core version 2\.19\.0rc1\.
-This is a newer version than version 2\.19\.0b7 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a7 | Ansible 12.0.0a8 | Notes |
-| --------------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| azure.azcollection | 3.5.0 | 3.6.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| containers.podman | 1.16.4 | 1.17.0 | |
-| dellemc.powerflex | 2.6.0 | 2.6.1 | |
-| hitachivantara.vspone_block | 3.5.0 | 3.5.1 | |
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* templating \- Relaxed the Jinja sandbox to allow specific bitwise operations which have no filter equivalent\. The allowed methods are \_\_and\_\_\, \_\_lshift\_\_\, \_\_or\_\_\, \_\_rshift\_\_\, \_\_xor\_\_\.
-* templating \- Switched from the Jinja immutable sandbox to the standard sandbox\. This restores the ability to use mutation methods such as list\.append and dict\.update\.
-
-
-#### containers\.podman
-
-* Add another test for volumes
-* Added checks for volume opts
-
-
-#### dellemc\.powerflex
-
-* Added none check for mdm cluster id in mdm\_cluster module\.
-* Updated minimum SDK version to 2\.6\.1\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* Update automatic role argument spec validation to not use deprecated syntax \([https\://github\.com/ansible/ansible/issues/85399](https\://github\.com/ansible/ansible/issues/85399)\)\.
-* ssh connection plugin \- Allow only one password prompt attempt when utilizing SSH\_ASKPASS \([https\://github\.com/ansible/ansible/issues/85359](https\://github\.com/ansible/ansible/issues/85359)\)
-
-
-#### dellemc\.powerflex
-
-* snapshot\_policy \- Renamed snapshotAccessMode and secureSnapshots to snapshot\_access\_mode and secure\_snapshots respectively\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Resolved an issue where adding a path to an external path group for FC and retrieving external path group facts would fail\.
-
-
-### New Modules
-
-
-#### containers\.podman
-
-* containers\.podman\.podman\_system\_info \- Get podman system information from host machine
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 6\.0\.0\)
-* ansible\.windows \(still version 3\.1\.0\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.dnac \(still version 6\.35\.0\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.ios \(still version 10\.1\.0\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.meraki \(still version 2\.21\.3\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.1\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 5\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.crypto \(still version 3\.0\.0\-rc1\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.5\)
-* community\.docker \(still version 4\.6\.1\)
-* community\.general \(still version 11\.0\.0\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.hrobot \(still version 2\.4\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.4\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.okd \(still version 5\.0\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxmox \(still version 1\.0\.1\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.5\.0\)
-* community\.routeros \(still version 3\.8\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.1\.0\)
-* community\.vmware \(still version 5\.7\.1\)
-* community\.windows \(still version 3\.0\.0\)
-* community\.zabbix \(still version 4\.0\.0\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.1\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.36\.0\)
-* fortinet\.fortimanager \(still version 2\.10\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.2\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 6\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.15\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.35\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.3\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware \(still version 2\.2\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 6\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a7
-
-- Release Summary
-- Removed Collections
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - ansible\.utils
- - grafana\.grafana
- - vyos\.vyos
-- Minor Changes
- - Ansible\-core
- - cisco\.dnac
- - cloud\.common
- - community\.crypto
- - community\.general
- - community\.okd
- - community\.routeros
- - community\.sops
- - fortinet\.fortimanager
- - netapp\.storagegrid
- - purestorage\.flasharray
- - vmware\.vmware
- - vyos\.vyos
-- Breaking Changes / Porting Guide
- - cloud\.common
- - community\.okd
- - kubernetes\.core
- - vyos\.vyos
-- Deprecated Features
- - Ansible\-core
- - community\.general
- - vyos\.vyos
-- Removed Features \(previously deprecated\)
- - community\.general
-- Security Fixes
- - community\.general
-- Bugfixes
- - Ansible\-core
- - community\.crypto
- - community\.dns
- - community\.general
- - community\.vmware
+ - f5networks\.f5\_modules
- fortinet\.fortimanager
+ - fortinet\.fortios
+ - google\.cloud
+ - hetzner\.hcloud
+ - ibm\.storage\_virtualize
+ - infoblox\.nios\_modules
+ - junipernetworks\.junos
+ - kubernetes\.core
+ - lowlydba\.sqlserver
+ - microsoft\.ad
+ - netapp\.ontap
- netapp\.storagegrid
- - purestorage\.flasharray
- - vmware\.vmware
+ - netbox\.netbox
+ - ovirt\.ovirt
+ - purestorage\.flasharray
+ - purestorage\.flashblade
+ - telekom\_mms\.icinga\_director
+ - theforeman\.foreman
+ - vmware\.vmware
+ - vmware\.vmware\_rest
- vyos\.vyos
-- Known Issues
- - community\.general
+- Known Issues
+ - community\.general
+ - community\.hrobot
+ - community\.libvirt
+ - dellemc\.openmanage
+ - purestorage\.flasharray
+ - vmware\.vmware\_rest
- vyos\.vyos
-- New Plugins
- - Callback
+- New Plugins
+ - Callback
- Connection
- Filter
- Inventory
- - Lookup
-- New Modules
- - community\.general
- - fortinet\.fortimanager
- - netapp\.storagegrid
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-06\-25
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Removed Collections
-
-* cisco\.ise \(previously included version\: 2\.10\.0\)
-
-You can still install a removed collection manually with ansible\-galaxy collection install \\.
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a7 contains ansible\-core version 2\.19\.0b7\.
-This is a newer version than version 2\.19\.0b6 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a6 | Ansible 12.0.0a7 | Notes |
-| ---------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| ansible.utils | 5.1.2 | 6.0.0 | |
-| azure.azcollection | 3.4.0 | 3.5.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| cisco.dnac | 6.31.3 | 6.35.0 | |
-| cloud.common | 4.2.0 | 5.0.0 | |
-| community.crypto | 3.0.0-a2 | 3.0.0-rc1 | |
-| community.dns | 3.2.4 | 3.2.5 | |
-| community.general | 10.7.0 | 11.0.0 | |
-| community.okd | 4.0.2 | 5.0.0 | |
-| community.routeros | 3.7.0 | 3.8.0 | |
-| community.sops | 2.0.5 | 2.1.0 | |
-| community.vmware | 5.7.0 | 5.7.1 | |
-| fortinet.fortimanager | 2.9.1 | 2.10.0 | |
-| grafana.grafana | 6.0.1 | 6.0.2 | |
-| kubernetes.core | 5.3.0 | 6.0.0 | |
-| netapp.storagegrid | 21.14.0 | 21.15.0 | |
-| purestorage.flasharray | 1.34.1 | 1.35.1 | |
-| vmware.vmware | 2.1.0 | 2.2.0 | |
-| vyos.vyos | 5.0.0 | 6.0.0 | |
-
-
-### Major Changes
-
-
-#### ansible\.utils
-
-* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
-
-#### grafana\.grafana
-
-* Add delete protection by \@KucicM in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/381](https\://github\.com/grafana/grafana\-ansible\-collection/pull/381)
-* Fix Mimir URL verify task by \@parcimonic in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/358](https\://github\.com/grafana/grafana\-ansible\-collection/pull/358)
-* Fix some regression introduced by v6 by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/376](https\://github\.com/grafana/grafana\-ansible\-collection/pull/376)
-* Update when statement to test for dashboard files found by \@hal58th in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/363](https\://github\.com/grafana/grafana\-ansible\-collection/pull/363)
-* Use become false in find task by \@santilococo in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/368](https\://github\.com/grafana/grafana\-ansible\-collection/pull/368)
-* alloy\_readiness\_check\_use\_https by \@piotr\-g in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/359](https\://github\.com/grafana/grafana\-ansible\-collection/pull/359)
-
-
-#### vyos\.vyos
-
-* bgp modules \- Added support for 1\.4\+ \"system\-as\"\. 1\.3 embedded as\_number is still supported
-* vyos bgp modules \- Many configuration attributes moved from bgp\_global to bgp\_address\_family module \(see documentation\)\.
-* vyos\_bgp\_address\_family \- Aligned with version 1\.3\+ configuration \- aggregate\_address\, maximum\_paths\, network\, and redistribute moved from bgp\_global module\. These are now Address\-family specific\. Many neighbor attributes also moved from vyos\_bgp\_global to vyos\_bgp\_address\_family module\.
-* vyos\_bgp\_global \- Aligned with version 1\.3\+ configuration \- aggregate\_address\, maximum\_paths\, network\, and redistribute Removed to bgp\_address\_family module\.
-* vyos\_user \- add support for encrypted password specification
-* vyos\_user \- add support for public\-key authentication
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* Added type annotations to the Role\.\_\_init\_\_\(\) method to enable type checking\. \([https\://github\.com/ansible/ansible/pull/85346](https\://github\.com/ansible/ansible/pull/85346)\)
-* ansible\-test \- Added experimental support for remote debugging\.
-* ansible\-test \- Added support for setting static environment variables in integration tests using env/set/ entries in the aliases file\. For example\, env/set/MY\_KEY/MY\_VALUE or env/set/MY\_PATH//an/abs/path\.
-* ansible\-test \- The shell command has been augmented to propagate remote debug configurations and other test\-related settings when running on the controller\. Use the \-\-raw argument to bypass the additional environment configuration\.
-* apt \- consider lock timeout while invoking apt\-get command \([https\://github\.com/ansible/ansible/issues/78658](https\://github\.com/ansible/ansible/issues/78658)\)\.
-* assemble action added check\_mode support
-* display \- The formatted arg to warning has no effect\. Warning wrapping is left to the consumer \(e\.g\. terminal\, browser\)\.
-* display \- The wrap\_text and stderr arguments to error have no effect\. Errors are always sent to stderr and wrapping is left to the consumer \(e\.g\. terminal\, browser\)\.
-* module\_utils\.basic\.backup\_local enforces check\_mode now
-* variables \- Removed restriction on usage of most Python keywords as Ansible variable names\.
-* variables \- Warnings about reserved variable names now show context where the variable was defined\.
-
-
-#### cisco\.dnac
-
-* API Modules 2\_2\_2\_3\, 2\_2\_3\_3\, 2\_3\_3\_0 were removed
-* Added \'application\_policy\_workflow\_manager\' for managing queuing profiles\, applications\, sets and policies
-* Added \'assurance\_device\_health\_score\_settings\_workflow\_manager\' for managing assurance Health score settings
-* Added \'assurance\_icap\_settings\_workflow\_manager\' for configuring and managing ICAP \(Intelligent Capture\) settings
-* Added \'assurance\_issue\_workflow\_manager\' for managing assurance global profile settings and issue resolution
-* Added \'network\_profile\_switching\_workflow\_manager\' for managing switch profiles
-* Added \'network\_profile\_wireless\_workflow\_manager\' for managing network wireless profile
-* Added \'path\_trace\_workflow\_manager\' for managing PathTrace settings
-* Added \'tags\_workflow\_manager\' for create\, update\, delete Tags and Tag Memberships
-* Added \'wireless\_design\_workflow\_manager\' for managing wireless design elements
-* Added attribute \'device\_type\' in \'assurance\_issue\_workflow\_manager\' module
-* Added attribute \'devices\_maintenance\_schedule\' in \'inventory\_workflow\_manager\' module
-* Added attribute \'minimum\_rssi\' in \'wireless\_design\_workflow\_manager\' module
-* Added attribute \'resource\_parameters\' and \'copy\_config\' in \'template\_workflow\_manager\' module
-* Added attribute \'sda\_fabric\_gateway\_limit\' in \'sda\_fabric\_virtual\_networks\_workflow\_manager\' module
-* Added attribute \'ssid\_name\' in \'network\_profile\_wireless\_workflow\_manager\' module
-* Added attribute \'sub\_package\_images\' in \'swim\_workflow\_manager\' module
-* Added attributes \'ipv4\_total\_addresses\'\, \'ipv4\_unassignable\_addresses\'\, \'ipv4\_assigned\_addresses\'\, \'ipv4\_default\_assigned\_addresses\'\, \'ipv6\_total\_addresses\'\, \'ipv6\_unassignable\_addresses\'\, \'ipv6\_assigned\_addresses\'\, \'ipv6\_default\_assigned\_addresses\' in \'network\_settings\_workflow\_manager\' module
-* Added compatibility with Cisco version 3\.1\.3\.0 \-all corresponding modules were added\-\.
-* All alias modules were removed \-\*v1\-\.
-* Changes in \'application\_policy\_workflow\_manager\' module
-* Changes in \'assurance\_icap\_settings\_workflow\_manager\' module
-* Changes in \'assurance\_issue\_workflow\_manager\' module
-* Changes in \'device\_configs\_backup\_workflow\_manager\' module
-* Changes in \'device\_credential\_backup\_workflow\_manager\' module
-* Changes in \'discovery\_workflow\_manager\' module
-* Changes in \'events\_and\_notifications\_workflow\_manager\' module
-* Changes in \'inventory\_workflow\_manager\' module
-* Changes in \'ise\_radius\_integration\_workflow\_manager\' module
-* Changes in \'lan\_automation\_workflow\_manager\' module
-* Changes in \'network\_compliance\_workflow\_manager\' module
-* Changes in \'network\_profile\_switching\_workflow\_manager\' module
-* Changes in \'network\_profile\_wireless\_workflow\_manager\' module
-* Changes in \'network\_settings\_workflow\_manager\' module
-* Changes in \'pnp\_workflow\_manager\' module
-* Changes in \'provision\_workflow\_manager\' module
-* Changes in \'sda\_extranet\_policies\_workflow\_manager\' module
-* Changes in \'sda\_fabric\_devices\_workflow\_manager\' module
-* Changes in \'sda\_fabric\_sites\_zones\_workflow\_manager\' module
-* Changes in \'sda\_fabric\_transits\_workflow\_manager\' module
-* Changes in \'sda\_fabric\_virtual\_networks\_workflow\_manager\' module
-* Changes in \'sda\_host\_onboarding\_workflow\_manager\' module
-* Changes in \'swim\_workflow\_manager\' module
-* Changes in \'tags\_workflow\_manager\' module
-* Changes in \'template\_workflow\_manager\' module
-* Changes in \'user\_and\_roles\_workflow\_manager\' module
-* Changes in \'wireless\_design\_workflow\_manager\' module
-* Changes in application\_policy\_workflow\_manager workflow manager module
-* Changes in assurance\_device\_health\_score\_settings\_workflow\_manager module
-* Changes in assurance\_issue\_workflow\_manager workflow manager module
-* Changes in path\_trace\_workflow\_manager module
-* Correction of issue 266 in the reserve\_ip\_subpool modules
-* New enhancment in template\_workflow\_manager workflow manager module
-* Removed attribute \'application\_sets\' and \'application\' in \'application\_policy\_workflow\_manager\' module
-* Removed attribute \'control\_path\' in \'path\_trace\_workflow\_manager\' module
-* Removed attribute \'minimum\_rss\' in \'wireless\_design\_workflow\_manager\' module
-* Removed attributes \'application\_set\_name\' in \'application\_policy\_workflow\_manager\' module
-* Removed attributes \'ssid\'\, \'onboarding\_templates\' in \'network\_profile\_wireless\_workflow\_manager\' module
-* changing ansible\.utils 6\.x\.y
-* modify problems in requests to the API
-
-
-#### cloud\.common
-
-* Bump version of ansible\-lint to minimum 24\.7\.0 \([https\://github\.com/ansible\-collections/cloud\.common/pull/159](https\://github\.com/ansible\-collections/cloud\.common/pull/159)\)\.
-
-
-#### community\.crypto
-
-* Remove various no longer needed abstraction layers for multiple backends \([https\://github\.com/ansible\-collections/community\.crypto/pull/912](https\://github\.com/ansible\-collections/community\.crypto/pull/912)\)\.
-* Various code refactorings \([https\://github\.com/ansible\-collections/community\.crypto/pull/905](https\://github\.com/ansible\-collections/community\.crypto/pull/905)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/909](https\://github\.com/ansible\-collections/community\.crypto/pull/909)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/911](https\://github\.com/ansible\-collections/community\.crypto/pull/911)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/913](https\://github\.com/ansible\-collections/community\.crypto/pull/913)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/914](https\://github\.com/ansible\-collections/community\.crypto/pull/914)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/917](https\://github\.com/ansible\-collections/community\.crypto/pull/917)\)\.
-
-
-#### community\.general
-
-* CmdRunner module utils \- the convenience method cmd\_runner\_fmt\.as\_fixed\(\) now accepts multiple arguments as a list \([https\://github\.com/ansible\-collections/community\.general/pull/9893](https\://github\.com/ansible\-collections/community\.general/pull/9893)\)\.
-* MH module utils \- delegate debug to the underlying AnsibleModule instance or issues a warning if an attribute already exists with that name \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\.
-* alternatives \- add family parameter that allows to utilize the \-\-family option available in RedHat version of update\-alternatives \([https\://github\.com/ansible\-collections/community\.general/issues/5060](https\://github\.com/ansible\-collections/community\.general/issues/5060)\, [https\://github\.com/ansible\-collections/community\.general/pull/9096](https\://github\.com/ansible\-collections/community\.general/pull/9096)\)\.
-* apache2\_mod\_proxy \- better handling regexp extraction \([https\://github\.com/ansible\-collections/community\.general/pull/9609](https\://github\.com/ansible\-collections/community\.general/pull/9609)\)\.
-* apache2\_mod\_proxy \- change type of state to a list of strings\. No change for the users \([https\://github\.com/ansible\-collections/community\.general/pull/9600](https\://github\.com/ansible\-collections/community\.general/pull/9600)\)\.
-* apache2\_mod\_proxy \- code simplification\, no change in functionality \([https\://github\.com/ansible\-collections/community\.general/pull/9457](https\://github\.com/ansible\-collections/community\.general/pull/9457)\)\.
-* apache2\_mod\_proxy \- improve readability when using results from fecth\_url\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9608](https\://github\.com/ansible\-collections/community\.general/pull/9608)\)\.
-* apache2\_mod\_proxy \- refactor repeated code into method \([https\://github\.com/ansible\-collections/community\.general/pull/9599](https\://github\.com/ansible\-collections/community\.general/pull/9599)\)\.
-* apache2\_mod\_proxy \- remove unused parameter and code from Balancer constructor \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\.
-* apache2\_mod\_proxy \- simplified and improved string manipulation \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\.
-* apache2\_mod\_proxy \- use deps to handle dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9612](https\://github\.com/ansible\-collections/community\.general/pull/9612)\)\.
-* apache2\_module \- added workaround for new PHP module name\, from php7\_module to php\_module \([https\://github\.com/ansible\-collections/community\.general/pull/9951](https\://github\.com/ansible\-collections/community\.general/pull/9951)\)\.
-* bitwarden lookup plugin \- add new option collection\_name to filter results by collection name\, and new option result\_count to validate number of results \([https\://github\.com/ansible\-collections/community\.general/pull/9728](https\://github\.com/ansible\-collections/community\.general/pull/9728)\)\.
-* bitwarden lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* cargo \- add features parameter to allow activating specific features when installing Rust packages \([https\://github\.com/ansible\-collections/community\.general/pull/10198](https\://github\.com/ansible\-collections/community\.general/pull/10198)\)\.
-* cartesian lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
-* cgroup\_memory\_recap callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* cgroup\_memory\_recap callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* chef\_databag lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* chroot connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* chroot connection plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* chroot connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* cloud\_init\_data\_facts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* cloudflare\_dns \- add support for comment and tags \([https\://github\.com/ansible\-collections/community\.general/pull/9132](https\://github\.com/ansible\-collections/community\.general/pull/9132)\)\.
-* cobbler inventory plugin \- add connection\_timeout option to specify the connection timeout to the cobbler server \([https\://github\.com/ansible\-collections/community\.general/pull/11063](https\://github\.com/ansible\-collections/community\.general/pull/11063)\)\.
-* cobbler inventory plugin \- add facts\_level option to allow requesting fully rendered variables for Cobbler systems \([https\://github\.com/ansible\-collections/community\.general/issues/9419](https\://github\.com/ansible\-collections/community\.general/issues/9419)\, [https\://github\.com/ansible\-collections/community\.general/pull/9975](https\://github\.com/ansible\-collections/community\.general/pull/9975)\)\.
-* cobbler inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* cobbler inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* cobbler inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* collection\_version lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* consul\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* consul\_token \- fix idempotency when policies or roles are supplied by name \([https\://github\.com/ansible\-collections/community\.general/issues/9841](https\://github\.com/ansible\-collections/community\.general/issues/9841)\, [https\://github\.com/ansible\-collections/community\.general/pull/9845](https\://github\.com/ansible\-collections/community\.general/pull/9845)\)\.
-* context\_demo callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* context\_demo callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* counter filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* counter\_enabled callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* counter\_enabled callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* cpanm \- enable usage of option \-\-with\-recommends \([https\://github\.com/ansible\-collections/community\.general/issues/9554](https\://github\.com/ansible\-collections/community\.general/issues/9554)\, [https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\.
-* cpanm \- enable usage of option \-\-with\-suggests \([https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\.
-* crc32 filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* credstash lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* cronvar \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* crypttab \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* cyberarkpassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* cyberarkpassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* default\_without\_diff callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* dense callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* dense callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* dependent lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
-* dependent lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* deps module utils \- add deps\.clear\(\) to clear out previously declared dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9179](https\://github\.com/ansible\-collections/community\.general/pull/9179)\)\.
-* dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* dict\_kv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* dig lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* dig lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* diy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* diy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* dnstxt lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* dnstxt lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* doas become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* doas become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* dsv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* dzdo become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* dzdo become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* elastic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* elastic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
-* elastic callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* etcd lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* etcd3 lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* etcd3 lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* filetree lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* flattened lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
-* from\_csv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* from\_csv filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* from\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* from\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* funcd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* funcd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* git\_config \- remove redundant required\=False from argument\_spec \([https\://github\.com/ansible\-collections/community\.general/pull/10177](https\://github\.com/ansible\-collections/community\.general/pull/10177)\)\.
-* github\_app\_access\_token lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* github\_key \- add api\_url parameter to support GitHub Enterprise Server installations \([https\://github\.com/ansible\-collections/community\.general/pull/10191](https\://github\.com/ansible\-collections/community\.general/pull/10191)\)\.
-* gitlab\_instance\_variable \- add support for raw variables suboption \([https\://github\.com/ansible\-collections/community\.general/pull/9425](https\://github\.com/ansible\-collections/community\.general/pull/9425)\)\.
-* gitlab\_project \- add option build\_timeout \([https\://github\.com/ansible\-collections/community\.general/pull/9960](https\://github\.com/ansible\-collections/community\.general/pull/9960)\)\.
-* gitlab\_project\_members \- extend choices parameter access\_level by missing upstream valid value owner \([https\://github\.com/ansible\-collections/community\.general/pull/9953](https\://github\.com/ansible\-collections/community\.general/pull/9953)\)\.
-* gitlab\_runners inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* gitlab\_runners inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* gitlab\_runners inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* groupby\_as\_dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* hashids filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* hiera lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* homebrew \- greatly speed up module when multiple packages are passed in the name option \([https\://github\.com/ansible\-collections/community\.general/pull/9181](https\://github\.com/ansible\-collections/community\.general/pull/9181)\)\.
-* homebrew \- remove duplicated package name validation \([https\://github\.com/ansible\-collections/community\.general/pull/9076](https\://github\.com/ansible\-collections/community\.general/pull/9076)\)\.
-* hpilo\_boot \- add option to get an idempotent behavior while powering on server\, resulting in success instead of failure when using state\: boot\_once option \([https\://github\.com/ansible\-collections/community\.general/pull/9646](https\://github\.com/ansible\-collections/community\.general/pull/9646)\)\.
-* icinga2 inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* icinga2 inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* idrac\_redfish\_command\, idrac\_redfish\_config\, idrac\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* ilo\_redfish\_command\, ilo\_redfish\_config\, ilo\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* incus connection plugin \- adds remote\_user and incus\_become\_method parameters for allowing a non\-root user to connect to an Incus instance \([https\://github\.com/ansible\-collections/community\.general/pull/9743](https\://github\.com/ansible\-collections/community\.general/pull/9743)\)\.
-* incus connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* incus connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* ini\_file \- modify an inactive option also when there are spaces in front of the comment symbol \([https\://github\.com/ansible\-collections/community\.general/pull/10102](https\://github\.com/ansible\-collections/community\.general/pull/10102)\, [https\://github\.com/ansible\-collections/community\.general/issues/8539](https\://github\.com/ansible\-collections/community\.general/issues/8539)\)\.
-* iocage connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* iocage connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* iocage inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* iocage inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* iocage inventory plugin \- the new parameter hooks\_results of the plugin is a list of files inside a jail that provide configuration parameters for the inventory\. The inventory plugin reads the files from the jails and put the contents into the items of created variable iocage\_hooks \([https\://github\.com/ansible\-collections/community\.general/issues/9650](https\://github\.com/ansible\-collections/community\.general/issues/9650)\, [https\://github\.com/ansible\-collections/community\.general/pull/9651](https\://github\.com/ansible\-collections/community\.general/pull/9651)\)\.
-* iocage inventory plugin \- the new parameter inventory\_hostname\_tag of the plugin provides the name of the tag in the C\(iocage properties notes\) that contains the jails alias\. The new parameter inventory\_hostname\_required\, if enabled\, makes the tag mandatory \([https\://github\.com/ansible\-collections/community\.general/issues/10206](https\://github\.com/ansible\-collections/community\.general/issues/10206)\, [https\://github\.com/ansible\-collections/community\.general/pull/10207](https\://github\.com/ansible\-collections/community\.general/pull/10207)\)\.
-* iocage inventory plugin \- the new parameter sudo of the plugin lets the command iocage list \-l to run as root on the iocage host\. This is needed to get the IPv4 of a running DHCP jail \([https\://github\.com/ansible\-collections/community\.general/issues/9572](https\://github\.com/ansible\-collections/community\.general/issues/9572)\, [https\://github\.com/ansible\-collections/community\.general/pull/9573](https\://github\.com/ansible\-collections/community\.general/pull/9573)\)\.
-* iptables\_state action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* iptables\_state action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\.
-* iso\_extract \- adds password parameter that is passed to 7z \([https\://github\.com/ansible\-collections/community\.general/pull/9159](https\://github\.com/ansible\-collections/community\.general/pull/9159)\)\.
-* jabber callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* jabber callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* jail connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* jail connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* jc filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* jira \- adds client\_cert and client\_key parameters for supporting client certificate authentification when connecting to Jira \([https\://github\.com/ansible\-collections/community\.general/pull/9753](https\://github\.com/ansible\-collections/community\.general/pull/9753)\)\.
-* jira \- transition operation now has status\_id to directly reference wanted transition \([https\://github\.com/ansible\-collections/community\.general/pull/9602](https\://github\.com/ansible\-collections/community\.general/pull/9602)\)\.
-* json\_query filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* keep\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* keycloak \- add an action group for Keycloak modules to allow module\_defaults to be set for Keycloak tasks \([https\://github\.com/ansible\-collections/community\.general/pull/9284](https\://github\.com/ansible\-collections/community\.general/pull/9284)\)\.
-* keycloak module\_utils \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
-* keycloak\_\* modules \- refresh\_token parameter added\. When multiple authentication parameters are provided \(token\, refresh\_token\, and auth\_username/auth\_password\)\, modules will now automatically retry requests upon authentication errors \(401\)\, using in order the token\, refresh token\, and username/password \([https\://github\.com/ansible\-collections/community\.general/pull/9494](https\://github\.com/ansible\-collections/community\.general/pull/9494)\)\.
-* keycloak\_realm \- remove ID requirement when creating a realm to allow Keycloak generating its own realm ID \([https\://github\.com/ansible\-collections/community\.general/pull/9768](https\://github\.com/ansible\-collections/community\.general/pull/9768)\)\.
-* keycloak\_user module \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
-* keyring lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* known\_hosts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* ksu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* ksu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* lastpass lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* launchd \- add plist option for services such as sshd\, where the plist filename doesn\'t match the service name \([https\://github\.com/ansible\-collections/community\.general/pull/9102](https\://github\.com/ansible\-collections/community\.general/pull/9102)\)\.
-* linode inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* linode inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* lists filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* lists\_mergeby filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* lldp \- adds multivalues parameter to control behavior when lldpctl outputs an attribute multiple times \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\.
-* lmdb\_kv lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* lmdb\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* locale\_gen \- invert the logic to determine ubuntu\_mode\, making it look first for /etc/locale\.gen \(set ubuntu\_mode to False\) and only then looking for /var/lib/locales/supported\.d/ \(set ubuntu\_mode to True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\, [https\://github\.com/ansible\-collections/community\.general/issues/9131](https\://github\.com/ansible\-collections/community\.general/issues/9131)\, [https\://github\.com/ansible\-collections/community\.general/issues/8487](https\://github\.com/ansible\-collections/community\.general/issues/8487)\)\.
-* locale\_gen \- new return value mechanism to better express the semantics of the ubuntu\_mode\, with the possible values being either glibc \(ubuntu\_mode\=False\) or ubuntu\_legacy \(ubuntu\_mode\=True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\.
-* log\_plays callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* log\_plays callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* loganalytics callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* loganalytics callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
-* loganalytics callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* logdna callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* logdna callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* logentries callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* logentries callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* logentries callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* logstash callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* lvg \- add remove\_extra\_pvs parameter to control if ansible should remove physical volumes which are not in the pvs parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9698](https\://github\.com/ansible\-collections/community\.general/pull/9698)\)\.
-* lxc connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* lxc connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* lxd connection plugin \- adds remote\_user and lxd\_become\_method parameters for allowing a non\-root user to connect to an LXD instance \([https\://github\.com/ansible\-collections/community\.general/pull/9659](https\://github\.com/ansible\-collections/community\.general/pull/9659)\)\.
-* lxd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* lxd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* lxd inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* lxd inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* lxd inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* machinectl become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* machinectl become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* mail callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* mail callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* manageiq\_alert\_profiles \- improve handling of parameter requirements \([https\://github\.com/ansible\-collections/community\.general/pull/9449](https\://github\.com/ansible\-collections/community\.general/pull/9449)\)\.
-* manifold lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* manifold lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* maven\_artifact \- removed compatibility code for ansible\-core \< 2\.12 \([https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\.
-* memcached cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* memcached cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\.
-* merge\_variables lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* nmap inventory plugin \- adds dns\_servers option for specifying DNS servers for name resolution\. Accepts hostnames or IP addresses in the same format as the exclude option \([https\://github\.com/ansible\-collections/community\.general/pull/9849](https\://github\.com/ansible\-collections/community\.general/pull/9849)\)\.
-* nmap inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* nmap inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* nmap inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* nmcli \- add sriov parameter that enables support for SR\-IOV settings \([https\://github\.com/ansible\-collections/community\.general/pull/9168](https\://github\.com/ansible\-collections/community\.general/pull/9168)\)\.
-* nmcli \- add a option fail\_over\_mac \([https\://github\.com/ansible\-collections/community\.general/issues/9570](https\://github\.com/ansible\-collections/community\.general/issues/9570)\, [https\://github\.com/ansible\-collections/community\.general/pull/9571](https\://github\.com/ansible\-collections/community\.general/pull/9571)\)\.
-* nmcli \- add support for Infiniband MAC setting when type is infiniband \([https\://github\.com/ansible\-collections/community\.general/pull/9962](https\://github\.com/ansible\-collections/community\.general/pull/9962)\)\.
-* nmcli \- adds VRF support with new type value vrf and new slave\_type value vrf as well as new table parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9658](https\://github\.com/ansible\-collections/community\.general/pull/9658)\, [https\://github\.com/ansible\-collections/community\.general/issues/8014](https\://github\.com/ansible\-collections/community\.general/issues/8014)\)\.
-* nmcli \- adds autoconnect\_priority and autoconnect\_retries options to support autoconnect logic \([https\://github\.com/ansible\-collections/community\.general/pull/10134](https\://github\.com/ansible\-collections/community\.general/pull/10134)\)\.
-* nrdp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* nrdp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* null callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* one\_template \- adds filter option for retrieving templates which are not owned by the user \([https\://github\.com/ansible\-collections/community\.general/pull/9547](https\://github\.com/ansible\-collections/community\.general/pull/9547)\, [https\://github\.com/ansible\-collections/community\.general/issues/9278](https\://github\.com/ansible\-collections/community\.general/issues/9278)\)\.
-* one\_vm \- update allowed values for updateconf to include new parameters as per the latest OpenNebula API documentation\.
- Added parameters\:
-
- - OS\: FIRMWARE\;
- - CPU\_MODEL\: MODEL\, FEATURES\;
- - FEATURES\: VIRTIO\_BLK\_QUEUES\, VIRTIO\_SCSI\_QUEUES\, IOTHREADS\;
- - GRAPHICS\: PORT\, COMMAND\;
- - VIDEO\: ATS\, IOMMU\, RESOLUTION\, TYPE\, VRAM\;
- - RAW\: VALIDATE\;
- - BACKUP\_CONFIG\: FS\_FREEZE\, KEEP\_LAST\, BACKUP\_VOLATILE\, MODE\, INCREMENT\_MODE\.
-
- \([https\://github\.com/ansible\-collections/community\.general/pull/9959](https\://github\.com/ansible\-collections/community\.general/pull/9959)\)\.
-* onepassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* onepassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* onepassword\_doc lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* onepassword\_ssh\_key \- refactor to move code to lookup class \([https\://github\.com/ansible\-collections/community\.general/pull/9633](https\://github\.com/ansible\-collections/community\.general/pull/9633)\)\.
-* online inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* online inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* opennebula inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* opennebula inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* opennebula inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* opentelemetry callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* opentelemetry callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
-* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9482](https\://github\.com/ansible\-collections/community\.general/pull/9482)\)\.
-* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9503](https\://github\.com/ansible\-collections/community\.general/pull/9503)\)\.
-* opentelemetry callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* pacemaker\_cluster \- remove unused code \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\.
-* pacemaker\_cluster \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\.
-* pacemaker\_resource \- add maintenance mode support for handling resource creation and deletion \([https\://github\.com/ansible\-collections/community\.general/issues/10180](https\://github\.com/ansible\-collections/community\.general/issues/10180)\, [https\://github\.com/ansible\-collections/community\.general/pull/10194](https\://github\.com/ansible\-collections/community\.general/pull/10194)\)\.
-* pacman\_key \- support verifying that keys are trusted and not expired \([https\://github\.com/ansible\-collections/community\.general/issues/9949](https\://github\.com/ansible\-collections/community\.general/issues/9949)\, [https\://github\.com/ansible\-collections/community\.general/pull/9950](https\://github\.com/ansible\-collections/community\.general/pull/9950)\)\.
-* parted \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* passwordstore lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* pbrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* pbrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* pfexec become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* pfexec become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* pickle cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* pipx \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\.
-* pipx \- parameter name now accepts Python package specifiers \([https\://github\.com/ansible\-collections/community\.general/issues/7815](https\://github\.com/ansible\-collections/community\.general/issues/7815)\, [https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* pipx module\_utils \- filtering application list by name now happens in the modules \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* pipx\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\.
-* pipx\_info \- filtering application list by name now happens in the module \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* pmrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* pmrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* pulp\_repo \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* puppet \- improve parameter formatting\, no impact to user \([https\://github\.com/ansible\-collections/community\.general/pull/10014](https\://github\.com/ansible\-collections/community\.general/pull/10014)\)\.
-* qubes connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* qubes connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* random\_mac filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* random\_pet lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* redfish module utils \- add REDFISH\_COMMON\_ARGUMENT\_SPEC\, a corresponding redfish docs fragment\, and support for its validate\_certs\, ca\_path\, and ciphers options \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* redfish module utils \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
-* redfish\_command \- add PowerFullPowerCycle to power command options \([https\://github\.com/ansible\-collections/community\.general/pull/9729](https\://github\.com/ansible\-collections/community\.general/pull/9729)\)\.
-* redfish\_command \- add update\_custom\_oem\_header\, update\_custom\_oem\_params\, and update\_custom\_oem\_mime\_type options \([https\://github\.com/ansible\-collections/community\.general/pull/9123](https\://github\.com/ansible\-collections/community\.general/pull/9123)\)\.
-* redfish\_command\, redfish\_config\, redfish\_info \- add validate\_certs and ca\_path options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* redfish\_config \- add command SetPowerRestorePolicy to set the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9837](https\://github\.com/ansible\-collections/community\.general/pull/9837)\)\.
-* redfish\_info \- add command GetAccountServiceConfig to get full information about AccountService configuration \([https\://github\.com/ansible\-collections/community\.general/pull/9403](https\://github\.com/ansible\-collections/community\.general/pull/9403)\)\.
-* redfish\_info \- add command GetPowerRestorePolicy to get the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9824](https\://github\.com/ansible\-collections/community\.general/pull/9824)\)\.
-* redfish\_utils module utils \- remove redundant code \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\.
-* redhat\_subscription \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* redis cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* redis cache plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* redis cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\.
-* redis lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* remove\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* replace\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* revbitspss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* reveal\_ansible\_type filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* rocketchat \- fix duplicate JSON conversion for Rocket\.Chat \< 7\.4\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9965](https\://github\.com/ansible\-collections/community\.general/pull/9965)\)\.
-* rocketchat \- option is\_pre740 has been added to control the format of the payload\. For Rocket\.Chat 7\.4\.0 or newer\, it must be set to false \([https\://github\.com/ansible\-collections/community\.general/pull/9882](https\://github\.com/ansible\-collections/community\.general/pull/9882)\)\.
-* rpm\_ostree\_pkg \- added the options apply\_live \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\.
-* rpm\_ostree\_pkg \- added the return value needs\_reboot \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\.
-* run0 become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* saltstack connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* saltstack connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* say callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* say callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* scaleway inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* scaleway inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* scaleway inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* scaleway\_lb \- minor simplification in the code \([https\://github\.com/ansible\-collections/community\.general/pull/9189](https\://github\.com/ansible\-collections/community\.general/pull/9189)\)\.
-* selective callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* selective callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* sesu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* sesu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* shelvefile lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* shutdown action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* shutdown action plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* shutdown action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\.
-* slack callback plugin \- add http\_agent option to enable the user to set a custom user agent for slack callback plugin \([https\://github\.com/ansible\-collections/community\.general/issues/9813](https\://github\.com/ansible\-collections/community\.general/issues/9813)\, [https\://github\.com/ansible\-collections/community\.general/pull/9836](https\://github\.com/ansible\-collections/community\.general/pull/9836)\)\.
-* slack callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* slack callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* slack callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* snap \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\.
-* snap\_alias \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\.
-* solaris\_zone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* sorcery \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* splunk callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* splunk callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
-* splunk callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* ssh\_config \- add dynamicforward option \([https\://github\.com/ansible\-collections/community\.general/pull/9192](https\://github\.com/ansible\-collections/community\.general/pull/9192)\)\.
-* ssh\_config \- add other\_options option \([https\://github\.com/ansible\-collections/community\.general/issues/8053](https\://github\.com/ansible\-collections/community\.general/issues/8053)\, [https\://github\.com/ansible\-collections/community\.general/pull/9684](https\://github\.com/ansible\-collections/community\.general/pull/9684)\)\.
-* stackpath\_compute inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* stackpath\_compute inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* sudosu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* sudosu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
-* sumologic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* sumologic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
-* syslog\_json callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* systemd\_info \- add wildcard expression support in unitname option \([https\://github\.com/ansible\-collections/community\.general/pull/9821](https\://github\.com/ansible\-collections/community\.general/pull/9821)\)\.
-* systemd\_info \- extend support to timer units \([https\://github\.com/ansible\-collections/community\.general/pull/9891](https\://github\.com/ansible\-collections/community\.general/pull/9891)\)\.
-* terraform \- adds the no\_color parameter\, which suppresses or allows color codes in stdout from Terraform commands \([https\://github\.com/ansible\-collections/community\.general/pull/10154](https\://github\.com/ansible\-collections/community\.general/pull/10154)\)\.
-* time filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* timestamp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* timestamp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* timezone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
-* to\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* to\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* tss lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* tss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
-* ufw \- add support for vrrp protocol \([https\://github\.com/ansible\-collections/community\.general/issues/9562](https\://github\.com/ansible\-collections/community\.general/issues/9562)\, [https\://github\.com/ansible\-collections/community\.general/pull/9582](https\://github\.com/ansible\-collections/community\.general/pull/9582)\)\.
-* unicode\_normalize filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* unixy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* unixy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* version\_sort filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
-* virtualbox inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* virtualbox inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
-* virtualbox inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* vmadm \- add new options flexible\_disk\_size and owner\_uuid \([https\://github\.com/ansible\-collections/community\.general/pull/9892](https\://github\.com/ansible\-collections/community\.general/pull/9892)\)\.
-* wdc\_redfish\_command\, wdc\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* xbps \- add root and repository options to enable bootstrapping new void installations \([https\://github\.com/ansible\-collections/community\.general/pull/9174](https\://github\.com/ansible\-collections/community\.general/pull/9174)\)\.
-* xcc\_redfish\_command \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* xen\_orchestra inventory plugin \- add use\_vm\_uuid and use\_host\_uuid boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names \([https\://github\.com/ansible\-collections/community\.general/pull/9787](https\://github\.com/ansible\-collections/community\.general/pull/9787)\)\.
-* xen\_orchestra inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* xen\_orchestra inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
-* xfconf \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\.
-* xfconf\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\.
-* xml \- support adding value of children when creating with subnodes \([https\://github\.com/ansible\-collections/community\.general/pull/8437](https\://github\.com/ansible\-collections/community\.general/pull/8437)\)\.
-* yaml cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* yaml callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
-* yaml callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
-* zone connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
-* zone connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
-* zypper \- add quiet option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\.
-* zypper \- add simple\_errors option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\.
-* zypper \- adds skip\_post\_errors that allows to skip RPM post\-install errors \(Zypper return code 107\) \([https\://github\.com/ansible\-collections/community\.general/issues/9972](https\://github\.com/ansible\-collections/community\.general/issues/9972)\)\.
-
-
-#### community\.okd
-
-* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/openshift/community\.okd/pull/255](https\://github\.com/openshift/community\.okd/pull/255)\)\.
-* Bump version of ansible\-lint to minimum 24\.7\.0 \([https\://github\.com/openshift/community\.okd/pull/240](https\://github\.com/openshift/community\.okd/pull/240)\)\.
-
-
-#### community\.routeros
-
-* api\_info\, api\_modify \- add interface ethernet switch port\-isolation which is supported since RouterOS 6\.43 \([https\://github\.com/ansible\-collections/community\.routeros/pull/375](https\://github\.com/ansible\-collections/community\.routeros/pull/375)\)\.
-* api\_info\, api\_modify \- add routing bfd configuration\. Officially stabilized BFD support for BGP and OSPF is available since RouterOS 7\.11
- \([https\://github\.com/ansible\-collections/community\.routeros/pull/375](https\://github\.com/ansible\-collections/community\.routeros/pull/375)\)\.
-* api\_modify\, api\_info \- support API path ip ipsec mode\-config \([https\://github\.com/ansible\-collections/community\.routeros/pull/376](https\://github\.com/ansible\-collections/community\.routeros/pull/376)\)\.
-
-
-#### community\.sops
-
-* Now supports specifying SSH private keys for age with the new age\_ssh\_private\_keyfile option \([https\://github\.com/ansible\-collections/community\.sops/pull/241](https\://github\.com/ansible\-collections/community\.sops/pull/241)\)\.
-
-
-#### fortinet\.fortimanager
-
-* Supported new modules in FortiManager 7\.4\.6\, 7\.4\.7\, 7\.6\.3\.
-
-
-#### netapp\.storagegrid
-
-* na\_sg\_grid\_ha\_group \- added check mode support in the module\.
-* na\_sg\_org\_container \- Enhanced the Consistency setting\.
-* na\_sg\_org\_container \- new option capacity\_limit added for bucket\, requires storageGRID 11\.9 or later\.
-
-
-#### purestorage\.flasharray
-
-* purefa\_endpoint \- Converted to REST v2
-* purefa\_fleet \- Allows FlashBlades to be added to Fusion fleets if FlashArray is Purity//FA 6\.8\.5 or higher
-* purefa\_host \- Hosts can be created in realms and renamed within the same realm
-* purefa\_host \- Move function added to allow movement of host to/from realms
-* purefa\_inventory \- Added support for capacity down licensing
-* purefa\_policy \- Added support change a specific quota rule by name
-* purefa\_subnet \- Converted to use REST 2
-* purefa\_volume \- Added support for creating volumes in Realms
-
-
-#### vmware\.vmware
-
-* Fixed ansible\-lint errors in examples\.
-* cluster\_ha \- Add module required\_by rules for admission control arguments that are mentioned in the docs \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/201](https\://github\.com/ansible\-collections/vmware\.vmware/issues/201)\)
-* cluster\_ha \- admission\_control\_failover\_level can now always be managed by the user\'s inputs\, and the default value for dedicated\_host policy type is the number of dedicated failover hosts \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/201](https\://github\.com/ansible\-collections/vmware\.vmware/issues/201)\)
-
-
-#### vyos\.vyos
-
-* README\.md \- Add Communication section with Forum information\.
-* vyos\_bgp\_address\_family \- Redistribute\, network stanza \- added support for modifiers \(metric\, backdoor etc as per T6829\)
-* vyos\_bgp\_global \- Added support for solo neighbor attribute
-* vyos\_config \- block get\_config call if match is set to \"none\"
-* vyos\_facts \- added network\_os\_major\_version to facts
-* vyos\_firewall\_global \- Added support for input\, output\, and forward chains \(1\.4\+\)
-* vyos\_firewall\_global \- Added support for log\-level in state\-policy \(1\.4\+\)
-* vyos\_firewall\_global \- with 1\.4\+\, use the the global keyword to define global firewall rules
-* vyos\_firewall\_interfaces \- added support for VIF interfaces
-* vyos\_firewall\_interfaces \- enable support for 1\.4 firewall
-* vyos\_firewall\_interfaces \- expanded firewall interface types to match existing types
-* vyos\_firewall\_rules \- Add support for diff mode for rulesets
-* vyos\_firewall\_rules \- Added support for 1\.4\+ firewall rules
-* vyos\_firewall\_rules \- Fixed comparing of firewall rules
-* vyos\_firewall\_rules \- added support for 1\.5\+ firewall match\-ipsec\-in\, match\-ipsec\-out\, match\-none\-in\, match\-none\-out
-* vyos\_firewall\_rules \- added support for packet\-length\-exclude for 1\.4\+ and the states
-* vyos\_l3\_interfaces \- make l3\_interfaces pick up loopback interfaces
-* vyos\_lldp\_global \- address is now addresses\, with appropriate coercion for existing address keys
-* vyos\_ntp\_global \- Added ntp options for 1\.5\+ \(interleave\, ptp\)
-* vyos\_ntp\_global \- Added support for VyOS 1\.4\+ \(chronyd vs ntpd\)
-* vyos\_ntp\_global \- Added syntax for allow\_client in 1\.4\+
-* vyos\_ospf\_interaces \- support for 1\.4 ospf interfaces
-* vyos\_ospf\_interfaces \- add support for VyOS 1\.3\- virtual interfaces
-* vyos\_ospf\_interfaces \- add support for VyOS 1\.4\+\, which moved interface configuration from the interfaces to ospf/ospfv3 interfaces configuration
-* vyos\_route\_maps \- add support for as\-path\-prepend policy option
-
-
-### Breaking Changes / Porting Guide
-
-
-#### cloud\.common
-
-* Remove support for ansible versions greater than 2\.19 \([https\://github\.com/ansible\-collections/cloud\.common/pull/183](https\://github\.com/ansible\-collections/cloud\.common/pull/183)\)\.
-
-
-#### community\.okd
-
-* Remove openshift inventory plugin deprecated in 3\.0\.0 \([https\://github\.com/openshift/community\.okd/pull/252](https\://github\.com/openshift/community\.okd/pull/252)\)\.
-
-
-#### kubernetes\.core
-
-* Remove deprecated k8s invetory plugin \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/867](https\://github\.com/ansible\-collections/kubernetes\.core/pull/867)\)\.
-* Remove support for ansible\-core\<2\.16 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/867](https\://github\.com/ansible\-collections/kubernetes\.core/pull/867)\)\.
-
-
-#### vyos\.vyos
-
-* Removed vyos\_logging\. Use vyos\_logging\_global instead\.
-* lldp\_global \- if \"address\" is available\, merge will cause it to be added\, in contrast to the previous behavior where it was replaced\. When used in replace mode\, it will remove any existing addresses and replace them with the new one\.
-* vyos\_bgp\_address\_family \- Support for 1\.3\+ VyOS only
-* vyos\_bgp\_global \- Support for 1\.3\+ VyOS only
-* vyos\_firewall\_rules \- removed p2p options as they have been removed prior to 1\.3 of VyOS
-* vyos\_firewall\_rules \- tcp\.flags is now a list with an inversion flag to support 1\.4\+ firewall rules\, but still supports 1\.3\-
-* vyos\_lldp\_global \- civic\_address is no longer a valid key \(removed prior to 1\.3\)
-* vyos\_logging\_global \- For 1\.4\, protocol is an attribute of the syslog host\, not the facility
-* vyos\_snmp\_server \- no longer works with versions prior to 1\.3
-* vyos\_snmp\_server \- parameter engine\_id is no longer a user or trap\_target parameter and is now a snmp\_v3 parameter
-* vyos\_snmp\_server \- parameters encrypted\-key and plaintext\-key are now encrypted\-password and plaintext\-password
-* vyos\_user \- explicit support for version 1\.3\+ only
-* vyos\_user \- removed level \(and its alias\, role\) they were removed in 1\.3
-
-
-### Deprecated Features
-
-
-#### Ansible\-core
-
-* inventory plugins \- Setting invalid Ansible variable names in inventory plugins is deprecated\.
-* playbook syntax \- Specifying the task args keyword without a value is deprecated\.
-* playbook syntax \- Using key\=value args and the task args keyword on the same task is deprecated\.
-* playbook syntax \- Using a mapping with the action keyword is deprecated\. \([https\://github\.com/ansible/ansible/issues/84101](https\://github\.com/ansible/ansible/issues/84101)\)
-
-
-#### community\.general
-
-* MH module utils \- attribute debug definition in subclasses of MH is now deprecated\, as that name will become a delegation to AnsibleModule in community\.general 12\.0\.0\, and any such attribute will be overridden by that delegation in that version \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\.
-* atomic\_container \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
-* atomic\_host \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
-* atomic\_image \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
-* facter \- module is deprecated and will be removed in community\.general 12\.0\.0\, use community\.general\.facter\_facts instead \([https\://github\.com/ansible\-collections/community\.general/pull/9451](https\://github\.com/ansible\-collections/community\.general/pull/9451)\)\.
-* locale\_gen \- ubuntu\_mode\=True\, or mechanism\=ubuntu\_legacy is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\.
-* manifold lookup plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10028](https\://github\.com/ansible\-collections/community\.general/pull/10028)\)\.
-* opkg \- deprecate value \"\" for parameter force \([https\://github\.com/ansible\-collections/community\.general/pull/9172](https\://github\.com/ansible\-collections/community\.general/pull/9172)\)\.
-* pipx module\_utils \- function make\_process\_list\(\) is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* profitbricks \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
-* profitbricks\_datacenter \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
-* profitbricks\_nic \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
-* profitbricks\_volume \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
-* profitbricks\_volume\_attachments \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
-* pure module utils \- the module utils is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\.
-* purestorage doc fragments \- the doc fragment is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\.
-* redfish\_utils module utils \- deprecate method RedfishUtils\.\_init\_session\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\.
-* sensu\_check \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
-* sensu\_client \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
-* sensu\_handler \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
-* sensu\_silence \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
-* sensu\_subscription \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
-* slack \- the default value auto of the prepend\_hash option is deprecated and will change to never in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9443](https\://github\.com/ansible\-collections/community\.general/pull/9443)\)\.
-* stackpath\_compute inventory plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10026](https\://github\.com/ansible\-collections/community\.general/pull/10026)\)\.
-* yaml callback plugin \- deprecate plugin in favor of result\_format\=yaml in plugin ansible\.bulitin\.default \([https\://github\.com/ansible\-collections/community\.general/pull/9456](https\://github\.com/ansible\-collections/community\.general/pull/9456)\)\.
-* yaml callback plugin \- the YAML callback plugin was deprecated for removal in community\.general 13\.0\.0\. Since it needs to use ansible\-core internals since ansible\-core 2\.19 that are changing a lot\, we will remove this plugin already from community\.general 12\.0\.0 to ease the maintenance burden \([https\://github\.com/ansible\-collections/community\.general/pull/10213](https\://github\.com/ansible\-collections/community\.general/pull/10213)\)\.
-
-
-#### vyos\.vyos
-
-* vyos\_bgp\_global \- no\_ipv4\_unicast \- deprecated for use with VyOS 1\.4\+\, use ipv4\_unicast instead
-* vyos\_firewall\_interfaces \- deprecated for use with VyOS 1\.4\+\, firewalls are no longer connected directly to interfaces\. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow\, interface\, or zone\.
-* vyos\_lldp\_global \- address is deprecated\, use addresses instead\. To be removed in 7\.0\.0\.
-* vyos\_logging\_global \- protocol is deprecated for 1\.4 and later\, use facility instead\. To be removed in next major version where supprot for 1\.3 is removed
-
-
-### Removed Features \(previously deprecated\)
-
-* The cisco\.ise collection was considered unmaintained and has been removed from Ansible 12 \([https\://forum\.ansible\.com/t/43367](https\://forum\.ansible\.com/t/43367)\)\.
- Users can still install this collection with ansible\-galaxy collection install cisco\.ise\.
-
-
-#### community\.general
-
-* Dropped support for ansible\-core 2\.15\. The collection now requires ansible\-core 2\.16 or newer\. This means that on the controller\, Python 3\.10\+ is required\. On the target side\, Python 2\.7 and Python 3\.6\+ are supported \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\, [https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\.
-* The Proxmox content \(modules and plugins\) has been moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. Since community\.general 11\.0\.0\, these modules and plugins have been replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with ansible\-galaxy collection install community\.proxmox\, or by installing a new enough version of the Ansible community package\. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages \([https\://github\.com/ansible\-collections/community\.general/pull/10110](https\://github\.com/ansible\-collections/community\.general/pull/10110)\)\.
-* apt\_rpm \- the present and installed states are no longer equivalent to latest\, but to present\_not\_latest \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* clc\_\* modules and doc fragment \- the modules were removed since CenturyLink Cloud services went EOL in September 2023 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* django\_manage \- the ack\_venv\_creation\_deprecation option has been removed\. It had no effect anymore anyway \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* git\_config \- it is no longer allowed to use state\=present with no value to read the config value\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* git\_config \- the list\_all option has been removed\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* hipchat \- the module was removed since the hipchat service has been discontinued and the self\-hosted variant has been End of Life since 2020 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* manifold lookup plugin \- the plugin was removed since the company was acquired in 2021 and service was ceased afterwards \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* mh\.mixins\.deps module utils \- this module utils has been removed\. Use the deps module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* mh\.mixins\.vars module utils \- this module utils has been removed\. Use VarDict from the vardict module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* mh\.module\_helper module utils \- AnsibleModule and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* mh\.module\_helper module utils \- VarDict is now imported from the vardict module utils and no longer from the removed mh\.mixins\.vars module utils \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* mh\.module\_helper module utils \- the attributes use\_old\_vardict and mute\_vardict\_deprecation from ModuleHelper have been removed\. We suggest to remove them from your modules if you no longer support community\.general \< 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* module\_helper module utils \- StateMixin\, DependencyCtxMgr\, VarMeta\, VarDict\, and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* pipx \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\.
-* pipx\_info \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\.
-* profitbrick\* modules \- the modules were removed since the supporting library is unsupported since 2021 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* redfish\_utils module utils \- the \_init\_session method has been removed \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-* stackpath\_compute inventory plugin \- the plugin was removed since the company and the service were sunset in June 2024 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
-
-
-### Security Fixes
-
-
-#### community\.general
-
-* keycloak\_authentication \- API calls did not properly set the priority during update resulting in incorrectly sorted authentication flows\. This apparently only affects Keycloak 25 or newer \([https\://github\.com/ansible\-collections/community\.general/pull/9263](https\://github\.com/ansible\-collections/community\.general/pull/9263)\)\.
-* keycloak\_client \- Sanitize saml\.encryption\.private\.key so it does not show in the logs \([https\://github\.com/ansible\-collections/community\.general/pull/9621](https\://github\.com/ansible\-collections/community\.general/pull/9621)\)\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* ansible\-test \- Fix Python relative import resolution from \_\_init\_\_\.py files when using change detection\.
-* callback plugins \- A more descriptive error is now raised if the stdout callback plugin cannot be loaded\.
-* callback plugins \- Callback plugins that do not extend ansible\.plugins\.callback\.CallbackBase will fail to load with a warning\. If the plugin is used as the stdout callback plugin\, this will also be a fatal error\.
-* callback plugins \- Removed unused methods \- runner\_on\_no\_hosts\, playbook\_on\_setup\, playbook\_on\_import\_for\_host\, playbook\_on\_not\_import\_for\_host\, v2\_playbook\_on\_cleanup\_task\_start\, v2\_playbook\_on\_import\_for\_host\, v2\_playbook\_on\_not\_import\_for\_host\.
-* callback plugins \- The stdout callback plugin is no longer called twice if it is also in the list of additional callback plugins\.
-* password lookup \- fix acquiring the lock when human\-readable FileExistsError error message is not English\.
-* plugin loader \- A warning is now emitted for any plugin which fails to load due to a missing base class\.
-* variables \- Added Jinja scalar singletons \(true\, false\, none\) to invalid Ansible variable name detection\. Previously\, variables with these names could be assigned without error\, but could not be resolved\.
-
-
-#### community\.crypto
-
-* acme\_account \- make work with CAs that do not accept any account request without External Account Binding data \([https\://github\.com/ansible\-collections/community\.crypto/issues/918](https\://github\.com/ansible\-collections/community\.crypto/issues/918)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/919](https\://github\.com/ansible\-collections/community\.crypto/pull/919)\)\.
-* openssl\_csr\, openssl\_csr\_pipe \- avoid accessing internal members of cryptography\'s KeyUsage extension object \([https\://github\.com/ansible\-collections/community\.crypto/pull/910](https\://github\.com/ansible\-collections/community\.crypto/pull/910)\)\.
-
-
-#### community\.dns
-
-* Update Public Suffix List\.
-* lookup and lookup\_as\_dict lookup plugins \- removed type ALL\, which never worked \([https\://github\.com/ansible\-collections/community\.dns/issues/264](https\://github\.com/ansible\-collections/community\.dns/issues/264)\, [https\://github\.com/ansible\-collections/community\.dns/pull/265](https\://github\.com/ansible\-collections/community\.dns/pull/265)\)\.
-
-
-#### community\.general
-
-* apache2\_mod\_proxy \- make compatible with Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\.
-* apache2\_mod\_proxy \- passing the cluster\'s page as referer for the member\'s pages\. This makes the module actually work again for halfway modern Apache versions\. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\.
-* cloudflare\_dns \- fix crash when deleting a DNS record or when updating a record with solo\=true \([https\://github\.com/ansible\-collections/community\.general/issues/9652](https\://github\.com/ansible\-collections/community\.general/issues/9652)\, [https\://github\.com/ansible\-collections/community\.general/pull/9649](https\://github\.com/ansible\-collections/community\.general/pull/9649)\)\.
-* cloudlare\_dns \- handle exhausted response stream in case of HTTP errors to show nice error message to the user \([https\://github\.com/ansible\-collections/community\.general/issues/9782](https\://github\.com/ansible\-collections/community\.general/issues/9782)\, [https\://github\.com/ansible\-collections/community\.general/pull/9818](https\://github\.com/ansible\-collections/community\.general/pull/9818)\)\.
-* cobbler\_system \- fix bug with Cobbler \>\= 3\.4\.0 caused by giving more than 2 positional arguments to CobblerXMLRPCInterface\.get\_system\_handle\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\)\.
-* cobbler\_system \- update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\, [https\://github\.com/ansible\-collections/community\.general/pull/10178](https\://github\.com/ansible\-collections/community\.general/pull/10178)\)\.
-* dependent look plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* dig lookup plugin \- correctly handle NoNameserver exception \([https\://github\.com/ansible\-collections/community\.general/pull/9363](https\://github\.com/ansible\-collections/community\.general/pull/9363)\, [https\://github\.com/ansible\-collections/community\.general/issues/9362](https\://github\.com/ansible\-collections/community\.general/issues/9362)\)\.
-* diy callback plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* dnf\_config\_manager \- fix hanging when prompting to import GPG keys \([https\://github\.com/ansible\-collections/community\.general/pull/9124](https\://github\.com/ansible\-collections/community\.general/pull/9124)\, [https\://github\.com/ansible\-collections/community\.general/issues/8830](https\://github\.com/ansible\-collections/community\.general/issues/8830)\)\.
-* dnf\_config\_manager \- forces locale to C before module starts\. If the locale was set to non\-English\, the output of the dnf config\-manager could not be parsed \([https\://github\.com/ansible\-collections/community\.general/pull/9157](https\://github\.com/ansible\-collections/community\.general/pull/9157)\, [https\://github\.com/ansible\-collections/community\.general/issues/9046](https\://github\.com/ansible\-collections/community\.general/issues/9046)\)\.
-* dnf\_versionlock \- add support for dnf5 \([https\://github\.com/ansible\-collections/community\.general/issues/9556](https\://github\.com/ansible\-collections/community\.general/issues/9556)\)\.
-* elasticsearch\_plugin \- fix ERROR\: D is not a recognized option issue when configuring proxy settings \([https\://github\.com/ansible\-collections/community\.general/pull/9774](https\://github\.com/ansible\-collections/community\.general/pull/9774)\, [https\://github\.com/ansible\-collections/community\.general/issues/9773](https\://github\.com/ansible\-collections/community\.general/issues/9773)\)\.
-* flatpak \- force the locale language to C when running the flatpak command \([https\://github\.com/ansible\-collections/community\.general/pull/9187](https\://github\.com/ansible\-collections/community\.general/pull/9187)\, [https\://github\.com/ansible\-collections/community\.general/issues/8883](https\://github\.com/ansible\-collections/community\.general/issues/8883)\)\.
-* gio\_mime \- fix command line when determining version of gio \([https\://github\.com/ansible\-collections/community\.general/pull/9171](https\://github\.com/ansible\-collections/community\.general/pull/9171)\, [https\://github\.com/ansible\-collections/community\.general/issues/9158](https\://github\.com/ansible\-collections/community\.general/issues/9158)\)\.
-* github\_deploy\_key \- check that key really exists on 422Â to avoid masking other errors \([https\://github\.com/ansible\-collections/community\.general/issues/6718](https\://github\.com/ansible\-collections/community\.general/issues/6718)\, [https\://github\.com/ansible\-collections/community\.general/pull/10011](https\://github\.com/ansible\-collections/community\.general/pull/10011)\)\.
-* github\_key \- in check mode\, a faulty call to \`datetime\.strftime\(\.\.\.\)\` was being made which generated an exception \([https\://github\.com/ansible\-collections/community\.general/issues/9185](https\://github\.com/ansible\-collections/community\.general/issues/9185)\)\.
-* gitlab\_group\_access\_token\, gitlab\_project\_access\_token \- fix handling of group and project access tokens for changes in GitLab 17\.10 \([https\://github\.com/ansible\-collections/community\.general/pull/10196](https\://github\.com/ansible\-collections/community\.general/pull/10196)\)\.
-* hashids and unicode\_normalize filter plugins \- avoid deprecated AnsibleFilterTypeError on ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/9992](https\://github\.com/ansible\-collections/community\.general/pull/9992)\)\.
-* homebrew \- emit a useful error message if brew info reports a package tap is null \([https\://github\.com/ansible\-collections/community\.general/pull/10013](https\://github\.com/ansible\-collections/community\.general/pull/10013)\, [https\://github\.com/ansible\-collections/community\.general/issues/10012](https\://github\.com/ansible\-collections/community\.general/issues/10012)\)\.
-* homebrew \- fix crash when package names include tap \([https\://github\.com/ansible\-collections/community\.general/issues/9777](https\://github\.com/ansible\-collections/community\.general/issues/9777)\, [https\://github\.com/ansible\-collections/community\.general/pull/9803](https\://github\.com/ansible\-collections/community\.general/pull/9803)\)\.
-* homebrew \- fix incorrect handling of aliased homebrew modules when the alias is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9255](https\://github\.com/ansible\-collections/community\.general/pull/9255)\, [https\://github\.com/ansible\-collections/community\.general/issues/9240](https\://github\.com/ansible\-collections/community\.general/issues/9240)\)\.
-* homebrew \- fix incorrect handling of homebrew modules when a tap is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9546](https\://github\.com/ansible\-collections/community\.general/pull/9546)\, [https\://github\.com/ansible\-collections/community\.general/issues/9533](https\://github\.com/ansible\-collections/community\.general/issues/9533)\)\.
-* homebrew \- make package name parsing more resilient \([https\://github\.com/ansible\-collections/community\.general/pull/9665](https\://github\.com/ansible\-collections/community\.general/pull/9665)\, [https\://github\.com/ansible\-collections/community\.general/issues/9641](https\://github\.com/ansible\-collections/community\.general/issues/9641)\)\.
-* homebrew\_cask \- allow \+ symbol in Homebrew cask name validation regex \([https\://github\.com/ansible\-collections/community\.general/pull/9128](https\://github\.com/ansible\-collections/community\.general/pull/9128)\)\.
-* homebrew\_cask \- handle unusual brew version strings \([https\://github\.com/ansible\-collections/community\.general/issues/8432](https\://github\.com/ansible\-collections/community\.general/issues/8432)\, [https\://github\.com/ansible\-collections/community\.general/pull/9881](https\://github\.com/ansible\-collections/community\.general/pull/9881)\)\.
-* htpasswd \- report changes when file permissions are adjusted \([https\://github\.com/ansible\-collections/community\.general/issues/9485](https\://github\.com/ansible\-collections/community\.general/issues/9485)\, [https\://github\.com/ansible\-collections/community\.general/pull/9490](https\://github\.com/ansible\-collections/community\.general/pull/9490)\)\.
-* iocage inventory plugin \- the plugin parses the IP4 tab of the jails list and put the elements into the new variable iocage\_ip4\_dict\. In multiple interface format the variable iocage\_ip4 keeps the comma\-separated list of IP4 \([https\://github\.com/ansible\-collections/community\.general/issues/9538](https\://github\.com/ansible\-collections/community\.general/issues/9538)\)\.
-* ipa\_host \- module revoked existing host certificates even if user\_certificate was not given \([https\://github\.com/ansible\-collections/community\.general/pull/9694](https\://github\.com/ansible\-collections/community\.general/pull/9694)\)\.
-* java\_cert \- the module no longer fails if the optional parameters pkcs12\_alias and cert\_alias are not provided \([https\://github\.com/ansible\-collections/community\.general/pull/9970](https\://github\.com/ansible\-collections/community\.general/pull/9970)\)\.
-* kdeconfig \- allow option values beginning with a dash \([https\://github\.com/ansible\-collections/community\.general/issues/10127](https\://github\.com/ansible\-collections/community\.general/issues/10127)\, [https\://github\.com/ansible\-collections/community\.general/pull/10128](https\://github\.com/ansible\-collections/community\.general/pull/10128)\)\.
-* keycloak \- update more than 10 sub\-groups \([https\://github\.com/ansible\-collections/community\.general/issues/9690](https\://github\.com/ansible\-collections/community\.general/issues/9690)\, [https\://github\.com/ansible\-collections/community\.general/pull/9692](https\://github\.com/ansible\-collections/community\.general/pull/9692)\)\.
-* keycloak module utils \- replaces missing return in get\_role\_composites method which caused it to return None instead of composite roles \([https\://github\.com/ansible\-collections/community\.general/issues/9678](https\://github\.com/ansible\-collections/community\.general/issues/9678)\, [https\://github\.com/ansible\-collections/community\.general/pull/9691](https\://github\.com/ansible\-collections/community\.general/pull/9691)\)\.
-* keycloak\_authentication \- fix authentification config duplication for Keycloak \< 26\.2\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9987](https\://github\.com/ansible\-collections/community\.general/pull/9987)\)\.
-* keycloak\_client \- fix and improve existing tests\. The module showed a diff without actual changes\, solved by improving the normalise\_cr\(\) function \([https\://github\.com/ansible\-collections/community\.general/pull/9644](https\://github\.com/ansible\-collections/community\.general/pull/9644)\)\.
-* keycloak\_client \- fix diff by removing code that turns the attributes dict which contains additional settings into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9077](https\://github\.com/ansible\-collections/community\.general/pull/9077)\)\.
-* keycloak\_client \- fix the idempotency regression by normalizing the Keycloak response for after\_client \([https\://github\.com/ansible\-collections/community\.general/issues/9905](https\://github\.com/ansible\-collections/community\.general/issues/9905)\, [https\://github\.com/ansible\-collections/community\.general/pull/9976](https\://github\.com/ansible\-collections/community\.general/pull/9976)\)\.
-* keycloak\_client \- in check mode\, detect whether the lists in before client \(for example redirect URI list\) contain items that the lists in the desired client do not contain \([https\://github\.com/ansible\-collections/community\.general/pull/9739](https\://github\.com/ansible\-collections/community\.general/pull/9739)\)\.
-* keycloak\_clientscope \- fix diff and end\_state by removing the code that turns the attributes dict\, which contains additional config items\, into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9082](https\://github\.com/ansible\-collections/community\.general/pull/9082)\)\.
-* keycloak\_clientscope\_type \- sort the default and optional clientscope lists to improve the diff \([https\://github\.com/ansible\-collections/community\.general/pull/9202](https\://github\.com/ansible\-collections/community\.general/pull/9202)\)\.
-* keycloak\_user\_rolemapping \- fix \-\-diff mode \([https\://github\.com/ansible\-collections/community\.general/issues/10067](https\://github\.com/ansible\-collections/community\.general/issues/10067)\, [https\://github\.com/ansible\-collections/community\.general/pull/10075](https\://github\.com/ansible\-collections/community\.general/pull/10075)\)\.
-* lldp \- fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\.
-* nmcli \- enable changing only the order of DNS servers or search suffixes \([https\://github\.com/ansible\-collections/community\.general/issues/8724](https\://github\.com/ansible\-collections/community\.general/issues/8724)\, [https\://github\.com/ansible\-collections/community\.general/pull/9880](https\://github\.com/ansible\-collections/community\.general/pull/9880)\)\.
-* onepassword\_doc lookup plugin \- ensure that 1Password Connect support also works for this plugin \([https\://github\.com/ansible\-collections/community\.general/pull/9625](https\://github\.com/ansible\-collections/community\.general/pull/9625)\)\.
-* passwordstore lookup plugin \- fix subkey creation even when create\=false \([https\://github\.com/ansible\-collections/community\.general/issues/9105](https\://github\.com/ansible\-collections/community\.general/issues/9105)\, [https\://github\.com/ansible\-collections/community\.general/pull/9106](https\://github\.com/ansible\-collections/community\.general/pull/9106)\)\.
-* pickle cache plugin \- avoid extra JSON serialization with ansible\-core \>\= 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10136](https\://github\.com/ansible\-collections/community\.general/pull/10136)\)\.
-* pipx \- honor option global when state\=latest \([https\://github\.com/ansible\-collections/community\.general/pull/9623](https\://github\.com/ansible\-collections/community\.general/pull/9623)\)\.
-* qubes connection plugin \- fix the printing of debug information \([https\://github\.com/ansible\-collections/community\.general/pull/9334](https\://github\.com/ansible\-collections/community\.general/pull/9334)\)\.
-* redfish\_utils module utils \- Fix VerifyBiosAttributes command on multi system resource nodes \([https\://github\.com/ansible\-collections/community\.general/pull/9234](https\://github\.com/ansible\-collections/community\.general/pull/9234)\)\.
-* redfish\_utils module utils \- remove undocumented default applytime \([https\://github\.com/ansible\-collections/community\.general/pull/9114](https\://github\.com/ansible\-collections/community\.general/pull/9114)\)\.
-* redhat\_subscription \- do not try to unsubscribe \(i\.e\. remove subscriptions\)
- when unregistering a system\: newer versions of subscription\-manager\, as
- available in EL 10 and Fedora 41\+\, do not support entitlements anymore\, and
- thus unsubscribing will fail
- \([https\://github\.com/ansible\-collections/community\.general/pull/9578](https\://github\.com/ansible\-collections/community\.general/pull/9578)\)\.
-* redhat\_subscription \- use the \"enable\_content\" option \(when available\) when
- registering using D\-Bus\, to ensure that subscription\-manager enables the
- content on registration\; this is particular important on EL 10\+ and Fedora
- 41\+
- \([https\://github\.com/ansible\-collections/community\.general/pull/9778](https\://github\.com/ansible\-collections/community\.general/pull/9778)\)\.
-* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* rundeck\_acl\_policy \- ensure that project ACLs are sent to the correct endpoint \([https\://github\.com/ansible\-collections/community\.general/pull/10097](https\://github\.com/ansible\-collections/community\.general/pull/10097)\)\.
-* slack \- fail if Slack API response is not OK with error message \([https\://github\.com/ansible\-collections/community\.general/pull/9198](https\://github\.com/ansible\-collections/community\.general/pull/9198)\)\.
-* sudoers \- display stdout and stderr raised while failed validation \([https\://github\.com/ansible\-collections/community\.general/issues/9674](https\://github\.com/ansible\-collections/community\.general/issues/9674)\, [https\://github\.com/ansible\-collections/community\.general/pull/9871](https\://github\.com/ansible\-collections/community\.general/pull/9871)\)\.
-* sysrc \- no longer always reporting changed\=true when state\=absent\. This fixes the method exists\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/10004](https\://github\.com/ansible\-collections/community\.general/issues/10004)\, [https\://github\.com/ansible\-collections/community\.general/pull/10005](https\://github\.com/ansible\-collections/community\.general/pull/10005)\)\.
-* sysrc \- split the output of sysrc \-e \-a on the first \= only \([https\://github\.com/ansible\-collections/community\.general/issues/10120](https\://github\.com/ansible\-collections/community\.general/issues/10120)\, [https\://github\.com/ansible\-collections/community\.general/pull/10121](https\://github\.com/ansible\-collections/community\.general/pull/10121)\)\.
-* xml \- ensure file descriptor is closed \([https\://github\.com/ansible\-collections/community\.general/pull/9695](https\://github\.com/ansible\-collections/community\.general/pull/9695)\)\.
-* yaml callback plugin \- adjust to latest changes in ansible\-core devel \([https\://github\.com/ansible\-collections/community\.general/pull/10212](https\://github\.com/ansible\-collections/community\.general/pull/10212)\)\.
-* yaml callback plugin \- use ansible\-core internals to avoid breakage with Data Tagging \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* yaml callback plugin \- when using ansible\-core 2\.19\.0b2 or newer\, uses a new utility provided by ansible\-core\. This allows us to remove all hacks and vendored code that was part of the plugin for ansible\-core versions with Data Tagging so far \([https\://github\.com/ansible\-collections/community\.general/pull/10242](https\://github\.com/ansible\-collections/community\.general/pull/10242)\)\.
-* zfs \- fix handling of multi\-line values of user\-defined ZFS properties \([https\://github\.com/ansible\-collections/community\.general/pull/6264](https\://github\.com/ansible\-collections/community\.general/pull/6264)\)\.
-* zfs\_facts \- parameter type now accepts multple values as documented \([https\://github\.com/ansible\-collections/community\.general/issues/5909](https\://github\.com/ansible\-collections/community\.general/issues/5909)\, [https\://github\.com/ansible\-collections/community\.general/pull/9697](https\://github\.com/ansible\-collections/community\.general/pull/9697)\)\.
-* zypper\_repository \- make compatible with Python 3\.12\+ \([https\://github\.com/ansible\-collections/community\.general/issues/10222](https\://github\.com/ansible\-collections/community\.general/issues/10222)\, [https\://github\.com/ansible\-collections/community\.general/pull/10223](https\://github\.com/ansible\-collections/community\.general/pull/10223)\)\.
-* zypper\_repository \- use metalink attribute to identify repositories without \ element \([https\://github\.com/ansible\-collections/community\.general/issues/10224](https\://github\.com/ansible\-collections/community\.general/issues/10224)\, [https\://github\.com/ansible\-collections/community\.general/pull/10225](https\://github\.com/ansible\-collections/community\.general/pull/10225)\)\.
-
-
-#### community\.vmware
-
-* Fix issues with pyvmomi 9\.0\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/issues/2414](https\://github\.com/ansible\-collections/community\.vmware/issues/2414)\)\.
-* vmware\_vmotion \- Fix issue with same resource pool name on different clusters \([https\://github\.com/ansible\-collections/community\.vmware/issues/1719](https\://github\.com/ansible\-collections/community\.vmware/issues/1719)\)\.
-
-
-#### fortinet\.fortimanager
-
-* Added \"gather\_facts\" to all example playbooks\.
-* Fixed a BUG that occurred when username/password and access token were used at the same time\.
-
-
-#### netapp\.storagegrid
-
-* na\_sg\_org\_user \- fix where existing users with no groups attached were not getting any groups added\.
-
-
-#### purestorage\.flasharray
-
-* purefa\_ds \- Fixed issue with updaing a LDAP configuration fails with a list error\.
-* purefa\_proxy \- Fixed issue with incorrect string comparison
-* purefa\_volume \- Fixed issue for error on volume delete w/o eradicate
-
-
-#### vmware\.vmware
-
-* content\_template \- Fix error when creating template from VM and not specifying certain non\-critical placement options
-* content\_template \- Replace non\-existent method used when handling api errors
-* pyvmomi \- Replace deprecated JSON encoder with new one from pyvmomi package \([https\://github\.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG\.md\?plain\=1\#L72](https\://github\.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG\.md\?plain\=1\#L72)\)
-
-
-#### vyos\.vyos
-
-* vyos\_config \- Fix change detection for recent Vyos versions
-* vyos\_firewall\_global \- Fix removing last member of a firewall group\.
-* vyos\_firewall\_global \- Fixed ipv6 route\-redirects and tests
-* vyos\_firewall\_global \- Fixed parsing of global\-options \(1\.4\+\)
-* vyos\_firewall\_global \- Fixed state\-policy deletion \(partial and full\)
-* vyos\_firewall\_global \- fixed behavior for stanzas processing by facts in 1\.4\+ \(e\.g\. present/absent stanza vs enable/disable\)
-* vyos\_firewall\_global \- fixed the facts parsers to include state\-policies\, redirect
-* vyos\_firewall\_rules \- Allow deleting of firewall description\.
-* vyos\_firewall\_rules \- Fix limit parameter processing
-* vyos\_firewall\_rules \- fixed behavior for log\, disable attributes
-* vyos\_firewall\_rules \- fixed behavior for override and replaced states
-* vyos\_interfaces \- fixed bug where \'replace\' would delete an active disable and not reinstate it
-* vyos\_interfaces \- fixed over\-zealous handling of disable\, which could catch other interface items that are disabled\.
-* vyos\_l3\_interfaces \- fix delete in interfaces to remove vif completely if in affected interface
-* vyos\_l3\_interfaces \- fix override in interfaces to remove vif completely if not present in new config
-* vyos\_l3\_interfaces \- fix replace in interfaces to remove vif completely if not present in new config
-* vyos\_logging\_global \- Fixed v1\.3 and before when protocol and level were set for the same host
-* vyos\_ospf\_interfaces \- fixed get\_config to cater for unordered command lists in 1\.4\+
-* vyos\_ospfv2 \- passive\-interface processing for 1\.3\- and 1\.4\+
-* vyos\_ospfv3 \- added support for adding interfaces to areas
-* vyos\_static routes \- fixed the facts\, argspecs\, config to include interface\-routes
-* vyos\_user \- fix handling of full\-name in parser and module
-
-
-### Known Issues
-
-
-#### community\.general
-
-* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- note that ansible\-core\'s Data Tagging feature implements new aliases\, such as \_AnsibleTaggedStr for str\, \_AnsibleTaggedInt for int\, and \_AnsibleTaggedFloat for float \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-
-
-#### vyos\.vyos
-
-* existing code for 1\.3 facility protocol and facility level are not compatible\, only one will be set and level is the priority\.
-
-
-### New Plugins
-
-
-#### Callback
-
-* community\.general\.print\_task \- Prints playbook task snippet to job output\.
-
-
-#### Connection
-
-* community\.general\.wsl \- Run tasks in WSL distribution using wsl\.exe CLI via SSH\.
-
-
-#### Filter
-
-* community\.general\.accumulate \- Produce a list of accumulated sums of the input list contents\.
-* community\.general\.json\_diff \- Create a JSON patch by comparing two JSON files\.
-* community\.general\.json\_patch \- Apply a JSON\-Patch \(RFC 6902\) operation to an object\.
-* community\.general\.json\_patch\_recipe \- Apply JSON\-Patch \(RFC 6902\) operations to an object\.
-* community\.general\.to\_prettytable \- Format a list of dictionaries as an ASCII table\.
-
-
-#### Inventory
-
-* community\.general\.iocage \- iocage inventory source\.
-
-
-#### Lookup
-
-* community\.general\.onepassword\_ssh\_key \- Fetch SSH keys stored in 1Password\.
-
-
-### New Modules
-
-
-#### community\.general
-
-* community\.general\.android\_sdk \- Manages Android SDK packages\.
-* community\.general\.decompress \- Decompresses compressed files\.
-* community\.general\.ldap\_inc \- Use the Modify\-Increment LDAP V3 feature to increment an attribute value\.
-* community\.general\.lvm\_pv \- Manage LVM Physical Volumes\.
-* community\.general\.pacemaker\_resource \- Manage pacemaker resources\.
-* community\.general\.systemd\_creds\_decrypt \- C\(systemd\)\'s C\(systemd\-creds decrypt\) plugin\.
-* community\.general\.systemd\_creds\_encrypt \- C\(systemd\)\'s C\(systemd\-creds encrypt\) plugin\.
-* community\.general\.systemd\_info \- Gather C\(systemd\) unit info\.
-* community\.general\.xdg\_mime \- Set default handler for MIME types\, for applications using XDG tools\.
-* community\.general\.zpool \- Manage ZFS zpools\.
-
-
-#### fortinet\.fortimanager
-
-* fortinet\.fortimanager\.fmgr\_dlp\_exactdatamatch \- Configure exact\-data\-match template used by DLP scan\.
-* fortinet\.fortimanager\.fmgr\_dlp\_exactdatamatch\_columns \- DLP exact\-data\-match column types\.
-* fortinet\.fortimanager\.fmgr\_dlp\_label \- Configure labels used by DLP blocking\.
-* fortinet\.fortimanager\.fmgr\_dlp\_label\_entries \- DLP label entries\.
-* fortinet\.fortimanager\.fmgr\_extensioncontroller\_extendervap \- FortiExtender wifi vap configuration\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension \- Configure Internet Services Extension\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry \- Disable entries in the Internet Service database\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_ip6range \- IPv6 ranges in the disable entry\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_iprange \- IPv4 ranges in the disable entry\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_portrange \- Port ranges in the disable entry\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_entry \- Entries added to the Internet Service extension database\.
-* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_entry\_portrange \- Port ranges in the custom entry\.
-* fortinet\.fortimanager\.fmgr\_fmupdate\_fgdsetting \- Cli fmupdate fgd setting
-* fortinet\.fortimanager\.fmgr\_fmupdate\_fgdsetting\_serveroverride \- Cli fmupdate fgd setting server override
-* fortinet\.fortimanager\.fmgr\_gtp\_rattimeoutprofile \- RAT timeout profile
-* fortinet\.fortimanager\.fmgr\_icap\_servergroup \- Configure an ICAP server group consisting of multiple forward servers\.
-* fortinet\.fortimanager\.fmgr\_icap\_servergroup\_serverlist \- Add ICAP servers to a list to form a server group\.
-* fortinet\.fortimanager\.fmgr\_system\_log\_deviceselector \- Accept/reject devices matching specified filter types\.
-* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_agentprofile \- Configure FortiTelemetry agent profiles\.
-* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_application\_predefine \- Configure FortiTelemetry predefined applications\.
-* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile \- Configure FortiTelemetry profiles\.
-* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile\_application \- Configure applications\.
-* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile\_application\_sla \- Service level agreement
-* fortinet\.fortimanager\.fmgr\_user\_scim \- Configure SCIM client entries\.
-* fortinet\.fortimanager\.fmgr\_wireless\_vap\_ip6prefixlist \- Wireless controller vap ip6 prefix list
-
-
-#### netapp\.storagegrid
-
-* netapp\.storagegrid\.na\_sg\_grid\_alert\_receiver \- NetApp StorageGRID manage alert receiver\.
-* netapp\.storagegrid\.na\_sg\_grid\_audit\_destination \- Configure audit log destinations on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_grid\_autosupport \- Configure autosupport on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_grid\_domain\_name \- Configure endpoint domain name on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_grid\_hotfix \- Apply hotfixes on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_grid\_proxy\_settings \- NetApp StorageGRID manage proxy settings for the grid\.
-* netapp\.storagegrid\.na\_sg\_grid\_snmp \- Configure SNMP agent on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_grid\_tenant \- NetApp StorageGRID manage tenant accounts\.
-* netapp\.storagegrid\.na\_sg\_grid\_vlan\_interface \- Configure VLAN interface on StorageGRID\.
-* netapp\.storagegrid\.na\_sg\_org\_bucket \- Manage buckets on StorageGRID\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.windows \(still version 3\.1\.0\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.ios \(still version 10\.1\.0\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.meraki \(still version 2\.21\.3\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.1\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.docker \(still version 4\.6\.1\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.hrobot \(still version 2\.4\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.4\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxmox \(still version 1\.0\.1\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.5\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.windows \(still version 3\.0\.0\)
-* community\.zabbix \(still version 4\.0\.0\)
-* containers\.podman \(still version 1\.16\.4\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.1\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.36\.0\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* hetzner\.hcloud \(still version 5\.1\.0\)
-* hitachivantara\.vspone\_block \(still version 3\.5\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubevirt\.core \(still version 2\.2\.3\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.3\.0\)
-* theforeman\.foreman \(still version 5\.4\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a6
-
-- Release Summary
-- Added Collections
-- Ansible\-core
-- Changed Collections
-- Minor Changes
- - Ansible\-core
- - community\.vmware
- - community\.zabbix
- - hetzner\.hcloud
- - hitachivantara\.vspone\_block
- - telekom\_mms\.icinga\_director
- - theforeman\.foreman
- - vmware\.vmware
-- Breaking Changes / Porting Guide
- - community\.zabbix
-- Deprecated Features
- - community\.vmware
-- Bugfixes
- - Ansible\-core
- - cisco\.meraki
- - community\.docker
- - community\.hrobot
- - community\.vmware
- - community\.zabbix
- - containers\.podman
- - hetzner\.hcloud
- - hitachivantara\.vspone\_block
- - telekom\_mms\.icinga\_director
- - theforeman\.foreman
- - vmware\.vmware
-- New Modules
- - community\.hrobot
- - hitachivantara\.vspone\_block
- - telekom\_mms\.icinga\_director
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-06\-12
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Added Collections
-
-* community\.proxmox \(version 1\.0\.1\)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a6 contains ansible\-core version 2\.19\.0b6\.
-This is a newer version than version 2\.19\.0b5 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a5 | Ansible 12.0.0a6 | Notes |
-| --------------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| cisco.meraki | 2.21.2 | 2.21.3 | |
-| community.docker | 4.6.0 | 4.6.1 | |
-| community.hrobot | 2.3.0 | 2.4.0 | |
-| community.proxmox | | 1.0.1 | The collection was added to Ansible |
-| community.vmware | 5.6.0 | 5.7.0 | |
-| community.zabbix | 3.3.0 | 4.0.0 | |
-| containers.podman | 1.16.3 | 1.16.4 | |
-| hetzner.hcloud | 5.0.1 | 5.1.0 | |
-| hitachivantara.vspone_block | 3.4.2 | 3.5.0 | |
-| kubevirt.core | 2.2.2 | 2.2.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| telekom_mms.icinga_director | 2.2.2 | 2.3.0 | |
-| theforeman.foreman | 5.3.0 | 5.4.0 | |
-| vmware.vmware | 2.0.1 | 2.1.0 | |
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* ansiballz \- Added an experimental AnsiballZ extension for remote debugging\.
-* ansiballz \- Added support for AnsiballZ extensions\.
-* ansiballz \- Moved AnsiballZ code coverage support into an extension\.
-* ansiballz \- Refactored AnsiballZ and module respawn\.
-* template action and lookup plugin \- The value of the ansible\_managed variable \(if set\) will not be masked by the template action and lookup\. Previously\, the value calculated by the DEFAULT\_MANAGED\_STR configuration option always masked the variable value during plugin execution\, preventing runtime customization\.
-
-
-#### community\.vmware
-
-* vcenter\_extension \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-* vmware\_guest\_cross\_vc\_clone \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-* vmware\_guest\_instant\_clone \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-* vmware\_vm\_inventory \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-* vmware\_vsan\_cluster \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-
-
-#### community\.zabbix
-
-* Add zabbix\_http\_headers variable to allow specifying custom HTTP headers for Zabbix API calls\. This can be useful for authentication or other custom header requirements\.
-* Agent Role \- Removed Temporary Fix supporting RHEL9
-* You can now deploy these roles with inject\_facts\_as\_vars set to false
-* roles \- sane selinux defaults
-* roles/proxy \- optionally creation of proxy\_group and adding proxy to group \(Zabbix 7\.0\+\)
-* roles/zabbix\_agent \- Tweaking the windows service
-* zabbix\_action module \- properly configure discovery check condition in discovery action depending on information provided in discovery check value\.
-* zabbix\_configuration module \- Add this module to import configuration data\.
-* zabbix\_group \- add propagate parameter
-* zabbix\_item \- added support for item types zabbix\_agent\, snmp\_trap\, snmp\_agent\, ipmi\_agent and jmx\_agent
-* zabbix\_mediatype \- add Message template for services
-* zabbix\_proxy role \- fix Zabbix proxy with encryptuion registration
-* zabbix\_server role \- facilitate overriding database schemas loaded
-* zabbix\_server role \- facilitate overriding packages installed
-* zabbix\_service \- add better idempotency that checks every parameter for change and updates only the changed ones
-* zabbix\_templategroup \- add propagate parameter
-* zabbix\_token module \- Fix status value for zabbix Auth token\.
-* zabbix\_token module \- update the logic for update of Zabbix Token
-
-
-#### hetzner\.hcloud
-
-* ssh\_key \- Log a warning when the provided public key does not match one in the API\.
-* ssh\_key \- When the public key does not match the one in the API\, allow recreating the SSH Key in the API using the force\=true argument\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Added additional parameters primary\_volume\_device\_group\_name and secondary\_volume\_device\_group\_name to retrieve ShadowImage group details more quickly\.
-* Added new module hv\_external\_paritygroup\_facts to retrieve information about External Parity Group\.
-* Added new module hv\_external\_path\_group\_facts to retrieve information about External Path Group\.
-* Added new module hv\_external\_path\_group to manage External Path Groups\.
-* Added new module hv\_mp\_facts to retrieve MP Blades information from VSP storage models\.
-* Added support for begin\_secondary\_volume\_id and end\_secondary\_volume\_id to the remote replication modules \- hv\_gad\, hv\_hur\, hv\_truecopy\.
-* Added support for cloning a Thin Image pair to the hv\_snapshot module\.
-* Added support for cloning pairs in a specified snapshot group to the hv\_snapshot\_group module\.
-* Added support for deleting an iSCSI name of an external storage system that is registered to a port on the local storage system to the hv\_storage\_port module\.
-* Added support for deleting garbage data for all Thin Image pairs in a snapshot tree to the hv\_snapshot module\.
-* Added support for disconnecting from a volume on the external storage system to the hv\_external\_volume module\.
-* Added support for getting a list of LUs defined for a port on an external storage system to the hv\_storage\_port\_facts module\.
-* Added support for getting a list of ports on an external storage system to the hv\_storage\_port\_facts module\.
-* Added support for getting information about a specific LU path to the hv\_hostgroup\_facts module\.
-* Added support for getting information about a specific LU path to the hv\_iscsi\_target\_facts module\.
-* Added support for getting information about an iSCSI target of a port on an external storage system to the hv\_storage\_port\_facts module\.
-* Added support for getting the iSCSI name of an external storage system that is registered to a port on the local storage system to the hv\_storage\_port\_facts module\.
-* Added support for lun\_id for the secondary host group for TC and HUR\. For GAD\, lun\_id and enable\_preferred\_path are supported\.
-* Added support for performing a login test on an iSCSI target of an external storage system that is registered to a port on the local storage system to the hv\_storage\_port module\.
-* Added support for reclaiming the zero pages of a DP volume to the hv\_ldev module\.
-* Added support for registering an iSCSI name of an external storage system to a port on the local storage system to the hv\_storage\_port module\.
-* Added support for releasing the host reservation status by specifying a host group to the hv\_hostgroup module\.
-* Added support for releasing the host reservation status by specifying an iSCSI target to the hv\_iscsi\_target module\.
-* Added support for releasing the host reservation status by specifying the LU path to the hv\_hostgroup module\.
-* Added support for releasing the host reservation status by specifying the LU path to the hv\_iscsi\_target module\.
-* Added support for setting the nickname for a WWN to the hv\_hostgroup module\.
-* Added support for setting the nickname for an iSCSI name to the hv\_iscsi\_target module\.
-* Added support for setting the nickname of an IQN initiator to the hv\_iscsi\_target module\.
-* Added the ability to change the settings of the following parameters of an LDEV using the hv\_ldev module \- data\_reduction\_process\_mode\, is\_compression\_acceleration\_enabled\, is\_relocation\_enabled\,is\_full\_allocation\_enabled\, is\_alua\_enabled
-* Added the ability to format a volume to the hv\_ldev module\.
-* Added the ability to set the nick\_name of an iSCSI using the hv\_iscsi\_target module\.
-* Added the following new parameters to the output of hv\_ldev\_facts is\_compression\_acceleration\_enabled\, data\_reduction\_process\_mode\, is\_relocation\_enabled\, is\_full\_allocation\_enabled
-* Added the following parameters to creating an LDEV using the hv\_ldev module is\_parallel\_execution\_enabled\, start\_ldev\_id\, end\_ldev\_id\, external\_parity\_group\, is\_compression\_acceleration\_enabled
-* Enabled host group name together with port ID as identifiers for a host group\.
-* Enabled the iSCSI target name together with the port ID as identifiers for the iSCSI target\.if both ID and name are specified\, the ID is used together with the port ID as the iSCSI target identifier\.
-
-
-#### telekom\_mms\.icinga\_director
-
-* Add API timeout option for all modules \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/282](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/282)\)
-* Add support for IcingaDB in inventory plugin \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/274](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/274)\)
-* Icinga dependency modules implementation \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/272](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/272)\)
-
-
-#### theforeman\.foreman
-
-* repository \- add rhel\-10 to os version filter choices
-* repository \- add support for the retain\_package\_versions\_count parameter
-
-
-#### vmware\.vmware
-
-* moid\_from\_path \- Add lookup plugins to get an objects MOID \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/191](https\://github\.com/ansible\-collections/vmware\.vmware/issues/191)\)
-
-
-### Breaking Changes / Porting Guide
-
-
-#### community\.zabbix
-
-* All Roles \- Remove support for Ubuntu 20\.04
-* zabbix 6\.4 in roles is no longer supported
-
-
-### Deprecated Features
-
-
-#### community\.vmware
-
-* module\_utils\.vmware \- Deprecate connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
-* vmware\_guest\_powerstate \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2398](https\://github\.com/ansible\-collections/community\.vmware/pull/2398)\)\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* Fix templating tags on plays and roles\. \([https\://github\.com/ansible/ansible/issues/69903](https\://github\.com/ansible/ansible/issues/69903)\)
-* ansible\-doc will no longer ignore docs for modules without an extension \([https\://github\.com/ansible/ansible/issues/85279](https\://github\.com/ansible/ansible/issues/85279)\)\.
-* display \- Fix hang caused by early post\-fork writers to stdout/stderr \(e\.g\.\, pydevd\) encountering an unreleased fork lock\.
-* get\_url \- add a check to recognize incomplete data transfers\.
-* include\_tasks \- fix templating options when used as a handler \([https\://github\.com/ansible/ansible/pull/85015](https\://github\.com/ansible/ansible/pull/85015)\)\.
-* templating \- Fixed cases where template expression blocks halted prematurely when a Jinja macro invocation returned an undefined value\.
-* templating \- Jinja macros returned from a template expression can now be called from another template expression\.
-
-
-#### cisco\.meraki
-
-* cisco\.meraki\.devices\_cellular\_sims \- fix idempotency error\.
-
-
-#### community\.docker
-
-* docker\_compose\_v2 \- handle a \(potentially unintentional\) breaking change in Docker Compose 2\.37\.0\. Note that ContainerName is no longer part of the return value \([https\://github\.com/ansible\-collections/community\.docker/issues/1082](https\://github\.com/ansible\-collections/community\.docker/issues/1082)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1083](https\://github\.com/ansible\-collections/community\.docker/pull/1083)\)\.
-* docker\_container \- fix idempotency if command\=\[\] and command\_handling\=correct \([https\://github\.com/ansible\-collections/community\.docker/issues/1080](https\://github\.com/ansible\-collections/community\.docker/issues/1080)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1085](https\://github\.com/ansible\-collections/community\.docker/pull/1085)\)\.
-
-
-#### community\.hrobot
-
-* storagebox \- make sure that changes of boolean parameters are sent correctly to the Robot service \([https\://github\.com/ansible\-collections/community\.hrobot/issues/160](https\://github\.com/ansible\-collections/community\.hrobot/issues/160)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/161](https\://github\.com/ansible\-collections/community\.hrobot/pull/161)\)\.
-
-
-#### community\.vmware
-
-* vm\_device\_helper \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-* vmware\_guest\_controller \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-* vmware\_guest\_disk \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-* vmware\_host\_inventory \- New option enable\_backward\_compatability that can be set to false to work with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-* vmware\_target\_canonical\_info \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-* vmware\_vm\_inventory \- New option enable\_backward\_compatability that can be set to false to work with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
-
-
-#### community\.zabbix
-
-* host module \- Fixed idempotentcy related to changes in tag order\.
-* maintenace module \- Fixed idempotentcy related to changes in tag order\.
-* roles/zabbix\_agent \- Reading existing PSK files failed on Windows
-* roles/zabbix\_agent \- UserParameterDir get wrong value if var zabbix\_agent\_userparamaterdir is set
-* roles/zabbix\_repo \- debian architectures should map better for i386 and armhf
-* roles/zabbix\_repo \- debian/ubuntu arm64 repo url fixed for zabbix 7\.2
-* zabbix\_agent Role \- Add \_zabbix\_agent\_pluginsocket variable to override /tmp/agent\.plugin\.sock
-* zabbix\_service \- fix propagation\_value and propagation\_rule parameters
-* zabbix\_template\_info module \- Dump YAML formatted template data without date in Zabbix 7\.0 or higher\.
-* zabbix\_web role \- fix /etc/zabbix/web/zabbix\.conf\.php file mode\.
-
-
-#### containers\.podman
-
-* Document that sdnotify can be set to healthy
-* Fix CI for podman\_image\_info
-* Fix None values in LogOpt in Quadlet
-* Fix conditions in CI jobs
-* Fix idempotency for any podman secret driver
-* Fix idempotency for systemd keyword
-* Fix setuptools
-* Handle image arguments in podman\_container
-* Remove docker protocol when inspecting image
-* Set custom tmpfs idempotency
-* Use usedforsecurity for hashlib\.sha256 only in python version \>\=3\.9
-* correctly quote labels and environment variables for quadlets
-* doc \- podman\_secret \- fix indentation error in example
-* fix\(podman\_image\) \- correct intendation on \'loop\' keyword
-
-
-#### hetzner\.hcloud
-
-* All returned resource IDs are now integers instead of strings\.
-* server \- The placement\_group argument now correctly handles placement group IDs during updates\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Fixed output details of host\_group\_number and host\_group\_id in hv\_hg and \'hv\_hg\_facts\' modules to be consistent\.
-
-
-#### telekom\_mms\.icinga\_director
-
-* Bug\: dependency apply module raises error when using a variable for parent host or service \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/276](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/276)\)
-* Extend checks in diff as a workaround for type confusion with the Director API \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/278](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/278)\)
-* add \'groups\' parameter to task \'icinga\_user\.yml\' \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/284](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/284)\)
-
-
-#### theforeman\.foreman
-
-* content\_upload \- lower chunk size to 1MB to avoid generating too big requests \([https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1862](https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1862)\)
-* host \- ensure LCE and CV are always sent together when updating one of them
-
-
-#### vmware\.vmware
-
-* Make integration tests compatible with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/194](https\://github\.com/ansible\-collections/vmware\.vmware/issues/194)\)
-* cluster\_drs \- Fix error when non\-string advanced settings are applied \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/190](https\://github\.com/ansible\-collections/vmware\.vmware/issues/190)\)
-* cluster\_ha \- Fix error when non\-string advanced settings are applied \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/190](https\://github\.com/ansible\-collections/vmware\.vmware/issues/190)\)
-* tests/integration/vmware\_folder\_template\_from\_vm \- Fix tests for 2\.19
-
-
-### New Modules
-
-
-#### community\.hrobot
-
-* community\.hrobot\.storagebox\_snapshot\_info \- Query the snapshots for a storage box\.
-* community\.hrobot\.storagebox\_subaccount \- Create\, update\, or delete a subaccount for a storage box\.
-* community\.hrobot\.storagebox\_subaccount\_info \- Query the subaccounts for a storage box\.
-
-
-#### hitachivantara\.vspone\_block
-
-
-##### Vsp
-
-* hitachivantara\.vspone\_block\.hv\_external\_paritygroup\_facts \- Retrieves information about External Parity Group from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_external\_path\_group \- Manages External Path Groups in the Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_external\_path\_group\_facts \- Retrieves information about External Path Group from Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_mp\_facts \- Retrieves MP blades information from Hitachi VSP storage systems\.
-
-
-#### telekom\_mms\.icinga\_director
-
-* telekom\_mms\.icinga\_director\.icinga\_dependency\_apply \- Manage dependency apply rules in Icinga2
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 10\.1\.0\)
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 5\.1\.2\)
-* ansible\.windows \(still version 3\.1\.0\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.4\.0\)
-* check\_point\.mgmt \(still version 6\.4\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.dnac \(still version 6\.31\.3\)
-* cisco\.intersight \(still version 2\.1\.0\)
-* cisco\.ios \(still version 10\.1\.0\)
-* cisco\.iosxr \(still version 11\.1\.0\)
-* cisco\.ise \(still version 2\.10\.0\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.1\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 4\.2\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.5\.1\)
-* community\.aws \(still version 10\.0\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.crypto \(still version 3\.0\.0\-a2\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.4\)
-* community\.general \(still version 10\.7\.0\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.4\.0\)
-* community\.mongodb \(still version 1\.7\.10\)
-* community\.mysql \(still version 3\.14\.0\)
-* community\.okd \(still version 4\.0\.2\)
-* community\.postgresql \(still version 4\.1\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.5\.0\)
-* community\.routeros \(still version 3\.7\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.0\.5\)
-* community\.windows \(still version 3\.0\.0\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.1\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.36\.0\)
-* fortinet\.fortimanager \(still version 2\.9\.1\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.1\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.4\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 5\.3\.0\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.14\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.1\)
-* purestorage\.flasharray \(still version 1\.34\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a5
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - amazon\.aws
- - community\.aws
- - dellemc\.openmanage
-- Minor Changes
- - Ansible\-core
- - amazon\.aws
- - ansible\.windows
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.nxos
- - cloud\.common
- - cloudscale\_ch\.cloud
- - community\.crypto
- - community\.general
- - community\.libvirt
- - community\.mysql
- - community\.rabbitmq
- - community\.routeros
- - hetzner\.hcloud
- - hitachivantara\.vspone\_block
- - ibm\.storage\_virtualize
- - kubernetes\.core
- - ovirt\.ovirt
-- Breaking Changes / Porting Guide
- - amazon\.aws
- - community\.aws
- - community\.crypto
- - hetzner\.hcloud
-- Deprecated Features
- - Ansible\-core
- - cisco\.nxos
- - community\.aws
- - community\.crypto
- - community\.general
- - community\.postgresql
-- Removed Features \(previously deprecated\)
- - community\.crypto
-- Bugfixes
- - Ansible\-core
- - amazon\.aws
+ - Lookup
+- New Modules
+ - amazon\.aws
- ansible\.windows
- - check\_point\.mgmt
+ - check\_point\.mgmt
+ - cisco\.aci
- cisco\.ios
- cisco\.iosxr
- - cisco\.meraki
- - cloudscale\_ch\.cloud
- - community\.dns
- - community\.general
- - community\.mysql
- - community\.postgresql
- - community\.rabbitmq
- - f5networks\.f5\_modules
- - hitachivantara\.vspone\_block
- - ibm\.storage\_virtualize
- - kubernetes\.core
- - microsoft\.ad
- - ovirt\.ovirt
- - vmware\.vmware
-- Known Issues
- - dellemc\.openmanage
-- New Plugins
- - Callback
- - Filter
-- New Modules
+ - cisco\.mso
+ - cisco\.nxos
- cloudscale\_ch\.cloud
- - community\.general
- - community\.libvirt
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-06\-04
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a5 contains ansible\-core version 2\.19\.0b5\.
-This is a newer version than version 2\.19\.0b4 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a4 | Ansible 12.0.0a5 | Notes |
-| --------------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| amazon.aws | 9.5.0 | 10.1.0 | |
-| ansible.windows | 3.0.0 | 3.1.0 | |
-| azure.azcollection | 3.3.1 | 3.4.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| check_point.mgmt | 6.4.0 | 6.4.1 | |
-| cisco.intersight | 2.0.20 | 2.1.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| cisco.ios | 10.0.0 | 10.1.0 | |
-| cisco.iosxr | 11.0.0 | 11.1.0 | |
-| cisco.meraki | 2.21.1 | 2.21.2 | |
-| cisco.nxos | 10.0.0 | 10.1.0 | |
-| cloud.common | 4.0.0 | 4.2.0 | |
-| cloudscale_ch.cloud | 2.4.1 | 2.5.1 | |
-| community.aws | 9.3.0 | 10.0.0 | |
-| community.crypto | 2.26.1 | 3.0.0-a2 | |
-| community.dns | 3.2.3 | 3.2.4 | |
-| community.general | 10.6.0 | 10.7.0 | |
-| community.libvirt | 1.3.1 | 1.4.0 | |
-| community.mongodb | 1.7.9 | 1.7.10 | There are no changes recorded in the changelog. |
-| community.mysql | 3.13.0 | 3.14.0 | |
-| community.okd | 4.0.1 | 4.0.2 | |
-| community.postgresql | 4.0.0 | 4.1.0 | |
-| community.rabbitmq | 1.4.0 | 1.5.0 | |
-| community.routeros | 3.6.0 | 3.7.0 | |
-| dellemc.openmanage | 9.12.0 | 9.12.1 | |
-| f5networks.f5_modules | 1.35.0 | 1.36.0 | |
-| hetzner.hcloud | 4.3.0 | 5.0.1 | |
-| hitachivantara.vspone_block | 3.4.0 | 3.4.2 | |
-| ibm.storage_virtualize | 2.7.3 | 2.7.4 | |
-| kubernetes.core | 5.2.0 | 5.3.0 | |
-| kubevirt.core | 2.2.0 | 2.2.2 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| microsoft.ad | 1.9.0 | 1.9.1 | |
-| ovirt.ovirt | 3.2.0 | 3.2.1 | |
-| vmware.vmware | 2.0.0 | 2.0.1 | |
-
-
-### Major Changes
-
-
-#### amazon\.aws
-
-* amazon\.aws collection \- The amazon\.aws collection has dropped support for botocore\<1\.34\.0 and boto3\<1\.34\.0\. Most modules will continue to work with older versions of the AWS SDK\, however compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
-* amazon\.aws collection \- due to the AWS SDKs announcing the end of support for Python less than 3\.8 \([https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/](https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/)\)\, support for Python less than 3\.8 by this collection was deprecated in release 6\.0\.0 and removed in release 10\.0\.0\. \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
-* connection/aws\_ssm \- The module has been migrated from the community\.aws collection\. Playbooks using the Fully Qualified Collection Name for this module should be updated to use amazon\.aws\.aws\_ssm\.
-
-
-#### community\.aws
-
-* community\.aws collection \- The community\.aws collection has dropped support for botocore\<1\.34\.0 and boto3\<1\.34\.0\. Most modules will continue to work with older versions of the AWS SDK\, however compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
-
-
-#### dellemc\.openmanage
-
-* idrac\_attributes \- This module is enhanced to support iDRAC10\.
-* idrac\_attributes \- This role is enhanced to support iDRAC10\.
-* idrac\_lifecycle\_controller\_jobs \- This module is enhanced to support iDRAC10\.
-* idrac\_lifecycle\_controller\_status\_info \- This module is enhanced to support iDRAC10\.
-* idrac\_syslog \- This module is deprecated\.
-* idrac\_user\_info \- This module is enhanced to support iDRAC10\.
-* idrac\_virtual\_media \- This module is enhanced to support iDRAC10\.
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* Improved SUSE distribution detection in distribution\.py by parsing VARIANT\_ID from /etc/os\-release for identifying SLES\_SAP and SL\-Micro\. Falls back to /etc/products\.d/baseproduct symlink for older systems\.
-* Remove unnecessary shebang from the hostname module\.
-* Use importlib\.metadata\.version\(\) to detect Jinja version as jinja2\.\_\_version\_\_ is deprecated and will be removed in Jinja 3\.3\.
-* ansible\-doc \- Return dynamic stub when reporting on Jinja filters and tests not explicitly documented in Ansible
-* ansible\-doc \- Skip listing the internal ansible\.\_protomatter plugins unless explicitly requested
-* ansible\-test \- Add RHEL 10\.0 as a remote platform for testing\.
-* apt\_repository \- remove Python 2 support
-* csvfile lookup \- remove Python 2 compat
-* display \- Add help\_text and obj to Display\.error\_as\_warning\.
-* display \- Replace Windows newlines \(\\r\\n\) in display output with Unix newlines \(\\n\)\. This ensures proper display of strings sourced from Windows hosts in environments which treat \\r as \\n\, such as Azure Pipelines\.
-* facts \- add \"Linode\" for Linux VM in virtual facts
-* module\_utils \- Add AnsibleModule\.error\_as\_warning\.
-* module\_utils \- Add ansible\.module\_utils\.common\.warnings\.error\_as\_warning\.
-* module\_utils \- Add optional help\_text argument to AnsibleModule\.warn\.
-* ssh agent \- Added SSH\_AGENT\_EXECUTABLE config to allow override of ssh\-agent\.
-* ssh connection plugin \- Added verbosity config to decouple SSH debug output verbosity from Ansible verbosity\. Previously\, the Ansible verbosity value was always applied to the SSH client command\-line\, leading to excessively verbose output\. Set the ANSIBLE\_SSH\_VERBOSITY envvar or ansible\_ssh\_verbosity Ansible variable to a positive integer to increase SSH client verbosity\.
-* task timeout \- Specifying a timeout greater than 100\,000\,000 now results in an error\.
-* templating \- Added \_ANSIBLE\_TEMPLAR\_SANDBOX\_MODE\=allow\_unsafe\_attributes environment variable to disable Jinja template attribute sandbox\. \([https\://github\.com/ansible/ansible/issues/85202](https\://github\.com/ansible/ansible/issues/85202)\)
-* windows \- Added support for \#AnsibleRequires \-Wrapper to request a PowerShell module be run through the execution wrapper scripts without any module utils specified\.
-* windows \- Added support for running signed modules and scripts with a Windows host protected by Windows App Control/WDAC\. This is a tech preview and the interface may be subject to change\.
-* windows \- Script modules will preserve UTF\-8 encoding when executing the script\.
-
-
-#### amazon\.aws
-
-* inventory/aws\_ec2 \- Adding support for Route53 as hostname \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2580](https\://github\.com/ansible\-collections/amazon\.aws/pull/2580)\)\.
-* module\_utils\.s3 \- added \"501\" to the list of error codes thrown by S3 replacements \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2447](https\://github\.com/ansible\-collections/amazon\.aws/issues/2447)\)\.
-* module\_utils/s3 \- add initial ErrorHandler for S3 modules \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2060](https\://github\.com/ansible\-collections/amazon\.aws/pull/2060)\)\.
-* s3\_bucket \- migrated to use updated error handlers for better handling of non\-AWS errors \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
-
-
-#### ansible\.windows
-
-* setup \- add \"CloudStack KVM Hypervisor\" for Windows VM in virtual facts \([https\://github\.com/ansible\-collections/ansible\.windows/pull/785](https\://github\.com/ansible\-collections/ansible\.windows/pull/785)\)\.
-* setup \- added ansible\_product\_uuid to align with Python facts \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/789](https\://github\.com/ansible\-collections/ansible\.windows/issues/789)
-* win\_dns\_client \- add support for suffixsearchlist \([https\://github\.com/ansible\-collections/ansible\.windows/issues/656](https\://github\.com/ansible\-collections/ansible\.windows/issues/656)\)\.
-* win\_powershell \- Add support for running scripts on a Windows host with an active Windows Application Control policy in place\. Scripts that are unsigned will be run in Constrained Language Mode while scripts that are signed and trusted by the remote host\'s WDAC policy will be run in Full Language Mode\.
-* win\_powershell \- Added the path and remote\_src options which can be used to specify a local or remote PowerShell script to run\.
-* win\_shell \- Add support for running scripts on a Windows host with an active Windows Application Control policy in place\. Scripts will always run in Contrained Language Mode as they are executed in memory\, use the ansible\.windows\.win\_powershell module to run signed scripts in Full Language Mode on a WDAC enabled host\.
-
-
-#### cisco\.ios
-
-* ios\_hsrp\_interfaces \- Added support for cisco\.ios\.hsrp\_interfaces module \(standby commands\)\.
-
-
-#### cisco\.iosxr
-
-* Adds support for missing set route map attributes med and extcommunity
-* Enhanced CDP neighbor parsing to support updated output formats in IOS\-XR 7\.7\.21 and 7\.4\.1
-* Modified parse\_cdp\_ip to recognize \"IPv4 address\" in place of \"IP address\"
-* Updated parse\_cdp\_intf\_port to handle newline\-separated \"Interface\" and \"Port ID\" fields
-
-
-#### cisco\.nxos
-
-* hsrp\_interfaces \- Fixes and enhances capability of the module to deal with entire hsrp configuration under interfaces\.
-
-
-#### cloud\.common
-
-* Bump version of ansible\-lint to minimum 25\.1\.2
-* module\_utils/turbo/module \- Add support for 2\.19 by returning a json compatible arg obj instead of a dict if possible \([https\://github\.com/ansible\-collections/cloud\.common/pull/167](https\://github\.com/ansible\-collections/cloud\.common/pull/167)\)\.
-* module\_utils/turbo/server \- Add support for 2\.19 by making FakeStdin implement the IOBase ABC \([https\://github\.com/ansible\-collections/cloud\.common/pull/167](https\://github\.com/ansible\-collections/cloud\.common/pull/167)\)\.
-* plugins/module\_utils/turbo/server \- Update how the async loop is created to support python 3\.12\+ \([https\://github\.com/ansible\-collections/cloud\.common/pull/169](https\://github\.com/ansible\-collections/cloud\.common/pull/169)\)\.
-
-
-#### cloudscale\_ch\.cloud
-
-* Add ansible\-core 2\.19\+ compatibility
-* volume \- Add revert parameter\.
-
-
-#### community\.crypto
-
-* No longer provide cryptography\'s backend parameter\. This will break with cryptography \< 3\.1 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
-* On cryptography 36\.0\.0\+\, always use public\_bytes\(\) for X\.509 extension objects instead of using cryptography internals to obtain DER value of extension \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
-* Python code modernization\: add type hints and type checking \([https\://github\.com/ansible\-collections/community\.crypto/pull/885](https\://github\.com/ansible\-collections/community\.crypto/pull/885)\)\.
-* Python code modernization\: avoid unnecessary string conversion \([https\://github\.com/ansible\-collections/community\.crypto/pull/880](https\://github\.com/ansible\-collections/community\.crypto/pull/880)\)\.
-* Python code modernization\: avoid using six \([https\://github\.com/ansible\-collections/community\.crypto/pull/884](https\://github\.com/ansible\-collections/community\.crypto/pull/884)\)\.
-* Python code modernization\: remove Python 3 specific code \([https\://github\.com/ansible\-collections/community\.crypto/pull/877](https\://github\.com/ansible\-collections/community\.crypto/pull/877)\)\.
-* Python code modernization\: update \_\_future\_\_ imports\, remove Python 2 specific boilerplates \([https\://github\.com/ansible\-collections/community\.crypto/pull/876](https\://github\.com/ansible\-collections/community\.crypto/pull/876)\)\.
-* Python code modernization\: use unittest\.mock instead of ansible\_collections\.community\.internal\_test\_tools\.tests\.unit\.compat\.mock \([https\://github\.com/ansible\-collections/community\.crypto/pull/881](https\://github\.com/ansible\-collections/community\.crypto/pull/881)\)\.
-* Python code modernization\: use f\-strings instead of \% and str\.format\(\) \([https\://github\.com/ansible\-collections/community\.crypto/pull/875](https\://github\.com/ansible\-collections/community\.crypto/pull/875)\)\.
-* Remove backend parameter from internal code whenever possible \([https\://github\.com/ansible\-collections/community\.crypto/pull/883](https\://github\.com/ansible\-collections/community\.crypto/pull/883)\)\.
-* Remove various compatibility code for cryptography \< 3\.3 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
-* Remove vendored copy of distutils\.version in favor of vendored copy included with ansible\-core 2\.12\+ \([https\://github\.com/ansible\-collections/community\.crypto/pull/371](https\://github\.com/ansible\-collections/community\.crypto/pull/371)\)\.
-* acme\_\* modules \- improve parsing of Retry\-After reply headers in regular ACME requests \([https\://github\.com/ansible\-collections/community\.crypto/pull/890](https\://github\.com/ansible\-collections/community\.crypto/pull/890)\)\.
-* action\_module plugin utils \- remove compatibility with older ansible\-core/ansible\-base/Ansible versions \([https\://github\.com/ansible\-collections/community\.crypto/pull/872](https\://github\.com/ansible\-collections/community\.crypto/pull/872)\)\.
-* x509\_certificate\, x509\_certificate\_pipe \- the ownca\_version and selfsigned\_version parameters explicitly only allow the value 3\. The module already failed for other values in the past\, now this is validated as part of the module argument spec \([https\://github\.com/ansible\-collections/community\.crypto/pull/890](https\://github\.com/ansible\-collections/community\.crypto/pull/890)\)\.
-
-
-#### community\.general
-
-* cobbler inventory plugin \- add connection\_timeout option to specify the connection timeout to the cobbler server \([https\://github\.com/ansible\-collections/community\.general/pull/11063](https\://github\.com/ansible\-collections/community\.general/pull/11063)\)\.
-* cobbler inventory plugin \- add facts\_level option to allow requesting fully rendered variables for Cobbler systems \([https\://github\.com/ansible\-collections/community\.general/issues/9419](https\://github\.com/ansible\-collections/community\.general/issues/9419)\, [https\://github\.com/ansible\-collections/community\.general/pull/9975](https\://github\.com/ansible\-collections/community\.general/pull/9975)\)\.
-* ini\_file \- modify an inactive option also when there are spaces in front of the comment symbol \([https\://github\.com/ansible\-collections/community\.general/pull/10102](https\://github\.com/ansible\-collections/community\.general/pull/10102)\, [https\://github\.com/ansible\-collections/community\.general/issues/8539](https\://github\.com/ansible\-collections/community\.general/issues/8539)\)\.
-* pipx \- parameter name now accepts Python package specifiers \([https\://github\.com/ansible\-collections/community\.general/issues/7815](https\://github\.com/ansible\-collections/community\.general/issues/7815)\, [https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* pipx module\_utils \- filtering application list by name now happens in the modules \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-* pipx\_info \- filtering application list by name now happens in the module \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-
-
-#### community\.libvirt
-
-* virt \- implement basic check mode functionality \([https\://github\.com/ansible\-collections/community\.libvirt/issue/98](https\://github\.com/ansible\-collections/community\.libvirt/issue/98)\)
-* virt \- implement the gathering of Dom UUIDs as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/187](https\://github\.com/ansible\-collections/community\.libvirt/issues/187)
-* virt \- implement the gathering of Dom interface names and mac addresses as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/189](https\://github\.com/ansible\-collections/community\.libvirt/issues/189)
-* virt \- implement the removal of volumes for a dom as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/177](https\://github\.com/ansible\-collections/community\.libvirt/issues/177)
-
-
-#### community\.mysql
-
-* mysql\_replication \- change default value for primary\_ssl\_verify\_server\_cert from False to None\. This should not affect existing playbooks \([https\://github\.com/ansible\-collections/community\.mysql/pull/707](https\://github\.com/ansible\-collections/community\.mysql/pull/707)\)\.
-
-
-#### community\.rabbitmq
-
-* rabbitmq\_vhost \- add support to vhost manipulation through RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/171](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/171)\)
-
-
-#### community\.routeros
-
-* api\_find\_and\_modify \- allow to control whether dynamic and/or builtin entries are ignored with the new ignore\_dynamic and ignore\_builtin options \([https\://github\.com/ansible\-collections/community\.routeros/issues/372](https\://github\.com/ansible\-collections/community\.routeros/issues/372)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/373](https\://github\.com/ansible\-collections/community\.routeros/pull/373)\)\.
-* api\_info\, api\_modify \- add port\-cost\-mode to interface bridge which is supported since RouterOS 7\.13 \([https\://github\.com/ansible\-collections/community\.routeros/pull/371](https\://github\.com/ansible\-collections/community\.routeros/pull/371)\)\.
-
-
-#### hetzner\.hcloud
-
-* server \- Allow renaming a server\.
-* volume\_attachment \- Add new volume\_attachment module to manage Volumes attachment\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Added back \'mu\_number\' parameter to the hv\_gad module\.
-* Resolved various documentation inconsistencies\.
-
-
-#### ibm\.storage\_virtualize
-
-* ibm\_svc\_host\.py \- Added support for adding and removing preferred location\, and IO Groups
-* ibm\_svc\_hostcluster\.py \- Added support for adding site
-* ibm\_svc\_manage\_volume \- Added support for warning parameter
-
-
-#### kubernetes\.core
-
-* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/919](https\://github\.com/ansible\-collections/kubernetes\.core/pull/919)\)\.
-* action/k8s\_info \- update templating mechanism with changes from ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/888](https\://github\.com/ansible\-collections/kubernetes\.core/pull/888)\)\.
-* helm \- add reset\_then\_reuse\_values support to helm module \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/803](https\://github\.com/ansible\-collections/kubernetes\.core/issues/803)\)\.
-* helm \- add support for insecure\_skip\_tls\_verify option to helm and helm\_repository\([https\://github\.com/ansible\-collections/kubernetes\.core/issues/694](https\://github\.com/ansible\-collections/kubernetes\.core/issues/694)\)\.
-
-
-#### ovirt\.ovirt
-
-* Enable and start postfix service so that ovirt\-ha\-agent logs are not filled with mail notification errors \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/741](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/741)\)
-* Maintenance tasks regarding linting\, testing and CI \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/762](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/762)\)
-
-
-### Breaking Changes / Porting Guide
-
-
-#### amazon\.aws
-
-* amazon\.aws collection \- Support for ansible\-core \< 2\.17 has been dropped \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2601](https\://github\.com/ansible\-collections/amazon\.aws/pull/2601)\)\.
-* amazon\.aws collection \- Support for the EC2\_ACCESS\_KEY environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the access\_key parameter or AWS\_ACCESS\_KEY\_ID environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- Support for the EC2\_REGION environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the region parameter or AWS\_REGION environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- Support for the EC2\_SECRET\_KEY environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the secret\_key parameter or AWS\_SECRET\_ACCESS\_KEY environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- Support for the EC2\_SECURITY\_TOKEN and AWS\_SECURITY\_TOKEN environment variables were deprecated in release 6\.0\.0 and have now been removed\. Please use the session\_token parameter or AWS\_SESSION\_TOKEN environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- Support for the EC2\_URL and S3\_URL environment variables were deprecated in release 6\.0\.0 and have now been removed\. Please use the endpoint\_url parameter or AWS\_URL environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The access\_token\, aws\_security\_token and security\_token aliases for the session\_token parameter were deprecated in release 6\.0\.0 and have now been removed\. Please use the session\_token name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The boto\_profile alias for the profile parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the profile name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The ec2\_access\_key alias for the access\_key parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the access\_key name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The ec2\_region alias for the region parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the region name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The ec2\_secret\_key alias for the secret\_key parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the secret\_key name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* amazon\.aws collection \- The endpoint\, ec2\_url and s3\_url aliases for the endpoint\_url parameter were deprecated in release 6\.0\.0 and have now been removed\. Please use the region name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* docs\_fragments \- The previously deprecated amazon\.aws\.aws\_credentials docs fragment has been removed please use amazon\.aws\.common\.plugins instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* docs\_fragments \- The previously deprecated amazon\.aws\.aws\_region docs fragment has been removed please use amazon\.aws\.region\.plugins instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* docs\_fragments \- The previously deprecated amazon\.aws\.aws docs fragment has been removed please use amazon\.aws\.common\.modules instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* docs\_fragments \- The previously deprecated amazon\.aws\.ec2 docs fragment has been removed please use amazon\.aws\.region\.modules instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
-* ec2\_vpc\_peering\_info \- the result key has been removed from the return value\. vpc\_peering\_connections should be used instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2618](https\://github\.com/ansible\-collections/amazon\.aws/pull/2618)\)\.
-* module\_utils\.botocore \- drop deprecated boto3 parameter for get\_aws\_region\(\) and get\_aws\_connection\_info\(\)\, this parameter has had no effect since release 4\.0\.0 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2443](https\://github\.com/ansible\-collections/amazon\.aws/pull/2443)\)\.
-* module\_utils\.ec2 \- drop deprecated boto3 parameter for get\_ec2\_security\_group\_ids\_from\_names\(\) and get\_aws\_connection\_info\(\)\, this parameter has had no effect since release 4\.0\.0 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2603](https\://github\.com/ansible\-collections/amazon\.aws/pull/2603)\)\.
-* rds\_param\_group \- the redirect has been removed and playbooks should be updated to use rds\_instance\_param\_group \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2618](https\://github\.com/ansible\-collections/amazon\.aws/pull/2618)\)\.
-
-
-#### community\.aws
-
-* Support for ansible\-core\<2\.17 has been dropped \([https\://github\.com/ansible\-collections/community\.aws/pull/2303](https\://github\.com/ansible\-collections/community\.aws/pull/2303)\)\.
-* The community\.aws collection has dropped support for botocore\<1\.31\.0 and boto3\<1\.28\.0\. Most modules will continue to work with older versions of the AWS SDK\. However\, compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/community\.aws/pull/2195](https\://github\.com/ansible\-collections/community\.aws/pull/2195)\)\.
-* connection/aws\_ssm \- The connection plugin has been migrated from the community\.aws collection\. Playbooks or Inventory using the Fully Qualified Collection Name for this connection plugin should be updated to use amazon\.aws\.aws\_ssm\.
-
-
-#### community\.crypto
-
-* All doc\_fragments are now private to the collection and must not be used from other collections or unrelated plugins/modules\. Breaking changes in these can happen at any time\, even in bugfix releases \([https\://github\.com/ansible\-collections/community\.crypto/pull/898](https\://github\.com/ansible\-collections/community\.crypto/pull/898)\)\.
-* All module\_utils and plugin\_utils are now private to the collection and must not be used from other collections or unrelated plugins/modules\. Breaking changes in these can happen at any time\, even in bugfix releases \([https\://github\.com/ansible\-collections/community\.crypto/pull/887](https\://github\.com/ansible\-collections/community\.crypto/pull/887)\)\.
-* Ignore value of select\_crypto\_backend for all modules except acme\_\* and \.\.\.\, and always assume the value auto\. This ensures that the cryptography version is always checked \([https\://github\.com/ansible\-collections/community\.crypto/pull/883](https\://github\.com/ansible\-collections/community\.crypto/pull/883)\)\.
-* The validation for relative timestamps is now more strict\. A string starting with \+ or \- must be valid\, otherwise validation will fail\. In the past such strings were often silently ignored\, and in many cases the code which triggered the validation was not able to handle no result \([https\://github\.com/ansible\-collections/community\.crypto/pull/885](https\://github\.com/ansible\-collections/community\.crypto/pull/885)\)\.
-* acme\.certificates module utils \- the retrieve\_acme\_v1\_certificate\(\) helper function has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* get\_certificate \- the default for asn1\_base64 changed from false to true \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* x509\_crl \- the mode parameter no longer denotes the update mode\, but the CRL file mode\. Use crl\_mode instead for the update mode \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-
-
-#### hetzner\.hcloud
-
-* Drop support for ansible\-core 2\.15\.
-* Drop support for ansible\-core 2\.16\.
-* Drop support for python 3\.8\.
-* inventory \- The default value for the hostvars\_prefix option is now set to hcloud\_\. Make sure to update all references to host variables provided by the inventory\. You may revert this change by setting the hostvars\_prefix option to \"\"\.
-* server \- The deprecated force\_upgrade argument is removed from the server module\. Please use the force argument instead\.
-* volume \- Volumes are no longer detached when the server argument is not provided\. Please use the volume\_attachment module to manage volume attachments\.
-
-
-### Deprecated Features
-
-
-#### Ansible\-core
-
-* The ShellModule\.checksum method is now deprecated and will be removed in ansible\-core 2\.23\. Use ActionBase\.\_execute\_remote\_stat\(\) instead\.
-* The ansible\.module\_utils\.common\.collections\.count\(\) function is deprecated and will be removed in ansible\-core 2\.23\. Use collections\.Counter\(\) from the Python standard library instead\.
-* ansible\.compat\.importlib\_resources is deprecated and will be removed in ansible\-core 2\.23\. Use importlib\.resources from the Python standard library instead\.
-
-
-#### cisco\.nxos
-
-* nxos\_hsrp \- deprecate nxos\.nxos\.nxos\_hsrp in favor of nxos\.nxos\.nxos\_hsrp\_interfaces\.
-* nxos\_vrf\_interface \- deprecate nxos\.nxos\.nxos\_vrf\_interface in favor of nxos\.nxos\.nxos\_vrf\_interfaces\.
-
-
-#### community\.aws
-
-* community\.aws collection \- due to the AWS SDKs announcing the end of support for Python less than 3\.8 \([https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/](https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/)\) support for Python less than 3\.8 by this collection has been deprecated and will removed in release 10\.0\.0 \([https\://github\.com/ansible\-collections/community\.aws/pull/2195](https\://github\.com/ansible\-collections/community\.aws/pull/2195)\)\.
-
-
-#### community\.crypto
-
-* acme\_certificate \- deprecate the agreement option which has no more effect\. It will be removed from community\.crypto 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/891](https\://github\.com/ansible\-collections/community\.crypto/pull/891)\)\.
-* openssl\_pkcs12 \- deprecate the maciter\_size option which has no more effect\. It will be removed from community\.crypto 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/891](https\://github\.com/ansible\-collections/community\.crypto/pull/891)\)\.
-
-
-#### community\.general
-
-* The proxmox content \(modules and plugins\) is being moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. In community\.general 11\.0\.0\, these modules and plugins will be replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with ansible\-galaxy collection install community\.proxmox\. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages \([https\://github\.com/ansible\-collections/community\.general/pull/10109](https\://github\.com/ansible\-collections/community\.general/pull/10109)\)\.
-* pipx module\_utils \- function make\_process\_list\(\) is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
-
-
-#### community\.postgresql
-
-* postgresql modules \- the port alias is deprecated and will be removed in community\.postgresql 5\.0\.0\, use the login\_port argument instead\.
-
-
-### Removed Features \(previously deprecated\)
-
-
-#### community\.crypto
-
-* All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust\'s Public Certificates Business to Sectigo\; see [the announcement with key dates](https\://www\.entrust\.com/tls\-certificate\-information\-center) and [the migration brief for customers](https\://www\.sectigo\.com/uploads/resources/EOL\_Migration\-Brief\-End\-Customer\.pdf) for details\. Since this process will be completed in 2025\, we decided to remove all Entrust content from community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/issues/895](https\://github\.com/ansible\-collections/community\.crypto/issues/895)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/901](https\://github\.com/ansible\-collections/community\.crypto/pull/901)\)\.
-* The collection no longer supports cryptography \< 3\.3 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/882](https\://github\.com/ansible\-collections/community\.crypto/pull/882)\)\.
-* acme\.acme module utils \- the get\_default\_argspec\(\) function has been removed\. Use create\_default\_argspec\(\) instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* acme\.backends module utils \- the methods get\_ordered\_csr\_identifiers\(\) and get\_cert\_information\(\) of CryptoBackend now must be implemented \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* acme\.documentation docs fragment \- the documentation docs fragment has been removed\. Use both the basic and account docs fragments in acme instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* acme\_\* modules \- support for ACME v1 has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* community\.crypto no longer supports Ansible 2\.9\, ansible\-base 2\.10\, and ansible\-core versions 2\.11\, 2\.12\, 2\.13\, 2\.14\, 2\.15\, and 2\.16\. While content from this collection might still work with some older versions of ansible\-core\, it will not work with any Python version before 3\.7 \([https\://github\.com/ansible\-collections/community\.crypto/pull/870](https\://github\.com/ansible\-collections/community\.crypto/pull/870)\)\.
-* crypto\.basic module utils \- remove CRYPTOGRAPHY\_HAS\_\* flags\. All tested features are supported since cryptography 3\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
-* crypto\.cryptography\_support module utils \- remove cryptography\_serial\_number\_of\_cert\(\) helper function \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
-* crypto\.module\_backends\.common module utils \- this module utils has been removed\. Use the argspec module utils instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* crypto\.support module utils \- remove pyopenssl backend \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
-* ecs\_certificate \- the module has been removed\. Please use community\.crypto 2\.x\.y if you need this module \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
-* ecs\_domain \- the module has been removed\. Please use community\.crypto 2\.x\.y if you need this module \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
-* execution environment dependencies \- remove PyOpenSSL dependency \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
-* openssl\_csr\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* openssl\_pkcs12 \- support for the pyopenssl backend has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* openssl\_privatekey\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-* time module utils \- remove pyopenssl backend \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
-* x509\_certificate \- the entrust provider has been removed\. Please use community\.crypto 2\.x\.y if you need this provider \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
-* x509\_certificate\_pipe \- the entrust provider has been removed\. Please use community\.crypto 2\.x\.y if you need this provider \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
-* x509\_certificate\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* Core Jinja test plugins \- Builtin test plugins now always return bool to avoid spurious deprecation warnings for some malformed inputs\.
-* ansible\-test \- Disabled the bad\-super\-call pylint rule due to false positives\.
-* ansible\-test \- Fix incorrect handling of options with optional args \(e\.g\. \-\-color\)\, when followed by other options which are omitted during arg filtering \(e\.g\. \-\-docker\)\. Previously it was possible for non\-option arguments to be incorrectly omitted in these cases\. \([https\://github\.com/ansible/ansible/issues/85173](https\://github\.com/ansible/ansible/issues/85173)\)
-* ansible\-test \- Improve type inference for pylint deprecated checks to accommodate some type annotations\.
-* async\_status module \- The started and finished return values are now True or False instead of 1 or 0\.
-* constructed inventory \- Use the default\_value or trailing\_separator in a keyed\_groups entry if the expression result of key is None and not just an empty string\.
-* dnf5 \- handle all libdnf5 specific exceptions \([https\://github\.com/ansible/ansible/issues/84634](https\://github\.com/ansible/ansible/issues/84634)\)
-* error handling \- Error details and tracebacks from connection and built\-in action exceptions are preserved\. Previously\, much of the detail was lost or mixed into the error message\.
-* from\_yaml\_all filter \- None and empty string inputs now always return an empty list\. Previously\, None was returned in Jinja native mode and empty list in classic mode\.
-* local connection plugin \- The command\-line used to create subprocesses is now always str to avoid issues with debuggers and profilers\.
-* ssh agent \- Fixed several potential startup hangs for badly\-behaved or overloaded ssh agents\.
-* task timeout \- Specifying a negative task timeout now results in an error\.
-
-
-#### amazon\.aws
-
-* s3\_bucket \- bucket ACLs now consistently returned \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
-* s3\_bucket \- fixed idempotency when setting bucket ACLs \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
-
-
-#### ansible\.windows
-
-* win\_package \- fail to remove package when no product id is provided with path as an URL \([https\://github\.com/ansible\-collections/ansible\.windows/issues/667](https\://github\.com/ansible\-collections/ansible\.windows/issues/667)\)\.
-
-
-#### check\_point\.mgmt
-
-* Added required management version to the documentation for all collection modules\.
-* module\_utils/checkpoint \- Prevent redundant logout call when there is no authentication header \'X\-chkp\-sid\'\.
-
-
-#### cisco\.ios
-
-* cisco\.ios\.ios\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes\.
-* ios\_acls \- Fix issue where commands were not being parsed correctly and incorrect commands were being generated\.
-* ios\_bgp\_address\_family \- fix configuration of neighbor\'s as\-override split\-horizon\.
-
-
-#### cisco\.iosxr
-
-* Fixes route map fact gathering to correctly gather facts with a elif condition\.
-* cisco\.iosxr\.iosxr\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes\.
-* iosxr\_route\_maps \- Fix issue where wrong commands were being generated for several attributes\.
-
-
-#### cisco\.meraki
-
-* cisco\.meraki\.networks\_appliance\_firewall\_l7\_firewall\_rules \- fix idempotency error\.
-
-
-#### cloudscale\_ch\.cloud
-
-* floating\_ip \- Fix sanity tests\.
-
-
-#### community\.dns
-
-* Update Public Suffix List\.
-
-
-#### community\.general
-
-* cobbler\_system \- fix bug with Cobbler \>\= 3\.4\.0 caused by giving more than 2 positional arguments to CobblerXMLRPCInterface\.get\_system\_handle\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\)\.
-* kdeconfig \- allow option values beginning with a dash \([https\://github\.com/ansible\-collections/community\.general/issues/10127](https\://github\.com/ansible\-collections/community\.general/issues/10127)\, [https\://github\.com/ansible\-collections/community\.general/pull/10128](https\://github\.com/ansible\-collections/community\.general/pull/10128)\)\.
-* keycloak\_user\_rolemapping \- fix \-\-diff mode \([https\://github\.com/ansible\-collections/community\.general/issues/10067](https\://github\.com/ansible\-collections/community\.general/issues/10067)\, [https\://github\.com/ansible\-collections/community\.general/pull/10075](https\://github\.com/ansible\-collections/community\.general/pull/10075)\)\.
-* pickle cache plugin \- avoid extra JSON serialization with ansible\-core \>\= 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10136](https\://github\.com/ansible\-collections/community\.general/pull/10136)\)\.
-* proxmox \- fix crash in module when the used on an existing LXC container with state\=present and force\=true \([https\://github\.com/ansible\-collections/community\.proxmox/pull/91](https\://github\.com/ansible\-collections/community\.proxmox/pull/91)\, [https\://github\.com/ansible\-collections/community\.general/pull/10155](https\://github\.com/ansible\-collections/community\.general/pull/10155)\)\.
-* rundeck\_acl\_policy \- ensure that project ACLs are sent to the correct endpoint \([https\://github\.com/ansible\-collections/community\.general/pull/10097](https\://github\.com/ansible\-collections/community\.general/pull/10097)\)\.
-* sysrc \- split the output of sysrc \-e \-a on the first \= only \([https\://github\.com/ansible\-collections/community\.general/issues/10120](https\://github\.com/ansible\-collections/community\.general/issues/10120)\, [https\://github\.com/ansible\-collections/community\.general/pull/10121](https\://github\.com/ansible\-collections/community\.general/pull/10121)\)\.
-
-
-#### community\.mysql
-
-* mysql\_info \- fix a crash \(ERROR 1141\, There is no such grant defined for user \'PUBLIC\' on host \'\%\'\) when using the users\_info filter with a PUBLIC role present in MariaDB 10\.11\+\. Do note that the fix doesn\'t change the fact that the module won\'t return the privileges from the PUBLIC role in the users privileges list\. It can\'t do that because you have to login as the particular user and use SHOW GRANTS FOR CURRENT\_USER\. We considered using an aggregation with the SHOW GRANTS FOR PUBLIC command\. However\, this approach would make copying users from one server to another transform the privileges inherited from the role as if they were direct privileges on the user\.
-* mysql\_replication \- fixed an issue where setting primary\_ssl\_verify\_server\_cert to false had no effect \([https\://github\.com/ansible\-collections/community\.mysql/issues/689](https\://github\.com/ansible\-collections/community\.mysql/issues/689)\)\.
-
-
-#### community\.postgresql
-
-* postgresql\_alter\_system \- fix failure when max\_val contains a huge number written in scientific notation \([https\://github\.com/ansible\-collections/community\.postgresql/issues/853](https\://github\.com/ansible\-collections/community\.postgresql/issues/853)\)\.
-* postgresql\_schema \- change reported in check\_mode was negated\. Now it reports a change when removing an existing schema \([https\://github\.com/ansible\-collections/community\.postgresql/pull/858](https\://github\.com/ansible\-collections/community\.postgresql/pull/858)\)
-
-
-#### community\.rabbitmq
-
-* rabbitmq\_binding \- fix idempotency when arguments and/or routing\_key are given \([https\://github\.com/ansible\-collections/community\.rabbitmq/pull/191](https\://github\.com/ansible\-collections/community\.rabbitmq/pull/191)\)
-
-
-#### f5networks\.f5\_modules
-
-* bigip\_virtual\_server fix module crash issue
-
-
-#### hitachivantara\.vspone\_block
-
-* Fixed the mapping lun to multiple HostGroup/Iscsi Target issues for remote replication\.
-* Resolved various documentation inconsistencies\.
-
-
-#### ibm\.storage\_virtualize
-
-* ibm\_svc\_ssh \- Added fix for nginx timeout
-* ibm\_svc\_utils \- Added fix for nginx timeout
-
-
-#### kubernetes\.core
-
-* module\_utils/k8s/service \- fix issue when trying to delete resource using delete\_options and check\_mode\=true \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/892](https\://github\.com/ansible\-collections/kubernetes\.core/issues/892)\)\.
-
-
-#### microsoft\.ad
-
-* microsoft\.ad\.ldap \- Ensure the encrypted LAPS value is marked as unsafe to stop unexpected templating of the raw JSON result value \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/194](https\://github\.com/ansible\-collections/microsoft\.ad/issues/194)
-
-
-#### ovirt\.ovirt
-
-* ovirt\_disk \- fix documentation for lun\_id parameter \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/740](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/740)\)
-* ovirt\_proxied\_check \- fix documentation string \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/761](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/761)\)
-* roles \- Fix ansible\-test errors change include to include\_tasks \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/733](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/733)\)\.
-
-
-#### vmware\.vmware
-
-* cluster\_ha \- fix typo that causes PDL response mode \'restart\' to throw an error
-* deploy\_\* \- Fix issue where datastore was expected even though it is optional
-* deploy\_content\_library\_ovf \- fix error when deploying from a datastore cluster by simplifying the ds selection process
-* inventory plugins \- fix issue where cache did not work \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/175](https\://github\.com/ansible\-collections/vmware\.vmware/issues/175)\)
-
-
-### Known Issues
-
-
-#### dellemc\.openmanage
-
-* idrac\_diagnostics \- Issue\(285322\) \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
-* idrac\_firmware \- Issue\(279282\) \- This module does not support firmware update using HTTP\, HTTPS\, and FTP shares with authentication on iDRAC8\.
-* ome\_smart\_fabric\_uplink \- Issue\(186024\) \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
-
-
-### New Plugins
-
-
-#### Callback
-
-* community\.general\.print\_task \- Prints playbook task snippet to job output\.
-
-
-#### Filter
-
-* community\.general\.to\_prettytable \- Format a list of dictionaries as an ASCII table\.
-
-
-### New Modules
-
-
-#### cloudscale\_ch\.cloud
-
-* cloudscale\_ch\.cloud\.volume\_snapshot \- Manage volume snapshots on the cloudscale\.ch IaaS service
-
-
-#### community\.general
-
-* community\.general\.xdg\_mime \- Set default handler for MIME types\, for applications using XDG tools\.
-
-
-#### community\.libvirt
-
-* community\.libvirt\.virt\_volume \- Manage libvirt volumes inside a storage pool
-
-
-### Unchanged Collections
-
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 5\.1\.2\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.dnac \(still version 6\.31\.3\)
-* cisco\.ise \(still version 2\.10\.0\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.docker \(still version 4\.6\.0\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.hrobot \(still version 2\.3\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.0\.5\)
-* community\.vmware \(still version 5\.6\.0\)
-* community\.windows \(still version 3\.0\.0\)
-* community\.zabbix \(still version 3\.3\.0\)
-* containers\.podman \(still version 1\.16\.3\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.35\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* fortinet\.fortimanager \(still version 2\.9\.1\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.1\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 23\.0\.0\)
-* netapp\.storagegrid \(still version 21\.14\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* purestorage\.flasharray \(still version 1\.34\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.2\.2\)
-* theforeman\.foreman \(still version 5\.3\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a4
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - netapp\.ontap
-- Minor Changes
- - Ansible\-core
- - amazon\.aws
- - netapp\.ontap
-- Bugfixes
- - Ansible\-core
- - amazon\.aws
- - cisco\.meraki
- - netapp\.ontap
-- New Modules
- - netapp\.ontap
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-05\-12
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a4 contains ansible\-core version 2\.19\.0b4\.
-This is a newer version than version 2\.19\.0b3 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a3 | Ansible 12.0.0a4 | Notes |
-| ------------ | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| amazon.aws | 9.4.0 | 9.5.0 | |
-| cisco.meraki | 2.21.0 | 2.21.1 | |
-| cyberark.pas | 1.0.32 | 1.0.35 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| netapp.ontap | 22.14.0 | 23.0.0 | |
-
-
-### Major Changes
-
-
-#### netapp\.ontap
-
-* library netapp\-lib is now an optional requirement\.
-* na\_ontap\_lun \- added compatibility for ASA r2 systems\.
-* na\_ontap\_lun\_copy \- added check to prevent use on unsupported ASA r2 systems\.
-* na\_ontap\_lun\_map \- added compatibility for ASA r2 systems\.
-* na\_ontap\_lun\_map\_reporting\_nodes \- added compatibility for ASA r2 systems\.
-* na\_ontap\_nvme\_namespace \- added compatibility for ASA r2 systems\.
-* na\_ontap\_nvme\_subsystem \- added compatibility for ASA r2 systems\.
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* facts \- add \"CloudStack KVM Hypervisor\" for Linux VM in virtual facts \([https\://github\.com/ansible/ansible/issues/85089](https\://github\.com/ansible/ansible/issues/85089)\)\.
-* modules \- use AnsibleModule\.warn instead of passing warnings to exit\_json or fail\_json which is deprecated\.
-
-
-#### amazon\.aws
-
-* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2590](https\://github\.com/ansible\-collections/amazon\.aws/pull/2590)\)\.
-* iam\_user\_info \- Add tags to ListUsers or GetGroup results \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
-* iam\_user\_info \- Return empty user list when invalid group name is provided instead of python error \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
-* module\_utils/modules\.py \- call to deprecate\(\) without specifying collection\_name\, version or date arguments raises a sanity errors \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2607](https\://github\.com/ansible\-collections/amazon\.aws/pull/2607)\)\.
-
-
-#### netapp\.ontap
-
-* all modules \- defaults to certificate based authentication if username\,password and cert\_filepath/key\_filepath are set\.
-* na\_ontap\_ndmp \- Added get method to generate and retrieve ndmp user passowrd in REST\.
-* na\_ontap\_volume \- updated documentation for snapshot\_auto\_delete\.
-* updated ZAPI deprecation warnings in README \& module utilities\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* ansible\-test \- Updated the pylint sanity test to skip some deprecation validation checks when all arguments are dynamic\.
-* config \- Preserve or apply Origin tag to values returned by config\.
-* config \- Prevented fatal errors when MODULE\_IGNORE\_EXTS configuration was set\.
-* config \- Templating failures on config defaults now issue a warning\. Previously\, failures silently returned an unrendered and untrusted template to the caller\.
-* config \- ensure\_type correctly propagates trust and other tags on returned values\.
-* config \- ensure\_type now converts mappings to dict when requested\, instead of returning the mapping\.
-* config \- ensure\_type now converts sequences to list when requested\, instead of returning the sequence\.
-* config \- ensure\_type now correctly errors when pathlist or pathspec types encounter non\-string list items\.
-* config \- ensure\_type now reports an error when bytes are provided for any known value\_type\. Previously\, the behavior was undefined\, but often resulted in an unhandled exception or incorrect return type\.
-* config \- ensure\_type with expected type int now properly converts True and False values to int\. Previously\, these values were silently returned unmodified\.
-* convert\_bool\.boolean API conversion function \- Unhashable values passed to boolean behave like other non\-boolean convertible values\, returning False or raising TypeError depending on the value of strict\. Previously\, unhashable values always raised ValueError due to an invalid set membership check\.
-* dnf5 \- when bugfix and/or security is specified\, skip packages that do not have any such updates\, even for new versions of libdnf5 where this functionality changed and it is considered failure
-* plugin loader \- Apply template trust to strings loaded from plugin configuration definitions and doc fragments\.
-* template action \- Template files where the entire file\'s output renders as None are no longer emitted as the string \"None\"\, but instead render to an empty file as in previous releases\.
-
-
-#### amazon\.aws
-
-* iam\_user\_info \- Actually call GetUser when only user name is supplied instead of listing and filtering from all users \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
-* iam\_user\_info \- Actually filter users by path prefix when one is provided \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
-* route53\_info \- removes jijna delimiters from example using when \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2594](https\://github\.com/ansible\-collections/amazon\.aws/issues/2594)\)\.
-
-
-#### cisco\.meraki
-
-* cisco\.meraki\.devices\_switch\_ports \- fix get\_object\_by\_name method\.
-
-
-#### netapp\.ontap
-
-* na\_ontap\_ems\_config \- fix issue with support check mode when proxy\_password is not set in REST\.
-* na\_ontap\_quotas \- changed examples in documentation for type\.
-* na\_ontap\_snapmirror \- fix delete snapmirror timeout issue by retrying in REST\.
-* na\_ontap\_software\_update \- Updated documentation for https\.
-* na\_ontap\_user\_role \- fix issue with modifying privileges in REST\.
-
-
-### New Modules
-
-
-#### netapp\.ontap
-
-* netapp\.ontap\.na\_ontap\_mav\_approval\_group \- NetApp ONTAP multi\-admin verification \(MAV\) approval group
-* netapp\.ontap\.na\_ontap\_mav\_config \- NetApp ONTAP multi\-admin verification \(MAV\) global setting
-* netapp\.ontap\.na\_ontap\_mav\_rule \- NetApp ONTAP multi\-admin verification \(MAV\) rule
-* netapp\.ontap\.na\_ontap\_storage\_unit \- NetApp ONTAP ASA r2 storage unit
-* netapp\.ontap\.na\_ontap\_storage\_unit\_snapshot \- NetApp ONTAP ASA r2 storage unit snapshot
-* netapp\.ontap\.na\_ontap\_support\_config\_backup \- NetApp ONTAP support configuration backup
-
-
-### Unchanged Collections
-
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 5\.1\.2\)
-* ansible\.windows \(still version 3\.0\.0\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.3\.1\)
-* check\_point\.mgmt \(still version 6\.4\.0\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.dnac \(still version 6\.31\.3\)
-* cisco\.intersight \(still version 2\.0\.20\)
-* cisco\.ios \(still version 10\.0\.0\)
-* cisco\.iosxr \(still version 11\.0\.0\)
-* cisco\.ise \(still version 2\.10\.0\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.0\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 4\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.4\.1\)
-* community\.aws \(still version 9\.3\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.crypto \(still version 2\.26\.1\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.3\)
-* community\.docker \(still version 4\.6\.0\)
-* community\.general \(still version 10\.6\.0\)
-* community\.grafana \(still version 2\.2\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.hrobot \(still version 2\.3\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.3\.1\)
-* community\.mongodb \(still version 1\.7\.9\)
-* community\.mysql \(still version 3\.13\.0\)
-* community\.okd \(still version 4\.0\.1\)
-* community\.postgresql \(still version 4\.0\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.4\.0\)
-* community\.routeros \(still version 3\.6\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.0\.5\)
-* community\.vmware \(still version 5\.6\.0\)
-* community\.windows \(still version 3\.0\.0\)
-* community\.zabbix \(still version 3\.3\.0\)
-* containers\.podman \(still version 1\.16\.3\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.12\.0\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.35\.0\)
-* fortinet\.fortimanager \(still version 2\.9\.1\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* grafana\.grafana \(still version 6\.0\.1\)
-* hetzner\.hcloud \(still version 4\.3\.0\)
-* hitachivantara\.vspone\_block \(still version 3\.4\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.3\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 5\.2\.0\)
-* kubevirt\.core \(still version 2\.2\.0\)
-* lowlydba\.sqlserver \(still version 2\.6\.1\)
-* microsoft\.ad \(still version 1\.9\.0\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.storagegrid \(still version 21\.14\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.0\)
-* purestorage\.flasharray \(still version 1\.34\.1\)
-* purestorage\.flashblade \(still version 1\.20\.0\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.2\.2\)
-* theforeman\.foreman \(still version 5\.3\.0\)
-* vmware\.vmware \(still version 2\.0\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a3
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - community\.postgresql
- - dellemc\.openmanage
- - vmware\.vmware
-- Minor Changes
- - Ansible\-core
- - ansible\.windows
- - community\.aws
- - community\.docker
- - community\.grafana
- - community\.postgresql
- - community\.windows
- - grafana\.grafana
- - lowlydba\.sqlserver
- - microsoft\.ad
- - purestorage\.flashblade
- - vmware\.vmware
-- Breaking Changes / Porting Guide
- - vmware\.vmware
-- Deprecated Features
- - Ansible\-core
- - community\.postgresql
- - community\.windows
-- Removed Features \(previously deprecated\)
- - ansible\.windows
- - community\.postgresql
- - community\.windows
- - vmware\.vmware
-- Bugfixes
- - Ansible\-core
- - ansible\.windows
- - community\.crypto
- - community\.grafana
- - community\.windows
- - dellemc\.openmanage
- - microsoft\.ad
- - purestorage\.flashblade
- - vmware\.vmware
-- Known Issues
- - dellemc\.openmanage
-- New Modules
- - community\.hrobot
- - purestorage\.flashblade
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-05\-06
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a3 contains ansible\-core version 2\.19\.0b3\.
-This is a newer version than version 2\.19\.0b2 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a2 | Ansible 12.0.0a3 | Notes |
-| ---------------------- | ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| ansible.windows | 2.8.0 | 3.0.0 | |
-| community.aws | 9.2.0 | 9.3.0 | |
-| community.crypto | 2.26.0 | 2.26.1 | |
-| community.docker | 4.5.2 | 4.6.0 | |
-| community.grafana | 2.1.0 | 2.2.0 | |
-| community.hrobot | 2.2.0 | 2.3.0 | |
-| community.postgresql | 3.14.0 | 4.0.0 | |
-| community.windows | 2.4.0 | 3.0.0 | |
-| cyberark.pas | 1.0.30 | 1.0.32 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| dellemc.openmanage | 9.11.0 | 9.12.0 | |
-| grafana.grafana | 6.0.0 | 6.0.1 | |
-| kubevirt.core | 2.1.0 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| lowlydba.sqlserver | 2.6.0 | 2.6.1 | |
-| microsoft.ad | 1.8.1 | 1.9.0 | |
-| purestorage.flashblade | 1.19.2 | 1.20.0 | |
-| vmware.vmware | 1.11.0 | 2.0.0 | |
-
-
-### Major Changes
-
-
-#### community\.postgresql
-
-* the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.postgresql/issues/829](https\://github\.com/ansible\-collections/community\.postgresql/issues/829)\)\.
-
-
-#### dellemc\.openmanage
-
-* idrac\_gather\_facts \- This role is enhanced to support iDRAC10\.
-* idrac\_lifecycle\_controller\_job\_status\_info \- This module is enhanced to support iDRAC10\.
-* idrac\_system\_info \- This module is enhanced to support iDRAC10\.
-
-
-#### vmware\.vmware
-
-* cluster modules \- Add identifying information about the cluster managed to the output of cluster modules
-* folder\_paths \- Throw an error when a relative folder path is provided and the datacenter name is not provided
-* module\_utils/argument\_spec \- make argument specs public so other collections can use them [https\://github\.com/ansible\-collections/vmware\.vmware/issues/144](https\://github\.com/ansible\-collections/vmware\.vmware/issues/144)
-* module\_utils/clients \- make client utils public so other collections can use them [https\://github\.com/ansible\-collections/vmware\.vmware/issues/144](https\://github\.com/ansible\-collections/vmware\.vmware/issues/144)
-* update query file to include cluster module queries
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* ansible\-config will now show internal\, but not test configuration entries\. This allows for debugging but still denoting the configurations as internal use only \(\_ prefix\)\.
-* ansible\-test \- Improved pylint checks for Ansible\-specific deprecation functions\.
-* ansible\-test \- Use the \-t option to set the stop timeout when stopping a container\. This avoids use of the \-\-time option which was deprecated in Docker v28\.0\.
-* collection metadata \- The collection loader now parses scalar values from meta/runtime\.yml as strings\. This avoids issues caused by unquoted values such as versions or dates being parsed as types other than strings\.
-* deprecation warnings \- Deprecation warning APIs automatically capture the identity of the deprecating plugin\. The collection\_name argument is only required to correctly attribute deprecations that occur in module\_utils or other non\-plugin code\.
-* deprecation warnings \- Improved deprecation messages to more clearly indicate the affected content\, including plugin name when available\.
-* deprecations \- Collection name strings not of the form ns\.coll passed to deprecation API functions will result in an error\.
-* deprecations \- Removed support for specifying deprecation dates as a datetime\.date\, which was included in an earlier 2\.19 pre\-release\.
-* deprecations \- Some argument names to deprecate\_value for consistency with existing APIs\. An earlier 2\.19 pre\-release included a removal\_ prefix on the date and version arguments\.
-* modules \- The AnsibleModule\.deprecate function no longer sends deprecation messages to the target host\'s logging system\.
-
-
-#### ansible\.windows
-
-* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
-* win\_template \- Added comment\_start\_string and comment\_end\_string as options to align with the builtin template module\.
-
-
-#### community\.aws
-
-* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/community\.aws/pull/2295](https\://github\.com/ansible\-collections/community\.aws/pull/2295)\)\.
-* aws\_ssm \- Move the aws\_ssm connection plugin\'s plugin\_utils into a dedicated folder \([https\://github\.com/ansible\-collections/community\.aws/pull/2279](https\://github\.com/ansible\-collections/community\.aws/pull/2279)\)\.
-* aws\_ssm \- Refactor S3 operations methods for improved clarity \([https\://github\.com/ansible\-collections/community\.aws/pull/2275](https\://github\.com/ansible\-collections/community\.aws/pull/2275)\)\.
-* aws\_ssm \- Refactor connection/aws\_ssm to add new TerminalManager class and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2270](https\://github\.com/ansible\-collections/community\.aws/pull/2270)\)\.
-* aws\_ssm \- Refactor connection/aws\_ssm to add new FileTransferManager class and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2273](https\://github\.com/ansible\-collections/community\.aws/pull/2273)\)\.
-* aws\_ssm \- Refactor connection/aws\_ssm to add new SSMSessionManager and ProcessManager classes and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2272](https\://github\.com/ansible\-collections/community\.aws/pull/2272)\)\.
-
-
-#### community\.docker
-
-* docker\_container\_copy\_into \- add mode\_parse parameter which determines how mode is parsed \([https\://github\.com/ansible\-collections/community\.docker/pull/1074](https\://github\.com/ansible\-collections/community\.docker/pull/1074)\)\.
-
-
-#### community\.grafana
-
-* Add argument tls\_servername for grafana\_datasource
-* Support alertmanager as type for grafana\_datasource
-* grafana\_dashboard \- allow creating dashboards in subfolders
-
-
-#### community\.postgresql
-
-* postgresql\_user \- return a PostgreSQL error message when a user cannot be removed\.
-
-
-#### community\.windows
-
-* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
-
-
-#### grafana\.grafana
-
-* Remove Node modules from Ansible Collection build
-
-
-#### lowlydba\.sqlserver
-
-* Added support for Ansible 2\.19
-* Updated the test matrix to include Ansible 2\.19 and remove Ansible 2\.16
-
-
-#### microsoft\.ad
-
-* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
-
-
-#### purestorage\.flashblade
-
-* purefb\_ad \- Add support for Global Catalog Servers
-* purefb\_dns \- Added support for multiple DNS configurations\.
-* purefb\_ds \- SMB directory services deprecated from Purity//FB 4\.5\.2
-* purefb\_info \- Add support for Active Directory Global Catalog Servers
-* purefb\_info \- Added snapshot creation date\-time and time\_remaining\, if snapshot is not deleted\, to the snapshots response\.
-* purefb\_info \- Added support for multiple DNS configurations\.
-* purefb\_policy \- Snapshot policies can now have specific filesystems and/or replica links added or deletred from the policy
-* purefb\_proxy \- Added support to update existing proxy
-* purefb\_proxy \- Updated to REST v2
-* purefb\_s3user \- Changed key\_state state to be keystate as key\_state is reserved\.
-* purefb\_s3user \- Changed remove\_key parameter to key\_name and add new state of key\_state to allow a specificed key to be enabled/disabled using the new parameter enable\_key\.
-* purefb\_s3user \- Updated failure messages for applying policies to an object user account\.
-* purefb\_subnet \- prefix removed as a required parameter for updating an existing subnet
-
-
-#### vmware\.vmware
-
-* Warn the user when more than one host has the same name in the inventory plugins\. Throw an error if strict is true
-* content\_template \- Added more options to search for the source VM like uuid and moid\. Also made argument validation more accurate
-* guest\_info \- Allow user to specify folder path to help select the VM to query
-* rename private module\_utils to drop the redundant vmware prefix
-* vcsa\_backup\_schedule \- Add module to manage the vCenter backup schedule
-* vcsa\_backup\_schedule\_info \- Add module to gather info about the vCenter backup schedules
-* vm\_advanced\_settings \- Add module to manage the advanced settings on a VM
-* vm\_powerstate \- Add better error message when scheduling a power state task in the past
-* vm\_snapshot \- migrate vmware\_guest\_snapshot module from community to here
-* vms inventory \- Fixed issue where a user could accidentally not collect a required parameter\, config\.guestId
-
-
-### Breaking Changes / Porting Guide
-
-
-#### vmware\.vmware
-
-* drop support for ansible 2\.15 since it is EOL [https\://github\.com/ansible\-collections/vmware\.vmware/issues/103](https\://github\.com/ansible\-collections/vmware\.vmware/issues/103)
-* updated minimum pyVmomi version to 8\.0\.3\.0\.1 [https\://github\.com/ansible\-collections/vmware\.vmware/issues/56](https\://github\.com/ansible\-collections/vmware\.vmware/issues/56)
-
-
-### Deprecated Features
-
-
-#### Ansible\-core
-
-* Passing a warnings\` or \`\`deprecations key to exit\_json or fail\_json is deprecated\. Use AnsibleModule\.warn or AnsibleModule\.deprecate instead\.
-* plugins \- Accessing plugins with \_\-prefixed filenames without the \_ prefix is deprecated\.
-
-
-#### community\.postgresql
-
-* postgresql modules \= the login\, unix\_socket and host aliases are deprecated and will be removed in community\.postgresql 5\.0\.0\, use the login\_user\, login\_unix\_socket and login\_host arguments instead\.
-* postgresql\_set \- the module has been deprecated and will be removed in community\.postgresql 5\.0\.0\. Please use the community\.postgresql\.postgresql\_alter\_system module instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/823](https\://github\.com/ansible\-collections/community\.postgresql/issues/823)\)\.
-
-
-#### community\.windows
-
-* win\_audit\_policy\_system \- Deprecated module and will be redirected to ansible\.windows\.win\_audit\_policy\_system\. Use ansible\.windows\.win\_audit\_policy\_system instead as the redirection will be removed in 4\.0\.0
-* win\_audit\_rule \- Deprecated module and will be redirected to ansible\.windows\.win\_audit\_rule\. Use ansible\.windows\.win\_audit\_rule instead as the redirection will be removed in 4\.0\.0
-* win\_auto\_logon \- Deprecated module and will be redirected to ansible\.windows\.win\_auto\_logon\. Use ansible\.windows\.win\_auto\_logon instead as the redirection will be removed in 4\.0\.0
-* win\_certificate\_info \- Deprecated module and will be redirected to ansible\.windows\.win\_certificate\_info\. Use ansible\.windows\.win\_certificate\_info instead as the redirection will be removed in 4\.0\.0
-* win\_computer\_description \- Deprecated module and will be redirected to ansible\.windows\.win\_computer\_description\. Use ansible\.windows\.win\_computer\_description instead as the redirection will be removed in 4\.0\.0
-* win\_credential \- Deprecated module and will be redirected to ansible\.windows\.win\_credential\. Use ansible\.windows\.win\_credential instead as the redirection will be removed in 4\.0\.0
-* win\_dhcp\_lease \- Deprecated module and will be redirected to ansible\.windows\.win\_dhcp\_lease\. Use ansible\.windows\.win\_dhcp\_lease instead as the redirection will be removed in 4\.0\.0
-* win\_dns\_record \- Deprecated module and will be redirected to ansible\.windows\.win\_dns\_record\. Use ansible\.windows\.win\_dns\_record instead as the redirection will be removed in 4\.0\.0
-* win\_dns\_zone \- Deprecated module and will be redirected to ansible\.windows\.win\_dns\_zone\. Use ansible\.windows\.win\_dns\_zone instead as the redirection will be removed in 4\.0\.0
-* win\_eventlog \- Deprecated module and will be redirected to ansible\.windows\.win\_eventlog\. Use ansible\.windows\.win\_eventlog instead as the redirection will be removed in 4\.0\.0
-* win\_feature\_info \- Deprecated module and will be redirected to ansible\.windows\.win\_feature\_info\. Use ansible\.windows\.win\_feature\_info instead as the redirection will be removed in 4\.0\.0
-* win\_file\_compression \- Deprecated module and will be redirected to ansible\.windows\.win\_file\_compression\. Use ansible\.windows\.win\_file\_compression instead as the redirection will be removed in 4\.0\.0
-* win\_firewall \- Deprecated module and will be redirected to ansible\.windows\.win\_firewall\. Use ansible\.windows\.win\_firewall instead as the redirection will be removed in 4\.0\.0
-* win\_hosts \- Deprecated module and will be redirected to ansible\.windows\.win\_hosts\. Use ansible\.windows\.win\_hosts instead as the redirection will be removed in 4\.0\.0
-* win\_hotfix \- Deprecated module and will be redirected to ansible\.windows\.win\_hotfix\. Use ansible\.windows\.win\_hotfix instead as the redirection will be removed in 4\.0\.0
-* win\_http\_proxy \- Deprecated module and will be redirected to ansible\.windows\.win\_http\_proxy\. Use ansible\.windows\.win\_http\_proxy instead as the redirection will be removed in 4\.0\.0
-* win\_iis\_virtualdirectory \- Deprecated module\, use microsoft\.iis\.virtual\_directory instead as the module will be removed in 4\.0\.0
-* win\_iis\_webapplication \- Deprecated module\, use microsoft\.iis\.web\_application instead instead as the module will be removed in 4\.0\.0
-* win\_iis\_webapppool \- Deprecated module\, use microsoft\.iis\.web\_app\_pool instead instead as the module will be removed in 4\.0\.0
-* win\_iis\_webbinding \- Deprecated module\, use microsoft\.iis\.website instead instead as the module will be removed in 4\.0\.0
-* win\_iis\_website \- Deprecated module\, use microsoft\.iis\.website instead instead as the module will be removed in 4\.0\.0
-* win\_inet\_proxy \- Deprecated module and will be redirected to ansible\.windows\.win\_inet\_proxy\. Use ansible\.windows\.win\_inet\_proxy instead as the redirection will be removed in 4\.0\.0
-* win\_listen\_ports\_facts \- Deprecated module and will be redirected to ansible\.windows\.win\_listen\_ports\_facts\. Use ansible\.windows\.win\_listen\_ports\_facts instead as the redirection will be removed in 4\.0\.0
-* win\_mapped\_drive \- Deprecated module and will be redirected to ansible\.windows\.win\_mapped\_drive\. Use ansible\.windows\.win\_mapped\_drive instead as the redirection will be removed in 4\.0\.0
-* win\_product\_facts \- Deprecated module and will be redirected to ansible\.windows\.win\_product\_facts\. Use ansible\.windows\.win\_product\_facts instead as the redirection will be removed in 4\.0\.0
-* win\_region \- Deprecated module and will be redirected to ansible\.windows\.win\_region\. Use ansible\.windows\.win\_region instead as the redirection will be removed in 4\.0\.0
-* win\_route \- Deprecated module and will be redirected to ansible\.windows\.win\_route\. Use ansible\.windows\.win\_route instead as the redirection will be removed in 4\.0\.0
-* win\_timezone \- Deprecated module and will be redirected to ansible\.windows\.win\_timezone\. Use ansible\.windows\.win\_timezone instead as the redirection will be removed in 4\.0\.0
-* win\_user\_profile \- Deprecated module and will be redirected to ansible\.windows\.win\_user\_profile\. Use ansible\.windows\.win\_user\_profile instead as the redirection will be removed in 4\.0\.0
-
-
-### Removed Features \(previously deprecated\)
-
-
-#### ansible\.windows
-
-* win\_domain \- Removed deprecated module\, use microsoft\.ad\.domain instead
-* win\_domain\_controller \- Removed deprecated module\, use microsoft\.ad\.domain\_controller instead
-* win\_domain\_membership \- Removed deprecated module\, use microsoft\.ad\.membership instead
-* win\_feature \- Removed deprecated return value restart\_needed in feature\_result\, use reboot\_required instead
-* win\_updates \- Removed deprecated return value filtered\_reason\, use filtered\_reasons instead
-
-
-#### community\.postgresql
-
-* postgresql\_info \- the db alias has been removed in community\.postgresql 4\.0\.0\. Please use the login\_db option instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/801](https\://github\.com/ansible\-collections/community\.postgresql/issues/801)\)\.
-* postgresql\_lang \- the module has been removed in community\.postgresql 4\.0\.0\. Please use the community\.postgresql\.postgresql\_ext module instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/561](https\://github\.com/ansible\-collections/community\.postgresql/issues/561)\)\.
-* postgresql\_privs \- the password argument has been removed in community\.postgresql 4\.0\.0\. Use the login\_password argument instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/408](https\://github\.com/ansible\-collections/community\.postgresql/issues/408)\)\.
-* postgresql\_user \- the priv argument has been removed in community\.postgresql 4\.0\.0\. Please use the community\.postgresql\.postgresql\_privs module to grant/revoke privileges instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/493](https\://github\.com/ansible\-collections/community\.postgresql/issues/493)\)\.
-
-
-#### community\.windows
-
-* win\_domain\_computer \- Removed deprecated module\, use microsoft\.ad\.computer instead
-* win\_domain\_group \- Removed deprecated module\, use microsoft\.ad\.group instead
-* win\_domain\_group\_membership \- Removed deprecated module\, use microsoft\.ad\.membership instead
-* win\_domain\_object\_info \- Removed deprecated module\, use microsoft\.ad\.object\_info instead
-* win\_domain\_ou \- Removed deprecated module\, use microsoft\.ad\.ou instead
-* win\_domain\_user \- Removed deprecated module\, use microsoft\.ad\.user instead
-* win\_lineinfile \- Removed deprecated return value backup\, use backup\_file instead
-* win\_xml \- Removed deprecated\, and undocumented\, return value backup\, use backup\_file instead
-
-
-#### vmware\.vmware
-
-* vm\_list\_group\_by\_clusters \- Tombstone module in favor of vmware\.vmware\.vm\_list\_group\_by\_clusters\_info
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* Ansible will now ensure predictable permissions on remote artifacts\, until now it only ensured executable and relied on system masks for the rest\.
-* dnf5 \- avoid generating excessive transaction entries in the dnf5 history \([https\://github\.com/ansible/ansible/issues/85046](https\://github\.com/ansible/ansible/issues/85046)\)
-
-
-#### ansible\.windows
-
-* win\_find \- allow users case sensitive match the filename \([https\://github\.com/ansible\-collections/ansible\.windows/issues/473](https\://github\.com/ansible\-collections/ansible\.windows/issues/473)\)\.
-* win\_powershell \- Handle failure on output conversion when the output object uses a custom adapter set that fails to enumerate the method members\. This is seen when using the output from Get\-WmiObject \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/767](https\://github\.com/ansible\-collections/ansible\.windows/issues/767)
-* win\_regedit \- Handle decimal values with no decimal values which may be the result of a Jinja2 template
-* win\_template \- Added support for Ansible 2\.19 and the introduction of the data tagging feature\.
-
-
-#### community\.crypto
-
-* luks\_device \- mark parameter passphrase\_encoding as no\_log\=False to avoid confusing warning \([https\://github\.com/ansible\-collections/community\.crypto/pull/867](https\://github\.com/ansible\-collections/community\.crypto/pull/867)\)\.
-* luks\_device \- removing a specific keyslot with remove\_keyslot caused the module to hang while cryptsetup was waiting for a passphrase from stdin\, while the module did not supply one\. Since a keyslot is not necessary\, do not provide one \([https\://github\.com/ansible\-collections/community\.crypto/issues/864](https\://github\.com/ansible\-collections/community\.crypto/issues/864)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/868](https\://github\.com/ansible\-collections/community\.crypto/pull/868)\)\.
-
-
-#### community\.grafana
-
-* Remove field apiVersion from return of current grafana\_datasource for working diff
-* grafana\_dashboard \- add uid to payload
-* test\: replace more deprecated TestCase\.assertEquals to support Python 3\.12
-
-
-#### community\.windows
-
-* win\_format \- fix crash when using path parameter without force option \([https\://github\.com/ansible\-collections/community\.windows/pull/615](https\://github\.com/ansible\-collections/community\.windows/pull/615)\)\.
-* win\_toast \- fix title and message in the notification\.
-
-
-#### dellemc\.openmanage
-
-* idrac\_system\_info \- \(Issue 812\) \- idrac\_system\_info fails on iDRAC10\.
-
-
-#### microsoft\.ad
-
-* ldap inventory \- Fix up support for Ansible 2\.19\.
-
-
-#### purestorage\.flashblade
-
-* purefb\_bucket \- Resolved issue with removing bucket quota
-* purefb\_info \- Fixed issue after SMD Directory Services no longer avaible from REST 2\.16
-* purefb\_policy \- Fixed creation of snapshot policies with assigned filesystems and/or replica links
-* purefb\_s3acc \- Fixed issue with public access config settings not being correctly for an account
-
-
-#### vmware\.vmware
-
-* cluster\_ha \- Fix exception when cluster ha module checks for differences with VM monitoring configs
-* fix method to lookup datastore clusters by name or moid [https\://github\.com/ansible\-collections/vmware\.vmware/issues/152](https\://github\.com/ansible\-collections/vmware\.vmware/issues/152)
-* vm\_snapshot \- Make sure snapshot output is always included if state is present
-
-
-### Known Issues
-
-
-#### dellemc\.openmanage
-
-* idrac\_diagnostics \- Issue\(285322\) \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
-* idrac\_firmware \- Issue\(279282\) \- This module does not support firmware update using HTTP\, HTTPS\, and FTP shares with authentication on iDRAC8\.
-* ome\_smart\_fabric\_uplink \- Issue\(186024\) \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
-
-
-### New Modules
-
-
-#### community\.hrobot
-
-* community\.hrobot\.storagebox\_snapshot \- Create\, update\, or delete a snapshot of a storage box\.
-
-
-#### purestorage\.flashblade
-
-* purestorage\.flashblade\.purefb\_bucket\_access \- Manage FlashBlade bucket access policies
-* purestorage\.flashblade\.purefb\_fleet \- Manage Fusion Fleet
-* purestorage\.flashblade\.purefb\_server \- Manage FlashBlade servers
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 9\.4\.0\)
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 5\.1\.2\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.3\.1\)
-* check\_point\.mgmt \(still version 6\.4\.0\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.11\.0\)
-* cisco\.dnac \(still version 6\.31\.3\)
-* cisco\.intersight \(still version 2\.0\.20\)
-* cisco\.ios \(still version 10\.0\.0\)
-* cisco\.iosxr \(still version 11\.0\.0\)
-* cisco\.ise \(still version 2\.10\.0\)
-* cisco\.meraki \(still version 2\.21\.0\)
-* cisco\.mso \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.0\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 4\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.4\.1\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.dns \(still version 3\.2\.3\)
-* community\.general \(still version 10\.6\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.library\_inventory\_filtering\_v1 \(still version 1\.1\.1\)
-* community\.libvirt \(still version 1\.3\.1\)
-* community\.mongodb \(still version 1\.7\.9\)
-* community\.mysql \(still version 3\.13\.0\)
-* community\.okd \(still version 4\.0\.1\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.4\.0\)
-* community\.routeros \(still version 3\.6\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.sops \(still version 2\.0\.5\)
-* community\.vmware \(still version 5\.6\.0\)
-* community\.zabbix \(still version 3\.3\.0\)
-* containers\.podman \(still version 1\.16\.3\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.35\.0\)
-* fortinet\.fortimanager \(still version 2\.9\.1\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* hetzner\.hcloud \(still version 4\.3\.0\)
-* hitachivantara\.vspone\_block \(still version 3\.4\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.3\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 5\.2\.0\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 22\.14\.0\)
-* netapp\.storagegrid \(still version 21\.14\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.0\)
-* purestorage\.flasharray \(still version 1\.34\.1\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.2\.2\)
-* theforeman\.foreman \(still version 5\.3\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a2
-
-- Release Summary
-- Ansible\-core
-- Changed Collections
-- Major Changes
- - grafana\.grafana
-- Minor Changes
- - Ansible\-core
- - cisco\.aci
- - cisco\.meraki
- - cisco\.mso
- - community\.general
- - community\.routeros
- - community\.vmware
- - hitachivantara\.vspone\_block
-- Deprecated Features
- - community\.general
- - community\.vmware
-- Bugfixes
- - Ansible\-core
- - cisco\.aci
- - cisco\.meraki
- - cisco\.mso
- - community\.dns
- - community\.general
- - community\.vmware
-- Known Issues
- - community\.general
-- New Plugins
- - Connection
-- New Modules
- - hitachivantara\.vspone\_block
-- Unchanged Collections
-
-
-### Release Summary
-
-Release Date\: 2025\-04\-24
-
-[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
-
-### Ansible\-core
-
-Ansible 12\.0\.0a2 contains ansible\-core version 2\.19\.0b2\.
-This is a newer version than version 2\.19\.0b1 contained in the previous Ansible release\.
-
-The changes are reported in the combined changelog below\.
-
-
-### Changed Collections
-
-If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-
-| Collection | Ansible 12.0.0a1 | Ansible 12.0.0a2 | Notes |
-| ---------------------------------------- | ---------------- | ---------------- | ----- |
-| cisco.aci | 2.10.1 | 2.11.0 | |
-| cisco.meraki | 2.20.8 | 2.21.0 | |
-| cisco.mso | 2.9.0 | 2.10.0 | |
-| community.dns | 3.2.2 | 3.2.3 | |
-| community.general | 10.5.0 | 10.6.0 | |
-| community.library_inventory_filtering_v1 | 1.1.0 | 1.1.1 | |
-| community.routeros | 3.5.0 | 3.6.0 | |
-| community.sops | 2.0.4 | 2.0.5 | |
-| community.vmware | 5.5.0 | 5.6.0 | |
-| grafana.grafana | 5.7.0 | 6.0.0 | |
-| hitachivantara.vspone_block | 3.3.0 | 3.4.0 | |
-
-
-### Major Changes
-
-
-#### grafana\.grafana
-
-* Add tempo role by \@CSTDev in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/323](https\://github\.com/grafana/grafana\-ansible\-collection/pull/323)
-* Do not log grafana\.ini contents when setting facts by \@root\-expert in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/325](https\://github\.com/grafana/grafana\-ansible\-collection/pull/325)
-* Fix loki\_operational\_config section not getting rendered in config\.yml by \@olegkaspersky in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/330](https\://github\.com/grafana/grafana\-ansible\-collection/pull/330)
-* Fix sectionless items edge case by \@santilococo in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/303](https\://github\.com/grafana/grafana\-ansible\-collection/pull/303)
-* Fix tags Inherit default vars by \@MJurayev in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/341](https\://github\.com/grafana/grafana\-ansible\-collection/pull/341)
-* Fix the markdown code fences for install command by \@benmatselby in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/306](https\://github\.com/grafana/grafana\-ansible\-collection/pull/306)
-* Grafana fix facts in main\.yml by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/315](https\://github\.com/grafana/grafana\-ansible\-collection/pull/315)
-* Make dashboard imports more flexible by \@torfbolt in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/308](https\://github\.com/grafana/grafana\-ansible\-collection/pull/308)
-* force temporary directory even in check mode for dashboards\.yml by \@cmehat in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/339](https\://github\.com/grafana/grafana\-ansible\-collection/pull/339)
-* integrate sles legacy init\-script support by \@floerica in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/184](https\://github\.com/grafana/grafana\-ansible\-collection/pull/184)
-* management of the config\.river with the conversion of the config\.yaml by \@lbrule in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/149](https\://github\.com/grafana/grafana\-ansible\-collection/pull/149)
-
-
-### Minor Changes
-
-
-#### Ansible\-core
-
-* comment filter \- Improve the error message shown when an invalid style argument is provided\.
-
-
-#### cisco\.aci
-
-* Add aci\_endpoint\_tag\_ip and aci\_endpoint\_tag\_mac modules to manage Endpoint IP and MAC Tags\.
-* Add aci\_ip\_sla\_monitoring\_policy module\.
-* Add management\_epg and management\_epg\_type attributes in aci\_dns\_profile module\.
-* Add stratum attribute to aci\_ntp\_policy module\.
-* Add support for Ansible 2\.18 and dropped support for Ansible 2\.15 as required by Ansible Galaxy\.
-
-
-#### cisco\.meraki
-
-* plugins/action/devices\_sensor\_commands \- new plugin\.
-* plugins/action/devices\_sensor\_commands\_info \- new plugin\.
-* plugins/action/networks\_appliance\_firewall\_multicast\_forwarding \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_profiles \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_bulk\_create \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_bulk\_delete \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_info \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_profiles\_info \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_records \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_local\_records\_info \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_split\_profiles \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_bulk\_create \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_bulk\_delete \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_info \- new plugin\.
-* plugins/action/organizations\_appliance\_dns\_split\_profiles\_info \- new plugin\.
-* plugins/action/organizations\_appliance\_firewall\_multicast\_forwarding\_by\_network\_info \- new plugin\.
-* plugins/action/organizations\_devices\_controller\_migrations \- new plugin\.
-* plugins/action/organizations\_devices\_controller\_migrations\_info \- new plugin\.
-* plugins/action/organizations\_devices\_system\_memory\_usage\_history\_by\_interval\_info \- new plugin\.
-* plugins/action/organizations\_integrations\_xdr\_networks\_disable \- new plugin\.
-* plugins/action/organizations\_integrations\_xdr\_networks\_enable \- new plugin\.
-* plugins/action/organizations\_integrations\_xdr\_networks\_info \- new plugin\.
-* plugins/action/organizations\_switch\_ports\_usage\_history\_by\_device\_by\_interval\_info \- new plugin\.
-* plugins/action/organizations\_wireless\_devices\_power\_mode\_history\_info \- new plugin\.
-* plugins/action/organizations\_wireless\_devices\_system\_cpu\_load\_history\_info \- new plugin\.
-* plugins/action/organizations\_wireless\_ssids\_firewall\_isolation\_allowlist\_entries \- new plugin\.
-* plugins/action/organizations\_wireless\_ssids\_firewall\_isolation\_allowlist\_entries\_info \- new plugin\.
-
-
-#### cisco\.mso
-
-* Add ep\_move\_detection\_mode attribute in mso\_schema\_template\_bd\.
-* Add mso\_schema\_template\_anp\_epg\_annotation module\.
-* Add mso\_schema\_template\_anp\_epg\_intra\_epg\_contract module\.
-* Add name attribute to mso\_schema\_template\_external\_epg\_subnet module\.
-* Add ndo\_ipsla\_track\_list and ndo\_ipsla\_monitoring\_policy modules\.
-* Add ndo\_l3out\_node\_routing\_policy\, ndo\_l3out\_interface\_routing\_policy\, and ndo\_tenant\_bgp\_peer\_prefix\_policy modules\.
-* Add ndo\_l3out\_template\, ndo\_l3out\_annotation\, ndo\_l3out\_interface\_group\_policy\, and ndo\_l3out\_node\_group\_policy modules\.
-* Add ndo\_mcp\_global\_policy module\.
-* Add ndo\_ntp\_policy\, ndo\_ptp\_policy\, and ndo\_ptp\_policy\_profiles modules\.
-* Add ndo\_physical\_interface\, ndo\_port\_channel\_interface\, ndo\_virtual\_port\_channel\_interface\, ndo\_node\_profile\, and ndo\_fex\_device modules to support NDO Fabric Resource Policies\.
-* Add ndo\_qos\_dscp\_cos\_translation\_policy module\.
-* Add ndo\_synce\_interface\_policy\, ndo\_interface\_setting\, ndo\_node\_setting\, and ndo\_macsec\_policy modules\.
-* Add ndo\_tenant\_custom\_qos\_policy module\.
-* Add ndo\_tenant\_igmp\_interface\_policy\, ndo\_tenant\_igmp\_snooping\_policy\, and ndo\_tenant\_mld\_snooping\_policy modules\.
-* Add qos\_level attribute to the mso\_schema\_template\_external\_epg module\.
-* Add support for Ansible 2\.18 and dropped support for Ansible 2\.15 as required by Ansible Galaxy\.
-* Add support for site configuration for tenant policy template in ndo\_template module\.
-
-
-#### community\.general
-
-* apache2\_module \- added workaround for new PHP module name\, from php7\_module to php\_module \([https\://github\.com/ansible\-collections/community\.general/pull/9951](https\://github\.com/ansible\-collections/community\.general/pull/9951)\)\.
-* gitlab\_project \- add option build\_timeout \([https\://github\.com/ansible\-collections/community\.general/pull/9960](https\://github\.com/ansible\-collections/community\.general/pull/9960)\)\.
-* gitlab\_project\_members \- extend choices parameter access\_level by missing upstream valid value owner \([https\://github\.com/ansible\-collections/community\.general/pull/9953](https\://github\.com/ansible\-collections/community\.general/pull/9953)\)\.
-* hpilo\_boot \- add option to get an idempotent behavior while powering on server\, resulting in success instead of failure when using state\: boot\_once option \([https\://github\.com/ansible\-collections/community\.general/pull/9646](https\://github\.com/ansible\-collections/community\.general/pull/9646)\)\.
-* idrac\_redfish\_command\, idrac\_redfish\_config\, idrac\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* ilo\_redfish\_command\, ilo\_redfish\_config\, ilo\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* keycloak module\_utils \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
-* keycloak\_user module \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
-* nmcli \- add support for Infiniband MAC setting when type is infiniband \([https\://github\.com/ansible\-collections/community\.general/pull/9962](https\://github\.com/ansible\-collections/community\.general/pull/9962)\)\.
-* one\_vm \- update allowed values for updateconf to include new parameters as per the latest OpenNebula API documentation\.
- Added parameters\:
-
- - OS\: FIRMWARE\;
- - CPU\_MODEL\: MODEL\, FEATURES\;
- - FEATURES\: VIRTIO\_BLK\_QUEUES\, VIRTIO\_SCSI\_QUEUES\, IOTHREADS\;
- - GRAPHICS\: PORT\, COMMAND\;
- - VIDEO\: ATS\, IOMMU\, RESOLUTION\, TYPE\, VRAM\;
- - RAW\: VALIDATE\;
- - BACKUP\_CONFIG\: FS\_FREEZE\, KEEP\_LAST\, BACKUP\_VOLATILE\, MODE\, INCREMENT\_MODE\.
-
- \([https\://github\.com/ansible\-collections/community\.general/pull/9959](https\://github\.com/ansible\-collections/community\.general/pull/9959)\)\.
-* proxmox and proxmox\_kvm modules \- allow uppercase characters in VM/container tags \([https\://github\.com/ansible\-collections/community\.general/issues/9895](https\://github\.com/ansible\-collections/community\.general/issues/9895)\, [https\://github\.com/ansible\-collections/community\.general/pull/10024](https\://github\.com/ansible\-collections/community\.general/pull/10024)\)\.
-* puppet \- improve parameter formatting\, no impact to user \([https\://github\.com/ansible\-collections/community\.general/pull/10014](https\://github\.com/ansible\-collections/community\.general/pull/10014)\)\.
-* redfish module utils \- add REDFISH\_COMMON\_ARGUMENT\_SPEC\, a corresponding redfish docs fragment\, and support for its validate\_certs\, ca\_path\, and ciphers options \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* redfish\_command\, redfish\_config\, redfish\_info \- add validate\_certs and ca\_path options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* rocketchat \- fix duplicate JSON conversion for Rocket\.Chat \< 7\.4\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9965](https\://github\.com/ansible\-collections/community\.general/pull/9965)\)\.
-* wdc\_redfish\_command\, wdc\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* xcc\_redfish\_command \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
-* zypper \- adds skip\_post\_errors that allows to skip RPM post\-install errors \(Zypper return code 107\) \([https\://github\.com/ansible\-collections/community\.general/issues/9972](https\://github\.com/ansible\-collections/community\.general/issues/9972)\)\.
-
-
-#### community\.routeros
-
-* api\_info\, api\_modify \- add mdns\-repeat\-ifaces to ip dns for RouterOS 7\.16 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/358](https\://github\.com/ansible\-collections/community\.routeros/pull/358)\)\.
-* api\_info\, api\_modify \- field name change in routing bgp connection path implemented by RouterOS 7\.19 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/360](https\://github\.com/ansible\-collections/community\.routeros/pull/360)\)\.
-* api\_info\, api\_modify \- rename is\-responder property in interface wireguard peers to responder for RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/364](https\://github\.com/ansible\-collections/community\.routeros/pull/364)\)\.
-
-
-#### community\.vmware
-
-* module\_utils\.vmware \- Move vmware\_argument\_spec to a dedicated file \([https\://github\.com/ansible\-collections/community\.vmware/pull/2370](https\://github\.com/ansible\-collections/community\.vmware/pull/2370)\)\.
-* module\_utils\.vmware\_rest\_client \- Move vmware\_client\_argument\_spec to a dedicated file \([https\://github\.com/ansible\-collections/community\.vmware/pull/2370](https\://github\.com/ansible\-collections/community\.vmware/pull/2370)\)\.
-* vmware\_dvs\_portgroup \- New option network\_policy\.mac\_learning to replace mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/pull/2360](https\://github\.com/ansible\-collections/community\.vmware/pull/2360)\)\.
-* vmware\_object\_role\_permission \- Document setting permissions on vCenter level \([https\://github\.com/ansible\-collections/community\.vmware/pull/2374](https\://github\.com/ansible\-collections/community\.vmware/pull/2374)\)\.
-
-
-#### hitachivantara\.vspone\_block
-
-* Added iSCSI target support for GAD\, TrueCopy\, HUR\, ShadowImage\, and Snapshot/ThinImage modules\.
-* Added new module hv\_ddp\_pool\_facts to retrieve DDP\-based pool details on VSP One Block storage models\.
-* Added new module hv\_ddp\_pool to create\, update\, and delete DDP\-based pools on VSP One Block storage models\.
-* Added support to delete SVOL post\-pair deletion for GAD\, TrueCopy\, HUR\, ShadowImage\, and Snapshot/ThinImage modules\.
-* Enhanced hv\_ldev\_facts module to support query parameters\.
-* Enhanced hv\_shadow\_image module\: support for local copy group and copy pair name for shadow image pair management\; group management of shadow image pairs\.
-* Enhanced hv\_snapshot\_group module to support retention period\.
-* Enhanced hv\_snapshot module\: added copy speed\, clones automation\, retention period\, support for Floating Snapshot\, and pair creation with specific or auto\-selected SVOL and mirror unit\.
-* Enhanced hv\_storage\_port module to support attributes like connection\, speed\, and type\.
-* Removed gateway connection type from all the modules\.
-
-
-### Deprecated Features
-
-
-#### community\.general
-
-* manifold lookup plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10028](https\://github\.com/ansible\-collections/community\.general/pull/10028)\)\.
-* stackpath\_compute inventory plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10026](https\://github\.com/ansible\-collections/community\.general/pull/10026)\)\.
-
-
-#### community\.vmware
-
-* vmware\_dvs\_portgroup \- mac\_learning is deprecated in favour of network\_policy\.mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/pull/2360](https\://github\.com/ansible\-collections/community\.vmware/pull/2360)\)\.
-
-
-### Bugfixes
-
-
-#### Ansible\-core
-
-* Remove use of required parameter in get\_bin\_path which has been deprecated\.
-* ansible\-doc \- fix indentation for first line of descriptions of suboptions and sub\-return values \([https\://github\.com/ansible/ansible/pull/84690](https\://github\.com/ansible/ansible/pull/84690)\)\.
-* ansible\-doc \- fix line wrapping for first line of description of options and return values \([https\://github\.com/ansible/ansible/pull/84690](https\://github\.com/ansible/ansible/pull/84690)\)\.
-
-
-#### cisco\.aci
-
-* Fix aci\_rest module to only add annotation when the value is a dictionary
-* Fix payload to define the correct vPC member side in aci\_l3out\_logical\_interface\_vpc\_member \(\#663\)
-* Fix subclass issue in aci\_domain\_to\_vlan\_pool to fix deletion of binding \(\#695\)
-* Modify interface\_configs requirement using required\_if dependency for aci\_bulk\_static\_binding\_to\_epg
-
-
-#### cisco\.meraki
-
-* Added validation for radiusServerAttemptsLimit with choices \[1\, 2\, 3\, 4\, 5\]\.
-* Added validation for radiusServerTimeout with a range of valid values \[1\-10\]\.
-* Fixed parameter handling for update\_by\_id\_params in cisco\.meraki\.networks\_wireless\_ssids to correctly map the following parameters \- perClientBandwidthLimitDown \- perClientBandwidthLimitUp \- perSsidBandwidthLimitDown \- perSsidBandwidthLimitUp \- defaultVlanId \- radiusAccountingInterimInterval \- radiusGuestVlanId \- vlanId \- radiusServerAttemptsLimit \- radiusServerTimeout
-* cisco\.meraki\.devices\_wireless\_radio\_settings changed compare equality method to use meraki\_compare\_equality
-* cisco\.meraki\.networks\_wireless\_ssids refactor parameter handling to avoid None values
-
-
-#### cisco\.mso
-
-* Fix query results for bulk query to display correct static\_paths in mso\_schema\_site\_anp\_epg\_staticport module
-* Fix replace operation for bulk present without force replace in mso\_schema\_site\_anp\_epg\_staticport module
-
-
-#### community\.dns
-
-* Update Public Suffix List\.
-
-
-#### community\.general
-
-* dependent look plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* diy callback plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* github\_deploy\_key \- check that key really exists on 422Â to avoid masking other errors \([https\://github\.com/ansible\-collections/community\.general/issues/6718](https\://github\.com/ansible\-collections/community\.general/issues/6718)\, [https\://github\.com/ansible\-collections/community\.general/pull/10011](https\://github\.com/ansible\-collections/community\.general/pull/10011)\)\.
-* hashids and unicode\_normalize filter plugins \- avoid deprecated AnsibleFilterTypeError on ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/9992](https\://github\.com/ansible\-collections/community\.general/pull/9992)\)\.
-* homebrew \- emit a useful error message if brew info reports a package tap is null \([https\://github\.com/ansible\-collections/community\.general/pull/10013](https\://github\.com/ansible\-collections/community\.general/pull/10013)\, [https\://github\.com/ansible\-collections/community\.general/issues/10012](https\://github\.com/ansible\-collections/community\.general/issues/10012)\)\.
-* java\_cert \- the module no longer fails if the optional parameters pkcs12\_alias and cert\_alias are not provided \([https\://github\.com/ansible\-collections/community\.general/pull/9970](https\://github\.com/ansible\-collections/community\.general/pull/9970)\)\.
-* keycloak\_authentication \- fix authentification config duplication for Keycloak \< 26\.2\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9987](https\://github\.com/ansible\-collections/community\.general/pull/9987)\)\.
-* keycloak\_client \- fix the idempotency regression by normalizing the Keycloak response for after\_client \([https\://github\.com/ansible\-collections/community\.general/issues/9905](https\://github\.com/ansible\-collections/community\.general/issues/9905)\, [https\://github\.com/ansible\-collections/community\.general/pull/9976](https\://github\.com/ansible\-collections/community\.general/pull/9976)\)\.
-* proxmox inventory plugin \- fix ansible\_host staying empty for certain Proxmox nodes \([https\://github\.com/ansible\-collections/community\.general/issues/5906](https\://github\.com/ansible\-collections/community\.general/issues/5906)\, [https\://github\.com/ansible\-collections/community\.general/pull/9952](https\://github\.com/ansible\-collections/community\.general/pull/9952)\)\.
-* proxmox\_disk \- fail gracefully if storage is required but not provided by the user \([https\://github\.com/ansible\-collections/community\.general/issues/9941](https\://github\.com/ansible\-collections/community\.general/issues/9941)\, [https\://github\.com/ansible\-collections/community\.general/pull/9963](https\://github\.com/ansible\-collections/community\.general/pull/9963)\)\.
-* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-* sysrc \- no longer always reporting changed\=true when state\=absent\. This fixes the method exists\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/10004](https\://github\.com/ansible\-collections/community\.general/issues/10004)\, [https\://github\.com/ansible\-collections/community\.general/pull/10005](https\://github\.com/ansible\-collections/community\.general/pull/10005)\)\.
-* yaml callback plugin \- use ansible\-core internals to avoid breakage with Data Tagging \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-
-
-#### community\.vmware
-
-* vmware\_dvs\_portgroup \- Fix idempotency issue with mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/issues/1873](https\://github\.com/ansible\-collections/community\.vmware/issues/1873)\)\.
-
-
-### Known Issues
-
-
-#### community\.general
-
-* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- note that ansible\-core\'s Data Tagging feature implements new aliases\, such as \_AnsibleTaggedStr for str\, \_AnsibleTaggedInt for int\, and \_AnsibleTaggedFloat for float \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
-
-
-### New Plugins
-
-
-#### Connection
-
-* community\.general\.wsl \- Run tasks in WSL distribution using wsl\.exe CLI via SSH\.
-
-
-### New Modules
-
-
-#### hitachivantara\.vspone\_block
-
-
-##### Vsp
-
-* hitachivantara\.vspone\_block\.hv\_ddp\_pool \- Manages DDP Pools on Hitachi VSP storage systems\.
-* hitachivantara\.vspone\_block\.hv\_ddp\_pool\_facts \- Get facts of DDP Pools on Hitachi VSP storage systems\.
-
-
-### Unchanged Collections
-
-* amazon\.aws \(still version 9\.4\.0\)
-* ansible\.netcommon \(still version 8\.0\.0\)
-* ansible\.posix \(still version 2\.0\.0\)
-* ansible\.utils \(still version 5\.1\.2\)
-* ansible\.windows \(still version 2\.8\.0\)
-* arista\.eos \(still version 11\.0\.0\)
-* awx\.awx \(still version 24\.6\.1\)
-* azure\.azcollection \(still version 3\.3\.1\)
-* check\_point\.mgmt \(still version 6\.4\.0\)
-* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.dnac \(still version 6\.31\.3\)
-* cisco\.intersight \(still version 2\.0\.20\)
-* cisco\.ios \(still version 10\.0\.0\)
-* cisco\.iosxr \(still version 11\.0\.0\)
-* cisco\.ise \(still version 2\.10\.0\)
-* cisco\.nxos \(still version 10\.0\.0\)
-* cisco\.ucs \(still version 1\.16\.0\)
-* cloud\.common \(still version 4\.0\.0\)
-* cloudscale\_ch\.cloud \(still version 2\.4\.1\)
-* community\.aws \(still version 9\.2\.0\)
-* community\.ciscosmb \(still version 1\.0\.10\)
-* community\.crypto \(still version 2\.26\.0\)
-* community\.digitalocean \(still version 1\.27\.0\)
-* community\.docker \(still version 4\.5\.2\)
-* community\.grafana \(still version 2\.1\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
-* community\.hrobot \(still version 2\.2\.0\)
-* community\.libvirt \(still version 1\.3\.1\)
-* community\.mongodb \(still version 1\.7\.9\)
-* community\.mysql \(still version 3\.13\.0\)
-* community\.okd \(still version 4\.0\.1\)
-* community\.postgresql \(still version 3\.14\.0\)
-* community\.proxysql \(still version 1\.6\.0\)
-* community\.rabbitmq \(still version 1\.4\.0\)
-* community\.sap\_libs \(still version 1\.4\.2\)
-* community\.windows \(still version 2\.4\.0\)
-* community\.zabbix \(still version 3\.3\.0\)
-* containers\.podman \(still version 1\.16\.3\)
-* cyberark\.conjur \(still version 1\.3\.3\)
-* cyberark\.pas \(still version 1\.0\.30\)
-* dellemc\.enterprise\_sonic \(still version 3\.0\.0\)
-* dellemc\.openmanage \(still version 9\.11\.0\)
-* dellemc\.powerflex \(still version 2\.6\.0\)
-* dellemc\.unity \(still version 2\.0\.0\)
-* f5networks\.f5\_modules \(still version 1\.35\.0\)
-* fortinet\.fortimanager \(still version 2\.9\.1\)
-* fortinet\.fortios \(still version 2\.4\.0\)
-* hetzner\.hcloud \(still version 4\.3\.0\)
-* ibm\.qradar \(still version 4\.0\.0\)
-* ibm\.storage\_virtualize \(still version 2\.7\.3\)
-* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
-* infoblox\.nios\_modules \(still version 1\.8\.0\)
-* inspur\.ispim \(still version 2\.2\.3\)
-* junipernetworks\.junos \(still version 10\.0\.0\)
-* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubernetes\.core \(still version 5\.2\.0\)
-* kubevirt\.core \(still version 2\.1\.0\)
-* lowlydba\.sqlserver \(still version 2\.6\.0\)
-* microsoft\.ad \(still version 1\.8\.1\)
-* microsoft\.iis \(still version 1\.0\.2\)
-* netapp\.cloudmanager \(still version 21\.24\.0\)
-* netapp\.ontap \(still version 22\.14\.0\)
-* netapp\.storagegrid \(still version 21\.14\.0\)
-* netapp\_eseries\.santricity \(still version 1\.4\.1\)
-* netbox\.netbox \(still version 3\.21\.0\)
-* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* openstack\.cloud \(still version 2\.4\.1\)
-* ovirt\.ovirt \(still version 3\.2\.0\)
-* purestorage\.flasharray \(still version 1\.34\.1\)
-* purestorage\.flashblade \(still version 1\.19\.2\)
-* splunk\.es \(still version 4\.0\.0\)
-* telekom\_mms\.icinga\_director \(still version 2\.2\.2\)
-* theforeman\.foreman \(still version 5\.3\.0\)
-* vmware\.vmware \(still version 1\.11\.0\)
-* vmware\.vmware\_rest \(still version 4\.7\.0\)
-* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
-* wti\.remote \(still version 1\.0\.10\)
-
-
-## v12\.0\.0a1
-
-- Release Summary
-- Removed Collections
-- Added Collections
-- Ansible\-core
-- Included Collections
-- Major Changes
- - Ansible\-core
- - ansible\.netcommon
- - arista\.eos
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.nxos
- - community\.vmware
- - community\.zabbix
- - dellemc\.openmanage
- - fortinet\.fortios
- - grafana\.grafana
- - junipernetworks\.junos
-- Minor Changes
- - Ansible\-core
- - amazon\.aws
- - ansible\.netcommon
- - ansible\.posix
- - ansible\.windows
- - arista\.eos
- - check\_point\.mgmt
- - cisco\.dnac
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.ise
- - cisco\.meraki
- - cisco\.nxos
- - community\.aws
- - community\.ciscosmb
- - community\.crypto
- - community\.dns
- - community\.docker
- - community\.general
- - community\.hrobot
- - community\.library\_inventory\_filtering\_v1
- - community\.mysql
- - community\.okd
+ - community\.crypto
+ - community\.dns
+ - community\.docker
+ - community\.general
+ - community\.hrobot
+ - community\.libvirt
- community\.postgresql
- - community\.rabbitmq
- - community\.routeros
- - community\.vmware
- - community\.windows
- - community\.zabbix
- - dellemc\.enterprise\_sonic
- - dellemc\.openmanage
+ - community\.vmware
+ - community\.zabbix
+ - containers\.podman
+ - dellemc\.enterprise\_sonic
- dellemc\.powerflex
- - f5networks\.f5\_modules
- - fortinet\.fortimanager
- - hetzner\.hcloud
+ - fortinet\.fortimanager
- ibm\.storage\_virtualize
- - kubernetes\.core
- - lowlydba\.sqlserver
- - microsoft\.ad
- - netapp\.ontap
- - netapp\.storagegrid
- - netbox\.netbox
- - purestorage\.flasharray
- - theforeman\.foreman
- - vmware\.vmware
- - vmware\.vmware\_rest
-- Breaking Changes / Porting Guide
- - Ansible\-core
- - ansible\.posix
- - community\.postgresql
- - dellemc\.enterprise\_sonic
- - theforeman\.foreman
-- Deprecated Features
- - Ansible\-core
- - amazon\.aws
- - ansible\.netcommon
- - cisco\.ios
- - community\.crypto
- - community\.hrobot
- - community\.postgresql
- - community\.vmware
- - vmware\.vmware\_rest
-- Removed Features \(previously deprecated\)
- - Ansible\-core
- - ansible\.posix
- - cisco\.nxos
- - junipernetworks\.junos
-- Security Fixes
- - Ansible\-core
- - cloudscale\_ch\.cloud
-- Bugfixes
- - Ansible\-core
- - amazon\.aws
- - ansible\.netcommon
- - ansible\.posix
- - ansible\.windows
- - arista\.eos
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.ise
- - cisco\.meraki
- - cisco\.nxos
- - community\.aws
- - community\.crypto
- - community\.dns
- - community\.docker
- - community\.general
- - community\.library\_inventory\_filtering\_v1
- - community\.libvirt
- - community\.mysql
- - community\.postgresql
- - community\.rabbitmq
- - community\.routeros
- - community\.sops
- - community\.vmware
- - community\.zabbix
- - containers\.podman
- - dellemc\.enterprise\_sonic
- - dellemc\.openmanage
- - f5networks\.f5\_modules
- - fortinet\.fortimanager
- - fortinet\.fortios
- - hetzner\.hcloud
- - ibm\.storage\_virtualize
- - infoblox\.nios\_modules
- - kubernetes\.core
- - lowlydba\.sqlserver
- - netapp\.ontap
- - netbox\.netbox
- - purestorage\.flasharray
- - purestorage\.flashblade
- - telekom\_mms\.icinga\_director
- - theforeman\.foreman
- - vmware\.vmware
- - vmware\.vmware\_rest
-- Known Issues
- - dellemc\.openmanage
- - purestorage\.flasharray
-- New Plugins
- - Filter
- - Lookup
-- New Modules
- - amazon\.aws
- - ansible\.windows
- - check\_point\.mgmt
- - cisco\.ios
- - cisco\.iosxr
- - cisco\.nxos
- - community\.crypto
- - community\.docker
- - community\.general
- - community\.hrobot
- - community\.postgresql
- - community\.vmware
- - community\.zabbix
- - dellemc\.enterprise\_sonic
- - dellemc\.powerflex
- - fortinet\.fortimanager
- - ibm\.storage\_virtualize
- infoblox\.nios\_modules
- - kubernetes\.core
- - lowlydba\.sqlserver
- - netapp\.ontap
- - netapp\.storagegrid
+ - kubernetes\.core
+ - lowlydba\.sqlserver
+ - netapp\.ontap
+ - netapp\.storagegrid
- netbox\.netbox
- - purestorage\.flasharray
-- Unchanged Collections
+ - purestorage\.flasharray
+ - purestorage\.flashblade
+ - telekom\_mms\.icinga\_director
+ - theforeman\.foreman
+- Unchanged Collections
-
+
### Release Summary
-Release Date\: 2025\-04\-16
+Release Date\: 2025\-09\-09
[Porting Guide](https\://docs\.ansible\.com/ansible/devel/porting\_guides\.html)
-
+
### Removed Collections
* cisco\.asa \(previously included version\: 6\.0\.0\)
+* cisco\.ise \(previously included version\: 2\.9\.5\)
+* cloud\.common \(previously included version\: 4\.0\.0\)
* community\.network \(previously included version\: 5\.1\.0\)
-* google\.cloud \(previously included version\: 1\.4\.1\)
* ibm\.spectrum\_virtualize \(previously included version\: 2\.0\.0\)
* sensu\.sensu\_go \(previously included version\: 1\.14\.0\)
You can still install a removed collection manually with ansible\-galaxy collection install \\.
-
+
### Added Collections
-* hitachivantara\.vspone\_block \(version 3\.3\.0\)
-* microsoft\.iis \(version 1\.0\.2\)
+* community\.proxmox \(version 1\.3\.0\)
+* hitachivantara\.vspone\_block \(version 4\.1\.0\)
+* microsoft\.iis \(version 1\.0\.3\)
-
+
### Ansible\-core
-Ansible 12\.0\.0a1 contains ansible\-core version 2\.19\.0b1\.
+Ansible 12\.0\.0 contains ansible\-core version 2\.19\.1\.
This is a newer version than version 2\.18\.0 contained in the previous Ansible release\.
The changes are reported in the combined changelog below\.
@@ -6157,76 +309,88 @@
If not mentioned explicitly\, the changes are reported in the combined changelog below\.
-| Collection | Ansible 11.0.0 | Ansible 12.0.0a1 | Notes |
-| ---------------------------------------- | -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| amazon.aws | 9.0.0 | 9.4.0 | |
-| ansible.netcommon | 7.1.0 | 8.0.0 | |
-| ansible.posix | 1.6.2 | 2.0.0 | |
-| ansible.windows | 2.5.0 | 2.8.0 | |
-| arista.eos | 10.0.1 | 11.0.0 | |
-| azure.azcollection | 3.0.0 | 3.3.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| check_point.mgmt | 6.2.1 | 6.4.0 | |
-| cisco.dnac | 6.22.0 | 6.31.3 | |
-| cisco.ios | 9.0.3 | 10.0.0 | |
-| cisco.iosxr | 10.2.2 | 11.0.0 | |
-| cisco.ise | 2.9.5 | 2.10.0 | |
-| cisco.meraki | 2.18.3 | 2.20.8 | |
-| cisco.nxos | 9.2.1 | 10.0.0 | |
-| cisco.ucs | 1.14.0 | 1.16.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| cloudscale_ch.cloud | 2.4.0 | 2.4.1 | |
-| community.aws | 9.0.0 | 9.2.0 | |
-| community.ciscosmb | 1.0.9 | 1.0.10 | |
-| community.crypto | 2.22.3 | 2.26.0 | |
-| community.dns | 3.0.7 | 3.2.2 | |
-| community.docker | 4.0.1 | 4.5.2 | |
-| community.general | 10.0.1 | 10.5.0 | |
-| community.hrobot | 2.0.2 | 2.2.0 | |
-| community.library_inventory_filtering_v1 | 1.0.2 | 1.1.0 | |
-| community.libvirt | 1.3.0 | 1.3.1 | |
-| community.mongodb | 1.7.8 | 1.7.9 | There are no changes recorded in the changelog. |
-| community.mysql | 3.10.3 | 3.13.0 | |
-| community.okd | 4.0.0 | 4.0.1 | |
-| community.postgresql | 3.7.0 | 3.14.0 | |
-| community.rabbitmq | 1.3.0 | 1.4.0 | |
-| community.routeros | 3.0.0 | 3.5.0 | |
-| community.sops | 2.0.0 | 2.0.4 | |
-| community.vmware | 5.1.0 | 5.5.0 | |
-| community.windows | 2.3.0 | 2.4.0 | |
-| community.zabbix | 3.1.2 | 3.3.0 | |
-| containers.podman | 1.16.2 | 1.16.3 | |
-| cyberark.conjur | 1.3.1 | 1.3.3 | You can find the collection's changelog at [https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md](https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md). |
-| cyberark.pas | 1.0.27 | 1.0.30 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| dellemc.enterprise_sonic | 2.5.1 | 3.0.0 | |
-| dellemc.openmanage | 9.8.0 | 9.11.0 | |
-| dellemc.powerflex | 2.5.0 | 2.6.0 | |
-| f5networks.f5_modules | 1.32.1 | 1.35.0 | |
-| fortinet.fortimanager | 2.7.0 | 2.9.1 | |
-| fortinet.fortios | 2.3.8 | 2.4.0 | |
-| grafana.grafana | 5.6.0 | 5.7.0 | |
-| hetzner.hcloud | 4.2.1 | 4.3.0 | |
-| hitachivantara.vspone_block | | 3.3.0 | The collection was added to Ansible |
-| ibm.storage_virtualize | 2.5.0 | 2.7.3 | |
-| infoblox.nios_modules | 1.7.0 | 1.8.0 | |
-| junipernetworks.junos | 9.1.0 | 10.0.0 | |
-| kubernetes.core | 5.0.0 | 5.2.0 | |
-| lowlydba.sqlserver | 2.3.4 | 2.6.0 | |
-| microsoft.ad | 1.7.1 | 1.8.1 | |
-| microsoft.iis | | 1.0.2 | The collection was added to Ansible |
-| netapp.ontap | 22.12.0 | 22.14.0 | |
-| netapp.storagegrid | 21.13.0 | 21.14.0 | |
-| netbox.netbox | 3.20.0 | 3.21.0 | |
-| openstack.cloud | 2.2.0 | 2.4.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-| purestorage.flasharray | 1.31.1 | 1.34.1 | |
-| purestorage.flashblade | 1.19.1 | 1.19.2 | |
-| telekom_mms.icinga_director | 2.2.0 | 2.2.2 | |
-| theforeman.foreman | 4.2.0 | 5.3.0 | |
-| vmware.vmware | 1.6.0 | 1.11.0 | |
-| vmware.vmware_rest | 4.2.0 | 4.7.0 | |
+| Collection | Ansible 11.0.0 | Ansible 12.0.0 | Notes |
+| ---------------------------------------- | -------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| amazon.aws | 9.0.0 | 10.1.1 | |
+| ansible.netcommon | 7.1.0 | 8.1.0 | |
+| ansible.posix | 1.6.2 | 2.1.0 | |
+| ansible.utils | 5.1.2 | 6.0.0 | |
+| ansible.windows | 2.5.0 | 3.2.0 | |
+| arista.eos | 10.0.1 | 12.0.0 | |
+| azure.azcollection | 3.0.0 | 3.8.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| check_point.mgmt | 6.2.1 | 6.4.1 | |
+| cisco.aci | 2.10.1 | 2.12.0 | |
+| cisco.dnac | 6.22.0 | 6.39.0 | |
+| cisco.intersight | 2.0.20 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| cisco.ios | 9.0.3 | 11.0.0 | |
+| cisco.iosxr | 10.2.2 | 12.0.0 | |
+| cisco.meraki | 2.18.3 | 2.21.4 | |
+| cisco.mso | 2.9.0 | 2.11.0 | |
+| cisco.nxos | 9.2.1 | 11.0.0 | |
+| cisco.ucs | 1.14.0 | 1.16.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| cloudscale_ch.cloud | 2.4.0 | 2.5.2 | |
+| community.aws | 9.0.0 | 10.0.0 | |
+| community.ciscosmb | 1.0.9 | 1.0.11 | |
+| community.crypto | 2.22.3 | 3.0.3 | |
+| community.dns | 3.0.7 | 3.3.2 | |
+| community.docker | 4.0.1 | 4.7.0 | |
+| community.general | 10.0.1 | 11.2.1 | |
+| community.grafana | 2.1.0 | 2.3.0 | |
+| community.hashi_vault | 6.2.0 | 7.0.0 | |
+| community.hrobot | 2.0.2 | 2.5.0 | |
+| community.library_inventory_filtering_v1 | 1.0.2 | 1.1.1 | |
+| community.libvirt | 1.3.0 | 2.0.0 | |
+| community.mongodb | 1.7.8 | 1.7.10 | There are no changes recorded in the changelog. |
+| community.mysql | 3.10.3 | 3.15.0 | |
+| community.okd | 4.0.0 | 5.0.0 | |
+| community.postgresql | 3.7.0 | 4.1.0 | |
+| community.proxmox | | 1.3.0 | The collection was added to Ansible |
+| community.rabbitmq | 1.3.0 | 1.6.0 | |
+| community.routeros | 3.0.0 | 3.10.0 | |
+| community.sops | 2.0.0 | 2.2.2 | |
+| community.vmware | 5.1.0 | 5.7.2 | |
+| community.windows | 2.3.0 | 3.0.1 | |
+| community.zabbix | 3.1.2 | 4.1.0 | |
+| containers.podman | 1.16.2 | 1.17.0 | |
+| cyberark.conjur | 1.3.1 | 1.3.7 | You can find the collection's changelog at [https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md](https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md). |
+| cyberark.pas | 1.0.27 | 1.0.35 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| dellemc.enterprise_sonic | 2.5.1 | 3.0.0 | |
+| dellemc.openmanage | 9.8.0 | 9.12.3 | |
+| dellemc.powerflex | 2.5.0 | 2.6.1 | |
+| dellemc.unity | 2.0.0 | 2.1.0 | |
+| f5networks.f5_modules | 1.32.1 | 1.38.0 | |
+| fortinet.fortimanager | 2.7.0 | 2.10.0 | |
+| fortinet.fortios | 2.3.8 | 2.4.0 | |
+| google.cloud | 1.4.1 | 1.7.0 | |
+| grafana.grafana | 5.6.0 | 6.0.3 | |
+| hetzner.hcloud | 4.2.1 | 5.2.0 | |
+| hitachivantara.vspone_block | | 4.1.0 | The collection was added to Ansible |
+| ibm.storage_virtualize | 2.5.0 | 2.7.4 | |
+| infinidat.infinibox | 1.4.5 | 1.6.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| infoblox.nios_modules | 1.7.0 | 1.8.0 | |
+| junipernetworks.junos | 9.1.0 | 11.0.0 | |
+| kubernetes.core | 5.0.0 | 6.1.0 | |
+| kubevirt.core | 2.1.0 | 2.2.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| lowlydba.sqlserver | 2.3.4 | 2.7.0 | |
+| microsoft.ad | 1.7.1 | 1.9.2 | |
+| microsoft.iis | | 1.0.3 | The collection was added to Ansible |
+| netapp.ontap | 22.12.0 | 23.1.0 | |
+| netapp.storagegrid | 21.13.0 | 21.15.0 | |
+| netbox.netbox | 3.20.0 | 3.21.0 | |
+| openstack.cloud | 2.2.0 | 2.4.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
+| ovirt.ovirt | 3.2.0 | 3.2.1 | |
+| purestorage.flasharray | 1.31.1 | 1.36.0 | |
+| purestorage.flashblade | 1.19.1 | 1.20.0 | |
+| telekom_mms.icinga_director | 2.2.0 | 2.4.0 | |
+| theforeman.foreman | 4.2.0 | 5.5.0 | |
+| vmware.vmware | 1.6.0 | 2.3.0 | |
+| vmware.vmware_rest | 4.2.0 | 4.9.0 | |
+| vyos.vyos | 5.0.0 | 6.0.0 | |
-
+
### Major Changes
-
+
#### Ansible\-core
* Jinja plugins \- Jinja builtin filter and test plugins are now accessible via their fully\-qualified names ansible\.builtin\.\{name\}\.
@@ -6235,48 +399,125 @@
* variables \- The type system underlying Ansible\'s variable storage has been significantly overhauled and formalized\. Attempts to store unsupported Python object types in variables now more consistently yields early warnings or errors\.
* variables \- To support new Ansible features\, many variable objects are now represented by subclasses of their respective native Python types\. In most cases\, they behave indistinguishably from their original types\, but some Python libraries do not handle builtin object subclasses properly\. Custom plugins that interact with such libraries may require changes to convert and pass the native types\.
-
+
+#### amazon\.aws
+
+* amazon\.aws collection \- The amazon\.aws collection has dropped support for botocore\<1\.34\.0 and boto3\<1\.34\.0\. Most modules will continue to work with older versions of the AWS SDK\, however compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
+* amazon\.aws collection \- due to the AWS SDKs announcing the end of support for Python less than 3\.8 \([https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/](https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/)\)\, support for Python less than 3\.8 by this collection was deprecated in release 6\.0\.0 and removed in release 10\.0\.0\. \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
+* connection/aws\_ssm \- The module has been migrated from the community\.aws collection\. Playbooks using the Fully Qualified Collection Name for this module should be updated to use amazon\.aws\.aws\_ssm\.
+
+
#### ansible\.netcommon
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
+#### ansible\.utils
+
+* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
+
+
#### arista\.eos
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
#### cisco\.ios
+* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
#### cisco\.iosxr
+* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
#### cisco\.nxos
+* Bumping dependencies of ansible\.netcommon to \>\=8\.1\.0\, since previous versions of the dependency had compatibility issues with ansible\-core\>\=2\.19\.
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
+#### community\.aws
+
+* community\.aws collection \- The community\.aws collection has dropped support for botocore\<1\.34\.0 and boto3\<1\.34\.0\. Most modules will continue to work with older versions of the AWS SDK\, however compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2426](https\://github\.com/ansible\-collections/amazon\.aws/pull/2426)\)\.
+
+
+#### community\.libvirt
+
+* virt\_volume \- a new command \'create\_cidata\_cdrom\' enables the creation of a cloud\-init CDROM\, which can be attached to a cloud\-init enabled base image\, for bootstrapping networking\, users etc\.
+* virt\_volume \- the commands create\_from\, delete\, download\, info\, resize\, upload\, wipe\, facts did not work and were not tested\. They have either been refactored to work\, and tested\, or removed\.
+* virt\_volume \- the mechanism of passing variables to the member functions was not flexible enough to cope with differing parameter requirements\. All parameters are now passed as kwargs\, which allows the member functions to select the parameters they need\.
+* virt\_volume \- the module appears to have been derived from virt\_pool\, but not cleaned up to remove much non\-functional code\. It has been refactored to remove the pool\-specific code\, and to make it more flexible\.
+
+
+#### community\.postgresql
+
+* the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.postgresql/issues/829](https\://github\.com/ansible\-collections/community\.postgresql/issues/829)\)\.
+
+
#### community\.vmware
* vmware\_dvswitch\_pvlans \- The VLAN ID type has been updated to be handled as an integer \([https\://github\.com/ansible\-collections/community\.vmware/pull/2267](https\://github\.com/ansible\-collections/community\.vmware/pull/2267)\)\.
-
+
#### community\.zabbix
+* All Roles \- Updated to support Zabbix 7\.4
* All Roles \- Updated to support version 7\.2
-
+
#### dellemc\.openmanage
+* OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2\.19\.
+* idrac\_attributes \- This module is enhanced to support iDRAC10\.
+* idrac\_attributes \- This role is enhanced to support iDRAC10\.
+* idrac\_bios \- This module is enhanced to support iDRAC10\.
+* idrac\_bios \- This role is enhanced to support iDRAC10\.
+* idrac\_boot \- This module is enhanced to support iDRAC10\.
+* idrac\_boot \- This role is enhanced to support iDRAC10\.
+* idrac\_certificates \- This module is enhanced to support iDRAC10\.
+* idrac\_diagnostics \- This module is enhanced to support iDRAC10\.
+* idrac\_firmware \- This module is enhanced to support iDRAC10\.
+* idrac\_gather\_facts \- This role is enhanced to support iDRAC10\.
+* idrac\_job\_queue \- This role is enhanced to support iDRAC10\.
+* idrac\_lifecycle\_controller\_job\_status\_info \- This module is enhanced to support iDRAC10\.
+* idrac\_lifecycle\_controller\_jobs \- This module is enhanced to support iDRAC10\.
+* idrac\_lifecycle\_controller\_logs \- This module is enhanced to support iDRAC10\.
+* idrac\_lifecycle\_controller\_status\_info \- This module is enhanced to support iDRAC10\.
+* idrac\_network\_attributes \- This module is enhanced to support iDRAC10\.
+* idrac\_reset \- This module is enhanced to support iDRAC10\.
+* idrac\_reset \- This role is enhanced to support iDRAC10\.
+* idrac\_secure\_boot \- This module is enhanced to support iDRAC10\.
+* idrac\_server\_powerstate \- This role is enhanced to support iDRAC10\.
+* idrac\_session \- This module is enhanced to support iDRAC10\.
+* idrac\_support\_assist \- This module is enhanced to support iDRAC10\.
+* idrac\_syslog \- This module is deprecated\.
+* idrac\_system\_erase \- This module is enhanced to support iDRAC10\.
+* idrac\_system\_info \- This module is enhanced to support iDRAC10\.
+* idrac\_user \- This module is enhanced to support iDRAC10\.
+* idrac\_user \- This role is enhanced to support iDRAC10\.
+* idrac\_user\_info \- This module is enhanced to support iDRAC10\.
+* idrac\_virtual\_media \- This module is enhanced to support iDRAC10\.
+* ome\_firmware \- This module is enhanced to support OME 4\.5\.
+* ome\_firmware\_baseline \- This module is enhanced to support OME 4\.5\.
+* ome\_firmware\_baseline\_compliance\_info \- This module is enhanced to support OME 4\.5\.
+* ome\_firmware\_baseline\_info \- This module is enhanced to support OME 4\.5\.
+* ome\_firmware\_catalog \- This module is enhanced to support OME 4\.5\.
* omevv\_baseline\_profile \- This module allows to manage baseline profile\.
* omevv\_baseline\_profile\_info \- This module allows to retrieve baseline profile information\.
* omevv\_compliance\_info \- This module allows to retrieve firmware compliance reports\.
* omevv\_firmware \- This module allows to update firmware of the single host and single cluster\.
+* redfish\_event\_subscription \- This module is enhanced to support iDRAC10\.
+* redfish\_firmware \- This module is enhanced to support iDRAC10\.
+* redfish\_power\_state \- This module is enhanced to support iDRAC10\.
+
+
+#### dellemc\.unity
+
+* Adding support for Unity v5\.5\.
#### fortinet\.fortios
@@ -6285,46 +526,123 @@
* Supported new versions 7\.6\.1 and 7\.6\.2\.
* Updated the examples with correct values that have minimum or maximum values\.
-
+
+#### google\.cloud
+
+* google\_cloud\_ops\_agents \- role submodule removed because it prevents the collection from passing sanity and lint tests
+
+
#### grafana\.grafana
* Ability to set custom directory path for \*\.alloy config files by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/294](https\://github\.com/grafana/grafana\-ansible\-collection/pull/294)
+* Add delete protection by \@KucicM in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/381](https\://github\.com/grafana/grafana\-ansible\-collection/pull/381)
+* Add tempo role by \@CSTDev in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/323](https\://github\.com/grafana/grafana\-ansible\-collection/pull/323)
+* Do not log grafana\.ini contents when setting facts by \@root\-expert in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/325](https\://github\.com/grafana/grafana\-ansible\-collection/pull/325)
* Fix \'dict object\' has no attribute \'path\' when running with \-\-check by \@JMLX42 in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/283](https\://github\.com/grafana/grafana\-ansible\-collection/pull/283)
+* Fix Mimir URL verify task by \@parcimonic in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/358](https\://github\.com/grafana/grafana\-ansible\-collection/pull/358)
+* Fix loki\_operational\_config section not getting rendered in config\.yml by \@olegkaspersky in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/330](https\://github\.com/grafana/grafana\-ansible\-collection/pull/330)
+* Fix sectionless items edge case by \@santilococo in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/303](https\://github\.com/grafana/grafana\-ansible\-collection/pull/303)
+* Fix some regression introduced by v6 by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/376](https\://github\.com/grafana/grafana\-ansible\-collection/pull/376)
+* Fix tags Inherit default vars by \@MJurayev in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/341](https\://github\.com/grafana/grafana\-ansible\-collection/pull/341)
+* Fix the markdown code fences for install command by \@benmatselby in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/306](https\://github\.com/grafana/grafana\-ansible\-collection/pull/306)
+* Grafana fix facts in main\.yml by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/315](https\://github\.com/grafana/grafana\-ansible\-collection/pull/315)
+* Make dashboard imports more flexible by \@torfbolt in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/308](https\://github\.com/grafana/grafana\-ansible\-collection/pull/308)
* Update grafana template by \@santilococo in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/300](https\://github\.com/grafana/grafana\-ansible\-collection/pull/300)
+* Update when statement to test for dashboard files found by \@hal58th in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/363](https\://github\.com/grafana/grafana\-ansible\-collection/pull/363)
+* Use become false in find task by \@santilococo in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/368](https\://github\.com/grafana/grafana\-ansible\-collection/pull/368)
* add loki bloom support by \@voidquark in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/298](https\://github\.com/grafana/grafana\-ansible\-collection/pull/298)
+* alloy\_readiness\_check\_use\_https by \@piotr\-g in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/359](https\://github\.com/grafana/grafana\-ansible\-collection/pull/359)
+* force temporary directory even in check mode for dashboards\.yml by \@cmehat in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/339](https\://github\.com/grafana/grafana\-ansible\-collection/pull/339)
* grafana\.ini yaml syntax by \@intermittentnrg in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/232](https\://github\.com/grafana/grafana\-ansible\-collection/pull/232)
+* integrate sles legacy init\-script support by \@floerica in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/184](https\://github\.com/grafana/grafana\-ansible\-collection/pull/184)
+* management of the config\.river with the conversion of the config\.yaml by \@lbrule in [https\://github\.com/grafana/grafana\-ansible\-collection/pull/149](https\://github\.com/grafana/grafana\-ansible\-collection/pull/149)
-
+
#### junipernetworks\.junos
* Bumping requires\_ansible to \>\=2\.16\.0\, since previous ansible\-core versions are EoL now\.
-
+
+#### netapp\.ontap
+
+* library netapp\-lib is now an optional requirement\.
+* na\_ontap\_autoupdate\_support \- REST only support to enable automatic software update\, requires ONTAP 9\.10 or later\.
+* na\_ontap\_lun \- added compatibility for ASA r2 systems\.
+* na\_ontap\_lun\_copy \- added check to prevent use on unsupported ASA r2 systems\.
+* na\_ontap\_lun\_map \- added compatibility for ASA r2 systems\.
+* na\_ontap\_lun\_map\_reporting\_nodes \- added compatibility for ASA r2 systems\.
+* na\_ontap\_nvme\_namespace \- added compatibility for ASA r2 systems\.
+* na\_ontap\_nvme\_subsystem \- added compatibility for ASA r2 systems\.
+* na\_ontap\_s3\_buckets \- new option snapshot\_policy added in REST\, requires ONTAP 9\.16\.1 or later\.
+
+
+#### vmware\.vmware
+
+* cluster modules \- Add identifying information about the cluster managed to the output of cluster modules
+* folder\_paths \- Throw an error when a relative folder path is provided and the datacenter name is not provided
+* module\_utils/argument\_spec \- make argument specs public so other collections can use them [https\://github\.com/ansible\-collections/vmware\.vmware/issues/144](https\://github\.com/ansible\-collections/vmware\.vmware/issues/144)
+* module\_utils/clients \- make client utils public so other collections can use them [https\://github\.com/ansible\-collections/vmware\.vmware/issues/144](https\://github\.com/ansible\-collections/vmware\.vmware/issues/144)
+* update query file to include cluster module queries
+
+
+#### vmware\.vmware\_rest
+
+* Remove cloud\.common as a dependency\, so it will not be installed automatically anymore \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/621](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/621)\)\.
+* modules \- disable turbo mode for module execution by default\. Make it optional to enable it using an environment variable \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/499](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/499)\)
+
+
+#### vyos\.vyos
+
+* bgp modules \- Added support for 1\.4\+ \"system\-as\"\. 1\.3 embedded as\_number is still supported
+* vyos bgp modules \- Many configuration attributes moved from bgp\_global to bgp\_address\_family module \(see documentation\)\.
+* vyos\_bgp\_address\_family \- Aligned with version 1\.3\+ configuration \- aggregate\_address\, maximum\_paths\, network\, and redistribute moved from bgp\_global module\. These are now Address\-family specific\. Many neighbor attributes also moved from vyos\_bgp\_global to vyos\_bgp\_address\_family module\.
+* vyos\_bgp\_global \- Aligned with version 1\.3\+ configuration \- aggregate\_address\, maximum\_paths\, network\, and redistribute Removed to bgp\_address\_family module\.
+* vyos\_user \- add support for encrypted password specification
+* vyos\_user \- add support for public\-key authentication
+
+
### Minor Changes
-
+
#### Ansible\-core
* Added a \-vvvvv log message indicating when a host fails to produce output within the timeout period\.
+* Added type annotations to the Role\.\_\_init\_\_\(\) method to enable type checking\. \([https\://github\.com/ansible/ansible/pull/85346](https\://github\.com/ansible/ansible/pull/85346)\)
+* AnsibleModule \- Add temporary internal monkeypatch\-able hook to alter module result serialization by splitting serialization from \_return\_formatted into \_record\_module\_result\.
* AnsibleModule\.uri \- Add option multipart\_encoding for form\-multipart files in body to change default base64 encoding for files
* INVENTORY\_IGNORE\_EXTS config\, removed ini from the default list\, inventory scripts using a corresponding \.ini configuration are rare now and inventory\.ini files are more common\. Those that need to ignore the ini files for inventory scripts can still add it to configuration\.
+* Improved SUSE distribution detection in distribution\.py by parsing VARIANT\_ID from /etc/os\-release for identifying SLES\_SAP and SL\-Micro\. Falls back to /etc/products\.d/baseproduct symlink for older systems\.
* Jinja plugins \- Plugins can declare support for undefined values\.
* Jinja2 version 3\.1\.0 or later is now required on the controller\.
* Move follow\_redirects parameter to module\_utils so external modules can reuse it\.
* PlayIterator \- do not return tasks from already executed roles so specific strategy plugins do not have to do the filtering of such tasks themselves
+* Remove unnecessary shebang from the hostname module\.
* SSH Escalation\-related \-vvv log messages now include the associated host information\.
+* Use importlib\.metadata\.version\(\) to detect Jinja version as jinja2\.\_\_version\_\_ is deprecated and will be removed in Jinja 3\.3\.
* Windows \- Add support for Windows Server 2025 to Ansible and as an ansible\-test remote target \- [https\://github\.com/ansible/ansible/issues/84229](https\://github\.com/ansible/ansible/issues/84229)
* Windows \- refactor the async implementation to better handle errors during bootstrapping and avoid WMI when possible\.
* ansible\-galaxy collection install — the collection dependency resolver now prints out conflicts it hits during dependency resolution when it\'s taking too long and it ends up backtracking a lot\. It also displays suggestions on how to help it compute the result more quickly\.
+* ansiballz \- Added an experimental AnsiballZ extension for remote debugging\.
+* ansiballz \- Added support for AnsiballZ extensions\.
+* ansiballz \- Moved AnsiballZ code coverage support into an extension\.
+* ansiballz \- Refactored AnsiballZ and module respawn\.
* ansible\, ansible\-console\, ansible\-pull \- add \-\-flush\-cache option \([https\://github\.com/ansible/ansible/issues/83749](https\://github\.com/ansible/ansible/issues/83749)\)\.
+* ansible\-config will now show internal\, but not test configuration entries\. This allows for debugging but still denoting the configurations as internal use only \(\_ prefix\)\.
+* ansible\-doc \- Return dynamic stub when reporting on Jinja filters and tests not explicitly documented in Ansible
+* ansible\-doc \- Skip listing the internal ansible\.\_protomatter plugins unless explicitly requested
* ansible\-galaxy \- Add support for Keycloak service accounts
* ansible\-galaxy \- support resolvelib \>\= 0\.5\.3\, \< 2\.0\.0 \([https\://github\.com/ansible/ansible/issues/84217](https\://github\.com/ansible/ansible/issues/84217)\)\.
+* ansible\-test \- Add RHEL 10\.0 as a remote platform for testing\.
* ansible\-test \- Added a macOS 15\.3 remote VM\, replacing 14\.3\.
+* ansible\-test \- Added experimental support for remote debugging\.
+* ansible\-test \- Added support for setting static environment variables in integration tests using env/set/ entries in the aliases file\. For example\, env/set/MY\_KEY/MY\_VALUE or env/set/MY\_PATH//an/abs/path\.
* ansible\-test \- Automatically retry HTTP GET/PUT/DELETE requests on exceptions\.
* ansible\-test \- Default to Python 3\.13 in the base and default containers\.
* ansible\-test \- Disable the deprecated\- prefixed pylint rules as their results vary by Python version\.
* ansible\-test \- Disable the pep8 sanity test rules E701 and E704 to improve compatibility with black\.
* ansible\-test \- Improve container runtime probe error handling\. When unexpected probe output is encountered\, an error with more useful debugging information is provided\.
+* ansible\-test \- Improve formatting of generated coverage config file\.
+* ansible\-test \- Improved pylint checks for Ansible\-specific deprecation functions\.
* ansible\-test \- Replace container Alpine 3\.20 with 3\.21\.
* ansible\-test \- Replace container Fedora 40 with 41\.
* ansible\-test \- Replace remote Alpine 3\.20 with 3\.21\.
@@ -6333,6 +651,7 @@
* ansible\-test \- Replace remote FreeBSD 14\.1 with 14\.2\.
* ansible\-test \- Replace remote RHEL 9\.4 with 9\.5\.
* ansible\-test \- Show a more user\-friendly error message when a runme\.sh script is not executable\.
+* ansible\-test \- The shell command has been augmented to propagate remote debug configurations and other test\-related settings when running on the controller\. Use the \-\-raw argument to bypass the additional environment configuration\.
* ansible\-test \- The yamllint sanity test now enforces string values for the \!vault tag\.
* ansible\-test \- Update nios\-test\-container to version 7\.0\.0\.
* ansible\-test \- Update pylint sanity test to use version 3\.3\.1\.
@@ -6342,23 +661,43 @@
* ansible\-test \- Update the PyPI test container\.
* ansible\-test \- Update the base and default containers\.
* ansible\-test \- Update the utility container\.
+* ansible\-test \- Use OS packages to satisfy controller requirements on FreeBSD 13\.5 during managed instance bootstrapping\.
* ansible\-test \- Use Python\'s urllib instead of curl for HTTP requests\.
+* ansible\-test \- Use the \-t option to set the stop timeout when stopping a container\. This avoids use of the \-\-time option which was deprecated in Docker v28\.0\.
* ansible\-test \- When detection of the current container network fails\, a warning is now issued and execution continues\. This simplifies usage in cases where the current container cannot be inspected\, such as when running in GitHub Codespaces\.
* ansible\-test acme test container \- bump [version to 2\.3\.0](https\://github\.com/ansible/acme\-test\-container/releases/tag/2\.3\.0) to include newer versions of Pebble\, dependencies\, and runtimes\. This adds support for ACME profiles\, dns\-account\-01 support\, and some smaller improvements \([https\://github\.com/ansible/ansible/pull/84547](https\://github\.com/ansible/ansible/pull/84547)\)\.
+* apt \- consider lock timeout while invoking apt\-get command \([https\://github\.com/ansible/ansible/issues/78658](https\://github\.com/ansible/ansible/issues/78658)\)\.
* apt\_key module \- add notes to docs and errors to point at the CLI tool deprecation by Debian and alternatives
+* apt\_repository \- remove Python 2 support
* apt\_repository module \- add notes to errors to point at the CLI tool deprecation by Debian and alternatives
+* assemble action added check\_mode support
* become plugins get new property \'pipelining\' to show support or lack there of for the feature\.
* callback plugins \- add has\_option\(\) to CallbackBase to match other functions overloaded from AnsiblePlugin
* callback plugins \- fix get\_options\(\) for CallbackBase
+* collection metadata \- The collection loader now parses scalar values from meta/runtime\.yml as strings\. This avoids issues caused by unquoted values such as versions or dates being parsed as types other than strings\.
+* comment filter \- Improve the error message shown when an invalid style argument is provided\.
* copy \- fix sanity test failures \([https\://github\.com/ansible/ansible/pull/83643](https\://github\.com/ansible/ansible/pull/83643)\)\.
* copy \- parameter local\_follow was incorrectly documented as having default value True \([https\://github\.com/ansible/ansible/pull/83643](https\://github\.com/ansible/ansible/pull/83643)\)\.
* cron \- Provide additional error information while writing cron file \([https\://github\.com/ansible/ansible/issues/83223](https\://github\.com/ansible/ansible/issues/83223)\)\.
* csvfile \- let the config system do the typecasting \([https\://github\.com/ansible/ansible/pull/82263](https\://github\.com/ansible/ansible/pull/82263)\)\.
+* csvfile lookup \- remove Python 2 compat
+* deprecation warnings \- Deprecation warning APIs automatically capture the identity of the deprecating plugin\. The collection\_name argument is only required to correctly attribute deprecations that occur in module\_utils or other non\-plugin code\.
+* deprecation warnings \- Improved deprecation messages to more clearly indicate the affected content\, including plugin name when available\.
+* deprecations \- Collection name strings not of the form ns\.coll passed to deprecation API functions will result in an error\.
+* deprecations \- Removed support for specifying deprecation dates as a datetime\.date\, which was included in an earlier 2\.19 pre\-release\.
+* deprecations \- Some argument names to deprecate\_value for consistency with existing APIs\. An earlier 2\.19 pre\-release included a removal\_ prefix on the date and version arguments\.
+* display \- Add help\_text and obj to Display\.error\_as\_warning\.
* display \- Deduplication of warning and error messages considers the full content of the message \(including source and traceback contexts\, if enabled\)\. This may result in fewer messages being omitted\.
+* display \- Replace Windows newlines \(\\r\\n\) in display output with Unix newlines \(\\n\)\. This ensures proper display of strings sourced from Windows hosts in environments which treat \\r as \\n\, such as Azure Pipelines\.
+* display \- The formatted arg to warning has no effect\. Warning wrapping is left to the consumer \(e\.g\. terminal\, browser\)\.
+* display \- The wrap\_text and stderr arguments to error have no effect\. Errors are always sent to stderr and wrapping is left to the consumer \(e\.g\. terminal\, browser\)\.
* distribution \- Added openSUSE MicroOS to Suse OS family \(\#84685\)\.
* dnf5\, apt \- add auto\_install\_module\_deps option \([https\://github\.com/ansible/ansible/issues/84206](https\://github\.com/ansible/ansible/issues/84206)\)
* docs \- add collection name in message from which the module is being deprecated \([https\://github\.com/ansible/ansible/issues/84116](https\://github\.com/ansible/ansible/issues/84116)\)\.
+* encrypt \- check datatype of salt\_size in password\_hash filter\.
* env lookup \- The error message generated for a missing environment variable when default is an undefined value \(e\.g\. undef\(\'something\'\)\) will contain the hint from that undefined value\, except when the undefined value is the default of undef\(\) with no arguments\. Previously\, any existing undefined hint would be ignored\.
+* facts \- add \"CloudStack KVM Hypervisor\" for Linux VM in virtual facts \([https\://github\.com/ansible/ansible/issues/85089](https\://github\.com/ansible/ansible/issues/85089)\)\.
+* facts \- add \"Linode\" for Linux VM in virtual facts
* file \- enable file module to disable diff\_mode \([https\://github\.com/ansible/ansible/issues/80817](https\://github\.com/ansible/ansible/issues/80817)\)\.
* file \- make code more readable and simple\.
* filter \- add support for URL\-safe encoding and decoding in b64encode and b64decode \([https\://github\.com/ansible/ansible/issues/84147](https\://github\.com/ansible/ansible/issues/84147)\)\.
@@ -6371,21 +710,36 @@
* local connection plugin \- When a become plugin\'s prompt value is a non\-string after the check\_password\_prompt callback has completed\, no prompt stripping will occur on stderr\.
* lookup\_template \- add an option to trim blocks while templating \([https\://github\.com/ansible/ansible/issues/75962](https\://github\.com/ansible/ansible/issues/75962)\)\.
* module \- set ipv4 and ipv6 rules simultaneously in iptables module \([https\://github\.com/ansible/ansible/issues/84404](https\://github\.com/ansible/ansible/issues/84404)\)\.
+* module\_utils \- Add AnsibleModule\.error\_as\_warning\.
* module\_utils \- Add NoReturn type annotations to functions which never return\.
+* module\_utils \- Add ansible\.module\_utils\.common\.warnings\.error\_as\_warning\.
+* module\_utils \- Add optional help\_text argument to AnsibleModule\.warn\.
+* module\_utils\.basic\.backup\_local enforces check\_mode now
* modules \- PowerShell modules can now receive datetime\.date\, datetime\.time and datetime\.datetime values as ISO 8601 strings\.
* modules \- PowerShell modules can now receive strings sourced from inline vault\-encrypted strings\.
+* modules \- The AnsibleModule\.deprecate function no longer sends deprecation messages to the target host\'s logging system\.
* modules \- Unhandled exceptions during Python module execution are now returned as structured data from the target\. This allows the new traceback handling to be applied to exceptions raised on targets\.
+* modules \- use AnsibleModule\.warn instead of passing warnings to exit\_json or fail\_json which is deprecated\.
* pipelining logic has mostly moved to connection plugins so they can decide/override settings\.
* plugin error handling \- When raising exceptions in an exception handler\, be sure to use raise \.\.\. from as appropriate\. This supersedes the use of the AnsibleError arg orig\_exc to represent the cause\. Specifying orig\_exc as the cause is still permitted\. Failure to use raise \.\.\. from when orig\_exc is set will result in a warning\. Additionally\, if the two cause exceptions do not match\, a warning will be issued\.
* removed hardcoding of su plugin as it now works with pipelining\.
* runtime\-metadata sanity test \- improve validation of action\_groups \([https\://github\.com/ansible/ansible/pull/83965](https\://github\.com/ansible/ansible/pull/83965)\)\.
+* service\_facts \- handle keyerror exceptions with warning\.
+* service\_facts \- warn user about missing service details instead of ignoring\.
* service\_facts module got freebsd support added\.
+* ssh agent \- Added SSH\_AGENT\_EXECUTABLE config to allow override of ssh\-agent\.
+* ssh connection plugin \- Added verbosity config to decouple SSH debug output verbosity from Ansible verbosity\. Previously\, the Ansible verbosity value was always applied to the SSH client command\-line\, leading to excessively verbose output\. Set the ANSIBLE\_SSH\_VERBOSITY envvar or ansible\_ssh\_verbosity Ansible variable to a positive integer to increase SSH client verbosity\.
* ssh connection plugin \- Support SSH\_ASKPASS mechanism to provide passwords\, making it the default\, but still offering an explicit choice to use sshpass \([https\://github\.com/ansible/ansible/pull/83936](https\://github\.com/ansible/ansible/pull/83936)\)
* ssh connection plugin now overrides pipelining when a tty is requested\.
* ssh\-agent \- ansible\, ansible\-playbook and ansible\-console are capable of spawning or reusing an ssh\-agent\, allowing plugins to interact with the ssh\-agent\. Additionally a pure python ssh\-agent client has been added\, enabling easy interaction with the agent\. The ssh connection plugin contains new functionality via ansible\_ssh\_private\_key and ansible\_ssh\_private\_key\_passphrase\, for loading an SSH private key into the agent from a variable\.
+* task timeout \- Specifying a timeout greater than 100\,000\,000 now results in an error\.
+* template action and lookup plugin \- The value of the ansible\_managed variable \(if set\) will not be masked by the template action and lookup\. Previously\, the value calculated by the DEFAULT\_MANAGED\_STR configuration option always masked the variable value during plugin execution\, preventing runtime customization\.
* templating \- Access to an undefined variable from inside a lookup\, filter\, or test \(which raises MarkerError\) no longer ends processing of the current template\. The triggering undefined value is returned as the result of the offending plugin invocation\, and the template continues to execute\.
+* templating \- Added \_ANSIBLE\_TEMPLAR\_SANDBOX\_MODE\=allow\_unsafe\_attributes environment variable to disable Jinja template attribute sandbox\. \([https\://github\.com/ansible/ansible/issues/85202](https\://github\.com/ansible/ansible/issues/85202)\)
* templating \- Embedding range\(\) values in containers such as lists will result in an error on use\. Previously the value would be converted to a string representing the range parameters\, such as range\(0\, 3\)\.
* templating \- Handling of omitted values is now a first\-class feature of the template engine\, and is usable in all Ansible Jinja template contexts\. Any template that resolves to omit is automatically removed from its parent container during templating\.
+* templating \- Relaxed the Jinja sandbox to allow specific bitwise operations which have no filter equivalent\. The allowed methods are \_\_and\_\_\, \_\_lshift\_\_\, \_\_or\_\_\, \_\_rshift\_\_\, \_\_xor\_\_\.
+* templating \- Switched from the Jinja immutable sandbox to the standard sandbox\. This restores the ability to use mutation methods such as list\.append and dict\.update\.
* templating \- Template evaluation is lazier than in previous versions\. Template expressions which resolve only portions of a data structure no longer result in the entire structure being templated\.
* templating \- Templating errors now provide more information about both the location and context of the error\, especially for deeply\-nested and/or indirected templating scenarios\.
* templating \- Unified omit behavior now requires that plugins calling Templar\.template\(\) handle cases where the entire template result is omitted\, by catching the AnsibleValueOmittedError that is raised\. Previously\, this condition caused a randomly\-generated string marker to appear in the template result\.
@@ -6394,16 +748,22 @@
* troubleshooting \- Tracebacks can be collected and displayed for most errors\, warnings\, and deprecation warnings \(including those generated by modules\)\. Tracebacks are no longer enabled with \-vvv\; the behavior is directly configurable via the DISPLAY\_TRACEBACK config option\. Module tracebacks passed to fail\_json via the exception kwarg will not be included in the task result unless error tracebacks are configured\.
* undef jinja function \- The undef jinja function now raises an error if a non\-string hint is given\. Attempting to use an undefined hint also results in an error\, ensuring incorrect use of the function can be distinguished from the function\'s normal behavior\.
* validate\-modules sanity test \- make sure that module and plugin seealso entries use FQCNs \([https\://github\.com/ansible/ansible/pull/84325](https\://github\.com/ansible/ansible/pull/84325)\)\.
+* variables \- Removed restriction on usage of most Python keywords as Ansible variable names\.
+* variables \- Warnings about reserved variable names now show context where the variable was defined\.
* vault \- improved vault filter documentation by adding missing example content for dump\_template\_data\.j2\, refining examples for clarity\, and ensuring variable consistency \([https\://github\.com/ansible/ansible/issues/83583](https\://github\.com/ansible/ansible/issues/83583)\)\.
* warnings \- All warnings \(including deprecation warnings\) issued during a task\'s execution are now accessible via the warnings and deprecations keys on the task result\.
* when the dict lookup is given a non\-dict argument\, show the value of the argument and its type in the error message\.
+* windows \- Added support for \#AnsibleRequires \-Wrapper to request a PowerShell module be run through the execution wrapper scripts without any module utils specified\.
+* windows \- Added support for running signed modules and scripts with a Windows host protected by Windows App Control/WDAC\. This is a tech preview and the interface may be subject to change\.
+* windows \- Script modules will preserve UTF\-8 encoding when executing the script\.
* windows \- add hard minimum limit for PowerShell to 5\.1\. Ansible dropped support for older versions of PowerShell in the 2\.16 release but this requirement is now enforced at runtime\.
* windows \- refactor windows exec runner to improve efficiency and add better error reporting on failures\.
* winrm \- Remove need for pexpect on macOS hosts when using kinit to retrieve the Kerberos TGT\. By default the code will now only use the builtin subprocess library which should handle issues with select and a high fd count and also simplify the code\.
-
+
#### amazon\.aws
+* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2590](https\://github\.com/ansible\-collections/amazon\.aws/pull/2590)\)\.
* autoscaling\_group \- adds group\_name as an alias for the name parameter \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2396](https\://github\.com/ansible\-collections/amazon\.aws/pull/2396)\)\.
* autoscaling\_group \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
* autoscaling\_group\_info \- adds group\_name as an alias for the name parameter \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2396](https\://github\.com/ansible\-collections/amazon\.aws/pull/2396)\)\.
@@ -6419,6 +779,9 @@
* ec2\_vpc\_vpn \- minor linting fixups \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2444](https\://github\.com/ansible\-collections/amazon\.aws/pull/2444)\)\.
* iam\_password\_policy \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
* iam\_role \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
+* iam\_user\_info \- Add tags to ListUsers or GetGroup results \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
+* iam\_user\_info \- Return empty user list when invalid group name is provided instead of python error \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
+* inventory/aws\_ec2 \- Adding support for Route53 as hostname \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2580](https\://github\.com/ansible\-collections/amazon\.aws/pull/2580)\)\.
* inventory/aws\_ec2 \- Support jinja2 expression in hostnames variable\([https\://github\.com/ansible\-collections/amazon\.aws/issues/2402](https\://github\.com/ansible\-collections/amazon\.aws/issues/2402)\)\.
* inventory/aws\_ec2 \- Update templating mechanism to support ansible\-core 2\.19 changes \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2552](https\://github\.com/ansible\-collections/amazon\.aws/pull/2552)\)\.
* kms\_key \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
@@ -6428,13 +791,17 @@
* module\_utils\.botocore \- avoid assigning unused parts of exc\_info return \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2497](https\://github\.com/ansible\-collections/amazon\.aws/pull/2497)\)\.
* module\_utils\.exceptions \- avoid assigning unused parts of exc\_info return \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2497](https\://github\.com/ansible\-collections/amazon\.aws/pull/2497)\)\.
* module\_utils\.iam \- avoid assignment to unused result variable \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
+* module\_utils\.s3 \- added \"501\" to the list of error codes thrown by S3 replacements \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2447](https\://github\.com/ansible\-collections/amazon\.aws/issues/2447)\)\.
* module\_utils\.s3 \- avoid assignment to unused endpoint variable \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
+* module\_utils/modules\.py \- call to deprecate\(\) without specifying collection\_name\, version or date arguments raises a sanity errors \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2607](https\://github\.com/ansible\-collections/amazon\.aws/pull/2607)\)\.
+* module\_utils/s3 \- add initial ErrorHandler for S3 modules \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2060](https\://github\.com/ansible\-collections/amazon\.aws/pull/2060)\)\.
* plugin\_utils/inventory \- Add filters to list of templatable inventory options \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2379](https\://github\.com/ansible\-collections/amazon\.aws/pull/2379)\)
* route53 \- Add support for type SSHFP records \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2430](https\://github\.com/ansible\-collections/amazon\.aws/pull/2430)\)\.
* route53\_zone \- Add support for enabling DNSSEC signing in a specific hosted zone \([https\://github\.com/ansible\-collections/amazon\.aws/issues/1976](https\://github\.com/ansible\-collections/amazon\.aws/issues/1976)\)\.
* route53\_zone \- avoid assignmenta to unused current\_vpc\_ids and current\_vpc\_regions variables \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
* s3\_bucket \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
* s3\_bucket \- avoid redefining id inside handle\_bucket\_inventory and delete\_bucket\_inventory \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2444](https\://github\.com/ansible\-collections/amazon\.aws/pull/2444)\)\.
+* s3\_bucket \- migrated to use updated error handlers for better handling of non\-AWS errors \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
* s3\_object \- avoid redefining key\_check inside \_head\_object \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2444](https\://github\.com/ansible\-collections/amazon\.aws/pull/2444)\)\.
* s3\_object \- simplify path\_check logic \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2444](https\://github\.com/ansible\-collections/amazon\.aws/pull/2444)\)\.
* s3\_object \- support passing metadata in create mode \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2529](https\://github\.com/ansible\-collections/amazon\.aws/pull/2529)\)\.
@@ -6442,23 +809,31 @@
* s3\_object\_info \- add support to list objects under a specific prefix \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2477](https\://github\.com/ansible\-collections/amazon\.aws/issues/2477)\)\.
* s3\_object\_info \- avoid assignment to unused variable in except block \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2464](https\://github\.com/ansible\-collections/amazon\.aws/pull/2464)\)\.
-
+
#### ansible\.netcommon
+* Changes to supplement direct execution of Ansible module in validate\_config\(utils\.py\) and \_patch\_update\_module\(network\.py\) added\.
* Exposes new libssh options to configure publickey\_accepted\_algorithms and hostkeys\. This requires ansible\-pylibssh v1\.1\.0 or higher\.
+* Override new 2\.19\.1\+ AnsibleModule\.\_record\_module\_result hook in network action plugin to bypass module result serialization when direct execution is enabled
-
+
#### ansible\.posix
* authorized\_keys \- allow using absolute path to a file as a SSH key\(s\) source \([https\://github\.com/ansible\-collections/ansible\.posix/pull/568](https\://github\.com/ansible\-collections/ansible\.posix/pull/568)\)
* callback plugins \- Add recap information to timer\, profile\_roles and profile\_tasks callback outputs \([https\://github\.com/ansible\-collections/ansible\.posix/pull/387](https\://github\.com/ansible\-collections/ansible\.posix/pull/387)\)\.
+* profile\_tasks and profile\_roles callback plugins \- avoid deleted/deprecated callback functions\, instead use modern interface that was introduced a longer time ago \([https\://github\.com/ansible\-collections/ansible\.posix/issues/650](https\://github\.com/ansible\-collections/ansible\.posix/issues/650)\)\.
-
+
#### ansible\.windows
* Added support for Windows Server 2025
+* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
* setup \- Added ansible\_os\_install\_date as the OS installation date in the ISO 8601 format yyyy\-MM\-ddTHH\:mm\:ssZ\. This date is represented in the UTC timezone \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/663](https\://github\.com/ansible\-collections/ansible\.windows/issues/663)
* setup \- Remove dependency on shared function loaded by Ansible
+* setup \- add \"CloudStack KVM Hypervisor\" for Windows VM in virtual facts \([https\://github\.com/ansible\-collections/ansible\.windows/pull/785](https\://github\.com/ansible\-collections/ansible\.windows/pull/785)\)\.
+* setup \- added ansible\_product\_uuid to align with Python facts \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/789](https\://github\.com/ansible\-collections/ansible\.windows/issues/789)
+* win\_dns\_client \- add support for suffixsearchlist \([https\://github\.com/ansible\-collections/ansible\.windows/issues/656](https\://github\.com/ansible\-collections/ansible\.windows/issues/656)\)\.
+* win\_find \- add support for \'any\' to find both directories and files \([https\://github\.com/ansible\-collections/ansible\.windows/issues/797](https\://github\.com/ansible\-collections/ansible\.windows/issues/797)\)\.
* win\_get\_url \- Added checksum and checksum\_algorithm to verify the package before installation\. Also returns checksum if checksum\_algorithm is provided \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/596](https\://github\.com/ansible\-collections/ansible\.windows/issues/596)
* win\_get\_url \- if checksum is passed and destination file exists with different checksum file is always downloaded \([https\://github\.com/ansible\-collections/ansible\.windows/issues/717](https\://github\.com/ansible\-collections/ansible\.windows/issues/717)\)
* win\_get\_url \- if checksum is passed and destination file exists with identical checksum no download is done unless force\=yes \([https\://github\.com/ansible\-collections/ansible\.windows/issues/717](https\://github\.com/ansible\-collections/ansible\.windows/issues/717)\)
@@ -6466,27 +841,77 @@
* win\_group \- Added members option to set the group membership\. This is designed to replace the functionality of the win\_group\_membership module\.
* win\_group \- Added sid return value representing the security identifier of the group when state\=present\.
* win\_group \- Migrate to newer Ansible\.Basic fragment for better input validation and testing support\.
+* win\_powershell \- Add support for running scripts on a Windows host with an active Windows Application Control policy in place\. Scripts that are unsigned will be run in Constrained Language Mode while scripts that are signed and trusted by the remote host\'s WDAC policy will be run in Full Language Mode\.
+* win\_powershell \- Added the path and remote\_src options which can be used to specify a local or remote PowerShell script to run\.
+* win\_shell \- Add support for running scripts on a Windows host with an active Windows Application Control policy in place\. Scripts will always run in Contrained Language Mode as they are executed in memory\, use the ansible\.windows\.win\_powershell module to run signed scripts in Full Language Mode on a WDAC enabled host\.
+* win\_template \- Added comment\_start\_string and comment\_end\_string as options to align with the builtin template module\.
+* win\_template \- Preserve user\-supplied value for ansible\_managed when set on Ansible Core 2\.19\+\.
-
+
#### arista\.eos
* Adds a new module eos\_vrf\_global in favor of eos\_vrf legacy module to manage VRF global configurations on Arista EOS devices\.
-
+
#### check\_point\.mgmt
* added missing parameters such as \'filter\'\, \'domains\_to\_process\' and \'async\_response\' to the relevant resources modules\.
* check\_point\.mgmt\.cp\_mgmt\_lsm\_cluster \- support additional parameters \(dynamic\-objects\, tags and topology\)
* check\_point\.mgmt\.cp\_mgmt\_lsm\_gateway \- support additional parameters \(device\_id\, dynamic\-objects\, tags and topology\)
-
+
+#### cisco\.aci
+
+* Add aci\_endpoint\_tag\_ip and aci\_endpoint\_tag\_mac modules to manage Endpoint IP and MAC Tags\.
+* Add aci\_ip\_sla\_monitoring\_policy module\.
+* Add description\, console\_log\_severity\, local\_file\_log\_format\, and console\_log\_format to aci\_syslog\_group module\.
+* Add enhanced\_log and rfc5424\-ts options to attribute format of aci\_syslog\_group module\.
+* Add epg\_cos\, epg\_cos\_preference\, ipam\_dhcp\_override\, ipam\_enabled\, ipam\_gateway\, lag\_policy\_name\, netflow\_direction\, primary\_encap\_inner\, and secondary\_encap\_inner atributes to aci\_epg\_to\_domain module\.
+* Add management\_epg and management\_epg\_type attributes in aci\_dns\_profile module\.
+* Add missing options to priority attribute and vrf to scope attribute in aci\_contract module\.
+* Add nutanix support for aci\_aep\_to\_domain\, aci\_domain\, aci\_domain\_to\_encap\_pool\, aci\_domain\_to\_vlan\_pool\, aci\_vmm\_controller\, aci\_vmm\_credential modules\.
+* Add pod\_id attribute to aci\_switch\_policy\_vpc\_protection\_group module\.
+* Add stratum attribute to aci\_ntp\_policy module\.
+* Add support for Ansible 2\.18 and dropped support for Ansible 2\.15 as required by Ansible Galaxy\.
+
+
#### cisco\.dnac
* \.ansible\-lint is added to handle a formatting issue in Red Hat\.
+* API Modules 2\_2\_2\_3\, 2\_2\_3\_3\, 2\_3\_3\_0 were removed
+* Added \'application\_policy\_workflow\_manager\' for managing queuing profiles\, applications\, sets and policies
+* Added \'assurance\_device\_health\_score\_settings\_workflow\_manager\' for managing assurance Health score settings
+* Added \'assurance\_icap\_settings\_workflow\_manager\' for configuring and managing ICAP \(Intelligent Capture\) settings
+* Added \'assurance\_issue\_workflow\_manager\' for managing assurance global profile settings and issue resolution
+* Added \'network\_profile\_switching\_workflow\_manager\' for managing switch profiles
+* Added \'network\_profile\_wireless\_workflow\_manager\' for managing network wireless profile
+* Added \'path\_trace\_workflow\_manager\' for managing PathTrace settings
+* Added \'tags\_workflow\_manager\' for create\, update\, delete Tags and Tag Memberships
+* Added \'wireless\_design\_workflow\_manager\' for managing wireless design elements
+* Added attribute \'config\_file\_types\' in device\_configs\_backup\_workflow\_manager module
+* Added attribute \'device\_controllability\_details\' in network\_settings\_workflow\_manager module
+* Added attribute \'device\_type\' in \'assurance\_issue\_workflow\_manager\' module
+* Added attribute \'devices\_maintenance\_schedule\' in \'inventory\_workflow\_manager\' module
+* Added attribute \'ignore\_duration\' in assurance\_issue\_workflow\_manager module
+* Added attribute \'minimum\_rssi\' in \'wireless\_design\_workflow\_manager\' module
+* Added attribute \'new\_name\' in tags\_workflow\_manager module
+* Added attribute \'projects\' in template\_workflow\_manager module
+* Added attribute \'resource\_parameters\' and \'copy\_config\' in \'template\_workflow\_manager\' module
+* Added attribute \'sda\_fabric\_gateway\_limit\' in \'sda\_fabric\_virtual\_networks\_workflow\_manager\' module
+* Added attribute \'ssid\_name\' in \'network\_profile\_wireless\_workflow\_manager\' module
+* Added attribute \'sub\_package\_images\' in \'swim\_workflow\_manager\' module
+* Added attribute \'template\_description\' in template\_workflow\_manager module
+* Added attribute \'wireless\_controller\_settings\' in sda\_fabric\_devices\_workflow\_manager module
+* Added attributes \'commit\' and \'version\' in template\_workflow\_manager module
+* Added attributes \'ipv4\_total\_addresses\'\, \'ipv4\_unassignable\_addresses\'\, \'ipv4\_assigned\_addresses\'\, \'ipv4\_default\_assigned\_addresses\'\, \'ipv6\_total\_addresses\'\, \'ipv6\_unassignable\_addresses\'\, \'ipv6\_assigned\_addresses\'\, \'ipv6\_default\_assigned\_addresses\' in \'network\_settings\_workflow\_manager\' module
+* Added compatibility with Cisco version 3\.1\.3\.0 \-all corresponding modules were added\-\.
+* Added create in configuration\_template module
* Added sample playbook for Device Configs Backup Module
* Added support for bulk operations on multiple access points in accesspoint\_workflow\_manager
* Adding Unit Test automation in github actions
+* Adding log messages and minor documentation changes in accesspoint\_workflow\_manager module
* Aliases were implemented to handle v1 and v2 of the API\.
+* All alias modules were removed \-\*v1\-\.
* Bug fixes in \[sda\_fabric\_sites\_zones\_workflow\_manager module
* Bug fixes in accesspoint\_workflow\_manager module
* Bug fixes in inventory\_workflow\_manager
@@ -6501,20 +926,60 @@
* Bug fixes in swim\_workflow\_manager module
* Bug fixes in template\_workflow\_manager module
* Bug fixes in user\_role\_workflow\_manager module
+* Changes in \'application\_policy\_workflow\_manager\' module
+* Changes in \'assurance\_icap\_settings\_workflow\_manager\' module
+* Changes in \'assurance\_issue\_workflow\_manager\' module
+* Changes in \'device\_configs\_backup\_workflow\_manager\' module
+* Changes in \'device\_credential\_backup\_workflow\_manager\' module
+* Changes in \'discovery\_workflow\_manager\' module
+* Changes in \'events\_and\_notifications\_workflow\_manager\' module
+* Changes in \'inventory\_workflow\_manager\' module
+* Changes in \'ise\_radius\_integration\_workflow\_manager\' module
+* Changes in \'lan\_automation\_workflow\_manager\' module
+* Changes in \'network\_compliance\_workflow\_manager\' module
+* Changes in \'network\_profile\_switching\_workflow\_manager\' module
+* Changes in \'network\_profile\_wireless\_workflow\_manager\' module
+* Changes in \'network\_settings\_workflow\_manager\' module
+* Changes in \'pnp\_workflow\_manager\' module
+* Changes in \'provision\_workflow\_manager\' module
+* Changes in \'sda\_extranet\_policies\_workflow\_manager\' module
+* Changes in \'sda\_fabric\_devices\_workflow\_manager\' module
+* Changes in \'sda\_fabric\_sites\_zones\_workflow\_manager\' module
+* Changes in \'sda\_fabric\_transits\_workflow\_manager\' module
+* Changes in \'sda\_fabric\_virtual\_networks\_workflow\_manager\' module
+* Changes in \'sda\_host\_onboarding\_workflow\_manager\' module
+* Changes in \'swim\_workflow\_manager\' module
+* Changes in \'tags\_workflow\_manager\' module
+* Changes in \'template\_workflow\_manager\' module
+* Changes in \'user\_and\_roles\_workflow\_manager\' module
+* Changes in \'wireless\_design\_workflow\_manager\' module
+* Changes in application\_policy\_workflow\_manager workflow manager module
+* Changes in assurance\_device\_health\_score\_settings\_workflow\_manager module
+* Changes in assurance\_icap\_settings\_workflow\_manager module
+* Changes in assurance\_issue\_workflow\_manager workflow manager module
* Changes in circleci and yaml lint files
* Changes in circleci to run test cases in integration branch
+* Changes in device\_configs\_backup\_workflow\_manager module
* Changes in device\_credential\_workflow\_manager module
+* Changes in discovery\_workflow\_manager module
* Changes in dnac\.py file
+* Changes in dnac\.py module
* Changes in inventory\_workflow\_manager module
* Changes in ise\_radius\_integration\_workflow\_manager
* Changes in ise\_radius\_integration\_workflow\_manager module
+* Changes in lan\_automation\_create module
* Changes in network\_compliance\_workflow\_manager
+* Changes in network\_profile\_switching\_workflow\_manager module
+* Changes in network\_profile\_wireless\_workflow\_manager module
* Changes in network\_settings\_workflow\_manager
* Changes in network\_settings\_workflow\_manager module
+* Changes in networks\_profile module
+* Changes in path\_trace\_workflow\_manager module
* Changes in pnp\_workflow\_manager module
* Changes in provision\_workflow\_manager module
* Changes in sda\_extranet\_policy\_workflow\_manager
* Changes in sda\_fabric\_devices\_workflow\_manager module
+* Changes in sda\_fabric\_multicast\_workflow\_manager module
* Changes in sda\_fabric\_site\_zones\_workflow\_manager module
* Changes in sda\_fabric\_virtual\_networks\_workflow\_manager module
* Changes in sda\_host\_port\_onboarding\_workflow\_manager module
@@ -6522,8 +987,18 @@
* Changes in site\_workflow\_manager module
* Changes in swim\_workflow\_manager module
* Changes in swim\_workflow\_manager module to support list of images
+* Changes in tags\_workflow\_manager module
* Changes in template\_workflow\_manager
+* Changes in template\_workflow\_manager module
+* Changes in user\_role\_workflow\_manager module
+* Changes in validation\.py module
+* Changes in wireless\_design\_workflow\_manger module
+* Correction of issue 266 in the reserve\_ip\_subpool modules
+* Documentation changes in assurance\_issue\_workflow\_manager module
+* Documentation changes in device\_configs\_backup\_workflow\_manager module
+* Documentation changes in inventory\_workflow\_manager module
* Enhancements in \[sda\_fabric\_virtual\_networks\_workflow\_manager module to support batch operation\.
+* Enhancements in assurance\_issue\_workflow\_manager module to support ignore duration
* Enhancements in device\_configs\_backup\_workflow\_manager module to support unzipped backup file after download
* Enhancements in device\_credential\_workflow\_manager module
* Enhancements in provision\_workflow\_manager module
@@ -6533,12 +1008,20 @@
* Fixed issues in module sda\_anycast\_gateways\_v1
* Fixed issues in module sda\_layer3\_virtual\_networks\_v1
* Modifications due to documentation errors
+* New enhancment in template\_workflow\_manager workflow manager module
+* Removed attribute \'application\_sets\' and \'application\' in \'application\_policy\_workflow\_manager\' module
+* Removed attribute \'control\_path\' in \'path\_trace\_workflow\_manager\' module
+* Removed attribute \'description\' in template\_workflow\_manager module
+* Removed attribute \'minimum\_rss\' in \'wireless\_design\_workflow\_manager\' module
+* Removed attributes \'application\_set\_name\' in \'application\_policy\_workflow\_manager\' module
+* Removed attributes \'ssid\'\, \'onboarding\_templates\' in \'network\_profile\_wireless\_workflow\_manager\' module
* Removing duplicates in the discovery\.py module\. snmpRwCommunity property\.
* Some parameters were modified in tag\_member\_v1\_info
* Supporting unmarking the devices in rma\_workflow\_manager module
* The file format was changed to conform to the requested standards\.
* Unit test modules added for pnp\_workflow\_manager module
* Update Readme
+* Update dnacentersdk requirement from 2\.7\.0 to 2\.10\.1
* aaa\_services\_count\_v1\_info \- new module
* aaa\_services\_id\_trend\_analytics\_v1 \- new module
* aaa\_services\_id\_v1\_info \- new module
@@ -6559,6 +1042,7 @@
* assurance\_tasks\_count\_v1\_info \- new module
* assurance\_tasks\_id\_v1\_info \- new module
* assurance\_tasks\_v1\_info \- new module
+* changing ansible\.utils 6\.x\.y
* cisco\_imcs\_id\_v1 \- new module
* cisco\_imcs\_id\_v1\_info \- new module
* cisco\_imcs\_v1 \- new module
@@ -6667,6 +1151,7 @@
* license\_register\_v1 \- new module
* license\_renew\_v1 \- new module
* license\_status\_v1\_info \- new module
+* modify problems in requests to the API
* network\_applications\_count\_v1\_info \- new module
* network\_applications\_trend\_analytics\_v1 \- new module
* network\_applications\_v1\_info \- new module
@@ -6814,28 +1299,28 @@
* wireless\_settings\_power\_profiles\_v1\_info \- new module
* wireless\_settings\_ssids\_override\_at\_sites\_v1\_info \- new module
-
+
#### cisco\.ios
* Add ios\_evpn\_ethernet resource module\.
* Added ios\_vrf\_interfaces resource module\,that helps with configuration of vrfs within interface
* Adds a new module ios\_vrf\_address\_family to manage VRFs address families on Cisco IOS devices\.
+* ios\_hsrp\_interfaces \- Added support for cisco\.ios\.hsrp\_interfaces module \(standby commands\)\.
* ios\_interfaces \- Added service\-policy\, logging and snmp configuration options for interface\.
* ios\_l2\_interfaces \- Added a few switchport and spanning\-tree configuration options for interface\.
* ios\_l3\_interfaces \- Added a few ip configuration options for interface\.
-
+
#### cisco\.iosxr
* Added iosxr\_vrf\_interfaces resource module\, that helps with configuration of vrfs within interface\.
+* Adds support for missing set route map attributes med and extcommunity
* Adds support for setting local\-preference with plus/minus values in route policies
+* Enhanced CDP neighbor parsing to support updated output formats in IOS\-XR 7\.7\.21 and 7\.4\.1
+* Modified parse\_cdp\_ip to recognize \"IPv4 address\" in place of \"IP address\"
+* Updated parse\_cdp\_intf\_port to handle newline\-separated \"Interface\" and \"Port ID\" fields
-
-#### cisco\.ise
-
-* Fix linting issues\.
-
-
+
#### cisco\.meraki
* Sanity and CI fixes\.
@@ -6902,90 +1387,745 @@
* organizations\_wireless\_radio\_auto\_rf\_channels\_recalculate \- new plugin\.
* organizations\_wireless\_rf\_profiles\_assignments\_by\_device\_info \- new plugin\.
* organizations\_wireless\_ssids\_statuses\_by\_device\_info \- new plugin\.
+* plugins/action/devices\_sensor\_commands \- new plugin\.
+* plugins/action/devices\_sensor\_commands\_info \- new plugin\.
+* plugins/action/networks\_appliance\_firewall\_multicast\_forwarding \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_profiles \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_bulk\_create \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_bulk\_delete \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_profiles\_assignments\_info \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_profiles\_info \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_records \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_local\_records\_info \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_split\_profiles \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_bulk\_create \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_bulk\_delete \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_split\_profiles\_assignments\_info \- new plugin\.
+* plugins/action/organizations\_appliance\_dns\_split\_profiles\_info \- new plugin\.
+* plugins/action/organizations\_appliance\_firewall\_multicast\_forwarding\_by\_network\_info \- new plugin\.
+* plugins/action/organizations\_devices\_controller\_migrations \- new plugin\.
+* plugins/action/organizations\_devices\_controller\_migrations\_info \- new plugin\.
+* plugins/action/organizations\_devices\_system\_memory\_usage\_history\_by\_interval\_info \- new plugin\.
+* plugins/action/organizations\_integrations\_xdr\_networks\_disable \- new plugin\.
+* plugins/action/organizations\_integrations\_xdr\_networks\_enable \- new plugin\.
+* plugins/action/organizations\_integrations\_xdr\_networks\_info \- new plugin\.
+* plugins/action/organizations\_switch\_ports\_usage\_history\_by\_device\_by\_interval\_info \- new plugin\.
+* plugins/action/organizations\_wireless\_devices\_power\_mode\_history\_info \- new plugin\.
+* plugins/action/organizations\_wireless\_devices\_system\_cpu\_load\_history\_info \- new plugin\.
+* plugins/action/organizations\_wireless\_ssids\_firewall\_isolation\_allowlist\_entries \- new plugin\.
+* plugins/action/organizations\_wireless\_ssids\_firewall\_isolation\_allowlist\_entries\_info \- new plugin\.
+
+
+#### cisco\.mso
-
+* Add admin\_state attribute to mso\_schema\_site\_anp\_epg module\.
+* Add ep\_move\_detection\_mode attribute in mso\_schema\_template\_bd\.
+* Add mso\_schema\_template\_anp\_epg\_annotation module\.
+* Add mso\_schema\_template\_anp\_epg\_intra\_epg\_contract module\.
+* Add name attribute to mso\_schema\_template\_external\_epg\_subnet module\.
+* Add ndo\_ipsla\_track\_list and ndo\_ipsla\_monitoring\_policy modules\.
+* Add ndo\_l3out\_node\_routing\_policy\, ndo\_l3out\_interface\_routing\_policy\, and ndo\_tenant\_bgp\_peer\_prefix\_policy modules\.
+* Add ndo\_l3out\_template\, ndo\_l3out\_annotation\, ndo\_l3out\_interface\_group\_policy\, and ndo\_l3out\_node\_group\_policy modules\.
+* Add ndo\_mcp\_global\_policy module\.
+* Add ndo\_ntp\_policy\, ndo\_ptp\_policy\, and ndo\_ptp\_policy\_profiles modules\.
+* Add ndo\_physical\_interface\, ndo\_port\_channel\_interface\, ndo\_virtual\_port\_channel\_interface\, ndo\_node\_profile\, and ndo\_fex\_device modules to support NDO Fabric Resource Policies\.
+* Add ndo\_qos\_dscp\_cos\_translation\_policy module\.
+* Add ndo\_synce\_interface\_policy\, ndo\_interface\_setting\, ndo\_node\_setting\, and ndo\_macsec\_policy modules\.
+* Add ndo\_tenant\_custom\_qos\_policy module\.
+* Add ndo\_tenant\_igmp\_interface\_policy\, ndo\_tenant\_igmp\_snooping\_policy\, and ndo\_tenant\_mld\_snooping\_policy modules\.
+* Add qos\_level attribute to the mso\_schema\_template\_external\_epg module\.
+* Add support for Ansible 2\.18 and dropped support for Ansible 2\.15 as required by Ansible Galaxy\.
+* Add support for site configuration for tenant policy template in ndo\_template module\.
+* Improved ndo modules returned current value with actual API response\.
+
+
#### cisco\.nxos
* Add support for VRF address family via vrf\_address\_family resource module\.
* Added nxos\_vrf\_interfaces resource module\, that helps with configuration of vrfs within interface in favor of nxos\_vrf\_interface module\.
+* cisco\.nxos\.nxos\_l3\_interfaces \- Rewrite of l3\_interfaces with bug fixes and enhancements\.
+* hsrp\_interfaces \- Fixes and enhances capability of the module to deal with entire hsrp configuration under interfaces\.
+* nxos\_interfaces \- Added service\-policy\, logging\, mac\-address and snmp configuration options for interface\.
+* nxos\_l2\_interfaces \- Enhances capability of the module to deal with addition attributes under l2 interfaces\. Adds support for CDP\, Link flap and beacon\.
* nxos\_telemetry \- Added support for \'overridden\' state to provide complete configuration override capabilities\.
* nxos\_vpc \- Added support for peer\-switch feature configuration\.
-
+
+#### cloudscale\_ch\.cloud
+
+* Add ansible\-core 2\.19\+ compatibility
+* Remove the custom error message from snapshots module to fix root volume snapshots/restores on stopped servers
+* volume \- Add revert parameter\.
+
+
#### community\.aws
+* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/community\.aws/pull/2295](https\://github\.com/ansible\-collections/community\.aws/pull/2295)\)\.
* aws\_ssm \- Refactor \_init\_clients Method for Improved Clarity and Efficiency \([https\://github\.com/ansible\-collections/community\.aws/pull/2223](https\://github\.com/ansible\-collections/community\.aws/pull/2223)\)\.
* aws\_ssm \- Refactor \_prepare\_terminal\(\) Method for Improved Clarity and Efficiency \([https\://github\.com/ansible\-collections/community\.aws/pull/](https\://github\.com/ansible\-collections/community\.aws/pull/)\)\.
* aws\_ssm \- Refactor exec\_command Method for Improved Clarity and Efficiency \([https\://github\.com/ansible\-collections/community\.aws/pull/2224](https\://github\.com/ansible\-collections/community\.aws/pull/2224)\)\.
* aws\_ssm \- Add function to generate random strings for SSM CLI delimitation \([https\://github\.com/ansible\-collections/community\.aws/pull/2235](https\://github\.com/ansible\-collections/community\.aws/pull/2235)\)\.
* aws\_ssm \- Add the possibility to define aws\_ssm plugin variable via environment variable and by default use the version found on the \$PATH rather than require that you provide an absolute path \([https\://github\.com/ansible\-collections/community\.aws/issues/1990](https\://github\.com/ansible\-collections/community\.aws/issues/1990)\)\.
+* aws\_ssm \- Move the aws\_ssm connection plugin\'s plugin\_utils into a dedicated folder \([https\://github\.com/ansible\-collections/community\.aws/pull/2279](https\://github\.com/ansible\-collections/community\.aws/pull/2279)\)\.
+* aws\_ssm \- Refactor S3 operations methods for improved clarity \([https\://github\.com/ansible\-collections/community\.aws/pull/2275](https\://github\.com/ansible\-collections/community\.aws/pull/2275)\)\.
* aws\_ssm \- Refactor \_exec\_transport\_commands\, \_generate\_commands\, and \_exec\_transport\_commands methods for improved clarity \([https\://github\.com/ansible\-collections/community\.aws/pull/2248](https\://github\.com/ansible\-collections/community\.aws/pull/2248)\)\.
* aws\_ssm \- Refactor connection/aws\_ssm to add new S3ClientManager class and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2255](https\://github\.com/ansible\-collections/community\.aws/pull/2255)\)\.
+* aws\_ssm \- Refactor connection/aws\_ssm to add new TerminalManager class and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2270](https\://github\.com/ansible\-collections/community\.aws/pull/2270)\)\.
+* aws\_ssm \- Refactor connection/aws\_ssm to add new FileTransferManager class and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2273](https\://github\.com/ansible\-collections/community\.aws/pull/2273)\)\.
+* aws\_ssm \- Refactor connection/aws\_ssm to add new SSMSessionManager and ProcessManager classes and move relevant methods to the new class \([https\://github\.com/ansible\-collections/community\.aws/pull/2272](https\://github\.com/ansible\-collections/community\.aws/pull/2272)\)\.
* aws\_ssm \- Refactor display/verbosity\-related methods in aws\_ssm to simplify the code and avoid repetition \([https\://github\.com/ansible\-collections/community\.aws/pull/2264](https\://github\.com/ansible\-collections/community\.aws/pull/2264)\)\.
* dms\_endpoint \- Improve resilience of parameter comparison \([https\://github\.com/ansible\-collections/community\.aws/pull/2221](https\://github\.com/ansible\-collections/community\.aws/pull/2221)\)\.
* s3\_lifecycle \- Support for min and max object size when applying the filter rules \([https\://github\.com/ansible\-collections/community\.aws/pull/2205](https\://github\.com/ansible\-collections/community\.aws/pull/2205)\)\.
* various modules \- Linting fixups \([https\://github\.com/ansible\-collections/community\.aws/pull/2221](https\://github\.com/ansible\-collections/community\.aws/pull/2221)\)\.
* waf\_condition \- Add missing options validation to filters \([https\://github\.com/ansible\-collections/community\.aws/pull/2220](https\://github\.com/ansible\-collections/community\.aws/pull/2220)\)\.
-
+
#### community\.ciscosmb
+* Update modules to conform core 2\.19 and templating changes
* added Catalyst 1300 to supported platforms
* parsing neighbour table allowes empty 4th column to allow Cisco Catalyst 1300 support
+* solves
-
+
#### community\.crypto
+* No longer provide cryptography\'s backend parameter\. This will break with cryptography \< 3\.1 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
+* On cryptography 36\.0\.0\+\, always use public\_bytes\(\) for X\.509 extension objects instead of using cryptography internals to obtain DER value of extension \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
+* Python code modernization\: add type hints and type checking \([https\://github\.com/ansible\-collections/community\.crypto/pull/885](https\://github\.com/ansible\-collections/community\.crypto/pull/885)\)\.
+* Python code modernization\: avoid unnecessary string conversion \([https\://github\.com/ansible\-collections/community\.crypto/pull/880](https\://github\.com/ansible\-collections/community\.crypto/pull/880)\)\.
+* Python code modernization\: avoid using six \([https\://github\.com/ansible\-collections/community\.crypto/pull/884](https\://github\.com/ansible\-collections/community\.crypto/pull/884)\)\.
+* Python code modernization\: remove Python 3 specific code \([https\://github\.com/ansible\-collections/community\.crypto/pull/877](https\://github\.com/ansible\-collections/community\.crypto/pull/877)\)\.
+* Python code modernization\: update \_\_future\_\_ imports\, remove Python 2 specific boilerplates \([https\://github\.com/ansible\-collections/community\.crypto/pull/876](https\://github\.com/ansible\-collections/community\.crypto/pull/876)\)\.
+* Python code modernization\: use unittest\.mock instead of ansible\_collections\.community\.internal\_test\_tools\.tests\.unit\.compat\.mock \([https\://github\.com/ansible\-collections/community\.crypto/pull/881](https\://github\.com/ansible\-collections/community\.crypto/pull/881)\)\.
+* Python code modernization\: use f\-strings instead of \% and str\.format\(\) \([https\://github\.com/ansible\-collections/community\.crypto/pull/875](https\://github\.com/ansible\-collections/community\.crypto/pull/875)\)\.
+* Remove backend parameter from internal code whenever possible \([https\://github\.com/ansible\-collections/community\.crypto/pull/883](https\://github\.com/ansible\-collections/community\.crypto/pull/883)\)\.
+* Remove various compatibility code for cryptography \< 3\.3 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
+* Remove various no longer needed abstraction layers for multiple backends \([https\://github\.com/ansible\-collections/community\.crypto/pull/912](https\://github\.com/ansible\-collections/community\.crypto/pull/912)\)\.
+* Remove vendored copy of distutils\.version in favor of vendored copy included with ansible\-core 2\.12\+ \([https\://github\.com/ansible\-collections/community\.crypto/pull/371](https\://github\.com/ansible\-collections/community\.crypto/pull/371)\)\.
+* Various code refactorings \([https\://github\.com/ansible\-collections/community\.crypto/pull/905](https\://github\.com/ansible\-collections/community\.crypto/pull/905)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/909](https\://github\.com/ansible\-collections/community\.crypto/pull/909)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/911](https\://github\.com/ansible\-collections/community\.crypto/pull/911)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/913](https\://github\.com/ansible\-collections/community\.crypto/pull/913)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/914](https\://github\.com/ansible\-collections/community\.crypto/pull/914)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/917](https\://github\.com/ansible\-collections/community\.crypto/pull/917)\)\.
+* acme\_\* modules \- improve parsing of Retry\-After reply headers in regular ACME requests \([https\://github\.com/ansible\-collections/community\.crypto/pull/890](https\://github\.com/ansible\-collections/community\.crypto/pull/890)\)\.
* acme\_certificate \- add compatibility for ACME CAs that are not fully RFC8555 compliant and do not provide challenges in authz objects \([https\://github\.com/ansible\-collections/community\.crypto/issues/824](https\://github\.com/ansible\-collections/community\.crypto/issues/824)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/832](https\://github\.com/ansible\-collections/community\.crypto/pull/832)\)\.
* acme\_certificate \- add options order\_creation\_error\_strategy and order\_creation\_max\_retries which allow to configure the error handling behavior if creating a new ACME order fails\. This is particularly important when using the include\_renewal\_cert\_id option\, and the default value auto for order\_creation\_error\_strategy tries to gracefully handle related errors \([https\://github\.com/ansible\-collections/community\.crypto/pull/842](https\://github\.com/ansible\-collections/community\.crypto/pull/842)\)\.
* acme\_certificate \- allow to chose a profile for certificate generation\, in case the CA supports this using Internet\-Draft [draft\-aaron\-acme\-profiles](https\://datatracker\.ietf\.org/doc/draft\-aaron\-acme\-profiles/) \([https\://github\.com/ansible\-collections/community\.crypto/pull/835](https\://github\.com/ansible\-collections/community\.crypto/pull/835)\)\.
* acme\_certificate\_renewal\_info \- add exists and parsable return values and treat\_parsing\_error\_as\_non\_existing option \([https\://github\.com/ansible\-collections/community\.crypto/pull/838](https\://github\.com/ansible\-collections/community\.crypto/pull/838)\)\.
+* action\_module plugin utils \- remove compatibility with older ansible\-core/ansible\-base/Ansible versions \([https\://github\.com/ansible\-collections/community\.crypto/pull/872](https\://github\.com/ansible\-collections/community\.crypto/pull/872)\)\.
* luks\_device \- allow passphrases to contain newlines \([https\://github\.com/ansible\-collections/community\.crypto/pull/844](https\://github\.com/ansible\-collections/community\.crypto/pull/844)\)\.
* luks\_device \- allow to provide passphrases base64\-encoded \([https\://github\.com/ansible\-collections/community\.crypto/issues/827](https\://github\.com/ansible\-collections/community\.crypto/issues/827)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/829](https\://github\.com/ansible\-collections/community\.crypto/pull/829)\)\.
* openssl\_pkcs12 \- the module now supports certificate\_content/other\_certificates\_content for cases where the data already exists in memory and not yet in a file \([https\://github\.com/ansible\-collections/community\.crypto/issues/847](https\://github\.com/ansible\-collections/community\.crypto/issues/847)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/848](https\://github\.com/ansible\-collections/community\.crypto/pull/848)\)\.
+* x509\_certificate\, x509\_certificate\_pipe \- the ownca\_version and selfsigned\_version parameters explicitly only allow the value 3\. The module already failed for other values in the past\, now this is validated as part of the module argument spec \([https\://github\.com/ansible\-collections/community\.crypto/pull/890](https\://github\.com/ansible\-collections/community\.crypto/pull/890)\)\.
* x509\_certificate\_convert \- add new option verify\_cert\_parsable which allows to check whether the certificate can actually be parsed \([https\://github\.com/ansible\-collections/community\.crypto/issues/809](https\://github\.com/ansible\-collections/community\.crypto/issues/809)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/830](https\://github\.com/ansible\-collections/community\.crypto/pull/830)\)\.
-
+
#### community\.dns
* all controller code \- modernize Python code \([https\://github\.com/ansible\-collections/community\.dns/pull/231](https\://github\.com/ansible\-collections/community\.dns/pull/231)\)\.
* all filter\, inventory\, and lookup plugins\, and plugin utils \- add type hints to all Python 3 only code \([https\://github\.com/ansible\-collections/community\.dns/pull/239](https\://github\.com/ansible\-collections/community\.dns/pull/239)\)\.
* get\_public\_suffix\, get\_registrable\_domain\, remove\_public\_suffix\, and remove\_registrable\_domain filter plugin \- validate parameters\, and correctly handle byte strings when passed for input \([https\://github\.com/ansible\-collections/community\.dns/pull/239](https\://github\.com/ansible\-collections/community\.dns/pull/239)\)\.
-
+
#### community\.docker
* docker\_compose\_v2 \- add assume\_yes parameter for docker compose up \([https\://github\.com/ansible\-collections/community\.docker/pull/1045](https\://github\.com/ansible\-collections/community\.docker/pull/1045)\)\.
* docker\_compose\_v2 \- add ignore\_build\_events option \(default value true\) which allows to \(not\) ignore build events for change detection \([https\://github\.com/ansible\-collections/community\.docker/issues/1005](https\://github\.com/ansible\-collections/community\.docker/issues/1005)\, [https\://github\.com/ansible\-collections/community\.docker/issues/pull/1011](https\://github\.com/ansible\-collections/community\.docker/issues/pull/1011)\)\.
* docker\_compose\_v2\* modules \- determine compose version with docker compose version and only then fall back to docker info \([https\://github\.com/ansible\-collections/community\.docker/pull/1021](https\://github\.com/ansible\-collections/community\.docker/pull/1021)\)\.
+* docker\_container\_copy\_into \- add mode\_parse parameter which determines how mode is parsed \([https\://github\.com/ansible\-collections/community\.docker/pull/1074](https\://github\.com/ansible\-collections/community\.docker/pull/1074)\)\.
* docker\_image\_build \- outputs\[\]\.name can now be a list of strings \([https\://github\.com/ansible\-collections/community\.docker/pull/1006](https\://github\.com/ansible\-collections/community\.docker/pull/1006)\)\.
* docker\_image\_build \- the executed command is now returned in the command return value in case of success and some errors \([https\://github\.com/ansible\-collections/community\.docker/pull/1006](https\://github\.com/ansible\-collections/community\.docker/pull/1006)\)\.
* docker\_network \- add enable\_ipv4 option \([https\://github\.com/ansible\-collections/community\.docker/issues/1047](https\://github\.com/ansible\-collections/community\.docker/issues/1047)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1049](https\://github\.com/ansible\-collections/community\.docker/pull/1049)\)\.
* docker\_network \- added ingress option \([https\://github\.com/ansible\-collections/community\.docker/pull/999](https\://github\.com/ansible\-collections/community\.docker/pull/999)\)\.
* docker\_stack \- allow to add \-\-detach\=false option to docker stack deploy command \([https\://github\.com/ansible\-collections/community\.docker/pull/987](https\://github\.com/ansible\-collections/community\.docker/pull/987)\)\.
+* docker\_swarm\_service \- add support for replicated\-job mode for Swarm services \([https\://github\.com/ansible\-collections/community\.docker/issues/626](https\://github\.com/ansible\-collections/community\.docker/issues/626)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1108](https\://github\.com/ansible\-collections/community\.docker/pull/1108)\)\.
-
+
#### community\.general
* CmdRunner module utils \- the convenience method cmd\_runner\_fmt\.as\_fixed\(\) now accepts multiple arguments as a list \([https\://github\.com/ansible\-collections/community\.general/pull/9893](https\://github\.com/ansible\-collections/community\.general/pull/9893)\)\.
+* MH module utils \- delegate debug to the underlying AnsibleModule instance or issues a warning if an attribute already exists with that name \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\.
+* aerospike\_migrations \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* airbrake\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* alternatives \- add family parameter that allows to utilize the \-\-family option available in RedHat version of update\-alternatives \([https\://github\.com/ansible\-collections/community\.general/issues/5060](https\://github\.com/ansible\-collections/community\.general/issues/5060)\, [https\://github\.com/ansible\-collections/community\.general/pull/9096](https\://github\.com/ansible\-collections/community\.general/pull/9096)\)\.
+* apache2\_mod\_proxy \- better handling regexp extraction \([https\://github\.com/ansible\-collections/community\.general/pull/9609](https\://github\.com/ansible\-collections/community\.general/pull/9609)\)\.
+* apache2\_mod\_proxy \- change type of state to a list of strings\. No change for the users \([https\://github\.com/ansible\-collections/community\.general/pull/9600](https\://github\.com/ansible\-collections/community\.general/pull/9600)\)\.
* apache2\_mod\_proxy \- code simplification\, no change in functionality \([https\://github\.com/ansible\-collections/community\.general/pull/9457](https\://github\.com/ansible\-collections/community\.general/pull/9457)\)\.
+* apache2\_mod\_proxy \- improve readability when using results from fecth\_url\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9608](https\://github\.com/ansible\-collections/community\.general/pull/9608)\)\.
+* apache2\_mod\_proxy \- refactor repeated code into method \([https\://github\.com/ansible\-collections/community\.general/pull/9599](https\://github\.com/ansible\-collections/community\.general/pull/9599)\)\.
+* apache2\_mod\_proxy \- remove unused parameter and code from Balancer constructor \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\.
+* apache2\_mod\_proxy \- simplified and improved string manipulation \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\.
+* apache2\_mod\_proxy \- use deps to handle dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9612](https\://github\.com/ansible\-collections/community\.general/pull/9612)\)\.
+* apache2\_module \- added workaround for new PHP module name\, from php7\_module to php\_module \([https\://github\.com/ansible\-collections/community\.general/pull/9951](https\://github\.com/ansible\-collections/community\.general/pull/9951)\)\.
+* apk \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/issues/10479](https\://github\.com/ansible\-collections/community\.general/issues/10479)\, [https\://github\.com/ansible\-collections/community\.general/pull/10520](https\://github\.com/ansible\-collections/community\.general/pull/10520)\)\.
+* bigpanda \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* bitwarden lookup plugin \- add new option collection\_name to filter results by collection name\, and new option result\_count to validate number of results \([https\://github\.com/ansible\-collections/community\.general/pull/9728](https\://github\.com/ansible\-collections/community\.general/pull/9728)\)\.
+* bitwarden lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* bootc\_manage \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* bower \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* btrfs\_subvolume \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* bundler \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* bzr \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10523](https\://github\.com/ansible\-collections/community\.general/pull/10523)\)\.
+* campfire \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* capabilities \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10524](https\://github\.com/ansible\-collections/community\.general/pull/10524)\)\.
+* cargo \- add features parameter to allow activating specific features when installing Rust packages \([https\://github\.com/ansible\-collections/community\.general/pull/10198](https\://github\.com/ansible\-collections/community\.general/pull/10198)\)\.
+* cargo \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* cartesian lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
+* catapult \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* cgroup\_memory\_recap callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* cgroup\_memory\_recap callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* chef\_databag lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* chroot connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* chroot connection plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* chroot connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* cisco\_webex \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* cloud\_init\_data\_facts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* cloudflare\_dns \- add support for comment and tags \([https\://github\.com/ansible\-collections/community\.general/pull/9132](https\://github\.com/ansible\-collections/community\.general/pull/9132)\)\.
+* cloudflare\_dns \- adds support for PTR records \([https\://github\.com/ansible\-collections/community\.general/pull/10267](https\://github\.com/ansible\-collections/community\.general/pull/10267)\)\.
+* cloudflare\_dns \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* cloudflare\_dns \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10269](https\://github\.com/ansible\-collections/community\.general/pull/10269)\)\.
+* cobbler inventory plugin \- add connection\_timeout option to specify the connection timeout to the cobbler server \([https\://github\.com/ansible\-collections/community\.general/pull/11063](https\://github\.com/ansible\-collections/community\.general/pull/11063)\)\.
+* cobbler inventory plugin \- add facts\_level option to allow requesting fully rendered variables for Cobbler systems \([https\://github\.com/ansible\-collections/community\.general/issues/9419](https\://github\.com/ansible\-collections/community\.general/issues/9419)\, [https\://github\.com/ansible\-collections/community\.general/pull/9975](https\://github\.com/ansible\-collections/community\.general/pull/9975)\)\.
+* cobbler inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* cobbler inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* cobbler inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* collection\_version lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* composer \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10525](https\://github\.com/ansible\-collections/community\.general/pull/10525)\)\.
+* consul\_kv \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* consul\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* consul\_policy \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
* consul\_token \- fix idempotency when policies or roles are supplied by name \([https\://github\.com/ansible\-collections/community\.general/issues/9841](https\://github\.com/ansible\-collections/community\.general/issues/9841)\, [https\://github\.com/ansible\-collections/community\.general/pull/9845](https\://github\.com/ansible\-collections/community\.general/pull/9845)\)\.
+* context\_demo callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* context\_demo callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* copr \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* counter filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* counter\_enabled callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* counter\_enabled callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* cpanm \- enable usage of option \-\-with\-recommends \([https\://github\.com/ansible\-collections/community\.general/issues/9554](https\://github\.com/ansible\-collections/community\.general/issues/9554)\, [https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\.
+* cpanm \- enable usage of option \-\-with\-suggests \([https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\.
+* crc32 filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* credstash lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* cronvar \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* crypttab \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* crypttab \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* cyberarkpassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* cyberarkpassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* datadog\_downtime \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* datadog\_monitor \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* datadog\_monitor \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* dconf \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* default\_without\_diff callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* dense callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* dense callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* dense callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* dependent lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
+* dependent lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* deps module utils \- add deps\.clear\(\) to clear out previously declared dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9179](https\://github\.com/ansible\-collections/community\.general/pull/9179)\)\.
+* dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* dict\_kv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* dig lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* dig lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* dimensiondata\_network \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* dimensiondata\_vlan \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* diy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* diy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* django module utils \- remove deprecated parameter \_DjangoRunner call \([https\://github\.com/ansible\-collections/community\.general/pull/10574](https\://github\.com/ansible\-collections/community\.general/pull/10574)\)\.
+* dnf\_config\_manager \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* dnsmadeeasy \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* dnstxt lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* dnstxt lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* doas become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* doas become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* dpkg\_divert \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* dsv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* dzdo become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* dzdo become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* easy\_install \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* easy\_install \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10526](https\://github\.com/ansible\-collections/community\.general/pull/10526)\)\.
+* elastic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* elastic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
+* elastic callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* elasticsearch\_plugin \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* etcd lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* etcd3 lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* etcd3 lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* facter \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* filesystem \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
+* filetree lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* flattened lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
+* from\_csv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* from\_csv filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* from\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* from\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* funcd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* funcd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* gem \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* git\_config \- remove redundant required\=False from argument\_spec \([https\://github\.com/ansible\-collections/community\.general/pull/10177](https\://github\.com/ansible\-collections/community\.general/pull/10177)\)\.
+* git\_config\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* github\_app\_access\_token lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* github\_deploy\_key \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* github\_key \- add api\_url parameter to support GitHub Enterprise Server installations \([https\://github\.com/ansible\-collections/community\.general/pull/10191](https\://github\.com/ansible\-collections/community\.general/pull/10191)\)\.
+* github\_repo \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* github\_webhook \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* github\_webhook\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_branch \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_deploy\_key \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* gitlab\_group\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* gitlab\_group\_access\_token \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_group\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_hook \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* gitlab\_hook \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_instance\_variable \- add support for raw variables suboption \([https\://github\.com/ansible\-collections/community\.general/pull/9425](https\://github\.com/ansible\-collections/community\.general/pull/9425)\)\.
+* gitlab\_instance\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_issue \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_label \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_merge\_request \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_milestone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_project \- add option build\_timeout \([https\://github\.com/ansible\-collections/community\.general/pull/9960](https\://github\.com/ansible\-collections/community\.general/pull/9960)\)\.
+* gitlab\_project \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_project\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* gitlab\_project\_access\_token \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_project\_members \- extend choices parameter access\_level by missing upstream valid value owner \([https\://github\.com/ansible\-collections/community\.general/pull/9953](https\://github\.com/ansible\-collections/community\.general/pull/9953)\)\.
+* gitlab\_project\_variable \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* gitlab\_runner \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* gitlab\_runners inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* gitlab\_runners inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* gitlab\_runners inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* groupby\_as\_dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* grove \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* hashids filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* hg \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* hiera lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* homebrew \- greatly speed up module when multiple packages are passed in the name option \([https\://github\.com/ansible\-collections/community\.general/pull/9181](https\://github\.com/ansible\-collections/community\.general/pull/9181)\)\.
+* homebrew \- remove duplicated package name validation \([https\://github\.com/ansible\-collections/community\.general/pull/9076](https\://github\.com/ansible\-collections/community\.general/pull/9076)\)\.
+* homebrew \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* homebrew\_cask \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* homebrew\_tap \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* honeybadger\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* hpilo\_boot \- add option to get an idempotent behavior while powering on server\, resulting in success instead of failure when using state\: boot\_once option \([https\://github\.com/ansible\-collections/community\.general/pull/9646](https\://github\.com/ansible\-collections/community\.general/pull/9646)\)\.
+* htpasswd \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* icinga2 inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* icinga2 inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* icinga2\_host \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* idrac\_redfish\_command\, idrac\_redfish\_config\, idrac\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
+* ilo\_redfish\_command\, ilo\_redfish\_config\, ilo\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
+* imgadm \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10536](https\://github\.com/ansible\-collections/community\.general/pull/10536)\)\.
+* incus connection plugin \- adds remote\_user and incus\_become\_method parameters for allowing a non\-root user to connect to an Incus instance \([https\://github\.com/ansible\-collections/community\.general/pull/9743](https\://github\.com/ansible\-collections/community\.general/pull/9743)\)\.
+* incus connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* incus connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* influxdb\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* ini\_file \- modify an inactive option also when there are spaces in front of the comment symbol \([https\://github\.com/ansible\-collections/community\.general/pull/10102](https\://github\.com/ansible\-collections/community\.general/pull/10102)\, [https\://github\.com/ansible\-collections/community\.general/issues/8539](https\://github\.com/ansible\-collections/community\.general/issues/8539)\)\.
+* ini\_file \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* iocage connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* iocage connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* iocage inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* iocage inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* iocage inventory plugin \- the new parameter hooks\_results of the plugin is a list of files inside a jail that provide configuration parameters for the inventory\. The inventory plugin reads the files from the jails and put the contents into the items of created variable iocage\_hooks \([https\://github\.com/ansible\-collections/community\.general/issues/9650](https\://github\.com/ansible\-collections/community\.general/issues/9650)\, [https\://github\.com/ansible\-collections/community\.general/pull/9651](https\://github\.com/ansible\-collections/community\.general/pull/9651)\)\.
+* iocage inventory plugin \- the new parameter inventory\_hostname\_tag of the plugin provides the name of the tag in the C\(iocage properties notes\) that contains the jails alias\. The new parameter inventory\_hostname\_required\, if enabled\, makes the tag mandatory \([https\://github\.com/ansible\-collections/community\.general/issues/10206](https\://github\.com/ansible\-collections/community\.general/issues/10206)\, [https\://github\.com/ansible\-collections/community\.general/pull/10207](https\://github\.com/ansible\-collections/community\.general/pull/10207)\)\.
+* iocage inventory plugin \- the new parameter sudo of the plugin lets the command iocage list \-l to run as root on the iocage host\. This is needed to get the IPv4 of a running DHCP jail \([https\://github\.com/ansible\-collections/community\.general/issues/9572](https\://github\.com/ansible\-collections/community\.general/issues/9572)\, [https\://github\.com/ansible\-collections/community\.general/pull/9573](https\://github\.com/ansible\-collections/community\.general/pull/9573)\)\.
+* iocage inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* ipa\_dnsrecord \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* ipa\_dnszone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* ipa\_group \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* ipa\_service \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* ipbase\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* iptables\_state action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* iptables\_state action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\.
+* ipwcli\_dns \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* irc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* iso\_extract \- adds password parameter that is passed to 7z \([https\://github\.com/ansible\-collections/community\.general/pull/9159](https\://github\.com/ansible\-collections/community\.general/pull/9159)\)\.
+* jabber \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* jabber callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* jabber callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* jail connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* jail connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* jc filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* jc filter plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* jenkins\_build \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* jenkins\_build\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* jenkins\_credential \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* jenkins\_job \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* jenkins\_plugin \- install dependencies for specific version \([https\://github\.com/ansible\-collections/community\.general/issue/4995](https\://github\.com/ansible\-collections/community\.general/issue/4995)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
+* jenkins\_script \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10505](https\://github\.com/ansible\-collections/community\.general/pull/10505)\)\.
+* jira \- adds client\_cert and client\_key parameters for supporting client certificate authentification when connecting to Jira \([https\://github\.com/ansible\-collections/community\.general/pull/9753](https\://github\.com/ansible\-collections/community\.general/pull/9753)\)\.
+* jira \- transition operation now has status\_id to directly reference wanted transition \([https\://github\.com/ansible\-collections/community\.general/pull/9602](https\://github\.com/ansible\-collections/community\.general/pull/9602)\)\.
+* json\_query filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* keep\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* keycloak \- add an action group for Keycloak modules to allow module\_defaults to be set for Keycloak tasks \([https\://github\.com/ansible\-collections/community\.general/pull/9284](https\://github\.com/ansible\-collections/community\.general/pull/9284)\)\.
+* keycloak \- add support for grant\_type\=client\_credentials to all keycloak modules\, so that specifying auth\_client\_id and auth\_client\_secret is sufficient for authentication \([https\://github\.com/ansible\-collections/community\.general/pull/10231](https\://github\.com/ansible\-collections/community\.general/pull/10231)\)\.
+* keycloak module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* keycloak module\_utils \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
+* keycloak\_\* modules \- refresh\_token parameter added\. When multiple authentication parameters are provided \(token\, refresh\_token\, and auth\_username/auth\_password\)\, modules will now automatically retry requests upon authentication errors \(401\)\, using in order the token\, refresh token\, and username/password \([https\://github\.com/ansible\-collections/community\.general/pull/9494](https\://github\.com/ansible\-collections/community\.general/pull/9494)\)\.
+* keycloak\_authz\_authorization\_scope \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* keycloak\_authz\_permission \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* keycloak\_identity\_provider – add support for fromUrl to automatically fetch OIDC endpoints from the well\-known discovery URL\, simplifying identity provider configuration \([https\://github\.com/ansible\-collections/community\.general/pull/10527](https\://github\.com/ansible\-collections/community\.general/pull/10527)\)\.
+* keycloak\_realm \- add support for brute\_force\_strategy and max\_temporary\_lockouts \([https\://github\.com/ansible\-collections/community\.general/issues/10412](https\://github\.com/ansible\-collections/community\.general/issues/10412)\, [https\://github\.com/ansible\-collections/community\.general/pull/10415](https\://github\.com/ansible\-collections/community\.general/pull/10415)\)\.
+* keycloak\_realm \- add support for client\-related options and Oauth2 device \([https\://github\.com/ansible\-collections/community\.general/pull/10538](https\://github\.com/ansible\-collections/community\.general/pull/10538)\)\.
* keycloak\_realm \- remove ID requirement when creating a realm to allow Keycloak generating its own realm ID \([https\://github\.com/ansible\-collections/community\.general/pull/9768](https\://github\.com/ansible\-collections/community\.general/pull/9768)\)\.
+* keycloak\_role \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* keycloak\_user module \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\.
+* keycloak\_userprofile \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* keyring \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* keyring lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* kibana\_plugin \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* known\_hosts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* ksu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* ksu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* lastpass lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* launchd \- add plist option for services such as sshd\, where the plist filename doesn\'t match the service name \([https\://github\.com/ansible\-collections/community\.general/pull/9102](https\://github\.com/ansible\-collections/community\.general/pull/9102)\)\.
+* layman \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* ldap\_attrs \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* ldap\_inc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* librato\_annotation \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* linode inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* linode inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* lists filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* lists\_mergeby filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* lldp \- adds multivalues parameter to control behavior when lldpctl outputs an attribute multiple times \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\.
+* lldp \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* lmdb\_kv lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* lmdb\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* locale\_gen \- invert the logic to determine ubuntu\_mode\, making it look first for /etc/locale\.gen \(set ubuntu\_mode to False\) and only then looking for /var/lib/locales/supported\.d/ \(set ubuntu\_mode to True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\, [https\://github\.com/ansible\-collections/community\.general/issues/9131](https\://github\.com/ansible\-collections/community\.general/issues/9131)\, [https\://github\.com/ansible\-collections/community\.general/issues/8487](https\://github\.com/ansible\-collections/community\.general/issues/8487)\)\.
+* locale\_gen \- new return value mechanism to better express the semantics of the ubuntu\_mode\, with the possible values being either glibc \(ubuntu\_mode\=False\) or ubuntu\_legacy \(ubuntu\_mode\=True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\.
+* log\_plays callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* log\_plays callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* loganalytics callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* loganalytics callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
+* loganalytics callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* logdna callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* logdna callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* logentries \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* logentries callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* logentries callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* logentries callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* logstash callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* logstash callback plugin \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* logstash\_plugin \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/issues/10479](https\://github\.com/ansible\-collections/community\.general/issues/10479)\, [https\://github\.com/ansible\-collections/community\.general/pull/10520](https\://github\.com/ansible\-collections/community\.general/pull/10520)\)\.
+* lvg \- add remove\_extra\_pvs parameter to control if ansible should remove physical volumes which are not in the pvs parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9698](https\://github\.com/ansible\-collections/community\.general/pull/9698)\)\.
+* lxc connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* lxc connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* lxca\_cmms \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* lxca\_nodes \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* lxd connection plugin \- adds remote\_user and lxd\_become\_method parameters for allowing a non\-root user to connect to an LXD instance \([https\://github\.com/ansible\-collections/community\.general/pull/9659](https\://github\.com/ansible\-collections/community\.general/pull/9659)\)\.
+* lxd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* lxd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* lxd inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* lxd inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* lxd inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* machinectl become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* machinectl become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* macports \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* mail \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* mail callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* mail callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* mail callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* manageiq\_alert\_profiles \- improve handling of parameter requirements \([https\://github\.com/ansible\-collections/community\.general/pull/9449](https\://github\.com/ansible\-collections/community\.general/pull/9449)\)\.
+* manageiq\_alerts \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manageiq\_group \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manageiq\_policies \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manageiq\_policies\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manageiq\_tags \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manageiq\_tenant \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* manifold lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* manifold lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* matrix \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* mattermost \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* maven\_artifact \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* maven\_artifact \- removed compatibility code for ansible\-core \< 2\.12 \([https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\.
+* memcached cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* memcached cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\.
+* memset\_dns\_reload \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* memset\_zone \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* memset\_zone\_record \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* merge\_variables lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* mqtt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* mssql\_db \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* mssql\_script \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* nagios \- make parameter services a list instead of a str \([https\://github\.com/ansible\-collections/community\.general/pull/10493](https\://github\.com/ansible\-collections/community\.general/pull/10493)\)\.
+* netcup\_dns \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* newrelic\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
* nmap inventory plugin \- adds dns\_servers option for specifying DNS servers for name resolution\. Accepts hostnames or IP addresses in the same format as the exclude option \([https\://github\.com/ansible\-collections/community\.general/pull/9849](https\://github\.com/ansible\-collections/community\.general/pull/9849)\)\.
+* nmap inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* nmap inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* nmap inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* nmcli \- add sriov parameter that enables support for SR\-IOV settings \([https\://github\.com/ansible\-collections/community\.general/pull/9168](https\://github\.com/ansible\-collections/community\.general/pull/9168)\)\.
+* nmcli \- add a option fail\_over\_mac \([https\://github\.com/ansible\-collections/community\.general/issues/9570](https\://github\.com/ansible\-collections/community\.general/issues/9570)\, [https\://github\.com/ansible\-collections/community\.general/pull/9571](https\://github\.com/ansible\-collections/community\.general/pull/9571)\)\.
+* nmcli \- add support for Infiniband MAC setting when type is infiniband \([https\://github\.com/ansible\-collections/community\.general/pull/9962](https\://github\.com/ansible\-collections/community\.general/pull/9962)\)\.
+* nmcli \- adds VRF support with new type value vrf and new slave\_type value vrf as well as new table parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9658](https\://github\.com/ansible\-collections/community\.general/pull/9658)\, [https\://github\.com/ansible\-collections/community\.general/issues/8014](https\://github\.com/ansible\-collections/community\.general/issues/8014)\)\.
+* nmcli \- adds autoconnect\_priority and autoconnect\_retries options to support autoconnect logic \([https\://github\.com/ansible\-collections/community\.general/pull/10134](https\://github\.com/ansible\-collections/community\.general/pull/10134)\)\.
+* nmcli \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* nmcli \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10323](https\://github\.com/ansible\-collections/community\.general/pull/10323)\)\.
+* nrdp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* nrdp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* nsupdate \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10507](https\://github\.com/ansible\-collections/community\.general/pull/10507)\)\.
+* null callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* oci\_vcn \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* one\_image\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* one\_template \- adds filter option for retrieving templates which are not owned by the user \([https\://github\.com/ansible\-collections/community\.general/pull/9547](https\://github\.com/ansible\-collections/community\.general/pull/9547)\, [https\://github\.com/ansible\-collections/community\.general/issues/9278](https\://github\.com/ansible\-collections/community\.general/issues/9278)\)\.
+* one\_template \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* one\_vm \- update allowed values for updateconf to include new parameters as per the latest OpenNebula API documentation\.
+ Added parameters\:
+
+ - OS\: FIRMWARE\;
+ - CPU\_MODEL\: MODEL\, FEATURES\;
+ - FEATURES\: VIRTIO\_BLK\_QUEUES\, VIRTIO\_SCSI\_QUEUES\, IOTHREADS\;
+ - GRAPHICS\: PORT\, COMMAND\;
+ - VIDEO\: ATS\, IOMMU\, RESOLUTION\, TYPE\, VRAM\;
+ - RAW\: VALIDATE\;
+ - BACKUP\_CONFIG\: FS\_FREEZE\, KEEP\_LAST\, BACKUP\_VOLATILE\, MODE\, INCREMENT\_MODE\.
+
+ \([https\://github\.com/ansible\-collections/community\.general/pull/9959](https\://github\.com/ansible\-collections/community\.general/pull/9959)\)\.
+* one\_vnet \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* oneandone\_firewall\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* oneandone\_load\_balancer \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* oneandone\_monitoring\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* onepassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* onepassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* onepassword\_doc lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* onepassword\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* onepassword\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* onepassword\_ssh\_key \- refactor to move code to lookup class \([https\://github\.com/ansible\-collections/community\.general/pull/9633](https\://github\.com/ansible\-collections/community\.general/pull/9633)\)\.
+* oneview\_fc\_network\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* online inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* online inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* open\_iscsi \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10599](https\://github\.com/ansible\-collections/community\.general/pull/10599)\)\.
+* opendj\_backendprop \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* opennebula inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* opennebula inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* opennebula inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* opentelemetry callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* opentelemetry callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
+* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9482](https\://github\.com/ansible\-collections/community\.general/pull/9482)\)\.
+* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9503](https\://github\.com/ansible\-collections/community\.general/pull/9503)\)\.
+* opentelemetry callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* osx\_defaults \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* ovh\_ip\_loadbalancing\_backend \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* ovh\_monthly\_billing \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pacemaker\_cluster \- add state\=maintenance for managing pacemaker maintenance mode \([https\://github\.com/ansible\-collections/community\.general/issues/10200](https\://github\.com/ansible\-collections/community\.general/issues/10200)\, [https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
+* pacemaker\_cluster \- remove unused code \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\.
+* pacemaker\_cluster \- rename node to name and add node alias \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
+* pacemaker\_cluster \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\.
+* pacemaker\_resource \- add maintenance mode support for handling resource creation and deletion \([https\://github\.com/ansible\-collections/community\.general/issues/10180](https\://github\.com/ansible\-collections/community\.general/issues/10180)\, [https\://github\.com/ansible\-collections/community\.general/pull/10194](https\://github\.com/ansible\-collections/community\.general/pull/10194)\)\.
+* pacemaker\_resource \- enhance module by removing duplicative code \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
+* packet\_device \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* pacman\_key \- support verifying that keys are trusted and not expired \([https\://github\.com/ansible\-collections/community\.general/issues/9949](https\://github\.com/ansible\-collections/community\.general/issues/9949)\, [https\://github\.com/ansible\-collections/community\.general/pull/9950](https\://github\.com/ansible\-collections/community\.general/pull/9950)\)\.
+* pagerduty \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* pagerduty \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pagerduty\_change \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pagerduty\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pam\_limits \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* parted \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* passwordstore lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* pbrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* pbrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* pear \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pear \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10601](https\://github\.com/ansible\-collections/community\.general/pull/10601)\)\.
+* pfexec become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* pfexec become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* pickle cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* pingdom \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* pipx \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\.
+* pipx \- parameter name now accepts Python package specifiers \([https\://github\.com/ansible\-collections/community\.general/issues/7815](https\://github\.com/ansible\-collections/community\.general/issues/7815)\, [https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
+* pipx module\_utils \- filtering application list by name now happens in the modules \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
+* pipx\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\.
+* pipx\_info \- filtering application list by name now happens in the module \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
+* pkgng \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pmrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* pmrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* pnpm \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* portage \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* portage \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10602](https\://github\.com/ansible\-collections/community\.general/pull/10602)\)\.
+* pritunl\_org \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pritunl\_org\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pritunl\_user \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pritunl\_user\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* proxmox and proxmox\_kvm modules \- allow uppercase characters in VM/container tags \([https\://github\.com/ansible\-collections/community\.general/issues/9895](https\://github\.com/ansible\-collections/community\.general/issues/9895)\, [https\://github\.com/ansible\-collections/community\.general/pull/10024](https\://github\.com/ansible\-collections/community\.general/pull/10024)\)\.
* proxmox\_kvm \- add missing audio hardware device handling \([https\://github\.com/ansible\-collections/community\.general/issues/5192](https\://github\.com/ansible\-collections/community\.general/issues/5192)\, [https\://github\.com/ansible\-collections/community\.general/pull/9847](https\://github\.com/ansible\-collections/community\.general/pull/9847)\)\.
+* pubnub\_blocks \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pulp\_repo \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* puppet \- improve parameter formatting\, no impact to user \([https\://github\.com/ansible\-collections/community\.general/pull/10014](https\://github\.com/ansible\-collections/community\.general/pull/10014)\)\.
+* pushbullet \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* pushover \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* python\_runner module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* qubes connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* qubes connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* random\_mac filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* random\_pet lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* redfish module utils \- add REDFISH\_COMMON\_ARGUMENT\_SPEC\, a corresponding redfish docs fragment\, and support for its validate\_certs\, ca\_path\, and ciphers options \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
+* redfish module utils \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\.
+* redfish\_command \- add PowerFullPowerCycle to power command options \([https\://github\.com/ansible\-collections/community\.general/pull/9729](https\://github\.com/ansible\-collections/community\.general/pull/9729)\)\.
+* redfish\_command \- add update\_custom\_oem\_header\, update\_custom\_oem\_params\, and update\_custom\_oem\_mime\_type options \([https\://github\.com/ansible\-collections/community\.general/pull/9123](https\://github\.com/ansible\-collections/community\.general/pull/9123)\)\.
+* redfish\_command\, redfish\_config\, redfish\_info \- add validate\_certs and ca\_path options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
* redfish\_config \- add command SetPowerRestorePolicy to set the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9837](https\://github\.com/ansible\-collections/community\.general/pull/9837)\)\.
+* redfish\_info \- add command GetAccountServiceConfig to get full information about AccountService configuration \([https\://github\.com/ansible\-collections/community\.general/pull/9403](https\://github\.com/ansible\-collections/community\.general/pull/9403)\)\.
* redfish\_info \- add command GetPowerRestorePolicy to get the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9824](https\://github\.com/ansible\-collections/community\.general/pull/9824)\)\.
+* redfish\_utils module utils \- remove redundant code \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\.
+* redhat\_subscription \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* redis cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* redis cache plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* redis cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\.
+* redis lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* redis\_data \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* redis\_data\_incr \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* remove\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* replace\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* revbitspss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* reveal\_ansible\_type filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* rhevm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* riak \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* riak \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10603](https\://github\.com/ansible\-collections/community\.general/pull/10603)\)\.
+* rocketchat \- fix duplicate JSON conversion for Rocket\.Chat \< 7\.4\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9965](https\://github\.com/ansible\-collections/community\.general/pull/9965)\)\.
* rocketchat \- option is\_pre740 has been added to control the format of the payload\. For Rocket\.Chat 7\.4\.0 or newer\, it must be set to false \([https\://github\.com/ansible\-collections/community\.general/pull/9882](https\://github\.com/ansible\-collections/community\.general/pull/9882)\)\.
+* rocketchat \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* rocketchat \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* rollbar\_deployment \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* rpm\_ostree\_pkg \- added the options apply\_live \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\.
+* rpm\_ostree\_pkg \- added the return value needs\_reboot \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\.
+* run0 become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* saltstack connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* saltstack connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* say \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* say callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* say callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* scaleway inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* scaleway inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* scaleway inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* scaleway\_\* modules\, scaleway inventory plugin \- update available zones and API URLs \([https\://github\.com/ansible\-collections/community\.general/issues/10383](https\://github\.com/ansible\-collections/community\.general/issues/10383)\, [https\://github\.com/ansible\-collections/community\.general/pull/10424](https\://github\.com/ansible\-collections/community\.general/pull/10424)\)\.
+* scaleway\_database\_backup \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* scaleway\_lb \- minor simplification in the code \([https\://github\.com/ansible\-collections/community\.general/pull/9189](https\://github\.com/ansible\-collections/community\.general/pull/9189)\)\.
+* selective callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* selective callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* sendgrid \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* sensu\_silence \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* sensu\_silence \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* sensu\_subscription \- normalize quotes in the module output \([https\://github\.com/ansible\-collections/community\.general/pull/10483](https\://github\.com/ansible\-collections/community\.general/pull/10483)\)\.
+* sesu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* sesu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* shelvefile lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* shutdown action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* shutdown action plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* shutdown action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\.
+* sl\_vm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
* slack callback plugin \- add http\_agent option to enable the user to set a custom user agent for slack callback plugin \([https\://github\.com/ansible\-collections/community\.general/issues/9813](https\://github\.com/ansible\-collections/community\.general/issues/9813)\, [https\://github\.com/ansible\-collections/community\.general/pull/9836](https\://github\.com/ansible\-collections/community\.general/pull/9836)\)\.
+* slack callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* slack callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* slack callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* snap \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\.
+* snap\_alias \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\.
+* solaris\_zone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* solaris\_zone \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10604](https\://github\.com/ansible\-collections/community\.general/pull/10604)\)\.
+* sorcery \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* sorcery \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* splunk callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* splunk callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
+* splunk callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* ssh\_config \- add dynamicforward option \([https\://github\.com/ansible\-collections/community\.general/pull/9192](https\://github\.com/ansible\-collections/community\.general/pull/9192)\)\.
+* ssh\_config \- add other\_options option \([https\://github\.com/ansible\-collections/community\.general/issues/8053](https\://github\.com/ansible\-collections/community\.general/issues/8053)\, [https\://github\.com/ansible\-collections/community\.general/pull/9684](https\://github\.com/ansible\-collections/community\.general/pull/9684)\)\.
+* ssh\_config \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* stackpath\_compute inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* stackpath\_compute inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* statusio\_maintenance \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* sudosu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* sudosu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\.
+* sumologic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* sumologic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\.
+* svr4pkg \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* swdepot \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* swupd \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10605](https\://github\.com/ansible\-collections/community\.general/pull/10605)\)\.
+* syslog\_json callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* syslogger \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* sysrc \- adjustments to the code \([https\://github\.com/ansible\-collections/community\.general/pull/10417](https\://github\.com/ansible\-collections/community\.general/pull/10417)\)\.
+* sysrc \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* systemd\_creds\_decrypt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
+* systemd\_creds\_encrypt \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10512](https\://github\.com/ansible\-collections/community\.general/pull/10512)\)\.
* systemd\_info \- add wildcard expression support in unitname option \([https\://github\.com/ansible\-collections/community\.general/pull/9821](https\://github\.com/ansible\-collections/community\.general/pull/9821)\)\.
* systemd\_info \- extend support to timer units \([https\://github\.com/ansible\-collections/community\.general/pull/9891](https\://github\.com/ansible\-collections/community\.general/pull/9891)\)\.
+* taiga\_issue \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* tasks\_only callback plugin \- add result\_format and pretty\_results options similarly to the default callback \([https\://github\.com/ansible\-collections/community\.general/pull/10422](https\://github\.com/ansible\-collections/community\.general/pull/10422)\)\.
+* terraform \- adds the no\_color parameter\, which suppresses or allows color codes in stdout from Terraform commands \([https\://github\.com/ansible\-collections/community\.general/pull/10154](https\://github\.com/ansible\-collections/community\.general/pull/10154)\)\.
+* time filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* timestamp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* timestamp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* timezone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\.
+* timezone \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10612](https\://github\.com/ansible\-collections/community\.general/pull/10612)\)\.
+* to\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* to\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* tss lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* tss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\.
+* twilio \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* ufw \- add support for vrrp protocol \([https\://github\.com/ansible\-collections/community\.general/issues/9562](https\://github\.com/ansible\-collections/community\.general/issues/9562)\, [https\://github\.com/ansible\-collections/community\.general/pull/9582](https\://github\.com/ansible\-collections/community\.general/pull/9582)\)\.
+* unicode\_normalize filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* unixy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* unixy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* urpmi \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* urpmi \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10606](https\://github\.com/ansible\-collections/community\.general/pull/10606)\)\.
+* utm\_aaa\_group \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_ca\_host\_key\_cert \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_dns\_host \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_network\_interface\_address \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_proxy\_auth\_profile \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_proxy\_exception \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_proxy\_frontend \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* utm\_proxy\_location \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* version\_sort filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\.
+* vertica\_configuration \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* vertica\_info \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* vertica\_role \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* virtualbox inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* virtualbox inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
+* virtualbox inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
* vmadm \- add new options flexible\_disk\_size and owner\_uuid \([https\://github\.com/ansible\-collections/community\.general/pull/9892](https\://github\.com/ansible\-collections/community\.general/pull/9892)\)\.
+* wdc\_redfish\_command\, wdc\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
+* wsl connection plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* xattr \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* xbps \- add root and repository options to enable bootstrapping new void installations \([https\://github\.com/ansible\-collections/community\.general/pull/9174](https\://github\.com/ansible\-collections/community\.general/pull/9174)\)\.
+* xbps \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* xbps \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10608](https\://github\.com/ansible\-collections/community\.general/pull/10608)\)\.
+* xcc\_redfish\_command \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\.
+* xen\_orchestra inventory plugin \- add use\_vm\_uuid and use\_host\_uuid boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names \([https\://github\.com/ansible\-collections/community\.general/pull/9787](https\://github\.com/ansible\-collections/community\.general/pull/9787)\)\.
+* xen\_orchestra inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* xen\_orchestra inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\.
+* xen\_orchestra inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\.
+* xfconf \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\.
+* xfconf \- minor adjustments the the code \([https\://github\.com/ansible\-collections/community\.general/pull/10311](https\://github\.com/ansible\-collections/community\.general/pull/10311)\)\.
+* xfconf\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\.
+* xfs\_quota \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/10609](https\://github\.com/ansible\-collections/community\.general/pull/10609)\)\.
+* xml \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\.
+* xml \- support adding value of children when creating with subnodes \([https\://github\.com/ansible\-collections/community\.general/pull/8437](https\://github\.com/ansible\-collections/community\.general/pull/8437)\)\.
+* yaml cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* yaml callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
+* yaml callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\.
+* yarn \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* zone connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
+* zone connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\.
+* zypper \- add quiet option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\.
+* zypper \- add simple\_errors option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\.
+* zypper \- adds skip\_post\_errors that allows to skip RPM post\-install errors \(Zypper return code 107\) \([https\://github\.com/ansible\-collections/community\.general/issues/9972](https\://github\.com/ansible\-collections/community\.general/issues/9972)\)\.
+* zypper \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
+* zypper\_repository \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
-
+
+#### community\.grafana
+
+* Add argument tls\_servername for grafana\_datasource
+* Support alertmanager as type for grafana\_datasource
+* grafana\_dashboard \- allow creating dashboards in subfolders
+* grafana\_team \- integrate parameter org\_id
+* grafana\_team \- integrate parameter org\_name
+
+
#### community\.hrobot
* All modules and plugins now have a rate\_limit\_retry\_timeout option\, which allows to configure for how long to wait in case of rate limiting errors\. By default\, the modules wait indefinitely\. Setting the option to 0 does not retry \(this was the behavior in previous versions\)\, and a positive value sets a number of seconds to wait at most \([https\://github\.com/ansible\-collections/community\.hrobot/pull/140](https\://github\.com/ansible\-collections/community\.hrobot/pull/140)\)\.
+* Introduced a new action group \(module defaults group\) community\.hrobot\.api that includes all modules that support the new Hetzner API\. This is currently limited to a subset of the storage box modules\; these currently support both the community\.hrobot\.robot and the new community\.hrobot\.api action group\, and will eventually drop the community\.hrobot\.robot action group once the Robot API for storage boxes is removed by Hetzner \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/169](https\://github\.com/ansible\-collections/community\.hrobot/pull/169)\)\.
* boot \- it is now possible to specify SSH public keys in authorized\_keys\. The fingerprint needed by the Robot API will be extracted automatically \([https\://github\.com/ansible\-collections/community\.hrobot/pull/134](https\://github\.com/ansible\-collections/community\.hrobot/pull/134)\)\.
+* storagebox \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
+* storagebox\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
+* storagebox\_set\_password \- support the new Hetzner API\. Note that the new API does not support setting a random password\; you must always provide a password when using the new API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
+* storagebox\_snapshot \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
+* storagebox\_snapshot\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
+* storagebox\_snapshot\_plan \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\)\.
+* storagebox\_snapshot\_plan\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/167](https\://github\.com/ansible\-collections/community\.hrobot/pull/167)\)\.
+* storagebox\_subaccount \- no longer mark password\_mode as no\_log \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
+* storagebox\_subaccount \- support the new Hetzner API\. Note that the new API does not support setting a random password\; you must always provide a password when using the new API to create a storagebox \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
+* storagebox\_subaccount\_info \- support the new Hetzner API \([https\://github\.com/ansible\-collections/community\.hrobot/pull/168](https\://github\.com/ansible\-collections/community\.hrobot/pull/168)\)\.
* v\_switch \- the module is now part of the community\.hrobot\.robot action group\, despite already being documented as part of it \([https\://github\.com/ansible\-collections/community\.hrobot/pull/136](https\://github\.com/ansible\-collections/community\.hrobot/pull/136)\)\.
@@ -6993,21 +2133,33 @@
* Add typing information for the inventory\_filter plugin utils \([https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/22](https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/22)\)\.
-
+
+#### community\.libvirt
+
+* virt \- implement basic check mode functionality \([https\://github\.com/ansible\-collections/community\.libvirt/issue/98](https\://github\.com/ansible\-collections/community\.libvirt/issue/98)\)
+* virt \- implement the gathering of Dom UUIDs as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/187](https\://github\.com/ansible\-collections/community\.libvirt/issues/187)
+* virt \- implement the gathering of Dom interface names and mac addresses as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/189](https\://github\.com/ansible\-collections/community\.libvirt/issues/189)
+* virt \- implement the removal of volumes for a dom as per FR [https\://github\.com/ansible\-collections/community\.libvirt/issues/177](https\://github\.com/ansible\-collections/community\.libvirt/issues/177)
+
+
#### community\.mysql
* Integration tests for MariaDB 11\.4 have replaced those for 10\.5\. The previous version is now 10\.11\.
+* mysql\_db \- Add support for sql\_log\_bin option \([https\://github\.com/ansible\-collections/community\.mysql/issues/700](https\://github\.com/ansible\-collections/community\.mysql/issues/700)\)\.
* mysql\_db \- added zstd \(de\)compression support for import/dump states \([https\://github\.com/ansible\-collections/community\.mysql/issues/696](https\://github\.com/ansible\-collections/community\.mysql/issues/696)\)\.
* mysql\_info \- adds the count of tables for each database to the returned values\. It is possible to exclude this new field using the db\_table\_count exclusion filter\. \([https\://github\.com/ansible\-collections/community\.mysql/pull/691](https\://github\.com/ansible\-collections/community\.mysql/pull/691)\)
* mysql\_query \- returns the execution\_time\_ms list containing execution time per query in milliseconds\.
+* mysql\_replication \- change default value for primary\_ssl\_verify\_server\_cert from False to None\. This should not affect existing playbooks \([https\://github\.com/ansible\-collections/community\.mysql/pull/707](https\://github\.com/ansible\-collections/community\.mysql/pull/707)\)\.
* mysql\_user \- add locked option to lock/unlock users\, this is mainly used to have users that will act as definers on stored procedures\.
-
+
#### community\.okd
+* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/openshift/community\.okd/pull/255](https\://github\.com/openshift/community\.okd/pull/255)\)\.
+* Bump version of ansible\-lint to minimum 24\.7\.0 \([https\://github\.com/openshift/community\.okd/pull/240](https\://github\.com/openshift/community\.okd/pull/240)\)\.
* openshift\_auth \- fix issue where openshift\_auth module sometimes does not delete the auth token\. Based on stale PR \([https\://github\.com/openshift/community\.okd/pull/194](https\://github\.com/openshift/community\.okd/pull/194)\)\.
-
+
#### community\.postgresql
* postgresql\_pg\_hba \- adds \'pg\_hba\_string\' which contains the string that is written to the file to the output of the module \([https\://github\.com/ansible\-collections/community\.postgresql/pull/778](https\://github\.com/ansible\-collections/community\.postgresql/pull/778)\)
@@ -7020,15 +2172,28 @@
* postgresql\_publication \- added rowfilters parameter that adds support for row filtering on PG publications \([https\://github\.com/ansible\-collections/community\.postgresql/pull/813](https\://github\.com/ansible\-collections/community\.postgresql/pull/813)\)
* postgresql\_query \- returns the execution\_time\_ms list containing execution time per query in milliseconds \([https\://github\.com/ansible\-collections/community\.postgresql/issues/787](https\://github\.com/ansible\-collections/community\.postgresql/issues/787)\)\.
* postgresql\_user \- now there is a quote\_configuration\_values parameter that allows to turn off quoting for values which when set to false allows to set search\_path \([https\://github\.com/ansible\-collections/community\.postgresql/pull/806](https\://github\.com/ansible\-collections/community\.postgresql/pull/806)\)
+* postgresql\_user \- return a PostgreSQL error message when a user cannot be removed\.
-
+
#### community\.rabbitmq
+* rabbitmq\_policy \- add support to policy manipulation through RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/203](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/203)\)
* rabbitmq\_policy \- adjust the apply\_to parameter to also accept the new options classic\_queues\, quorum\_queues and streams which are supported since rabbitmq 3\.12
+* rabbitmq\_vhost \- add support to vhost manipulation through RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/171](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/171)\)
+* rabbitmq\_vhost \- make rabbitmqctl optional when configuring vhosts using the RabbitMQ API \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/201](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/201)\)
-
+
#### community\.routeros
+* api\_find\_and\_modify \- allow to control whether dynamic and/or builtin entries are ignored with the new ignore\_dynamic and ignore\_builtin options \([https\://github\.com/ansible\-collections/community\.routeros/issues/372](https\://github\.com/ansible\-collections/community\.routeros/issues/372)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/373](https\://github\.com/ansible\-collections/community\.routeros/pull/373)\)\.
+* api\_info\, api modify \- add remote\-log\-format\, remote\-protocol\, and event\-delimiter to system logging action \([https\://github\.com/ansible\-collections/community\.routeros/pull/381](https\://github\.com/ansible\-collections/community\.routeros/pull/381)\)\.
+* api\_info\, api\_modify \- add disable\-link\-local\-address and stale\-neighbor\-timeout fields to ipv6 settings \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
+* api\_info\, api\_modify \- add interface ethernet switch port\-isolation which is supported since RouterOS 6\.43 \([https\://github\.com/ansible\-collections/community\.routeros/pull/375](https\://github\.com/ansible\-collections/community\.routeros/pull/375)\)\.
+* api\_info\, api\_modify \- add mdns\-repeat\-ifaces to ip dns for RouterOS 7\.16 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/358](https\://github\.com/ansible\-collections/community\.routeros/pull/358)\)\.
+* api\_info\, api\_modify \- add port\-cost\-mode to interface bridge which is supported since RouterOS 7\.13 \([https\://github\.com/ansible\-collections/community\.routeros/pull/371](https\://github\.com/ansible\-collections/community\.routeros/pull/371)\)\.
+* api\_info\, api\_modify \- add routing bfd configuration\. Officially stabilized BFD support for BGP and OSPF is available since RouterOS 7\.11
+ \([https\://github\.com/ansible\-collections/community\.routeros/pull/375](https\://github\.com/ansible\-collections/community\.routeros/pull/375)\)\.
+* api\_info\, api\_modify \- add show\-at\-cli\-login property in system note \([https\://github\.com/ansible\-collections/community\.routeros/pull/392](https\://github\.com/ansible\-collections/community\.routeros/pull/392)\)\.
* api\_info\, api\_modify \- add missing attribute require\-message\-auth for the radius path which exists since RouterOS version 7\.15 \([https\://github\.com/ansible\-collections/community\.routeros/issues/338](https\://github\.com/ansible\-collections/community\.routeros/issues/338)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/339](https\://github\.com/ansible\-collections/community\.routeros/pull/339)\)\.
* api\_info\, api\_modify \- add missing fields comment\, next\-pool to ip pool path \([https\://github\.com/ansible\-collections/community\.routeros/pull/327](https\://github\.com/ansible\-collections/community\.routeros/pull/327)\)\.
* api\_info\, api\_modify \- add support for the ip dns forwarders path implemented by RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/343](https\://github\.com/ansible\-collections/community\.routeros/pull/343)\)\.
@@ -7036,19 +2201,38 @@
* api\_info\, api\_modify \- add the interface 6to4 path\. Used to manage IPv6 tunnels via tunnel\-brokers like HE\, where native IPv6 is not provided \([https\://github\.com/ansible\-collections/community\.routeros/pull/342](https\://github\.com/ansible\-collections/community\.routeros/pull/342)\)\.
* api\_info\, api\_modify \- add the interface wireless access\-list and interface wireless connect\-list paths \([https\://github\.com/ansible\-collections/community\.routeros/issues/284](https\://github\.com/ansible\-collections/community\.routeros/issues/284)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/340](https\://github\.com/ansible\-collections/community\.routeros/pull/340)\)\.
* api\_info\, api\_modify \- add the use\-interface\-duid option for ipv6 dhcp\-client path\. This option prevents issues with Fritzbox modems and routers\, when using virtual interfaces \(like VLANs\) may create duplicated records in hosts config\, this breaks original \"expose\-host\" function\. Also add the script\, custom\-duid and validate\-server\-duid as backport from 7\.15 version update \([https\://github\.com/ansible\-collections/community\.routeros/pull/341](https\://github\.com/ansible\-collections/community\.routeros/pull/341)\)\.
+* api\_info\, api\_modify \- adjust neighbor limit fields in ipv6 settings to match RouterOS 7\.18 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
* api\_info\, api\_modify \- change default for /ip/cloud/ddns\-enabled for RouterOS 7\.17 and newer from yes to auto \([https\://github\.com/ansible\-collections/community\.routeros/pull/350](https\://github\.com/ansible\-collections/community\.routeros/pull/350)\)\.
+* api\_info\, api\_modify \- field name change in routing bgp connection path implemented by RouterOS 7\.19 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/360](https\://github\.com/ansible\-collections/community\.routeros/pull/360)\)\.
+* api\_info\, api\_modify \- rename is\-responder property in interface wireguard peers to responder for RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/364](https\://github\.com/ansible\-collections/community\.routeros/pull/364)\)\.
+* api\_info\, api\_modify \- set passthrough default in ip firewall mangle to true for RouterOS 7\.19 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/382](https\://github\.com/ansible\-collections/community\.routeros/pull/382)\)\.
+* api\_info\, api\_modify \- set default value for include and exclude properties in system note to an empty string \([https\://github\.com/ansible\-collections/community\.routeros/pull/394](https\://github\.com/ansible\-collections/community\.routeros/pull/394)\)\.
+* api\_info\, api\_modify \- since RouterOS 7\.17 VRF is supported for OVPN server\. It now supports multiple entries\, while api\_modify so far only accepted a single entry\. The interface ovpn\-server server path now allows multiple entries on RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/383](https\://github\.com/ansible\-collections/community\.routeros/pull/383)\)\.
+* api\_modify\, api\_info \- support API path ip ipsec mode\-config \([https\://github\.com/ansible\-collections/community\.routeros/pull/376](https\://github\.com/ansible\-collections/community\.routeros/pull/376)\)\.
-
+
+#### community\.sops
+
+* Now supports specifying SSH private keys for age with the new age\_ssh\_private\_keyfile option \([https\://github\.com/ansible\-collections/community\.sops/pull/241](https\://github\.com/ansible\-collections/community\.sops/pull/241)\)\.
+* load\_vars \- expressions can now be lazily evaluated when using ansible\-core 2\.19 or newer \([https\://github\.com/ansible\-collections/community\.sops/pull/229](https\://github\.com/ansible\-collections/community\.sops/pull/229)\)\.
+
+
#### community\.vmware
+* module\_utils\.vmware \- Move vmware\_argument\_spec to a dedicated file \([https\://github\.com/ansible\-collections/community\.vmware/pull/2370](https\://github\.com/ansible\-collections/community\.vmware/pull/2370)\)\.
+* module\_utils\.vmware\_rest\_client \- Move vmware\_client\_argument\_spec to a dedicated file \([https\://github\.com/ansible\-collections/community\.vmware/pull/2370](https\://github\.com/ansible\-collections/community\.vmware/pull/2370)\)\.
+* vcenter\_extension \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* vcenter\_standard\_key\_provider \- Drop unused HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2327](https\://github\.com/ansible\-collections/community\.vmware/pull/2327)\)\.
* vmware\.py \- Add logic for handling the case where the datacenter property is not provided\.
* vmware\_category \- Don\'t test for vSphere \< 7 anymore \([https\://github\.com/ansible\-collections/community\.vmware/pull/2326](https\://github\.com/ansible\-collections/community\.vmware/pull/2326)\)\.
+* vmware\_dvs\_portgroup \- New option network\_policy\.mac\_learning to replace mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/pull/2360](https\://github\.com/ansible\-collections/community\.vmware/pull/2360)\)\.
* vmware\_guest \- Add new cutomization spec param domainOU\. \([https\://github\.com/ansible\-collections/community\.vmware/issues/2275](https\://github\.com/ansible\-collections/community\.vmware/issues/2275)\)
* vmware\_guest \- Drop unused HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2327](https\://github\.com/ansible\-collections/community\.vmware/pull/2327)\)\.
* vmware\_guest \- Print details about the error message when the returned task result contains \([https\://github\.com/ansible\-collections/community\.vmware/pull/2301](https\://github\.com/ansible\-collections/community\.vmware/pull/2301)\)\.
* vmware\_guest \- Speedup network search \([https\://github\.com/ansible\-collections/community\.vmware/pull/2278](https\://github\.com/ansible\-collections/community\.vmware/pull/2278)\)\.
+* vmware\_guest\_cross\_vc\_clone \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* vmware\_guest\_info \- datacenter property is now optional as it only required in cases where the VM is not uniquely identified by name\.
+* vmware\_guest\_instant\_clone \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* vmware\_guest\_network \- Speedup network search \([https\://github\.com/ansible\-collections/community\.vmware/pull/2277](https\://github\.com/ansible\-collections/community\.vmware/pull/2277)\)\.
* vmware\_guest\_storage\_policy \- Drop unnecessary HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2328](https\://github\.com/ansible\-collections/community\.vmware/pull/2328)\)\.
* vmware\_guest\_tpm \- Drop unused HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2327](https\://github\.com/ansible\-collections/community\.vmware/pull/2327)\)\.
@@ -7058,43 +2242,78 @@
* vmware\_host\_snmp \- Drop unnecessary HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2328](https\://github\.com/ansible\-collections/community\.vmware/pull/2328)\)\.
* vmware\_migrate\_vmk \- Drop unnecessary HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2328](https\://github\.com/ansible\-collections/community\.vmware/pull/2328)\)\.
* vmware\_migrate\_vmk \- Inherit from / sub\-class PyVmomi \([https\://github\.com/ansible\-collections/community\.vmware/pull/2324](https\://github\.com/ansible\-collections/community\.vmware/pull/2324)\)\.
+* vmware\_object\_role\_permission \- Document setting permissions on vCenter level \([https\://github\.com/ansible\-collections/community\.vmware/pull/2374](https\://github\.com/ansible\-collections/community\.vmware/pull/2374)\)\.
* vmware\_resource\_pool \- Drop unnecessary HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2328](https\://github\.com/ansible\-collections/community\.vmware/pull/2328)\)\.
* vmware\_vc\_infraprofile\_info \- Don\'t test for vSphere \< 7 anymore \([https\://github\.com/ansible\-collections/community\.vmware/pull/2326](https\://github\.com/ansible\-collections/community\.vmware/pull/2326)\)\.
* vmware\_vm\_config\_option \- Drop unused HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2327](https\://github\.com/ansible\-collections/community\.vmware/pull/2327)\)\.
+* vmware\_vm\_inventory \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* vmware\_vm\_vss\_dvs\_migrate \- Inherit from / sub\-class PyVmomi \([https\://github\.com/ansible\-collections/community\.vmware/pull/2325](https\://github\.com/ansible\-collections/community\.vmware/pull/2325)\)\.
+* vmware\_vsan\_cluster \- Stop using connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* vmware\_vsan\_health\_info \- Drop unused HAS\_PYVMOMI \([https\://github\.com/ansible\-collections/community\.vmware/pull/2327](https\://github\.com/ansible\-collections/community\.vmware/pull/2327)\)\.
-
+
#### community\.windows
* Added support for Windows Server 2025
+* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
* This issue fixes installation of requirements as it requires a confirmation when installed as a depedency to PowershellGet\. Installing it by itself prevents this confirmation dialog and allows required components to be installed \([https\://github\.com/ansible\-collections/community\.windows/issues/147](https\://github\.com/ansible\-collections/community\.windows/issues/147)\)\.
* win\_file\_version \- Add file\_version\_raw result for cases where file\_version might be empty or in not in the right format\.
* win\_iis\_webapppool \- this pull request fixes the portion where building an app pool with the word \"value\" in it fails unexpectedly\. [https\://github\.com/ansible\-collections/community\.windows/issues/410](https\://github\.com/ansible\-collections/community\.windows/issues/410)\.
* win\_psrepository\_copy \- Add Force option that deletes repositories that are not present in the source
-
+
#### community\.zabbix
+* Add zabbix\_http\_headers variable to allow specifying custom HTTP headers for Zabbix API calls\. This can be useful for authentication or other custom header requirements\.
+* Agent Role \- Removed Temporary Fix supporting RHEL9
+* Web Role \- Added zabbix\_web\_custom\_php to allow for addition of customer PHP settings
+* Web Role \- Added support for ssl\_prefer\_server\_ciphers
+* Web Role \- Added support for zabbix\_web\_ssl\_session\_protocols
+* Web Role \- Added support for zabbix\_web\_ssl\_session\_stapling
+* You can now deploy these roles with inject\_facts\_as\_vars set to false
* added support for Zabbix 7\.2 for all modules
+* roles \- sane selinux defaults
+* roles/proxy \- Fixing the zabbix\_proxy\_proxyconfigfrequency functionality
+* roles/proxy \- optionally creation of proxy\_group and adding proxy to group \(Zabbix 7\.0\+\)
+* roles/zabbix\_agent \- Tweaking the windows service
* zabbix\_action module \- added Add host tags and Remove host tags operations
+* zabbix\_action module \- properly configure discovery check condition in discovery action depending on information provided in discovery check value\.
* zabbix\_action module fixed SNMP discovery check condition in discovery rule\.
* zabbix\_agent role \- accept several IPs in zabbix\_agent\_listenip variable\.
+* zabbix\_configuration module \- Add this module to import configuration data\.
* zabbix\_connector module added
* zabbix\_discoveryrule \- add support for renaming discoveryrules
+* zabbix\_group \- add propagate parameter
* zabbix\_group\_events\_info \- add tag support
+* zabbix\_group\_info \- Add the possibility to retrive all host Group
* zabbix\_item \- add support for renaming items
+* zabbix\_item \- added support for item types zabbix\_agent\, snmp\_trap\, snmp\_agent\, ipmi\_agent and jmx\_agent
* zabbix\_itemprototype \- add support for renaming itemprototypes
* zabbix\_maintenance \- Added ability to append host or host groups to existing maintenance\.
+* zabbix\_mediatype \- add Message template for services
* zabbix\_mediatype module \- fix failure that started to happen since Zabbix 7\.0\.9
* zabbix\_proxy role \- fix Zabbix proxy creation/update at Zabbix \>\= 7\.0
* zabbix\_proxy role \- fix Zabbix proxy creation/update at Zabbix server when PSK used
+* zabbix\_proxy role \- fix Zabbix proxy with encryptuion registration
* zabbix\_regexp\_info module added
+* zabbix\_server role \- facilitate overriding database schemas loaded
+* zabbix\_server role \- facilitate overriding packages installed
+* zabbix\_service \- add better idempotency that checks every parameter for change and updates only the changed ones
* zabbix\_settings \- add support for additional timeout settings
* zabbix\_settings \- allow setting auditlog\_mode on Zabbix 7\.0 or higher\. With this setting you can enable or disable audit logging of system actions\.
+* zabbix\_template\_info \- Add the possibility to retrive all template Group
+* zabbix\_templategroup \- add propagate parameter
+* zabbix\_token module \- Fix status value for zabbix Auth token\.
+* zabbix\_token module \- update the logic for update of Zabbix Token
* zabbix\_trigger \- add support for renaming triggers
* zabbix\_triggerprototype \- add support for renaming triggerprototypes
+
+#### containers\.podman
+
+* Add another test for volumes
+* Added checks for volume opts
+
#### dellemc\.enterprise\_sonic
@@ -7110,36 +2329,61 @@
* sonic\_route\_maps \- Add the set ip/ipv6 next\_hop \'native\' option \([https\://github\.com/ansible\-collection/dellemc\.enterprise\_sonic/pull/421](https\://github\.com/ansible\-collection/dellemc\.enterprise\_sonic/pull/421)\)\.
* sonic\_vxlan \- Add \'suppress\_vlan\_neigh\' vlan list option \([https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/448](https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/448)\)\.
-
+
#### dellemc\.openmanage
* idrac\_certificates \- This module is enhanced to support SSL CSR generation for 4096 key size\.
* omevv\_firmware\_repository\_profile \- This module allows to resync the repository profiles from the OpenManage Update Manager Plug\-in\.
-
+
#### dellemc\.powerflex
* Added Ansible role to support installation and uninstallation of SDT\.
+* Added none check for mdm cluster id in mdm\_cluster module\.
* Info module is enhanced to support the listing of SDTs and NVMe hosts\.
+* Updated minimum SDK version to 2\.6\.1\.
-
+
#### f5networks\.f5\_modules
* bigip\_virtual\_server \- Fixed issue \- Disabling/Enabling Virtual Server does not require profiles\, type in Update
-
+
#### fortinet\.fortimanager
* Supported FortiManager 6\.2\.13\, 6\.4\.15\, 7\.0\.13\, 7\.2\.8\, 7\.4\.5\, 7\.6\.1\. Added 1 new module\.
* Supported FortiManager 7\.2\.9\, 7\.4\.6\, 7\.6\.2\. Added 3 new modules\.
* Supported check diff for some modules except \"fmgr\_generic\"\. You can use \"ansible\-playbook \-i \ \ \-\-check \-\-diff\" to check what changes your playbook will make to the FortiManager\.
+* Supported new modules in FortiManager 7\.4\.6\, 7\.4\.7\, 7\.6\.3\.
-
+
+#### google\.cloud
+
+* gcp\_compute \- added GVNIC support to compute instance \([https\://github\.com/ansible\-collections/google\.cloud/pull/688](https\://github\.com/ansible\-collections/google\.cloud/pull/688)\)\.
+* gcp\_compute \- added discard\_local\_ssd flag to compute instance \([https\://github\.com/ansible\-collections/google\.cloud/pull/686](https\://github\.com/ansible\-collections/google\.cloud/pull/686)\)\.
+* gcp\_compute \- added hostname support to dynamic inventory \([https\://github\.com/ansible\-collections/google\.cloud/pull/689](https\://github\.com/ansible\-collections/google\.cloud/pull/689)\)\.
+* gcp\_parameter\_manager \- added module support for managing parameters and versions \([https\://github\.com/ansible\-collections/google\.cloud/pull/684](https\://github\.com/ansible\-collections/google\.cloud/pull/684)\)\.
+* gcp\_pubsub\_subscription \- allows to create GCS subscription
+* gcp\_secret\_manager \- added support for regional secret manager \([https\://github\.com/ansible\-collections/google\.cloud/pull/685](https\://github\.com/ansible\-collections/google\.cloud/pull/685)\)\.
+* gcp\_storage\_bucket \- added support for iam\_configuration \([https\://github\.com/ansible\-collections/google\.cloud/pull/693](https\://github\.com/ansible\-collections/google\.cloud/pull/693)\)\.
+* lookup \- added lookup via gcp\_parameter\_manager \([https\://github\.com/ansible\-collections/google\.cloud/pull/684](https\://github\.com/ansible\-collections/google\.cloud/pull/684)\)\.
+
+
+#### grafana\.grafana
+
+* Remove Node modules from Ansible Collection build
+
+
#### hetzner\.hcloud
* server \- Add created state that creates a server but do not start it\.
+* server \- Allow renaming a server\.
+* ssh\_key \- Log a warning when the provided public key does not match one in the API\.
+* ssh\_key \- When the public key does not match the one in the API\, allow recreating the SSH Key in the API using the force\=true argument\.
+* volume \- Allow renaming a volume\.
+* volume\_attachment \- Add new volume\_attachment module to manage Volumes attachment\.
-
+
#### ibm\.storage\_virtualize
* ibm\_sv\_manage\_replication\_policy \- Added support for disaster recovery
@@ -7149,6 +2393,8 @@
* ibm\_sv\_manage\_truststore\_for\_replication \- Added support for creating truststore for flashsystem grid
* ibm\_sv\_manage\_truststore\_for\_replication \- Added support for enabling various options \(syslog\, RESTAPI\, vasa\, ipsec\, snmp and email\) for existing truststore
* ibm\_svc\_host \- Added support for specifying host location in PBHA\, support for FDMI discovery\, suppressing offline alert\, updating IO groups\, and for specifying fcscsi and iscsi protocols during host creation
+* ibm\_svc\_host\.py \- Added support for adding and removing preferred location\, and IO Groups
+* ibm\_svc\_hostcluster\.py \- Added support for adding site
* ibm\_svc\_info \- Added support for flashsystem grid
* ibm\_svc\_initial\_setup \- Added support for flashcopy default grain size and SI \(Storage Insights\) to be able to control partition migration
* ibm\_svc\_initial\_setup \- Added support for vdisk protection settings\, iscsiauthmethod and improved REST API calls
@@ -7157,73 +2403,106 @@
* ibm\_svc\_manage\_replication \- Added support for highly\-available snapshots
* ibm\_svc\_manage\_volume \- Added support for converting thinclone volume\(s\) to clone
* ibm\_svc\_manage\_volume \- Added support for unmapping hosts\, remote\-copy and flashcopy during volume deletion
+* ibm\_svc\_manage\_volume \- Added support for warning parameter
* ibm\_svc\_manage\_volumegroup \- Added support for disaster recovery and converting thinclone volumegroup to clone
* ibm\_svc\_mdisk \- Added support for updating tier
* ibm\_svc\_mdiskgrp \- Improved probe function for storage pools
-
+
#### kubernetes\.core
+* Bump version of ansible\-lint to 25\.1\.2 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/919](https\://github\.com/ansible\-collections/kubernetes\.core/pull/919)\)\.
* Bump version of ansible\-lint to minimum 24\.7\.0 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/765](https\://github\.com/ansible\-collections/kubernetes\.core/pull/765)\)\.
+* Module helm\_registry\_auth do not support idempotency with helm \>\= 3\.18\.0 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/946](https\://github\.com/ansible\-collections/kubernetes\.core/pull/946)\)
+* Module k8s\_json\_patch \- Add support for hidden\_fields \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/964](https\://github\.com/ansible\-collections/kubernetes\.core/pull/964)\)\.
* Parameter insecure\_registry added to helm\_template as equivalent of insecure\-skip\-tls\-verify \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/805](https\://github\.com/ansible\-collections/kubernetes\.core/pull/805)\)\.
+* action/k8s\_info \- update templating mechanism with changes from ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/888](https\://github\.com/ansible\-collections/kubernetes\.core/pull/888)\)\.
+* helm \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
+* helm \- Parameter take\_ownership added \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/957](https\://github\.com/ansible\-collections/kubernetes\.core/pull/957)\)\.
+* helm \- add reset\_then\_reuse\_values support to helm module \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/803](https\://github\.com/ansible\-collections/kubernetes\.core/issues/803)\)\.
+* helm \- add support for insecure\_skip\_tls\_verify option to helm and helm\_repository\([https\://github\.com/ansible\-collections/kubernetes\.core/issues/694](https\://github\.com/ansible\-collections/kubernetes\.core/issues/694)\)\.
+* helm\_pull \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
+* helm\_template \- Parameter plain\_http added for working with insecure OCI registries \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/934](https\://github\.com/ansible\-collections/kubernetes\.core/pull/934)\)\.
* k8s \- Extend hidden\_fields to allow the expression of more complex field types to be hidden \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/872](https\://github\.com/ansible\-collections/kubernetes\.core/pull/872)\)
* k8s\_drain \- Improve error message for pod disruption budget when draining a node \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/797](https\://github\.com/ansible\-collections/kubernetes\.core/issues/797)\)\.
* k8s\_info \- Extend hidden\_fields to allow the expression of more complex field types to be hidden \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/872](https\://github\.com/ansible\-collections/kubernetes\.core/pull/872)\)
* waiter\.py \- add ClusterOperator support\. The module can now check OpenShift cluster health by verifying ClusterOperator status requiring \'Available\: True\'\, \'Degraded\: False\'\, and \'Progressing\: False\' for success\. \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/869](https\://github\.com/ansible\-collections/kubernetes\.core/issues/869)\)
-
+
#### lowlydba\.sqlserver
* Add new login\_role module to add/remove server roles for logins \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/293](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/293)\)\.
* Add new user\_role module to manage users\' membership to database roles \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/292](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/292)\)\.
+* Added support for Ansible 2\.19
* Added support for contained Availability Groups using dbatools 2\.1\.15 \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/249](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/249)\)\.
+* Updated the test matrix to include Ansible 2\.19 and remove Ansible 2\.16
+* agent\_job\_step \- Added output\_file parameter to specify the output file path for SQL Agent job steps \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/329](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/329)\)\.
-
+
#### microsoft\.ad
* Added support for Windows Server 2025
+* Set minimum supported Ansible version to 2\.16 to align with the versions still supported by Ansible\.
* domain \- Added replication\_source\_dc to specify the domain controller to use as the replication source for the new domain \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/159](https\://github\.com/ansible\-collections/microsoft\.ad/issues/159)
* domain\_controller \- Added replication\_source\_dc to specify the domain controller to use as the replication source for the new domain controller \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/159](https\://github\.com/ansible\-collections/microsoft\.ad/issues/159)
* microsoft\.ad\.user \- Added groups\.permissions\_failure\_action to control the behaviour when failing to modify the user\'s groups \- \([https\://github\.com/ansible\-collections/microsoft\.ad/issues/140](https\://github\.com/ansible\-collections/microsoft\.ad/issues/140)\)\.
-
+
#### netapp\.ontap
* Multiple modules \- Standardize hostname\, username\, and password parameters to use netapp\_hostname\, netapp\_username\, and netapp\_password as values\.
* Multiple modules \- Update examples to use Fully Qualified Collection Name\.
* Update dead link in doc\_fragments\.
+* all modules \- defaults to certificate based authentication if username\,password and cert\_filepath/key\_filepath are set\.
* all modules supporting only REST \- change in documentation for use\_rest\.
* all modules supporting only REST \- updated extends\_documentation\_fragment \& argument spec\.
* na\_ontap\_active\_directory \- return error message when attempting to modify account\_name\.
* na\_ontap\_bgp\_config \- REST only support for managing BGP configuration for a node\, requires ONTAP 9\.6 or later\.
+* na\_ontap\_cifs\_acl \- added example showing ACL deletion\.
* na\_ontap\_cifs\_privileges \- REST only support for managing privileges of the local or Active Directory user or group\, requires ONTAP 9\.10\.1 or later\.
* na\_ontap\_cifs\_server \- added new option comment for cifs server\, requires ONTAP 9\.6 or later\.
+* na\_ontap\_cluster\_peer \- new options local\_name\_for\_peer and local\_name\_for\_source added in REST\.
* na\_ontap\_dns \- updated documentation for vserver\.
* na\_ontap\_flexcache \- new option to enable writeback added in REST\, requires ONTAP 9\.12 or later\.
* na\_ontap\_flexcache \- new options relative\_size\, override\_encryption\, atime\_scrub\, cifs\_change\_notify\_enabled\, global\_file\_locking\_enabled\, guarantee\_type\, dr\_cache added in REST\.
+* na\_ontap\_ndmp \- Added get method to generate and retrieve ndmp user passowrd in REST\.
+* na\_ontap\_nfs \- new option nfsv3\_hide\_snapdir added in REST\.
* na\_ontap\_rest\_cli \- Add POST and DELETE examples\.
+* na\_ontap\_rest\_cli \- added next key to enable API pagination support\.
* na\_ontap\_rest\_info \- removed example which has option gather\_subset set to all from documentation\.
* na\_ontap\_rest\_info \- updated extends\_documentation\_fragment \& argument spec\.
* na\_ontap\_s3\_buckets \- added new option versioning\_state\, requires ONTAP 9\.11\.1 or later\.
* na\_ontap\_s3\_buckets \- updated extends\_documentation\_fragment \& argument spec\.
* na\_ontap\_s3\_services \- added is\_http\_enabled\, is\_https\_enabled\, port and secure\_port option for s3 service\, requires ONTAP 9\.8 or later\.
* na\_ontap\_s3\_users \- new option regenerate\_keys and delete\_keys added in REST\, delete\_keys requires ONTAP 9\.14 or later\.
+* na\_ontap\_security\_certificates \- updated examples for create server type certificate and install with intermediate certificates\.
+* na\_ontap\_snapmirror \- new option quick\_resync added in REST\.
* na\_ontap\_snapmirror \- new option quiesced\_time\_out added to wait for quiesce job to complete\.
+* na\_ontap\_support\_config\_backup \- new option set\_password added in REST\.
* na\_ontap\_svm \- added allowed option for s3 service\, requires ONTAP 9\.7 or later\.
+* na\_ontap\_svm \- new option storage\_limit added in REST\, requires ONTAP 9\.13\.1 or later\.
* na\_ontap\_svm \- updated documentation for allowed\_protocols \& services\.
+* na\_ontap\_user \- added totp option for application\_dicts\.second\_authentication\_method in REST\.
* na\_ontap\_volume \- new option granular\_data added in REST\, requires ONTAP 9\.12 or later\.
* na\_ontap\_volume \- new option large\_size\_enabled added in REST\, requires ONTAP 9\.12 or later\.
* na\_ontap\_volume \- new option nas\_application\_template\.cifs\_share\_name added in REST\, requires ONTAP 9\.11 or later\.
* na\_ontap\_volume \- new option nas\_application\_template\.snaplock\.\* added in REST\, requires ONTAP 9\.12 or later\.
* na\_ontap\_volume \- new option nas\_application\_template\.snapshot\_locking\_enabled added in REST\, requires ONTAP 9\.13\.1 or later\.
+* na\_ontap\_volume \- new option tiering\_object\_tags added in REST\.
+* na\_ontap\_volume \- updated documentation for snapshot\_auto\_delete\.
+* updated ZAPI deprecation warnings in README \& module utilities\.
+* updated README template\, added CHANGELOG\.md for release notes\.
-
+
#### netapp\.storagegrid
* na\_sg\_grid\_account \- new option allow\_compliance\_mode and max\_retention\_days added for tenant account\, requires storageGRID 11\.9 or later\.
* na\_sg\_grid\_gateway \- new option enable\_tenant\_manager\, enable\_grid\_manager and node\_type added to support management interfaces\.
* na\_sg\_grid\_group \- new option read\_only added for grid groups\.
+* na\_sg\_grid\_ha\_group \- added check mode support in the module\.
* na\_sg\_grid\_info \- LB endpoints and HA group in info module\.
+* na\_sg\_org\_container \- Enhanced the Consistency setting\.
+* na\_sg\_org\_container \- new option capacity\_limit added for bucket\, requires storageGRID 11\.9 or later\.
* na\_sg\_org\_group \- new option read\_only added for tenant groups\.
@@ -7238,13 +2517,23 @@
* netbox\_prefix \- Add options scope and scope\_type for NetBox 4\.2\+
* netbox\_vm\_interface \- Add primary\_mac\_address option for NetBox 4\.2\+
-
+
+#### ovirt\.ovirt
+
+* Enable and start postfix service so that ovirt\-ha\-agent logs are not filled with mail notification errors \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/741](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/741)\)
+* Maintenance tasks regarding linting\, testing and CI \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/762](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/762)\)
+
+
#### purestorage\.flasharray
* all \- Minimum py\-pure\-client version increased to 1\.57\.0 due to release of Realms feature
* purefa\_dsrole \- Add support for non\-system\-defined directory service roles with new parameter name
+* purefa\_endpoint \- Converted to REST v2
+* purefa\_fleet \- Allows FlashBlades to be added to Fusion fleets if FlashArray is Purity//FA 6\.8\.5 or higher
* purefa\_hg \- Added support for Fusion
* purefa\_host \- Added Fusion support
+* purefa\_host \- Hosts can be created in realms and renamed within the same realm
+* purefa\_host \- Move function added to allow movement of host to/from realms
* purefa\_info \- Add enabled value for network subnets
* purefa\_info \- Add policies\` list of dicts to \`\`filesystem subset for each share\.
* purefa\_info \- Add time\_remaining field for non\-deleted directory snapshots
@@ -7258,6 +2547,7 @@
* purefa\_info \- SnaptoNFS support removed from Purity//FA 6\.6\.0 and higher\.
* purefa\_info \- Update KMIP information collection to use REST v2\, exposing full certifcate content
* purefa\_info \- VNC feature deprecated from Purity//FA 6\.8\.0\.
+* purefa\_inventory \- Added support for capacity down licensing
* purefa\_offload \- Add support for S3 Offload uri and auth\_region parameters
* purefa\_pg \- Added Fusion support\.
* purefa\_pgsched \- Added support for Fusion\.
@@ -7265,41 +2555,79 @@
* purefa\_pgsnap \- Expose created protection group snapshot data in the module return dict
* purefa\_pod\_replica \- Added Fusion support\.
* purefa\_pods \- Added support for Fusion with context parameter\.
+* purefa\_policy \- Added support change a specific quota rule by name
* purefa\_policy \- New policy type of password added\. Currently the only default management policy can be updated
* purefa\_smtp \- Added support for additional parameters\, including encryption mode and email prefixs and email sender name\.
* purefa\_snap \- Added Fusion support\.
+* purefa\_subnet \- Converted to use REST 2
* purefa\_subnet \- Remove default value for MTU t ostop restting to default on enable/disable of subnet\. Creation will still default to 1500 if not provided\.
* purefa\_timeout \- Convert to REST v2
* purefa\_user \- Added parameter for SSH public keys and API token timeout
* purefa\_user \- Converted to use REST v2
+* purefa\_user \- No longer tries to expose API tokens as these are not required in the module
* purefa\_user \- When changing API token or timout for an existing user\, the user role must be provided or it will revert to readonly
* purefa\_vg \- Added support for Fusion
* purefa\_vlan \- Convert to REST v2
* purefa\_vnc \- VNC feature deprecated from Purity//FA 6\.8\.0\.
* purefa\_volume \- Added context parameter to support fleet operations
+* purefa\_volume \- Added support for creating volumes in Realms
+
+
+#### purestorage\.flashblade
+
+* purefb\_ad \- Add support for Global Catalog Servers
+* purefb\_dns \- Added support for multiple DNS configurations\.
+* purefb\_ds \- SMB directory services deprecated from Purity//FB 4\.5\.2
+* purefb\_info \- Add support for Active Directory Global Catalog Servers
+* purefb\_info \- Added snapshot creation date\-time and time\_remaining\, if snapshot is not deleted\, to the snapshots response\.
+* purefb\_info \- Added support for multiple DNS configurations\.
+* purefb\_policy \- Snapshot policies can now have specific filesystems and/or replica links added or deletred from the policy
+* purefb\_proxy \- Added support to update existing proxy
+* purefb\_proxy \- Updated to REST v2
+* purefb\_s3user \- Changed key\_state state to be keystate as key\_state is reserved\.
+* purefb\_s3user \- Changed remove\_key parameter to key\_name and add new state of key\_state to allow a specificed key to be enabled/disabled using the new parameter enable\_key\.
+* purefb\_s3user \- Updated failure messages for applying policies to an object user account\.
+* purefb\_subnet \- prefix removed as a required parameter for updating an existing subnet
-
+
+#### telekom\_mms\.icinga\_director
+
+* Add API timeout option for all modules \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/282](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/282)\)
+* Add support for IcingaDB in inventory plugin \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/274](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/274)\)
+* Add zone option for icinga\_user\_group module \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/286](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/286)\)
+* Icinga dependency modules implementation \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/272](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/272)\)
+
+
#### theforeman\.foreman
* Support Kerberos/GSSAPI authentication by passing use\_gssapi\: true instead of username and password\.
* Support setting a specific CA file for certificate validation
* activation\_keys\, content\_credentials\, content\_view\_publish\, content\_views\, lifecycle\_environments\, repositories\, sync\_plans roles \- Allow specifying the organization for each item individually \([https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1653](https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1653)\)
+* content\_view \- add rolling\-flag to create a Rolling Content View
* host\, hostgroup\, domain\, operatingsystem\, subnet\, organization\, location \- support setting hidden parameters
+* repository \- add rhel\-10 to os version filter choices
+* repository \- add support for the retain\_package\_versions\_count parameter
* snapshot \- add quiesce option \([https\://github\.com/theforeman/foreman\-ansible\-modules/pull/1810](https\://github\.com/theforeman/foreman\-ansible\-modules/pull/1810)\)
* templates\_import \- Support configuring HTTP Proxy behaviour for template import
-
+
#### vmware\.vmware
+* Fixed ansible\-lint errors in examples\.
+* Warn the user when more than one host has the same name in the inventory plugins\. Throw an error if strict is true
* \_module\_pyvmomi\_base \- Make sure to use the folder param when searching for VMs based on other common params in get\_vms\_using\_params
* \_vmware \- standardize getter method names and documentation
+* add folder\_paths\_are\_absolute option to all modules that support folder paths\, allowing users to specify if folder paths are absolute and override the default behavior of intelligently determining if the path is absolute or relative\. \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/202](https\://github\.com/ansible\-collections/vmware\.vmware/issues/202)\)
* added vm\_resource\_info module to collect cpu/memory facts about vms
* argument specs \- Remove redundant argument specs\. Update pyvmomi modules to use new consolidated spec
* clients/\_pyvmomi \- adds explicit init params instead of using dict
* clients/\_rest \- adds explicit init params instead of using dict
+* cluster\_ha \- Add module required\_by rules for admission control arguments that are mentioned in the docs \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/201](https\://github\.com/ansible\-collections/vmware\.vmware/issues/201)\)
+* cluster\_ha \- admission\_control\_failover\_level can now always be managed by the user\'s inputs\, and the default value for dedicated\_host policy type is the number of dedicated failover hosts \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/201](https\://github\.com/ansible\-collections/vmware\.vmware/issues/201)\)
* cluster\_ha \- migrate the vmware\_cluster\_ha module from community to here
* cluster\_info \- Migrate cluster\_info module from the community\.vmware collection to here
* content\_library\_item\_info \- Migrate content\_library\_item\_info module from the vmware\.vmware\_rest collection to here
+* content\_template \- Added more options to search for the source VM like uuid and moid\. Also made argument validation more accurate
* content\_template \- Fix bad reference of library variable that was refactored to library\_id
* deploy\_content\_library\_ovf \- migrate the vmware\_content\_deploy\_ovf\_template module from community to here
* deploy\_content\_library\_ovf \- update parameters to be consistent with other deploy modules
@@ -7314,28 +2642,68 @@
* esxi\_hosts inventory \- include moid property in output always
* esxi\_maintenance\_mode \- migrate esxi maintenance module from community
* folder \- migrate vmware\_folder module from community to here
+* guest\_info \- Allow user to specify folder path to help select the VM to query
* info \- Made vm\_name variable required only when state is set to present in content\_template module
* local\_content\_library \- migrate the vmware\_content\_library\_manager module from community to here
+* moid\_from\_path \- Add lookup plugins to get an objects MOID \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/191](https\://github\.com/ansible\-collections/vmware\.vmware/issues/191)\)
* pyvmomi \- update object search by name method to use propertycollector\, which speeds up results significantly
* pyvmomi module base \- refactor class to use the pyvmomi shared client util class as a base
+* rename private module\_utils to drop the redundant vmware prefix
* rest module base \- refactor class to use the rest shared client util class as a base
* subscribed\_content\_library \- migrate the vmware\_content\_library\_manager module from community to here
* upload\_content\_library\_ovf \- Add module to upload an ovf/ova to a content library
+* vcsa\_backup\_schedule \- Add module to manage the vCenter backup schedule
+* vcsa\_backup\_schedule\_info \- Add module to gather info about the vCenter backup schedules
+* vcsa\_settings \- Add always\_update\_password parameter to proxy settings\, which can be used to control if the password should be updated\.
+* vm\_advanced\_settings \- Add module to manage the advanced settings on a VM
+* vm\_powerstate \- Add better error message when scheduling a power state task in the past
* vm\_powerstate \- migrate vmware\_guest\_powerstate module from community to here
+* vm\_snapshot \- migrate vmware\_guest\_snapshot module from community to here
* vms \- Add inventory host filtering based on jinja statements
* vms \- added vms inventory plugin\. consolidated shared docs/code with esxi hosts inventory plugin
+* vms inventory \- Fixed issue where a user could accidentally not collect a required parameter\, config\.guestId
* vms inventory \- include moid property in output always
-
+
#### vmware\.vmware\_rest
* Deprecated modules with redundant functionality in vmware\.vmware\. The next major release is currently not planned\, so no removal date is provided\. See [https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/589](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/589)
+* change cloud\.common dependency to 4\.1 to support anisble 2\.19
* info \- changed relative links in README\.md to absolute links
-
+
+#### vyos\.vyos
+
+* README\.md \- Add Communication section with Forum information\.
+* vyos\_bgp\_address\_family \- Redistribute\, network stanza \- added support for modifiers \(metric\, backdoor etc as per T6829\)
+* vyos\_bgp\_global \- Added support for solo neighbor attribute
+* vyos\_config \- block get\_config call if match is set to \"none\"
+* vyos\_facts \- added network\_os\_major\_version to facts
+* vyos\_firewall\_global \- Added support for input\, output\, and forward chains \(1\.4\+\)
+* vyos\_firewall\_global \- Added support for log\-level in state\-policy \(1\.4\+\)
+* vyos\_firewall\_global \- with 1\.4\+\, use the the global keyword to define global firewall rules
+* vyos\_firewall\_interfaces \- added support for VIF interfaces
+* vyos\_firewall\_interfaces \- enable support for 1\.4 firewall
+* vyos\_firewall\_interfaces \- expanded firewall interface types to match existing types
+* vyos\_firewall\_rules \- Add support for diff mode for rulesets
+* vyos\_firewall\_rules \- Added support for 1\.4\+ firewall rules
+* vyos\_firewall\_rules \- Fixed comparing of firewall rules
+* vyos\_firewall\_rules \- added support for 1\.5\+ firewall match\-ipsec\-in\, match\-ipsec\-out\, match\-none\-in\, match\-none\-out
+* vyos\_firewall\_rules \- added support for packet\-length\-exclude for 1\.4\+ and the states
+* vyos\_l3\_interfaces \- make l3\_interfaces pick up loopback interfaces
+* vyos\_lldp\_global \- address is now addresses\, with appropriate coercion for existing address keys
+* vyos\_ntp\_global \- Added ntp options for 1\.5\+ \(interleave\, ptp\)
+* vyos\_ntp\_global \- Added support for VyOS 1\.4\+ \(chronyd vs ntpd\)
+* vyos\_ntp\_global \- Added syntax for allow\_client in 1\.4\+
+* vyos\_ospf\_interaces \- support for 1\.4 ospf interfaces
+* vyos\_ospf\_interfaces \- add support for VyOS 1\.3\- virtual interfaces
+* vyos\_ospf\_interfaces \- add support for VyOS 1\.4\+\, which moved interface configuration from the interfaces to ospf/ospfv3 interfaces configuration
+* vyos\_route\_maps \- add support for as\-path\-prepend policy option
+
+
### Breaking Changes / Porting Guide
-
+
#### Ansible\-core
* Support for the toml library has been removed from TOML inventory parsing and dumping\. Use tomli for parsing on Python 3\.10\. Python 3\.11 and later have built\-in support for parsing\. Use tomli\-w to support outputting inventory in TOML format\.
@@ -7365,19 +2733,78 @@
* templating \- The result of the range\(\) global function cannot be returned from a template\- it should always be passed to a filter \(e\.g\.\, random\)\. Previously\, range objects returned from an intermediate template were always converted to a list\, which is inconsistent with inline consumption of range objects\.
* templating \- \#jinja2\: overrides in templates with invalid override names or types are now templating errors\.
-
+
+#### amazon\.aws
+
+* amazon\.aws collection \- Support for ansible\-core \< 2\.17 has been dropped \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2601](https\://github\.com/ansible\-collections/amazon\.aws/pull/2601)\)\.
+* amazon\.aws collection \- Support for the EC2\_ACCESS\_KEY environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the access\_key parameter or AWS\_ACCESS\_KEY\_ID environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- Support for the EC2\_REGION environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the region parameter or AWS\_REGION environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- Support for the EC2\_SECRET\_KEY environment variable was deprecated in release 6\.0\.0 and has now been removed\. Please use the secret\_key parameter or AWS\_SECRET\_ACCESS\_KEY environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- Support for the EC2\_SECURITY\_TOKEN and AWS\_SECURITY\_TOKEN environment variables were deprecated in release 6\.0\.0 and have now been removed\. Please use the session\_token parameter or AWS\_SESSION\_TOKEN environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- Support for the EC2\_URL and S3\_URL environment variables were deprecated in release 6\.0\.0 and have now been removed\. Please use the endpoint\_url parameter or AWS\_URL environment variable instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The access\_token\, aws\_security\_token and security\_token aliases for the session\_token parameter were deprecated in release 6\.0\.0 and have now been removed\. Please use the session\_token name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The boto\_profile alias for the profile parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the profile name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The ec2\_access\_key alias for the access\_key parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the access\_key name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The ec2\_region alias for the region parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the region name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The ec2\_secret\_key alias for the secret\_key parameter was deprecated in release 6\.0\.0 and has now been removed\. Please use the secret\_key name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* amazon\.aws collection \- The endpoint\, ec2\_url and s3\_url aliases for the endpoint\_url parameter were deprecated in release 6\.0\.0 and have now been removed\. Please use the region name instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* docs\_fragments \- The previously deprecated amazon\.aws\.aws\_credentials docs fragment has been removed please use amazon\.aws\.common\.plugins instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* docs\_fragments \- The previously deprecated amazon\.aws\.aws\_region docs fragment has been removed please use amazon\.aws\.region\.plugins instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* docs\_fragments \- The previously deprecated amazon\.aws\.aws docs fragment has been removed please use amazon\.aws\.common\.modules instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* docs\_fragments \- The previously deprecated amazon\.aws\.ec2 docs fragment has been removed please use amazon\.aws\.region\.modules instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2527](https\://github\.com/ansible\-collections/amazon\.aws/pull/2527)\)\.
+* ec2\_vpc\_peering\_info \- the result key has been removed from the return value\. vpc\_peering\_connections should be used instead \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2618](https\://github\.com/ansible\-collections/amazon\.aws/pull/2618)\)\.
+* module\_utils\.botocore \- drop deprecated boto3 parameter for get\_aws\_region\(\) and get\_aws\_connection\_info\(\)\, this parameter has had no effect since release 4\.0\.0 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2443](https\://github\.com/ansible\-collections/amazon\.aws/pull/2443)\)\.
+* module\_utils\.ec2 \- drop deprecated boto3 parameter for get\_ec2\_security\_group\_ids\_from\_names\(\) and get\_aws\_connection\_info\(\)\, this parameter has had no effect since release 4\.0\.0 \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2603](https\://github\.com/ansible\-collections/amazon\.aws/pull/2603)\)\.
+* rds\_param\_group \- the redirect has been removed and playbooks should be updated to use rds\_instance\_param\_group \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2618](https\://github\.com/ansible\-collections/amazon\.aws/pull/2618)\)\.
+
+
#### ansible\.posix
* firewalld \- Changed the type of forward and masquerade options from str to bool \([https\://github\.com/ansible\-collections/ansible\.posix/issues/582](https\://github\.com/ansible\-collections/ansible\.posix/issues/582)\)\.
* firewalld \- Changed the type of icmp\_block\_inversion option from str to bool \([https\://github\.com/ansible\-collections/ansible\.posix/issues/586](https\://github\.com/ansible\-collections/ansible\.posix/issues/586)\)\.
-
+
+#### community\.aws
+
+* Support for ansible\-core\<2\.17 has been dropped \([https\://github\.com/ansible\-collections/community\.aws/pull/2303](https\://github\.com/ansible\-collections/community\.aws/pull/2303)\)\.
+* The community\.aws collection has dropped support for botocore\<1\.31\.0 and boto3\<1\.28\.0\. Most modules will continue to work with older versions of the AWS SDK\. However\, compatibility with older versions of the SDK is not guaranteed and will not be tested\. When using older versions of the SDK a warning will be emitted by Ansible \([https\://github\.com/ansible\-collections/community\.aws/pull/2195](https\://github\.com/ansible\-collections/community\.aws/pull/2195)\)\.
+* connection/aws\_ssm \- The connection plugin has been migrated from the community\.aws collection\. Playbooks or Inventory using the Fully Qualified Collection Name for this connection plugin should be updated to use amazon\.aws\.aws\_ssm\.
+
+
+#### community\.crypto
+
+* All doc\_fragments are now private to the collection and must not be used from other collections or unrelated plugins/modules\. Breaking changes in these can happen at any time\, even in bugfix releases \([https\://github\.com/ansible\-collections/community\.crypto/pull/898](https\://github\.com/ansible\-collections/community\.crypto/pull/898)\)\.
+* All module\_utils and plugin\_utils are now private to the collection and must not be used from other collections or unrelated plugins/modules\. Breaking changes in these can happen at any time\, even in bugfix releases \([https\://github\.com/ansible\-collections/community\.crypto/pull/887](https\://github\.com/ansible\-collections/community\.crypto/pull/887)\)\.
+* Ignore value of select\_crypto\_backend for all modules except acme\_\* and \.\.\.\, and always assume the value auto\. This ensures that the cryptography version is always checked \([https\://github\.com/ansible\-collections/community\.crypto/pull/883](https\://github\.com/ansible\-collections/community\.crypto/pull/883)\)\.
+* The validation for relative timestamps is now more strict\. A string starting with \+ or \- must be valid\, otherwise validation will fail\. In the past such strings were often silently ignored\, and in many cases the code which triggered the validation was not able to handle no result \([https\://github\.com/ansible\-collections/community\.crypto/pull/885](https\://github\.com/ansible\-collections/community\.crypto/pull/885)\)\.
+* acme\.certificates module utils \- the retrieve\_acme\_v1\_certificate\(\) helper function has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* get\_certificate \- the default for asn1\_base64 changed from false to true \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* x509\_crl \- the mode parameter no longer denotes the update mode\, but the CRL file mode\. Use crl\_mode instead for the update mode \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+
+
+#### community\.hashi\_vault
+
+* ansible\-core \- support for all end\-of\-life versions of ansible\-core has been dropped\. The collection is tested with ansible\-core\>\=2\.17 \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470)\)\.
+* python \- support for older versions of Python has been dropped\. The collection is tested with all supported controller\-side versions and a few lower target\-side versions depending on the tests \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/470)\)\.
+
+
+#### community\.okd
+
+* Remove openshift inventory plugin deprecated in 3\.0\.0 \([https\://github\.com/openshift/community\.okd/pull/252](https\://github\.com/openshift/community\.okd/pull/252)\)\.
+
+
#### community\.postgresql
* postgresql\_info \- the db alias is deprecated and will be removed in the next major release\, use the login\_db argument instead\.
* postgresql\_pg\_hba \- regarding \#776 \'keep\_comments\_at\_rules\' has been deprecated and won\'t do anything\, the default is to keep the comments at the rules they are specified with\. keep\_comments\_at\_rules will be removed in 5\.0\.0 \([https\://github\.com/ansible\-collections/community\.postgresql/pull/778](https\://github\.com/ansible\-collections/community\.postgresql/pull/778)\)
* postgresql\_user \- the db alias is deprecated and will be removed in the next major release\, use the login\_db argument instead\.
+
+#### community\.zabbix
+
+* All Roles \- Remove support for Ubuntu 20\.04
+* zabbix 6\.4 in roles is no longer supported
+
#### dellemc\.enterprise\_sonic
@@ -7386,20 +2813,70 @@
* sonic\_route\_maps \- Change the \'set ip\_next\_hop\' option from a single\-line option to a dictionary \([https\://github\.com/ansible\-collection/dellemc\.enterprise\_sonic/pull/421](https\://github\.com/ansible\-collection/dellemc\.enterprise\_sonic/pull/421)\)\.
* sonic\_vlan\_mapping \- New vlan\_mapping resource module\. The users of the vlan\_mapping resource module with playbooks written for the SONiC 4\.1 will need to revise their playbooks based on the new argspec to use those playbooks for SONiC 4\.2 and later versions\. \([https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/296](https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/296)\)\.
-
+
+#### hetzner\.hcloud
+
+* Drop support for ansible\-core 2\.15\.
+* Drop support for ansible\-core 2\.16\.
+* Drop support for python 3\.8\.
+* inventory \- The default value for the hostvars\_prefix option is now set to hcloud\_\. Make sure to update all references to host variables provided by the inventory\. You may revert this change by setting the hostvars\_prefix option to \"\"\.
+* server \- The deprecated force\_upgrade argument is removed from the server module\. Please use the force argument instead\.
+* volume \- Volumes are no longer detached when the server argument is not provided\. Please use the volume\_attachment module to manage volume attachments\.
+
+
+#### kubernetes\.core
+
+* Remove deprecated k8s invetory plugin \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/867](https\://github\.com/ansible\-collections/kubernetes\.core/pull/867)\)\.
+* Remove support for ansible\-core\<2\.16 \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/867](https\://github\.com/ansible\-collections/kubernetes\.core/pull/867)\)\.
+
+
#### theforeman\.foreman
* Drop support for Ansible 2\.9\.
* Drop support for Python 2\.7 and 3\.5\.
-
+
+#### vmware\.vmware
+
+* drop support for ansible 2\.15 since it is EOL [https\://github\.com/ansible\-collections/vmware\.vmware/issues/103](https\://github\.com/ansible\-collections/vmware\.vmware/issues/103)
+* updated minimum pyVmomi version to 8\.0\.3\.0\.1 [https\://github\.com/ansible\-collections/vmware\.vmware/issues/56](https\://github\.com/ansible\-collections/vmware\.vmware/issues/56)
+
+
+#### vyos\.vyos
+
+* Removed vyos\_logging\. Use vyos\_logging\_global instead\.
+* lldp\_global \- if \"address\" is available\, merge will cause it to be added\, in contrast to the previous behavior where it was replaced\. When used in replace mode\, it will remove any existing addresses and replace them with the new one\.
+* vyos\_bgp\_address\_family \- Support for 1\.3\+ VyOS only
+* vyos\_bgp\_global \- Support for 1\.3\+ VyOS only
+* vyos\_firewall\_rules \- removed p2p options as they have been removed prior to 1\.3 of VyOS
+* vyos\_firewall\_rules \- tcp\.flags is now a list with an inversion flag to support 1\.4\+ firewall rules\, but still supports 1\.3\-
+* vyos\_lldp\_global \- civic\_address is no longer a valid key \(removed prior to 1\.3\)
+* vyos\_logging\_global \- For 1\.4\, protocol is an attribute of the syslog host\, not the facility
+* vyos\_snmp\_server \- no longer works with versions prior to 1\.3
+* vyos\_snmp\_server \- parameter engine\_id is no longer a user or trap\_target parameter and is now a snmp\_v3 parameter
+* vyos\_snmp\_server \- parameters encrypted\-key and plaintext\-key are now encrypted\-password and plaintext\-password
+* vyos\_user \- explicit support for version 1\.3\+ only
+* vyos\_user \- removed level \(and its alias\, role\) they were removed in 1\.3
+
+
### Deprecated Features
-
+* The ibm\.qradar collection has been deprecated\.
+ It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13\.
+ See [Collections Removal Process for unmaintained collections](https\://docs\.ansible\.com/ansible/devel/community/collection\_contributors/collection\_package\_removal\.html\#unmaintained\-collections) for more details \([https\://forum\.ansible\.com/t/44259](https\://forum\.ansible\.com/t/44259)\)\.
+
+
#### Ansible\-core
* CLI \- The \-\-inventory\-file option alias is deprecated\. Use the \-i or \-\-inventory option instead\.
+* Jinja test plugins \- Returning a non\-boolean result from a Jinja test plugin is deprecated\.
+* Passing a warnings\` or \`\`deprecations key to exit\_json or fail\_json is deprecated\. Use AnsibleModule\.warn or AnsibleModule\.deprecate instead\.
* Strategy Plugins \- Use of strategy plugins not provided in ansible\.builtin are deprecated and do not carry any backwards compatibility guarantees going forward\. A future release will remove the ability to use external strategy plugins\. No alternative for third party strategy plugins is currently planned\.
+* The ShellModule\.checksum method is now deprecated and will be removed in ansible\-core 2\.23\. Use ActionBase\.\_execute\_remote\_stat\(\) instead\.
+* The ansible\.module\_utils\.common\.collections\.count\(\) function is deprecated and will be removed in ansible\-core 2\.23\. Use collections\.Counter\(\) from the Python standard library instead\.
+* YAML parsing \- Usage of the YAML 1\.1 \!\!omap and \!\!pairs tags is deprecated\. Use standard mappings instead\.
+* YAML parsing \- Usage of the undocumented \!vault\-encrypted YAML tag is deprecated\. Use \!vault instead\.
+* ansible\.compat\.importlib\_resources is deprecated and will be removed in ansible\-core 2\.23\. Use importlib\.resources from the Python standard library instead\.
* ansible\.module\_utils\.compat\.datetime \- The datetime compatibility shims are now deprecated\. They are scheduled to be removed in ansible\-core v2\.21\. This includes UTC\, utcfromtimestamp\(\) and utcnow importable from said module \([https\://github\.com/ansible/ansible/pull/81874](https\://github\.com/ansible/ansible/pull/81874)\)\.
* bool filter \- Support for coercing unrecognized input values \(including None\) has been deprecated\. Consult the filter documentation for acceptable values\, or consider use of the truthy and falsy tests\.
* cache plugins \- The ansible\.plugins\.cache\.base Python module is deprecated\. Use ansible\.plugins\.cache instead\.
@@ -7407,22 +2884,36 @@
* callback plugins \- The v1 callback API \(callback methods not prefixed with v2\_\) is deprecated\. Use v2\_ prefixed methods instead\.
* conditionals \- Conditionals using Jinja templating delimiters \(e\.g\.\, \{\{\, \{\%\) should be rewritten as expressions without delimiters\, unless the entire conditional value is a single template that resolves to a trusted string expression\. This is useful for dynamic indirection of conditional expressions\, but is limited to trusted literal string expressions\.
* config \- The ACTION\_WARNINGS config has no effect\. It previously disabled command warnings\, which have since been removed\.
+* config \- The DEFAULT\_ALLOW\_UNSAFE\_LOOKUPS configuration option is deprecated and no longer has any effect\. Ansible templating no longer encounters situations where use of lookup plugins is considered \"unsafe\"\.
* config \- The DEFAULT\_JINJA2\_NATIVE option has no effect\. Jinja2 native mode is now the default and only option\.
* config \- The DEFAULT\_NULL\_REPRESENTATION option has no effect\. Null values are no longer automatically converted to another value during templating of single variable references\.
+* config \- The DEFAULT\_UNDEFINED\_VAR\_BEHAVIOR configuration option is deprecated and no longer has any effect\. Attempting to use an undefined variable where undefined values are unexpected is now always an error\. This behavior was enabled by default in previous versions\, and disabling it yielded inconsistent results\.
+* config \- The STRING\_TYPE\_FILTERS configuration option is deprecated and no longer has any effect\. Since the template engine now always preserves native types\, there is no longer a risk of unintended conversion from strings to native types\.
+* config \- Using the DEFAULT\_JINJA2\_EXTENSIONS configuration option to enable Jinja2 extensions is deprecated\. Previously\, custom Jinja extensions were disabled by default\, as they can destabilize the Ansible templating environment\. Templates should only make use of filter\, test and lookup plugins\.
+* config \- Using the DEFAULT\_MANAGED\_STR configuration option to customize the value of the ansible\_managed variable is deprecated\. The ansible\_managed variable can now be set the same as any other variable\.
* display \- The Display\.get\_deprecation\_message method has been deprecated\. Call Display\.deprecated to display a deprecation message\, or call it with removed\=True to raise an AnsibleError\.
* file loading \- Loading text files with DataLoader containing data that cannot be decoded under the expected encoding is deprecated\. In most cases the encoding must be UTF\-8\, although some plugins allow choosing a different encoding\. Previously\, invalid data was silently wrapped in Unicode surrogate escape sequences\, often resulting in later errors or other data corruption\.
* first\_found lookup \- Splitting of file paths on \,\;\: is deprecated\. Pass a list of paths instead\. The split method on strings can be used to split variables into a list as needed\.
* interpreter discovery \- The auto\_legacy and auto\_legacy\_silent options for INTERPRETER\_PYTHON are deprecated\. Use auto or auto\_silent options instead\, as they have the same effect\.
+* inventory plugins \- Setting invalid Ansible variable names in inventory plugins is deprecated\.
* oneline callback \- The oneline callback and its associated ad\-hoc CLI args \(\-o\, \-\-one\-line\) are deprecated\.
* paramiko \- The paramiko connection plugin has been deprecated with planned removal in 2\.21\.
+* playbook \- The timedout\.frame task result value \(injected when a task timeout occurs\) is deprecated\. Include error in the DISPLAY\_TRACEBACK config value to capture a full Python traceback for timed out actions\.
+* playbook syntax \- Specifying the task args keyword without a value is deprecated\.
+* playbook syntax \- Using key\=value args and the task args keyword on the same task is deprecated\.
+* playbook syntax \- Using a mapping with the action keyword is deprecated\. \([https\://github\.com/ansible/ansible/issues/84101](https\://github\.com/ansible/ansible/issues/84101)\)
* playbook variables \- The play\_hosts variable has been deprecated\, use ansible\_play\_batch instead\.
* plugin error handling \- The AnsibleError constructor arg suppress\_extended\_error is deprecated\. Using suppress\_extended\_error\=True has the same effect as show\_content\=False\.
+* plugins \- Accessing plugins with \_\-prefixed filenames without the \_ prefix is deprecated\.
+* public API \- The ansible\.errors\.AnsibleFilterTypeError exception type has been deprecated\. Use AnsibleTypeError instead\.
+* public API \- The ansible\.errors\.\_AnsibleActionDone exception type has been deprecated\. Action plugins should return a task result dictionary in success cases instead of raising\.
+* public API \- The ansible\.module\_utils\.common\.json\.json\_dump function is deprecated\. Call Python stdlib json\.dumps instead\, with cls set to an Ansible profile encoder type from ansible\.module\_utils\.common\.json\.get\_encoder\.
* template lookup \- The jinja2\_native option is no longer used in the Ansible Core code base\. Jinja2 native mode is now the default and only option\.
* templating \- Support for enabling Jinja2 extensions \(not plugins\) has been deprecated\.
* templating \- The disable\_lookups option has no effect\, since plugins must be updated to apply trust before any templating can be performed\.
* tree callback \- The tree callback and its associated ad\-hoc CLI args \(\-t\, \-\-tree\) are deprecated\.
-
+
#### amazon\.aws
* autoscaling\_group \- the decrement\_desired\_capacity parameter has been deprecated and will be removed in release 14\.0\.0 of this collection\. Management of instances attached an autoscaling group can be performed using the amazon\.aws\.autoscaling\_instance module \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2396](https\://github\.com/ansible\-collections/amazon\.aws/pull/2396)\)\.
@@ -7431,7 +2922,7 @@
* autoscaling\_group \- the functionality provided through the replace\_all\_instances parameter has been deprecated and will be removed in release 14\.0\.0 of this collection\. Rolling replacement of instances in an autoscaling group can be performed using the amazon\.aws\.autoscaling\_instance\_refresh module \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2396](https\://github\.com/ansible\-collections/amazon\.aws/pull/2396)\)\.
* autoscaling\_group \- the functionality provided through the replace\_instances parameter has been deprecated and will be removed in release 14\.0\.0 of this collection\. Management of instances attached an autoscaling group can be performed using the amazon\.aws\.autoscaling\_instance module \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2396](https\://github\.com/ansible\-collections/amazon\.aws/pull/2396)\)\.
-
+
#### ansible\.netcommon
* Added deprecation warnings for the above plugins\, displayed when running respective filter plugins\.
@@ -7439,26 +2930,85 @@
* parse\_cli filter plugin is deprecated and will be removed in a future release after 2027\-02\-01\. Use ansible\.utils\.cli\_parse as a replacement\.
* parse\_xml filter plugin is deprecated and will be removed in a future release after 2027\-02\-01\. Use ansible\.utils\.cli\_parse with the ansible\.utils\.xml\_parser parser as a replacement\.
-
+
#### cisco\.ios
* ios\_vlans \- deprecate mtu\, please use ios\_interfaces to configure mtu to the interface where vlans is applied\.
-
+
+#### cisco\.nxos
+
+* nxos\_hsrp \- deprecate nxos\.nxos\.nxos\_hsrp in favor of nxos\.nxos\.nxos\_hsrp\_interfaces\.
+* nxos\_vrf\_interface \- deprecate nxos\.nxos\.nxos\_vrf\_interface in favor of nxos\.nxos\.nxos\_vrf\_interfaces\.
+
+
+#### community\.aws
+
+* community\.aws collection \- due to the AWS SDKs announcing the end of support for Python less than 3\.8 \([https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/](https\://aws\.amazon\.com/blogs/developer/python\-support\-policy\-updates\-for\-aws\-sdks\-and\-tools/)\) support for Python less than 3\.8 by this collection has been deprecated and will removed in release 10\.0\.0 \([https\://github\.com/ansible\-collections/community\.aws/pull/2195](https\://github\.com/ansible\-collections/community\.aws/pull/2195)\)\.
+
+
#### community\.crypto
* Support for ansible\-core 2\.11\, 2\.12\, 2\.13\, 2\.14\, 2\.15\, and 2\.16 is deprecated\, and will be removed in the next major release \(community\.crypto 3\.0\.0\)\. Some modules might still work with some of these versions afterwards\, but we will no longer keep compatibility code that was needed to support them\. Note that this means that support for all Python versions before 3\.7 will be dropped\, also on the target side \([https\://github\.com/ansible\-collections/community\.crypto/issues/559](https\://github\.com/ansible\-collections/community\.crypto/issues/559)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/839](https\://github\.com/ansible\-collections/community\.crypto/pull/839)\)\.
* Support for cryptography \< 3\.4 is deprecated\, and will be removed in the next major release \(community\.crypto 3\.0\.0\)\. Some modules might still work with older versions of cryptography\, but we will no longer keep compatibility code that was needed to support them \([https\://github\.com/ansible\-collections/community\.crypto/issues/559](https\://github\.com/ansible\-collections/community\.crypto/issues/559)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/839](https\://github\.com/ansible\-collections/community\.crypto/pull/839)\)\.
+* acme\_certificate \- deprecate the agreement option which has no more effect\. It will be removed from community\.crypto 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/891](https\://github\.com/ansible\-collections/community\.crypto/pull/891)\)\.
+* acme\_certificate \- the option modify\_account\'s default value true has been deprecated\. It will change to false in community\.crypto 4\.0\.0\. We recommend to set the option to an explicit value to avoid deprecation warnings\, and to prefer setting it to false already now\. Better use the community\.crypto\.acme\_account module instead \([https\://github\.com/ansible\-collections/community\.crypto/issues/924](https\://github\.com/ansible\-collections/community\.crypto/issues/924)\)\.
+* openssl\_pkcs12 \- deprecate the maciter\_size option which has no more effect\. It will be removed from community\.crypto 4\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/891](https\://github\.com/ansible\-collections/community\.crypto/pull/891)\)\.
* openssl\_pkcs12 \- the PyOpenSSL based backend is deprecated and will be removed from community\.crypto 3\.0\.0\. From that point on you need cryptography 3\.0 or newer to use this module \([https\://github\.com/ansible\-collections/community\.crypto/issues/667](https\://github\.com/ansible\-collections/community\.crypto/issues/667)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/831](https\://github\.com/ansible\-collections/community\.crypto/pull/831)\)\.
-
+
+#### community\.general
+
+* MH module utils \- attribute debug definition in subclasses of MH is now deprecated\, as that name will become a delegation to AnsibleModule in community\.general 12\.0\.0\, and any such attribute will be overridden by that delegation in that version \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\.
+* The proxmox content \(modules and plugins\) is being moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. In community\.general 11\.0\.0\, these modules and plugins will be replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with ansible\-galaxy collection install community\.proxmox\. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages \([https\://github\.com/ansible\-collections/community\.general/pull/10109](https\://github\.com/ansible\-collections/community\.general/pull/10109)\)\.
+* atomic\_container \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
+* atomic\_host \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
+* atomic\_image \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\.
+* bearychat \- module is deprecated and will be removed in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10514](https\://github\.com/ansible\-collections/community\.general/issues/10514)\)\.
+* catapult \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10329](https\://github\.com/ansible\-collections/community\.general/pull/10329)\)\.
+* cpanm \- deprecate mode\=compatibility\, mode\=new should be used instead \([https\://github\.com/ansible\-collections/community\.general/pull/10434](https\://github\.com/ansible\-collections/community\.general/pull/10434)\)\.
+* facter \- module is deprecated and will be removed in community\.general 12\.0\.0\, use community\.general\.facter\_facts instead \([https\://github\.com/ansible\-collections/community\.general/pull/9451](https\://github\.com/ansible\-collections/community\.general/pull/9451)\)\.
+* github\_repo \- deprecate force\_defaults\=true \([https\://github\.com/ansible\-collections/community\.general/pull/10435](https\://github\.com/ansible\-collections/community\.general/pull/10435)\)\.
+* locale\_gen \- ubuntu\_mode\=True\, or mechanism\=ubuntu\_legacy is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\.
+* manifold lookup plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10028](https\://github\.com/ansible\-collections/community\.general/pull/10028)\)\.
+* opkg \- deprecate value \"\" for parameter force \([https\://github\.com/ansible\-collections/community\.general/pull/9172](https\://github\.com/ansible\-collections/community\.general/pull/9172)\)\.
+* pacemaker\_cluster \- the parameter state will become a required parameter in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
+* pipx module\_utils \- function make\_process\_list\(\) is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\.
+* profitbricks \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
+* profitbricks\_datacenter \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
+* profitbricks\_nic \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
+* profitbricks\_volume \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
+* profitbricks\_volume\_attachments \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\.
+* pure module utils \- the module utils is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\.
+* purestorage doc fragments \- the doc fragment is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\.
+* redfish\_utils module utils \- deprecate method RedfishUtils\.\_init\_session\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\.
+* rocketchat \- the default value for is\_pre740\, currently true\, is deprecated and will change to false in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10490](https\://github\.com/ansible\-collections/community\.general/pull/10490)\)\.
+* sensu\_check \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
+* sensu\_client \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
+* sensu\_handler \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
+* sensu\_silence \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
+* sensu\_subscription \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\.
+* slack \- the default value auto of the prepend\_hash option is deprecated and will change to never in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9443](https\://github\.com/ansible\-collections/community\.general/pull/9443)\)\.
+* stackpath\_compute inventory plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10026](https\://github\.com/ansible\-collections/community\.general/pull/10026)\)\.
+* yaml callback plugin \- deprecate plugin in favor of result\_format\=yaml in plugin ansible\.bulitin\.default \([https\://github\.com/ansible\-collections/community\.general/pull/9456](https\://github\.com/ansible\-collections/community\.general/pull/9456)\)\.
+* yaml callback plugin \- the YAML callback plugin was deprecated for removal in community\.general 13\.0\.0\. Since it needs to use ansible\-core internals since ansible\-core 2\.19 that are changing a lot\, we will remove this plugin already from community\.general 12\.0\.0 to ease the maintenance burden \([https\://github\.com/ansible\-collections/community\.general/pull/10213](https\://github\.com/ansible\-collections/community\.general/pull/10213)\)\.
+
+
+#### community\.hashi\_vault
+
+* ansible\-core \- support for several ansible\-core versions will be dropped in v7\.0\.0\. The collection will focus on current supported versions of ansible\-core going forward and more agressively drop end\-of\-life or soon\-to\-be EOL versions \([https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html](https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html)\)\.
+* python \- support for several python versions will be dropped in v7\.0\.0\. The collection will focus on python versions that are supported by the active versions of ansible\-core on the controller side at a minimum\, and some subset of target versions \([https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html](https\://docs\.ansible\.com/ansible/devel/reference\_appendices/release\_and\_maintenance\.html)\)\.
+
+
#### community\.hrobot
* boot \- the various arch suboptions have been deprecated and will be removed from community\.hrobot 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.hrobot/pull/134](https\://github\.com/ansible\-collections/community\.hrobot/pull/134)\)\.
-
+
#### community\.postgresql
+* postgresql modules \- the port alias is deprecated and will be removed in community\.postgresql 5\.0\.0\, use the login\_port argument instead\.
+* postgresql modules \= the login\, unix\_socket and host aliases are deprecated and will be removed in community\.postgresql 5\.0\.0\, use the login\_user\, login\_unix\_socket and login\_host arguments instead\.
* postgresql\_copy \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
* postgresql\_db \- the rename choice of the state option is deprecated and will be removed in version 5\.0\.0\, use the postgresql\_query module instead\.
* postgresql\_ext \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
@@ -7473,6 +3023,7 @@
* postgresql\_script \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
* postgresql\_sequence \- the rename\_to option is deprecated and will be removed in version 5\.0\.0\, use the postgresql\_query module instead\.
* postgresql\_sequence \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
+* postgresql\_set \- the module has been deprecated and will be removed in community\.postgresql 5\.0\.0\. Please use the community\.postgresql\.postgresql\_alter\_system module instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/823](https\://github\.com/ansible\-collections/community\.postgresql/issues/823)\)\.
* postgresql\_set \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
* postgresql\_slot \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
* postgresql\_subscription \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
@@ -7482,9 +3033,10 @@
* postgresql\_tablespace \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
* postgresql\_user\_obj\_stat\_info \- the parameter aliases db and database are deprecated and will be removed in community\.postgresql 5\.0\.0\. Use login\_db instead\.
-
+
#### community\.vmware
+* module\_utils\.vmware \- Deprecate connect\_to\_api \([https\://github\.com/ansible\-collections/community\.vmware/pull/2372](https\://github\.com/ansible\-collections/community\.vmware/pull/2372)\)\.
* module\_utils\.vmware \- host\_version\_at\_least is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2303](https\://github\.com/ansible\-collections/community\.vmware/pull/2303)\)\.
* plugin\_utils\.inventory \- this plugin util is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2304](https\://github\.com/ansible\-collections/community\.vmware/pull/2304)\)\.
* plugins\.httpapi \- this is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2306](https\://github\.com/ansible\-collections/community\.vmware/pull/2306)\)\.
@@ -7500,36 +3052,84 @@
* vmware\_content\_deploy\_ovf\_template \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2332](https\://github\.com/ansible\-collections/community\.vmware/pull/2332)\)\.
* vmware\_content\_deploy\_template \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2332](https\://github\.com/ansible\-collections/community\.vmware/pull/2332)\)\.
* vmware\_content\_library\_manager \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2345](https\://github\.com/ansible\-collections/community\.vmware/pull/2345)\)\.
+* vmware\_dvs\_portgroup \- mac\_learning is deprecated in favour of network\_policy\.mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/pull/2360](https\://github\.com/ansible\-collections/community\.vmware/pull/2360)\)\.
+* vmware\_guest\_powerstate \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2398](https\://github\.com/ansible\-collections/community\.vmware/pull/2398)\)\.
* vmware\_host \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2337](https\://github\.com/ansible\-collections/community\.vmware/pull/2337)\)\.
* vmware\_host\_inventory \- the inventory plugin is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2283](https\://github\.com/ansible\-collections/community\.vmware/pull/2283)\)\.
* vmware\_maintenancemode \- the module has been deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2293](https\://github\.com/ansible\-collections/community\.vmware/pull/2293)\)\.
* vmware\_rest\_client \- get\_folder\_by\_name is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2311](https\://github\.com/ansible\-collections/community\.vmware/pull/2311)\)\.
* vmware\_vm\_inventory \- the inventory plugin is deprecated and will be removed in community\.vmware 7\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2283](https\://github\.com/ansible\-collections/community\.vmware/pull/2283)\)\.
-
+
+#### community\.windows
+
+* win\_audit\_policy\_system \- Deprecated module and will be redirected to ansible\.windows\.win\_audit\_policy\_system\. Use ansible\.windows\.win\_audit\_policy\_system instead as the redirection will be removed in 4\.0\.0
+* win\_audit\_rule \- Deprecated module and will be redirected to ansible\.windows\.win\_audit\_rule\. Use ansible\.windows\.win\_audit\_rule instead as the redirection will be removed in 4\.0\.0
+* win\_auto\_logon \- Deprecated module and will be redirected to ansible\.windows\.win\_auto\_logon\. Use ansible\.windows\.win\_auto\_logon instead as the redirection will be removed in 4\.0\.0
+* win\_certificate\_info \- Deprecated module and will be redirected to ansible\.windows\.win\_certificate\_info\. Use ansible\.windows\.win\_certificate\_info instead as the redirection will be removed in 4\.0\.0
+* win\_computer\_description \- Deprecated module and will be redirected to ansible\.windows\.win\_computer\_description\. Use ansible\.windows\.win\_computer\_description instead as the redirection will be removed in 4\.0\.0
+* win\_credential \- Deprecated module and will be redirected to ansible\.windows\.win\_credential\. Use ansible\.windows\.win\_credential instead as the redirection will be removed in 4\.0\.0
+* win\_dhcp\_lease \- Deprecated module and will be redirected to ansible\.windows\.win\_dhcp\_lease\. Use ansible\.windows\.win\_dhcp\_lease instead as the redirection will be removed in 4\.0\.0
+* win\_dns\_record \- Deprecated module and will be redirected to ansible\.windows\.win\_dns\_record\. Use ansible\.windows\.win\_dns\_record instead as the redirection will be removed in 4\.0\.0
+* win\_dns\_zone \- Deprecated module and will be redirected to ansible\.windows\.win\_dns\_zone\. Use ansible\.windows\.win\_dns\_zone instead as the redirection will be removed in 4\.0\.0
+* win\_eventlog \- Deprecated module and will be redirected to ansible\.windows\.win\_eventlog\. Use ansible\.windows\.win\_eventlog instead as the redirection will be removed in 4\.0\.0
+* win\_feature\_info \- Deprecated module and will be redirected to ansible\.windows\.win\_feature\_info\. Use ansible\.windows\.win\_feature\_info instead as the redirection will be removed in 4\.0\.0
+* win\_file\_compression \- Deprecated module and will be redirected to ansible\.windows\.win\_file\_compression\. Use ansible\.windows\.win\_file\_compression instead as the redirection will be removed in 4\.0\.0
+* win\_firewall \- Deprecated module and will be redirected to ansible\.windows\.win\_firewall\. Use ansible\.windows\.win\_firewall instead as the redirection will be removed in 4\.0\.0
+* win\_hosts \- Deprecated module and will be redirected to ansible\.windows\.win\_hosts\. Use ansible\.windows\.win\_hosts instead as the redirection will be removed in 4\.0\.0
+* win\_hotfix \- Deprecated module and will be redirected to ansible\.windows\.win\_hotfix\. Use ansible\.windows\.win\_hotfix instead as the redirection will be removed in 4\.0\.0
+* win\_http\_proxy \- Deprecated module and will be redirected to ansible\.windows\.win\_http\_proxy\. Use ansible\.windows\.win\_http\_proxy instead as the redirection will be removed in 4\.0\.0
+* win\_iis\_virtualdirectory \- Deprecated module\, use microsoft\.iis\.virtual\_directory instead as the module will be removed in 4\.0\.0
+* win\_iis\_webapplication \- Deprecated module\, use microsoft\.iis\.web\_application instead instead as the module will be removed in 4\.0\.0
+* win\_iis\_webapppool \- Deprecated module\, use microsoft\.iis\.web\_app\_pool instead instead as the module will be removed in 4\.0\.0
+* win\_iis\_webbinding \- Deprecated module\, use microsoft\.iis\.website instead instead as the module will be removed in 4\.0\.0
+* win\_iis\_website \- Deprecated module\, use microsoft\.iis\.website instead instead as the module will be removed in 4\.0\.0
+* win\_inet\_proxy \- Deprecated module and will be redirected to ansible\.windows\.win\_inet\_proxy\. Use ansible\.windows\.win\_inet\_proxy instead as the redirection will be removed in 4\.0\.0
+* win\_listen\_ports\_facts \- Deprecated module and will be redirected to ansible\.windows\.win\_listen\_ports\_facts\. Use ansible\.windows\.win\_listen\_ports\_facts instead as the redirection will be removed in 4\.0\.0
+* win\_mapped\_drive \- Deprecated module and will be redirected to ansible\.windows\.win\_mapped\_drive\. Use ansible\.windows\.win\_mapped\_drive instead as the redirection will be removed in 4\.0\.0
+* win\_product\_facts \- Deprecated module and will be redirected to ansible\.windows\.win\_product\_facts\. Use ansible\.windows\.win\_product\_facts instead as the redirection will be removed in 4\.0\.0
+* win\_region \- Deprecated module and will be redirected to ansible\.windows\.win\_region\. Use ansible\.windows\.win\_region instead as the redirection will be removed in 4\.0\.0
+* win\_route \- Deprecated module and will be redirected to ansible\.windows\.win\_route\. Use ansible\.windows\.win\_route instead as the redirection will be removed in 4\.0\.0
+* win\_timezone \- Deprecated module and will be redirected to ansible\.windows\.win\_timezone\. Use ansible\.windows\.win\_timezone instead as the redirection will be removed in 4\.0\.0
+* win\_user\_profile \- Deprecated module and will be redirected to ansible\.windows\.win\_user\_profile\. Use ansible\.windows\.win\_user\_profile instead as the redirection will be removed in 4\.0\.0
+
+
+#### community\.zabbix
+
+* Web Role \- Depricated zabbix\_web\_SSLSessionCacheTimeout for zabbix\_web\_ssl\_session\_cache\_timeout
+* Web Role \- Depricated zabbix\_web\_SSLSessionCache for zabbix\_web\_ssl\_session\_cache
+
+
#### vmware\.vmware\_rest
* content\_library\_item\_info \- the module has been deprecated and will be removed in vmware\.vmware\_rest 5\.0\.0
+* lookup plugins \- Deprecate all lookup plugins in favor of vmware\.vmware\.moid\_from\_path \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/608](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/608)\)
+
+
+#### vyos\.vyos
-
+* vyos\_bgp\_global \- no\_ipv4\_unicast \- deprecated for use with VyOS 1\.4\+\, use ipv4\_unicast instead
+* vyos\_firewall\_interfaces \- deprecated for use with VyOS 1\.4\+\, firewalls are no longer connected directly to interfaces\. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow\, interface\, or zone\.
+* vyos\_lldp\_global \- address is deprecated\, use addresses instead\. To be removed in 7\.0\.0\.
+* vyos\_logging\_global \- protocol is deprecated for 1\.4 and later\, use facility instead\. To be removed in next major version where supprot for 1\.3 is removed
+
+
### Removed Features \(previously deprecated\)
+* The cisco\.ise collection was considered unmaintained and has been removed from Ansible 12 \([https\://forum\.ansible\.com/t/43367](https\://forum\.ansible\.com/t/43367)\)\.
+ Users can still install this collection with ansible\-galaxy collection install cisco\.ise\.
* The collection ibm\.spectrum\_virtualize has been completely removed from Ansible\.
It has been renamed to ibm\.storage\_virtualize\.
The collection will be completely removed from Ansible eventually\.
Please update your FQCNs from ibm\.spectrum\_virtualize to ibm\.storage\_virtualize\.
* The deprecated cisco\.asa collection has been removed \([https\://forum\.ansible\.com/t/38960](https\://forum\.ansible\.com/t/38960)\)\.
* The deprecated community\.network collection has been removed \([https\://forum\.ansible\.com/t/8030](https\://forum\.ansible\.com/t/8030)\)\.
-* The google\.cloud collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements\.
- The collection has [unresolved sanity test failures](https\://github\.com/ansible\-collections/google\.cloud/issues/613)\.
- See [Collections Removal Process for collections not satisfying the collection requirements](https\://docs\.ansible\.com/ansible/devel/community/collection\_contributors/collection\_package\_removal\.html\#collections\-not\-satisfying\-the\-collection\-requirements) for more details \([https\://forum\.ansible\.com/t/8609](https\://forum\.ansible\.com/t/8609)\)\.
- Users can still install this collection with ansible\-galaxy collection install google\.cloud\.
* The sensu\.sensu\_go collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements\.
The collection has [unresolved sanity test failures](https\://github\.com/sensu/sensu\-go\-ansible/issues/362)\.
See [Collections Removal Process for collections not satisfying the collection requirements](https\://docs\.ansible\.com/ansible/devel/community/collection\_contributors/collection\_package\_removal\.html\#collections\-not\-satisfying\-the\-collection\-requirements) for more details \([https\://forum\.ansible\.com/t/8380](https\://forum\.ansible\.com/t/8380)\)\.
Users can still install this collection with ansible\-galaxy collection install sensu\.sensu\_go\.
-
+
#### Ansible\-core
* Remove deprecated plural form of collection path \([https\://github\.com/ansible/ansible/pull/84156](https\://github\.com/ansible/ansible/pull/84156)\)\.
@@ -7541,12 +3141,21 @@
* selector \- remove deprecated compat\.selector related files \([https\://github\.com/ansible/ansible/pull/84155](https\://github\.com/ansible/ansible/pull/84155)\)\.
* windows \- removed common module functions ConvertFrom\-AnsibleJson\, Format\-AnsibleException from Windows modules as they are not used and add unneeded complexity to the code\.
-
+
#### ansible\.posix
* skippy \- Remove skippy pluglin as it is no longer supported\([https\://github\.com/ansible\-collections/ansible\.posix/issues/350](https\://github\.com/ansible\-collections/ansible\.posix/issues/350)\)\.
-
+
+#### ansible\.windows
+
+* win\_domain \- Removed deprecated module\, use microsoft\.ad\.domain instead
+* win\_domain\_controller \- Removed deprecated module\, use microsoft\.ad\.domain\_controller instead
+* win\_domain\_membership \- Removed deprecated module\, use microsoft\.ad\.membership instead
+* win\_feature \- Removed deprecated return value restart\_needed in feature\_result\, use reboot\_required instead
+* win\_updates \- Removed deprecated return value filtered\_reason\, use filtered\_reasons instead
+
+
#### cisco\.nxos
* This release removes all deprecated plugins that have reached their end\-of\-life\, including\:
@@ -7556,17 +3165,99 @@
* nxos\_snmp\_location
* nxos\_snmp\_user
-
+
+#### community\.crypto
+
+* All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust\'s Public Certificates Business to Sectigo\; see [the announcement with key dates](https\://www\.entrust\.com/tls\-certificate\-information\-center) and [the migration brief for customers](https\://www\.sectigo\.com/uploads/resources/EOL\_Migration\-Brief\-End\-Customer\.pdf) for details\. Since this process will be completed in 2025\, we decided to remove all Entrust content from community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.crypto/issues/895](https\://github\.com/ansible\-collections/community\.crypto/issues/895)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/901](https\://github\.com/ansible\-collections/community\.crypto/pull/901)\)\.
+* The collection no longer supports cryptography \< 3\.3 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/882](https\://github\.com/ansible\-collections/community\.crypto/pull/882)\)\.
+* acme\.acme module utils \- the get\_default\_argspec\(\) function has been removed\. Use create\_default\_argspec\(\) instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* acme\.backends module utils \- the methods get\_ordered\_csr\_identifiers\(\) and get\_cert\_information\(\) of CryptoBackend now must be implemented \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* acme\.documentation docs fragment \- the documentation docs fragment has been removed\. Use both the basic and account docs fragments in acme instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* acme\_\* modules \- support for ACME v1 has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* community\.crypto no longer supports Ansible 2\.9\, ansible\-base 2\.10\, and ansible\-core versions 2\.11\, 2\.12\, 2\.13\, 2\.14\, 2\.15\, and 2\.16\. While content from this collection might still work with some older versions of ansible\-core\, it will not work with any Python version before 3\.7 \([https\://github\.com/ansible\-collections/community\.crypto/pull/870](https\://github\.com/ansible\-collections/community\.crypto/pull/870)\)\.
+* crypto\.basic module utils \- remove CRYPTOGRAPHY\_HAS\_\* flags\. All tested features are supported since cryptography 3\.0 \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
+* crypto\.cryptography\_support module utils \- remove cryptography\_serial\_number\_of\_cert\(\) helper function \([https\://github\.com/ansible\-collections/community\.crypto/pull/878](https\://github\.com/ansible\-collections/community\.crypto/pull/878)\)\.
+* crypto\.module\_backends\.common module utils \- this module utils has been removed\. Use the argspec module utils instead \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* crypto\.support module utils \- remove pyopenssl backend \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
+* ecs\_certificate \- the module has been removed\. Please use community\.crypto 2\.x\.y if you need this module \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
+* ecs\_domain \- the module has been removed\. Please use community\.crypto 2\.x\.y if you need this module \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
+* execution environment dependencies \- remove PyOpenSSL dependency \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
+* openssl\_csr\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* openssl\_pkcs12 \- support for the pyopenssl backend has been removed \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* openssl\_privatekey\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+* time module utils \- remove pyopenssl backend \([https\://github\.com/ansible\-collections/community\.crypto/pull/874](https\://github\.com/ansible\-collections/community\.crypto/pull/874)\)\.
+* x509\_certificate \- the entrust provider has been removed\. Please use community\.crypto 2\.x\.y if you need this provider \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
+* x509\_certificate\_pipe \- the entrust provider has been removed\. Please use community\.crypto 2\.x\.y if you need this provider \([https\://github\.com/ansible\-collections/community\.crypto/pull/900](https\://github\.com/ansible\-collections/community\.crypto/pull/900)\)\.
+* x509\_certificate\_pipe \- the module now ignores check mode and will always behave as if check mode is not active \([https\://github\.com/ansible\-collections/community\.crypto/pull/873](https\://github\.com/ansible\-collections/community\.crypto/pull/873)\)\.
+
+
+#### community\.general
+
+* Dropped support for ansible\-core 2\.15\. The collection now requires ansible\-core 2\.16 or newer\. This means that on the controller\, Python 3\.10\+ is required\. On the target side\, Python 2\.7 and Python 3\.6\+ are supported \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\, [https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\.
+* The Proxmox content \(modules and plugins\) has been moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. Since community\.general 11\.0\.0\, these modules and plugins have been replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with ansible\-galaxy collection install community\.proxmox\, or by installing a new enough version of the Ansible community package\. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages \([https\://github\.com/ansible\-collections/community\.general/pull/10110](https\://github\.com/ansible\-collections/community\.general/pull/10110)\)\.
+* apt\_rpm \- the present and installed states are no longer equivalent to latest\, but to present\_not\_latest \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* clc\_\* modules and doc fragment \- the modules were removed since CenturyLink Cloud services went EOL in September 2023 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* django\_manage \- the ack\_venv\_creation\_deprecation option has been removed\. It had no effect anymore anyway \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* git\_config \- it is no longer allowed to use state\=present with no value to read the config value\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* git\_config \- the list\_all option has been removed\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* hipchat \- the module was removed since the hipchat service has been discontinued and the self\-hosted variant has been End of Life since 2020 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* manifold lookup plugin \- the plugin was removed since the company was acquired in 2021 and service was ceased afterwards \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* mh\.mixins\.deps module utils \- this module utils has been removed\. Use the deps module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* mh\.mixins\.vars module utils \- this module utils has been removed\. Use VarDict from the vardict module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* mh\.module\_helper module utils \- AnsibleModule and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* mh\.module\_helper module utils \- VarDict is now imported from the vardict module utils and no longer from the removed mh\.mixins\.vars module utils \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* mh\.module\_helper module utils \- the attributes use\_old\_vardict and mute\_vardict\_deprecation from ModuleHelper have been removed\. We suggest to remove them from your modules if you no longer support community\.general \< 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* module\_helper module utils \- StateMixin\, DependencyCtxMgr\, VarMeta\, VarDict\, and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* pipx \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\.
+* pipx\_info \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\.
+* profitbrick\* modules \- the modules were removed since the supporting library is unsupported since 2021 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* redfish\_utils module utils \- the \_init\_session method has been removed \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+* stackpath\_compute inventory plugin \- the plugin was removed since the company and the service were sunset in June 2024 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\.
+
+
+#### community\.libvirt
+
+* virt\_volume \- PoolConnection class has been removed
+* virt\_volume \- the \'deleted\' state has been removed as its definition was not entirely accurate\, and the \'wipe\' boolean option is added to \'state/absent\' and \'command/delete\'\.
+* virt\_volume \- undocumented but unused FLAGS have been removed\.
+* virt\_volume \- undocumented but unused/non\-functional functions \(get\_status\, get\_status2\, get\_state\, get\_uuid\, build\) have been removed\.
+
+
+#### community\.postgresql
+
+* postgresql\_info \- the db alias has been removed in community\.postgresql 4\.0\.0\. Please use the login\_db option instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/801](https\://github\.com/ansible\-collections/community\.postgresql/issues/801)\)\.
+* postgresql\_lang \- the module has been removed in community\.postgresql 4\.0\.0\. Please use the community\.postgresql\.postgresql\_ext module instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/561](https\://github\.com/ansible\-collections/community\.postgresql/issues/561)\)\.
+* postgresql\_privs \- the password argument has been removed in community\.postgresql 4\.0\.0\. Use the login\_password argument instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/408](https\://github\.com/ansible\-collections/community\.postgresql/issues/408)\)\.
+* postgresql\_user \- the priv argument has been removed in community\.postgresql 4\.0\.0\. Please use the community\.postgresql\.postgresql\_privs module to grant/revoke privileges instead \([https\://github\.com/ansible\-collections/community\.postgresql/issues/493](https\://github\.com/ansible\-collections/community\.postgresql/issues/493)\)\.
+
+
+#### community\.windows
+
+* win\_domain\_computer \- Removed deprecated module\, use microsoft\.ad\.computer instead
+* win\_domain\_group \- Removed deprecated module\, use microsoft\.ad\.group instead
+* win\_domain\_group\_membership \- Removed deprecated module\, use microsoft\.ad\.membership instead
+* win\_domain\_object\_info \- Removed deprecated module\, use microsoft\.ad\.object\_info instead
+* win\_domain\_ou \- Removed deprecated module\, use microsoft\.ad\.ou instead
+* win\_domain\_user \- Removed deprecated module\, use microsoft\.ad\.user instead
+* win\_lineinfile \- Removed deprecated return value backup\, use backup\_file instead
+* win\_xml \- Removed deprecated\, and undocumented\, return value backup\, use backup\_file instead
+
+
#### junipernetworks\.junos
* This includes the following modules\:
* This release removes all deprecated plugins that have reached their end\-of\-life\.
* junos\_scp
-
+
+#### vmware\.vmware
+
+* vm\_list\_group\_by\_clusters \- Tombstone module in favor of vmware\.vmware\.vm\_list\_group\_by\_clusters\_info
+
+
### Security Fixes
-
+
#### Ansible\-core
* include\_vars action \- Ensure that result masking is correctly requested when vault\-encrypted files are read\. \(CVE\-2024\-8775\)
@@ -7575,19 +3266,27 @@
* templating \- Changes to conditional expression handling removed numerous instances of insecure multi\-pass templating \(which could result in execution of untrusted template expressions\)\.
* user action won\'t allow ssh\-keygen\, chown and chmod to run on existing ssh public key file\, avoiding traversal on existing symlinks \(CVE\-2024\-9902\)\.
-
+
#### cloudscale\_ch\.cloud
* Validate API tokens before passing them to Ansible\, to ensure that a badly formed one \(i\.e\.\, one with newlines\) is not accidentally logged\.
-
+
+#### community\.general
+
+* keycloak\_authentication \- API calls did not properly set the priority during update resulting in incorrectly sorted authentication flows\. This apparently only affects Keycloak 25 or newer \([https\://github\.com/ansible\-collections/community\.general/pull/9263](https\://github\.com/ansible\-collections/community\.general/pull/9263)\)\.
+* keycloak\_client \- Sanitize saml\.encryption\.private\.key so it does not show in the logs \([https\://github\.com/ansible\-collections/community\.general/pull/9621](https\://github\.com/ansible\-collections/community\.general/pull/9621)\)\.
+
+
### Bugfixes
-
+
#### Ansible\-core
* Ansible will now also warn when reserved keywords are set via a module \(set\_fact\, include\_vars\, etc\)\.
+* Ansible will now ensure predictable permissions on remote artifacts\, until now it only ensured executable and relied on system masks for the rest\.
* Ansible\.Basic \- Fix required\_if check when the option value to check is unset or set to null\.
+* Core Jinja test plugins \- Builtin test plugins now always return bool to avoid spurious deprecation warnings for some malformed inputs\.
* Correctly return False when using the filter and test Jinja tests on plugin names which are not filters or tests\, respectively\. \(resolves issue [https\://github\.com/ansible/ansible/issues/82084](https\://github\.com/ansible/ansible/issues/82084)\)
* Do not run implicit flush\_handlers meta tasks when the whole play is excluded from the run due to tags specified\.
* Errors now preserve stacked error messages even when YAML is involved\.
@@ -7595,11 +3294,14 @@
* Fix disabling SSL verification when installing collections and roles from git repositories\. If \-\-ignore\-certs isn\'t provided\, the value for the GALAXY\_IGNORE\_CERTS configuration option will be used \([https\://github\.com/ansible/ansible/issues/83326](https\://github\.com/ansible/ansible/issues/83326)\)\.
* Fix ipv6 pattern bug in lib/ansible/parsing/utils/addresses\.py \([https\://github\.com/ansible/ansible/issues/84237](https\://github\.com/ansible/ansible/issues/84237)\)
* Fix returning \'unreachable\' for the overall task result\. This prevents false positives when a looped task has unignored unreachable items \([https\://github\.com/ansible/ansible/issues/84019](https\://github\.com/ansible/ansible/issues/84019)\)\.
+* Fix templating tags on plays and roles\. \([https\://github\.com/ansible/ansible/issues/69903](https\://github\.com/ansible/ansible/issues/69903)\)
* Implicit meta\: flush\_handlers tasks now have a parent block to prevent potential tracebacks when calling methods like get\_play\(\) on them internally\.
* Improve performance on large inventories by reducing the number of implicit meta tasks\.
* Jinja plugins \- Errors raised will always be derived from AnsibleTemplatePluginError\.
* Optimize the way tasks from within include\_tasks/include\_role are inserted into the play\.
+* Remove use of required parameter in get\_bin\_path which has been deprecated\.
* Time out waiting on become is an unreachable error \([https\://github\.com/ansible/ansible/issues/84468](https\://github\.com/ansible/ansible/issues/84468)\)
+* Update automatic role argument spec validation to not use deprecated syntax \([https\://github\.com/ansible/ansible/issues/85399](https\://github\.com/ansible/ansible/issues/85399)\)\.
* Use consistent multiprocessing context for action write locks
* Use the requested error message in the ansible\.module\_utils\.facts\.timeout timeout function instead of hardcoding one\.
* Windows \- add support for running on system where WDAC is in audit mode with Dynamic Code Security enabled\.
@@ -7609,46 +3311,85 @@
* action plugins \- Action plugins that raise unhandled exceptions no longer terminate playbook loops\. Previously\, exceptions raised by an action plugin caused abnormal loop termination and loss of loop iteration results\.
* ansible\-config \- format galaxy server configs while dumping in JSON format \([https\://github\.com/ansible/ansible/issues/84840](https\://github\.com/ansible/ansible/issues/84840)\)\.
* ansible\-doc \- If none of the files in files exists\, path will be undefined and a direct reference will throw an UnboundLocalError \([https\://github\.com/ansible/ansible/pull/84464](https\://github\.com/ansible/ansible/pull/84464)\)\.
+* ansible\-doc \- fix indentation for first line of descriptions of suboptions and sub\-return values \([https\://github\.com/ansible/ansible/pull/84690](https\://github\.com/ansible/ansible/pull/84690)\)\.
+* ansible\-doc \- fix line wrapping for first line of description of options and return values \([https\://github\.com/ansible/ansible/pull/84690](https\://github\.com/ansible/ansible/pull/84690)\)\.
+* ansible\-doc will no longer ignore docs for modules without an extension \([https\://github\.com/ansible/ansible/issues/85279](https\://github\.com/ansible/ansible/issues/85279)\)\.
* ansible\-galaxy \- Small adjustments to URL building for download\_url and relative redirects\.
* ansible\-pull change detection will now work independently of callback or result format settings\.
+* ansible\-test \- Always exclude the tests/output/ directory from a collection\'s code coverage\. \([https\://github\.com/ansible/ansible/issues/84244](https\://github\.com/ansible/ansible/issues/84244)\)
+* ansible\-test \- Disabled the bad\-super\-call pylint rule due to false positives\.
* ansible\-test \- Enable the sys\.unraisablehook work\-around for the pylint sanity test on Python 3\.11\. Previously the work\-around was only enabled for Python 3\.12 and later\. However\, the same issue has been discovered on Python 3\.11\.
* ansible\-test \- Ensure CA certificates are installed on managed FreeBSD instances\.
+* ansible\-test \- Fix Python relative import resolution from \_\_init\_\_\.py files when using change detection\.
+* ansible\-test \- Fix incorrect handling of options with optional args \(e\.g\. \-\-color\)\, when followed by other options which are omitted during arg filtering \(e\.g\. \-\-docker\)\. Previously it was possible for non\-option arguments to be incorrectly omitted in these cases\. \([https\://github\.com/ansible/ansible/issues/85173](https\://github\.com/ansible/ansible/issues/85173)\)
* ansible\-test \- Fix support for PowerShell module\_util imports with the \-Optional flag\.
* ansible\-test \- Fix support for detecting PowerShell modules importing module utils with the newer \#AnsibleRequires format\.
* ansible\-test \- Fix traceback that occurs after an interactive command fails\.
* ansible\-test \- Fix up coverage reporting to properly translate the temporary path of integration test modules to the expected static test module path\.
* ansible\-test \- Fixed traceback when handling certain YAML errors in the yamllint sanity test\.
+* ansible\-test \- Improve type inference for pylint deprecated checks to accommodate some type annotations\.
+* ansible\-test \- Limit package install retries during managed remote instance bootstrapping\.
* ansible\-test \- Managed macOS instances now use the sudo\_chdir option for the sudo become plugin to avoid permission errors when dropping privileges\.
+* ansible\-test \- Updated the pylint sanity test to skip some deprecation validation checks when all arguments are dynamic\.
+* ansible\-test \- Use a consistent coverage config for all collection testing\.
* ansible\-vault will now correctly handle \-\-prompt\, previously it would issue an error about stdin if no 2nd argument was passed
* ansible\_uptime\_second \- added ansible\_uptime\_seconds fact support for AIX \([https\://github\.com/ansible/ansible/pull/84321](https\://github\.com/ansible/ansible/pull/84321)\)\.
* apt\_key module \- prevent tests from running when apt\-key was removed
+* argspec validation \- The str argspec type treats None values as empty string for better consistency with pre\-2\.19 templating conversions\.
+* async\_status module \- The started and finished return values are now True or False instead of 1 or 0\.
* base\.yml \- deprecated libvirt\_lxc\_noseclabel config\.
* build \- Pin wheel in pyproject\.toml to ensure compatibility with supported setuptools versions\.
+* callback plugins \- A more descriptive error is now raised if the stdout callback plugin cannot be loaded\.
+* callback plugins \- Callback plugins that do not extend ansible\.plugins\.callback\.CallbackBase will fail to load with a warning\. If the plugin is used as the stdout callback plugin\, this will also be a fatal error\.
+* callback plugins \- Removed unused methods \- runner\_on\_no\_hosts\, playbook\_on\_setup\, playbook\_on\_import\_for\_host\, playbook\_on\_not\_import\_for\_host\, v2\_playbook\_on\_cleanup\_task\_start\, v2\_playbook\_on\_import\_for\_host\, v2\_playbook\_on\_not\_import\_for\_host\.
+* callback plugins \- The stdout callback plugin is no longer called twice if it is also in the list of additional callback plugins\.
+* conditionals \- When displaying a broken conditional error or deprecation warning\, the origin of the non\-boolean result is included \(if available\)\, and the raw result is omitted\.
+* config \- Preserve or apply Origin tag to values returned by config\.
+* config \- Prevented fatal errors when MODULE\_IGNORE\_EXTS configuration was set\.
+* config \- Templating failures on config defaults now issue a warning\. Previously\, failures silently returned an unrendered and untrusted template to the caller\.
+* config \- ensure\_type correctly propagates trust and other tags on returned values\.
+* config \- ensure\_type now converts mappings to dict when requested\, instead of returning the mapping\.
+* config \- ensure\_type now converts sequences to list when requested\, instead of returning the sequence\.
+* config \- ensure\_type now correctly errors when pathlist or pathspec types encounter non\-string list items\.
+* config \- ensure\_type now reports an error when bytes are provided for any known value\_type\. Previously\, the behavior was undefined\, but often resulted in an unhandled exception or incorrect return type\.
+* config \- ensure\_type with expected type int now properly converts True and False values to int\. Previously\, these values were silently returned unmodified\.
* config \- various fixes to config lookup plugin \([https\://github\.com/ansible/ansible/pull/84398](https\://github\.com/ansible/ansible/pull/84398)\)\.
+* constructed inventory \- Use the default\_value or trailing\_separator in a keyed\_groups entry if the expression result of key is None and not just an empty string\.
+* convert\_bool\.boolean API conversion function \- Unhashable values passed to boolean behave like other non\-boolean convertible values\, returning False or raising TypeError depending on the value of strict\. Previously\, unhashable values always raised ValueError due to an invalid set membership check\.
* copy \- refactor copy module for simplicity\.
* copy action now prevents user from setting internal options\.
* debconf \- set empty password values \([https\://github\.com/ansible/ansible/issues/83214](https\://github\.com/ansible/ansible/issues/83214)\)\.
* debug \- hide loop vars in debug var display \([https\://github\.com/ansible/ansible/issues/65856](https\://github\.com/ansible/ansible/issues/65856)\)\.
* default callback \- Error context is now shown for failing tasks that use the debug action\.
+* display \- Fix hang caused by early post\-fork writers to stdout/stderr \(e\.g\.\, pydevd\) encountering an unreleased fork lock\.
* display \- The Display\.deprecated method once again properly handles the removed\=True argument \([https\://github\.com/ansible/ansible/issues/82358](https\://github\.com/ansible/ansible/issues/82358)\)\.
* distro \- add support for Linux Mint Debian Edition \(LMDE\) \([https\://github\.com/ansible/ansible/issues/84934](https\://github\.com/ansible/ansible/issues/84934)\)\.
* distro \- detect Debian as os\_family for LMDE 6 \([https\://github\.com/ansible/ansible/issues/84934](https\://github\.com/ansible/ansible/issues/84934)\)\.
* dnf5 \- Handle forwarded exceptions from dnf5\-5\.2\.13 where a generic RuntimeError was previously raised
+* dnf5 \- avoid generating excessive transaction entries in the dnf5 history \([https\://github\.com/ansible/ansible/issues/85046](https\://github\.com/ansible/ansible/issues/85046)\)
* dnf5 \- fix is\_installed check for packages that are not installed but listed as provided by an installed package \([https\://github\.com/ansible/ansible/issues/84578](https\://github\.com/ansible/ansible/issues/84578)\)
* dnf5 \- fix installing a package using state\=latest when a binary of the same name as the package is already installed \([https\://github\.com/ansible/ansible/issues/84259](https\://github\.com/ansible/ansible/issues/84259)\)
* dnf5 \- fix traceback when enable\_plugins/disable\_plugins is used on python3\-libdnf5 versions that do not support this functionality
+* dnf5 \- handle all libdnf5 specific exceptions \([https\://github\.com/ansible/ansible/issues/84634](https\://github\.com/ansible/ansible/issues/84634)\)
* dnf5 \- libdnf5 \- use conf\.pkg\_gpgcheck instead of deprecated conf\.gpgcheck which is used only as a fallback
* dnf5 \- matching on a binary can be achieved only by specifying a full path \([https\://github\.com/ansible/ansible/issues/84334](https\://github\.com/ansible/ansible/issues/84334)\)
+* dnf5 \- when bugfix and/or security is specified\, skip packages that do not have any such updates\, even for new versions of libdnf5 where this functionality changed and it is considered failure
+* error handling \- Error details and tracebacks from connection and built\-in action exceptions are preserved\. Previously\, much of the detail was lost or mixed into the error message\.
* facts \- gather pagesize and calculate respective values depending upon architecture \([https\://github\.com/ansible/ansible/issues/84773](https\://github\.com/ansible/ansible/issues/84773)\)\.
* facts \- skip if distribution file path is directory\, instead of raising error \([https\://github\.com/ansible/ansible/issues/84006](https\://github\.com/ansible/ansible/issues/84006)\)\.
+* failed\_when \- When using failed\_when to suppress an error\, the exception key in the result is renamed to failed\_when\_suppressed\_exception\. This prevents the error from being displayed by callbacks after being suppressed\. \([https\://github\.com/ansible/ansible/issues/85505](https\://github\.com/ansible/ansible/issues/85505)\)
* find \- skip ENOENT error code while recursively enumerating files\. find module will now be tolerant to race conditions that remove files or directories from the target it is currently inspecting\. \([https\://github\.com/ansible/ansible/issues/84873](https\://github\.com/ansible/ansible/issues/84873)\)\.
* first\_found lookup \- Corrected return value documentation to reflect None \(not empty string\) for no files found\.
+* from\_yaml\_all filter \- None and empty string inputs now always return an empty list\. Previously\, None was returned in Jinja native mode and empty list in classic mode\.
* gather\_facts action now defaults to ansible\.legacy\.setup if smart was set\, no network OS was found and no other alias for setup was present\.
* gather\_facts action will now issues errors and warnings as appropriate if a network OS is detected but no facts modules are defined for it\.
* gather\_facts action\, will now add setup when \'smart\' appears with other modules in the FACTS\_MODULES setting \(\#84750\)\.
+* get\_url \- add a check to recognize incomplete data transfers\.
* get\_url \- add support for BSD\-style checksum digest file \([https\://github\.com/ansible/ansible/issues/84476](https\://github\.com/ansible/ansible/issues/84476)\)\.
* get\_url \- fix honoring filename from the content\-disposition header even when the type is inline \([https\://github\.com/ansible/ansible/issues/83690](https\://github\.com/ansible/ansible/issues/83690)\)
* host\_group\_vars \- fixed defining the \'key\' variable if the get\_vars method is called with cache\=False \([https\://github\.com/ansible/ansible/issues/84384](https\://github\.com/ansible/ansible/issues/84384)\)
+* import\_tasks \- fix templating parent include arguments\.
+* include\_tasks \- fix templating options when used as a handler \([https\://github\.com/ansible/ansible/pull/85015](https\://github\.com/ansible/ansible/pull/85015)\)\.
* include\_vars \- fix including previously undefined hash variables with hash\_behaviour merge \([https\://github\.com/ansible/ansible/issues/84295](https\://github\.com/ansible/ansible/issues/84295)\)\.
* iptables \- Allows the wait parameter to be used with iptables chain creation \([https\://github\.com/ansible/ansible/issues/84490](https\://github\.com/ansible/ansible/issues/84490)\)
* linear strategy \- fix executing end\_role meta tasks for each host\, instead of handling these as implicit run\_once tasks \([https\://github\.com/ansible/ansible/issues/84660](https\://github\.com/ansible/ansible/issues/84660)\)\.
@@ -7663,11 +3404,16 @@
* local connection plugin \- Fixed long timeout/hang for become plugins that repeat their prompt on failure \(e\.g\.\, sudo\, some su implementations\)\.
* local connection plugin \- Fixed silent ignore of become failures and loss of task output when data arrived concurrently on stdout and stderr during become operation validation\.
* local connection plugin \- Fixed task output header truncation when post\-become data arrived before become operation validation had completed\.
+* local connection plugin \- The command\-line used to create subprocesses is now always str to avoid issues with debuggers and profilers\.
* lookup plugins \- The terms arg to the run method is now always a list\. Previously\, there were cases where a non\-list could be received\.
* module arg templating \- When using a templated raw task arg and a templated args keyword\, args are now merged\. Previously use of templated raw task args silently ignored all values from the templated args keyword\.
* module defaults \- Module defaults are no longer templated unless they are used by a task that does not override them\. Previously\, all module defaults for all modules were templated for every task\.
* module respawn \- limit to supported Python versions
* package\_facts module when using \'auto\' will return the first package manager found that provides an output\, instead of just the first one\, as this can be foreign and not have any packages\.
+* password lookup \- fix acquiring the lock when human\-readable FileExistsError error message is not English\.
+* plugin loader \- A warning is now emitted for any plugin which fails to load due to a missing base class\.
+* plugin loader \- Apply template trust to strings loaded from plugin configuration definitions and doc fragments\.
+* plugins config\, get\_option\_and\_origin now correctly displays the value and origin of the option\.
* psrp \- Improve stderr parsing when running raw commands that emit error records or stderr lines\.
* regex\_search filter \- Corrected return value documentation to reflect None \(not empty string\) for no match\.
* respawn \- use copy of env variables to update existing PYTHONPATH value \([https\://github\.com/ansible/ansible/issues/84954](https\://github\.com/ansible/ansible/issues/84954)\)\.
@@ -7677,13 +3423,27 @@
* ssh \- Improve the logic for parsing CLIXML data in stderr when working with Windows host\. This fixes issues when the raw stderr contains invalid UTF\-8 byte sequences and improves embedded CLIXML sequences\.
* ssh \- Raise exception when sshpass returns error code \([https\://github\.com/ansible/ansible/issues/58133](https\://github\.com/ansible/ansible/issues/58133)\)\.
* ssh \- connection options were incorrectly templated during reset\_connection tasks \([https\://github\.com/ansible/ansible/pull/84238](https\://github\.com/ansible/ansible/pull/84238)\)\.
+* ssh agent \- Fixed several potential startup hangs for badly\-behaved or overloaded ssh agents\.
+* ssh connection plugin \- Allow only one password prompt attempt when utilizing SSH\_ASKPASS \([https\://github\.com/ansible/ansible/issues/85359](https\://github\.com/ansible/ansible/issues/85359)\)
* stability \- Fixed silent process failure on unhandled IOError/OSError under linear strategy\.
* su become plugin \- Ensure generated regex from prompt\_l10n config values is properly escaped\.
* su become plugin \- Ensure that password prompts are correctly detected in the presence of leading output\. Previously\, this case resulted in a timeout or hang\.
* su become plugin \- Ensure that trailing colon is expected on all prompt\_l10n config values\.
* sudo become plugin \- The sudo\_chdir config option allows the current directory to be set to the specified value before executing sudo to avoid permission errors when dropping privileges\.
* sunos \- remove hard coding of virtinfo command in facts gathering code \([https\://github\.com/ansible/ansible/pull/84357](https\://github\.com/ansible/ansible/pull/84357)\)\.
+* task timeout \- Specifying a negative task timeout now results in an error\.
+* template action \- Template files where the entire file\'s output renders as None are no longer emitted as the string \"None\"\, but instead render to an empty file as in previous releases\.
+* template lookup \- Skip finalization on the internal templating operation to allow markers to be returned and handled by\, e\.g\. the default filter\. Previously\, finalization tripped markers\, causing an exception to end processing of the current template pipeline\. \([https\://github\.com/ansible/ansible/issues/85674](https\://github\.com/ansible/ansible/issues/85674)\)
+* templating \- Avoid tripping markers within Jinja generated code\. \([https\://github\.com/ansible/ansible/issues/85674](https\://github\.com/ansible/ansible/issues/85674)\)
+* templating \- Ensure filter plugin result processing occurs under the correct call context\. \([https\://github\.com/ansible/ansible/issues/85585](https\://github\.com/ansible/ansible/issues/85585)\)
+* templating \- Fix slicing of tuples in templating \([https\://github\.com/ansible/ansible/issues/85606](https\://github\.com/ansible/ansible/issues/85606)\)\.
+* templating \- Fixed cases where template expression blocks halted prematurely when a Jinja macro invocation returned an undefined value\.
+* templating \- Jinja macros returned from a template expression can now be called from another template expression\.
+* templating \- Multi\-node template results coerce embedded None nodes to empty string \(instead of rendering literal None to the output\)\.
+* templating \- Undefined marker values sourced from the Jinja getattr\-\>getitem fallback are now accessed correctly\, raising AnsibleUndefinedVariable for user plugins that do not understand markers\. Previously\, these values were erroneously returned to user plugin code that had not opted in to marker acceptance\.
* to\_yaml/to\_nice\_yaml filters \- Eliminated possibility of keyword arg collisions with internally\-set defaults\.
+* tqm \- use display\.error\_as\_warning instead of display\.warning\_as\_error\.
+* tqm \- use display\.error\_as\_warning instead of self\.warning\.
* unarchive \- Clamp timestamps from beyond y2038 to representible values when unpacking zip files on platforms that use 32\-bit time\_t \(e\.g\. Debian i386\)\.
* uri \- Form location correctly when the server returns a relative redirect \([https\://github\.com/ansible/ansible/issues/84540](https\://github\.com/ansible/ansible/issues/84540)\)
* uri \- Handle HTTP exceptions raised while reading the content \([https\://github\.com/ansible/ansible/issues/83794](https\://github\.com/ansible/ansible/issues/83794)\)\.
@@ -7694,58 +3454,109 @@
* user \- Use higher precedence HOME\_MODE as UMASK for path provided \([https\://github\.com/ansible/ansible/pull/84482](https\://github\.com/ansible/ansible/pull/84482)\)\.
* user action will now require O\(force\) to overwrite the public part of an ssh key when generating ssh keys\, as was already the case for the private part\.
* user module now avoids changing ownership of files symlinked in provided home dir skeleton
+* variables \- Added Jinja scalar singletons \(true\, false\, none\) to invalid Ansible variable name detection\. Previously\, variables with these names could be assigned without error\, but could not be resolved\.
* vars lookup \- The default substitution only applies when trying to look up a variable which is not defined\. If the variable is defined\, but templates to an undefined value\, the default substitution will not apply\. Use the default filter to coerce those values instead\.
* wait\_for\_connection \- a warning was displayed if any hosts used a local connection \([https\://github\.com/ansible/ansible/issues/84419](https\://github\.com/ansible/ansible/issues/84419)\)
-
+
#### amazon\.aws
* cloudformation \- Fix bug where termination protection is not updated when create\_changeset\=true is used for stack updates \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2391](https\://github\.com/ansible\-collections/amazon\.aws/pull/2391)\)\.
* ec2\_instance \- Fix issue where EC2 instance module failed to apply security groups when both network and vpc\_subnet\_id were specified\, caused by passing None to discover\_security\_groups\(\) \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2488](https\://github\.com/ansible\-collections/amazon\.aws/pull/2488)\)\.
+* ec2\_instance \- corrected typo for InsufficientInstanceCapacity\. Fix now will retry Ec2 creation when InsufficientInstanceCapacity error occurs \([https\://github\.com/ansible\-collections/amazon\.aws/issues/1038](https\://github\.com/ansible\-collections/amazon\.aws/issues/1038)\)\.
* ec2\_security\_group \- Fix the diff mode issue when creating a security group containing a rule with a managed prefix list \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2373](https\://github\.com/ansible\-collections/amazon\.aws/issues/2373)\)\.
* ec2\_vpc\_nacl\_info \- Fix failure when listing NetworkACLs and no ACLs are found \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2425](https\://github\.com/ansible\-collections/amazon\.aws/issues/2425)\)\.
* ec2\_vpc\_net \- handle ipv6\_cidr false and no Ipv6CidrBlockAssociationSet in vpc \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2374](https\://github\.com/ansible\-collections/amazon\.aws/pull/2374)\)\.
* elbv2 \- Fix load balancer listener comparison when DefaultActions contain any action other than forward \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2377](https\://github\.com/ansible\-collections/amazon\.aws/issues/2377)\)\.
* iam\_access\_key \- add missing requirements checks \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2465](https\://github\.com/ansible\-collections/amazon\.aws/pull/2465)\)\.
+* iam\_user\_info \- Actually call GetUser when only user name is supplied instead of listing and filtering from all users \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
+* iam\_user\_info \- Actually filter users by path prefix when one is provided \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2567](https\://github\.com/ansible\-collections/amazon\.aws/pull/2567)\)\.
* lambda \- Remove non UTF\-8 data \(contents of Lambda ZIP file\) from the module output to avoid Ansible error \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2386](https\://github\.com/ansible\-collections/amazon\.aws/issues/2386)\)\.
* lookup/aws\_account\_attribute \- plugin should return a list when wantlist\=True \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2552](https\://github\.com/ansible\-collections/amazon\.aws/pull/2552)\)\.
* module\_utils\.botocore \- fixed type aliasing \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2497](https\://github\.com/ansible\-collections/amazon\.aws/pull/2497)\)\.
* module\_utils/ec2 \- catch error code InvalidElasticIpID\.NotFound on function create\_nat\_gateway\(\)\, sometimes the allocate\_address API calls will return the ID for a new elastic IP resource before it can be consistently referenced \([https\://github\.com/ansible\-collections/amazon\.aws/issues/1872](https\://github\.com/ansible\-collections/amazon\.aws/issues/1872)\)\.
* plugin\_utils\.botocore \- fixed type aliasing \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2497](https\://github\.com/ansible\-collections/amazon\.aws/pull/2497)\)\.
* rds\_cluster \- Fix issue occurring when updating RDS cluster domain \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2390](https\://github\.com/ansible\-collections/amazon\.aws/issues/2390)\)\.
+* route53\_info \- removes jijna delimiters from example using when \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2594](https\://github\.com/ansible\-collections/amazon\.aws/issues/2594)\)\.
* s3\_bucket \- Do not use default region as location constraint when creating bucket on ceph cluster \([https\://github\.com/ansible\-collections/amazon\.aws/issues/2420](https\://github\.com/ansible\-collections/amazon\.aws/issues/2420)\)\.
+* s3\_bucket \- bucket ACLs now consistently returned \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
+* s3\_bucket \- fixed idempotency when setting bucket ACLs \([https\://github\.com/ansible\-collections/amazon\.aws/pull/2478](https\://github\.com/ansible\-collections/amazon\.aws/pull/2478)\)\.
-
+
#### ansible\.netcommon
+* \(\#633\) Fixed typo in ansible\.netcommon\.telnet parameter crlf \(was clrf by mistake\)
+* Improved error handling in DirectExecutionModule\.\_record\_module\_result method for better compatibility with core\<\=2\.18
* libssh connection plugin \- stop using long\-deprecated and now removed internal field from ansible\-core\'s base connection plugin class \([https\://github\.com/ansible\-collections/ansible\.netcommon/issues/522](https\://github\.com/ansible\-collections/ansible\.netcommon/issues/522)\, [https\://github\.com/ansible\-collections/ansible\.netcommon/issues/690](https\://github\.com/ansible\-collections/ansible\.netcommon/issues/690)\, [https\://github\.com/ansible\-collections/ansible\.netcommon/pull/691](https\://github\.com/ansible\-collections/ansible\.netcommon/pull/691)\)\.
+* netconf \- Adds check for netconf session\_close RPC happens only if connection is alive\.
-
+
#### ansible\.posix
* acl \- Fixed to set ACLs on paths mounted with NFS version 4 correctly \([https\://github\.com/ansible\-collections/ansible\.posix/issues/240](https\://github\.com/ansible\-collections/ansible\.posix/issues/240)\)\.
+* ansible\.posix\.cgroup\_perf\_recap \- fixes json module load path \([https\://github\.com/ansible\-collections/ansible\.posix/issues/630](https\://github\.com/ansible\-collections/ansible\.posix/issues/630)\)\.
* mount \- Handle boot option on Linux\, NetBSD and OpenBSD correctly \([https\://github\.com/ansible\-collections/ansible\.posix/issues/364](https\://github\.com/ansible\-collections/ansible\.posix/issues/364)\)\.
* mount \- If a comment is appended to a fstab entry\, state present creates a double\-entry \([https\://github\.com/ansible\-collections/ansible\.posix/issues/595](https\://github\.com/ansible\-collections/ansible\.posix/issues/595)\)\.
-
+
#### ansible\.windows
* ansible\.windows\.win\_powershell \- Add extra checks to avoid GetType error when converting the output object \- ttps\://github\.com/ansible\-collections/ansible\.windows/issues/708
* setup \- Add better detection for VMWare base virtualization platforms \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/753](https\://github\.com/ansible\-collections/ansible\.windows/issues/753)
+* win\_copy \- report correct information about symlinks in action plugin\.
+* win\_find \- allow users case sensitive match the filename \([https\://github\.com/ansible\-collections/ansible\.windows/issues/473](https\://github\.com/ansible\-collections/ansible\.windows/issues/473)\)\.
* win\_group\_membership \- Fix bug when input members contained duplicate members that were not already present in the group \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/736](https\://github\.com/ansible\-collections/ansible\.windows/issues/736)
* win\_package \- Support check mode with local file path sources
+* win\_package \- fail to remove package when no product id is provided with path as an URL \([https\://github\.com/ansible\-collections/ansible\.windows/issues/667](https\://github\.com/ansible\-collections/ansible\.windows/issues/667)\)\.
* win\_powershell \- Ensure \$Ansible\.Result \= \@\(\) as an empty array is returned as an empty list and not null \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/686](https\://github\.com/ansible\-collections/ansible\.windows/issues/686)
+* win\_powershell \- Handle failure on output conversion when the output object uses a custom adapter set that fails to enumerate the method members\. This is seen when using the output from Get\-WmiObject \- [https\://github\.com/ansible\-collections/ansible\.windows/issues/767](https\://github\.com/ansible\-collections/ansible\.windows/issues/767)
+* win\_regedit \- Handle decimal values with no decimal values which may be the result of a Jinja2 template
+* win\_service \- Fix crash when attempting to create a service with the \-\-check flag\.
+* win\_template \- Added support for Ansible 2\.19 and the introduction of the data tagging feature\.
* win\_updates \- Only set the Access control sections on the temporary directory created by the module\. This avoids the error when the SeSecurityPrivilege privilege isn\'t present\.
-
+
#### arista\.eos
+* Add unit and integration tests to verify the change
+* Fix regex in route\_map module to support match community with or without exact\-match
+* Fix route map community handling to include missing community\_attributes level in the dictionary
* Fixed an issue in the compare\_configs method where unnecessary negate commands were generated for ACL entries already present in both have and want configurations\.
+* Fixed idempotency regarding logging port in differing versions of EOS
+* Fixed idempotency when using replaced state on host with multiple ACLs present\.
+* Fixed parsing of relative route\-map metric adjustments in when extracting settings from device output\.
* Improved validation logic for ACL sequence numbers and content matching to ensure idempotency\.
* Prevented redundant configuration updates for Access Control Lists\.
+* Support colon\-delimited format in BGP community strings
+* Update route\_maps to correctly handle ipv6 next\-hop address
+* Update the ACL module to support using protocol names for source port
+* arista\.eos\.eos\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes
* fix facts gathering for ebgp\-multihop attribute\.
-
+
+#### check\_point\.mgmt
+
+* Added required management version to the documentation for all collection modules\.
+* module\_utils/checkpoint \- Prevent redundant logout call when there is no authentication header \'X\-chkp\-sid\'\.
+
+
+#### cisco\.aci
+
+* Fix API call and index error for non\-existing configExportP in aci\_config\_snapshot\.
+* Fix aci\_rest module to only add annotation when the value is a dictionary
+* Fix payload to define the correct vPC member side in aci\_l3out\_logical\_interface\_vpc\_member \(\#663\)
+* Fix subclass issue in aci\_domain\_to\_vlan\_pool to fix deletion of binding \(\#695\)
+* Fix the aci\_access\_port\_block\_to\_access\_port module to query a specific object with the object name\.
+* Fix to read the last\_as from the module params in aci\_action\_rule\_set\_as\_path\.
+* Fix type of subnet\_control in aci\_bd\_subnet from string to list of strings\.
+* Modify interface\_configs requirement using required\_if dependency for aci\_bulk\_static\_binding\_to\_epg
+
+
+#### cisco\.dnac
+
+* Fixed get in sites\_telemetry\_settings module
+
+
#### cisco\.ios
* Added a test to validate the gathered state for VLAN configuration context\, improving reliability\.
@@ -7758,48 +3569,74 @@
* Improve documentation to provide clarity on the \"shutdown\" variable\.
* Improve unit tests to align with the changes made\.
* Made improvements to ensure VLAN facts are gathered properly\, both for specific configurations and general VLAN settings\.
+* cisco\.ios\.ios\_acls \- Added default acls to not get updated/removed in any state\.
+* cisco\.ios\.ios\_hsrp\_interfaces \- Fix module operation around the preempt attributes\, also addressed issues around command ordering\.
+* cisco\.ios\.ios\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes\.
+* cisco\.ios\.ios\_l3\_interfaces \- Fixed Helper Address command support for l3 interface\.
+* cisco\.ios\.ios\_ospfv2 \- Fix ospf admin distance parameter and fix other distance specific attributes to be optional\.
+* cisco\.ios\.ios\_vlans \- Fixed errors during VLAN overrides where primary VLANs have private VLAN associations referencing non\-existent or higher VLAN IDs\, ensuring smoother private VLAN handling and preventing module failures\.
+* ios\_acls \- Fix issue where commands were not being parsed correctly and incorrect commands were being generated\.
* ios\_acls \- Fixed issue where cisco\.ios\.ios\_acls module failed to process IPv6 ACL remarks\, causing unsupported parameter errors\.
+* ios\_bgp\_address\_family \- Refined state handling for replaced and overridden modes and enhanced address\-family parsing to accurately differentiate between types such as unicast\, multicast\, and others\.
+* ios\_bgp\_address\_family \- fix configuration of neighbor\'s as\-override split\-horizon\.
* ios\_logging\_global \- Fixed issue where cisco\.ios\.logging\_global module was not showing idempotent behaviour when trap was set to informational\.
* ios\_route\_maps \- Fix removal of ACLs in replaced state to properly remove unspecified ACLs while leaving specified ones intact\.
* ios\_route\_maps \- Fix removal of ACLs logic in replaced state to properly remove unspecified ACLs while leaving specified ones intact\.
* ios\_route\_maps \- Fixes an issue where \'no description value\' is an invalid command on the latest devices\.
+* ios\_static\_routes \- Add missing interface names in parser
* ios\_vlans \- Defaut mtu would be captured \(1500\) and no configuration for mtu is allowed via ios\_vlans module\.
* ios\_vlans \- Fixed an issue in the cisco\.ios\.ios\_vlans module on Cisco Catalyst 9000 switches where using state\:purged generated an incorrect command syntax \(no vlan configuration \ instead of no vlan \\)\.
* ios\_vlans \- Resolved a failure in the cisco\.ios\.ios\_vlans module when using state\:deleted\, where the module incorrectly attempted to remove VLANs using no mtu \\, causing an invalid input error\. The fix ensures that the module does not generate no mtu commands during VLAN deletion\, aligning with the correct VLAN removal behavior on Catalyst 9000 switches\.
+* ios\_vrf\_address\_family \- Added support for parsing the stitching attribute under route targets when gathering facts\. Enhanced handling of import\_config and export and renamed them to imports and exports to consistently represent them as lists of dictionaries during fact collection\.
+* ios\_vrf\_address\_family \- fixed an issue where the module failed to gather mdt configuration options\.
-
+
#### cisco\.iosxr
* Fixes a bug to allow connections to IOS XRd with cliconf\.
* Fixes idempotency for static routes with encap interfaces
+* Fixes route map fact gathering to correctly gather facts with a elif condition\.
+* cisco\.iosxr\.iosxr\_interfaces \- Improved handling of the enabled state to prevent incorrect shutdown or no shutdown commands during configuration changes\.
+* iosxr\_route\_map \- Fixes route\-policy attribute facts gathering\.
+* iosxr\_route\_maps \- Fix issue where wrong commands were being generated for several attributes\.
-
-#### cisco\.ise
-
-* network\_device \- Fix mask validation to handle None values in NetworkDeviceIPList
-* personas\_promote\_primary \- fix timeout issue\.
-
-
+
#### cisco\.meraki
+* Added validation for radiusServerAttemptsLimit with choices \[1\, 2\, 3\, 4\, 5\]\.
+* Added validation for radiusServerTimeout with a range of valid values \[1\-10\]\.
* Ansible utils requirements updated\.
* Change alias \'message\' to \'message\_rule\' due is a reserved ansible word in meraki\_mx\_intrusion\_prevention module\.
* Changes at compare equality function\.
+* Fixed parameter handling for update\_by\_id\_params in cisco\.meraki\.networks\_wireless\_ssids to correctly map the following parameters \- perClientBandwidthLimitDown \- perClientBandwidthLimitUp \- perSsidBandwidthLimitDown \- perSsidBandwidthLimitUp \- defaultVlanId \- radiusAccountingInterimInterval \- radiusGuestVlanId \- vlanId \- radiusServerAttemptsLimit \- radiusServerTimeout
* Issue fixes for workflow\-ansible\-lint\.
* Old playbook tests removed\.
* README fixes\.
* Unable to create Syslog Server Object\. Action module manually fixing\.
+* cisco\.meraki\.devices\_cellular\_sims \- fix idempotency error\.
+* cisco\.meraki\.devices\_switch\_ports \- fix get\_object\_by\_name method\.
* cisco\.meraki\.devices\_switch\_ports idempotency error fixed\.
+* cisco\.meraki\.devices\_wireless\_radio\_settings changed compare equality method to use meraki\_compare\_equality
* cisco\.meraki\.networks\_appliance\_firewall\_l3\_firewall\_rules fails with \"Unexpected failure during module execution \'rules\' \- specific \'rules\' extraction has been removed\.
+* cisco\.meraki\.networks\_appliance\_firewall\_l7\_firewall\_rules \- fix idempotency error\.
* cisco\.meraki\.networks\_appliance\_traffic\_shaping\_rules Always Pushes Configuration Even When Unchanged\.
+* cisco\.meraki\.networks\_appliance\_traffic\_shaping\_uplink\_bandwidth \- fix idempotency error\.
* cisco\.meraki\.networks\_appliance\_vlans\_settings fails with \"msg\" \"Object does not exists\, plugin only has update\" \- specific \'vlansEnabled\' extraction has been removed\.
* cisco\.meraki\.networks\_clients\_info \- incorrect API endpoint\, fixing info module\.
* cisco\.meraki\.networks\_devices\_claim failed with error unexpected keyword argument \'add\_atomically\' \- bad naming solved\.
* cisco\.meraki\.networks\_switch\_stacks delete stack not working\, fixing path parameters\.
+* cisco\.meraki\.networks\_wireless\_ssids refactor parameter handling to avoid None values
* cisco\.meraki\.organizations\_login\_security module update organization security settings\.
* runtime updated requires\_ansible from 2\.14\.0 to \'\>\=2\.15\.0\'\.
-
+
+#### cisco\.mso
+
+* Fix API endpoint to query local and remote users in ND4\.0
+* Fix query results for bulk query to display correct static\_paths in mso\_schema\_site\_anp\_epg\_staticport module
+* Fix replace operation for bulk present without force replace in mso\_schema\_site\_anp\_epg\_staticport module
+
+
#### cisco\.nxos
* Fixed hardware fact gathering failure for CPU utilization parsing on NX\-OS 9\.3\(3\) by handling both list and single value formats of onemin\_percent
@@ -7807,40 +3644,65 @@
* Fixes mixed usage of f\-string and format string in action plugin for consistency\.
* Fixes nxos\_user purge deleting non\-local users\,ensuring only local users are removed\.
* \[bgp\_templates\] \- fix the show commands used to ensure task does not fail if BGP is not enabled on the device\.
+* cisco\.nxos\.nxos\_vrf\_global \- Added support for rd attribute for nxos\_vrf\_global module\.
* lag\_interfaces \- Fix bug where lag interfaces was not erroring on command failure\. \([https\://github\.com/ansible\-collections/cisco\.nxos/pull/923](https\://github\.com/ansible\-collections/cisco\.nxos/pull/923)\)
+* nxos\_acls \- Fix issue where Not sufficient TCAM bank error not being captured by error regex\.
* nxos\_facts \- Fixes an issue in nxos\_facts where IPv6 addresses within VRF contexts were not being collected in net\_all\_ipv6\_addresses\.
* nxos\_l2\_interfaces \- Fixed handling of \'none\' value in allowed\_vlans to properly set trunk VLAN none
* nxos\_user \- fixes wrong command being generated for purge function
* nxos\_vpc \- fixes failure due to kickstart\_ver\_str not being present
-
+
+#### cloudscale\_ch\.cloud
+
+* floating\_ip \- Fix sanity tests\.
+
+
#### community\.aws
* aws\_ssm \- Use head\_bucket to access bucket locations in foreign AWS accounts \([https\://github\.com/ansible\-collections/community\.aws/pull/1987](https\://github\.com/ansible\-collections/community\.aws/pull/1987)\)\.
* ssm \- Strip Powershell CLIXML from stdout \([https\://github\.com/ansible\-collections/community\.aws/issues/1952](https\://github\.com/ansible\-collections/community\.aws/issues/1952)\)\.
-
+
#### community\.crypto
+* Improve error message when loading a private key fails due to correct private key files or wrong passwords\. Also include the original cryptography error since it likely contains more helpful information \([https\://github\.com/ansible\-collections/community\.crypto/issues/936](https\://github\.com/ansible\-collections/community\.crypto/issues/936)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/939](https\://github\.com/ansible\-collections/community\.crypto/pull/939)\)\.
+* acme\_\* modules \- also retry on HTTP responses 502 Bad Gateway and 504 Gateway Timeout\. The latter is needed for ZeroSSL\, which seems to have a lot of 504s \([https\://github\.com/ansible\-collections/community\.crypto/issues/945](https\://github\.com/ansible\-collections/community\.crypto/issues/945)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/947](https\://github\.com/ansible\-collections/community\.crypto/pull/947)\)\.
+* acme\_\* modules \- increase the maximum amount of retries from 10 to 20 to accomodate ZeroSSL\'s buggy implementation \([https\://github\.com/ansible\-collections/community\.crypto/pull/949](https\://github\.com/ansible\-collections/community\.crypto/pull/949)\)\.
+* acme\_account \- make work with CAs that do not accept any account request without External Account Binding data \([https\://github\.com/ansible\-collections/community\.crypto/issues/918](https\://github\.com/ansible\-collections/community\.crypto/issues/918)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/919](https\://github\.com/ansible\-collections/community\.crypto/pull/919)\)\.
* crypto\_info \- when running the module on Fedora 41 with cryptography installed from the package repository\, the module crashed apparently due to some elliptic curves being removed from libssl against which cryptography is running\, which cryptography did not expect \([https\://github\.com/ansible\-collections/community\.crypto/pull/834](https\://github\.com/ansible\-collections/community\.crypto/pull/834)\)\.
+* luks\_device \- mark parameter passphrase\_encoding as no\_log\=False to avoid confusing warning \([https\://github\.com/ansible\-collections/community\.crypto/pull/867](https\://github\.com/ansible\-collections/community\.crypto/pull/867)\)\.
+* luks\_device \- removing a specific keyslot with remove\_keyslot caused the module to hang while cryptsetup was waiting for a passphrase from stdin\, while the module did not supply one\. Since a keyslot is not necessary\, do not provide one \([https\://github\.com/ansible\-collections/community\.crypto/issues/864](https\://github\.com/ansible\-collections/community\.crypto/issues/864)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/868](https\://github\.com/ansible\-collections/community\.crypto/pull/868)\)\.
+* openssl\_csr and openssl\_csr\_pipe \- the idempotency check for key\_usage resulted in a crash if Key Agreement/keyAgreement was not set \([https\://github\.com/ansible\-collections/community\.crypto/issues/934](https\://github\.com/ansible\-collections/community\.crypto/issues/934)\, [https\://github\.com/ansible\-collections/community\.crypto/pull/935](https\://github\.com/ansible\-collections/community\.crypto/pull/935)\)\.
+* openssl\_csr\, openssl\_csr\_pipe \- avoid accessing internal members of cryptography\'s KeyUsage extension object \([https\://github\.com/ansible\-collections/community\.crypto/pull/910](https\://github\.com/ansible\-collections/community\.crypto/pull/910)\)\.
-
+
#### community\.dns
+* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.dns/pull/280](https\://github\.com/ansible\-collections/community\.dns/pull/280)\)\.
* Fix various issues and potential bugs pointed out by linters \([https\://github\.com/ansible\-collections/community\.dns/pull/242](https\://github\.com/ansible\-collections/community\.dns/pull/242)\, [https\://github\.com/ansible\-collections/community\.dns/pull/243](https\://github\.com/ansible\-collections/community\.dns/pull/243)\)\.
* Update Public Suffix List\.
+* hetzner\_dns\_records inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.dns/pull/266](https\://github\.com/ansible\-collections/community\.dns/pull/266)\)\.
+* hosttech\_dns\_records inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.dns/pull/266](https\://github\.com/ansible\-collections/community\.dns/pull/266)\)\.
+* lookup and lookup\_as\_dict lookup plugins \- removed type ALL\, which never worked \([https\://github\.com/ansible\-collections/community\.dns/issues/264](https\://github\.com/ansible\-collections/community\.dns/issues/264)\, [https\://github\.com/ansible\-collections/community\.dns/pull/265](https\://github\.com/ansible\-collections/community\.dns/pull/265)\)\.
+* nameserver\_record\_info \- removed type ALL\, which never worked \([https\://github\.com/ansible\-collections/community\.dns/issues/278](https\://github\.com/ansible\-collections/community\.dns/issues/278)\, [https\://github\.com/ansible\-collections/community\.dns/pull/279](https\://github\.com/ansible\-collections/community\.dns/pull/279)\)\.
+* various DNS lookup plugins and modules \- improve handling of invalid nameserver IPs/names \([https\://github\.com/ansible\-collections/community\.dns/issues/282](https\://github\.com/ansible\-collections/community\.dns/issues/282)\, [https\://github\.com/ansible\-collections/community\.dns/pull/284](https\://github\.com/ansible\-collections/community\.dns/pull/284)\)\.
-
+
#### community\.docker
* Fix label sanitization code to avoid crashes in case of errors \([https\://github\.com/ansible\-collections/community\.docker/issues/1028](https\://github\.com/ansible\-collections/community\.docker/issues/1028)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1029](https\://github\.com/ansible\-collections/community\.docker/pull/1029)\)\.
+* docker\_compose\_v2 \- adjust to new dry\-run build events in Docker Compose 2\.39\.0\+ \([https\://github\.com/ansible\-collections/community\.docker/pull/1101](https\://github\.com/ansible\-collections/community\.docker/pull/1101)\)\.
* docker\_compose\_v2 \- fix version check for assume\_yes \([https\://github\.com/ansible\-collections/community\.docker/pull/1054](https\://github\.com/ansible\-collections/community\.docker/pull/1054)\)\.
+* docker\_compose\_v2 \- handle a \(potentially unintentional\) breaking change in Docker Compose 2\.37\.0\. Note that ContainerName is no longer part of the return value \([https\://github\.com/ansible\-collections/community\.docker/issues/1082](https\://github\.com/ansible\-collections/community\.docker/issues/1082)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1083](https\://github\.com/ansible\-collections/community\.docker/pull/1083)\)\.
* docker\_compose\_v2 \- rename flag for assume\_yes parameter for docker compose up to \-y \([https\://github\.com/ansible\-collections/community\.docker/pull/1054](https\://github\.com/ansible\-collections/community\.docker/pull/1054)\)\.
* docker\_compose\_v2 \- use \-\-yes instead of \-y from Docker Compose 2\.34\.0 on \([https\://github\.com/ansible\-collections/community\.docker/pull/1060](https\://github\.com/ansible\-collections/community\.docker/pull/1060)\)\.
* docker\_compose\_v2 \- when using Compose 2\.31\.0 or newer\, revert to the old behavior that image rebuilds\, for example if rebuild\=always\, only result in changed if a container has been restarted \([https\://github\.com/ansible\-collections/community\.docker/issues/1005](https\://github\.com/ansible\-collections/community\.docker/issues/1005)\, [https\://github\.com/ansible\-collections/community\.docker/issues/pull/1011](https\://github\.com/ansible\-collections/community\.docker/issues/pull/1011)\)\.
* docker\_compose\_v2\_exec\, docker\_compose\_v2\_run \- fix missing \-\-env flag while assembling env arguments \([https\://github\.com/ansible\-collections/community\.docker/pull/992](https\://github\.com/ansible\-collections/community\.docker/pull/992)\)\.
* docker\_compose\_v2\_run \- the module has a conflict between the type of parameter it expects and the one it tries to sanitize\. Fix removes the label sanitization step because they are already validated by the parameter definition \([https\://github\.com/ansible\-collections/community\.docker/pull/1034](https\://github\.com/ansible\-collections/community\.docker/pull/1034)\)\.
+* docker\_container \- fix idempotency if command\=\[\] and command\_handling\=correct \([https\://github\.com/ansible\-collections/community\.docker/issues/1080](https\://github\.com/ansible\-collections/community\.docker/issues/1080)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1085](https\://github\.com/ansible\-collections/community\.docker/pull/1085)\)\.
* docker\_host\_info \- ensure that the module always returns can\_talk\_to\_docker\, and that it provides the correct value even if api\_version is specified \([https\://github\.com/ansible\-collections/community\.docker/issues/993](https\://github\.com/ansible\-collections/community\.docker/issues/993)\, [https\://github\.com/ansible\-collections/community\.docker/pull/995](https\://github\.com/ansible\-collections/community\.docker/pull/995)\)\.
+* docker\_image\, docker\_image\_push \- work around a bug in Docker 28\.3\.3 that prevents pushing without authentication to a registry \([https\://github\.com/ansible\-collections/community\.docker/pull/1110](https\://github\.com/ansible\-collections/community\.docker/pull/1110)\)\.
* docker\_image\_build \- work around bug resp\. very unexpected behavior in Docker buildx that overwrites all image names in \-\-output parameters if \-\-tag is provided\, which the module did by default in the past\. The module now only supplies \-\-tag if outputs is empty\. If outputs has entries\, it will add an additional entry with type\=image if no entry of type\=image contains the image name specified by the name and tag options \([https\://github\.com/ansible\-collections/community\.docker/issues/1001](https\://github\.com/ansible\-collections/community\.docker/issues/1001)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1006](https\://github\.com/ansible\-collections/community\.docker/pull/1006)\)\.
* docker\_network \- added waiting while container actually disconnect from Swarm network \([https\://github\.com/ansible\-collections/community\.docker/pull/999](https\://github\.com/ansible\-collections/community\.docker/pull/999)\)\.
* docker\_network \- containers are only reconnected to a network if they really exist \([https\://github\.com/ansible\-collections/community\.docker/pull/999](https\://github\.com/ansible\-collections/community\.docker/pull/999)\)\.
@@ -7848,17 +3710,140 @@
* docker\_swarm\_info \- do not crash when finding Swarm jobs if services\=true \([https\://github\.com/ansible\-collections/community\.docker/issues/1003](https\://github\.com/ansible\-collections/community\.docker/issues/1003)\)\.
* vendored Docker SDK for Python \- do not assume that KeyError is always for ApiVersion when querying version fails \([https\://github\.com/ansible\-collections/community\.docker/issues/1033](https\://github\.com/ansible\-collections/community\.docker/issues/1033)\, [https\://github\.com/ansible\-collections/community\.docker/pull/1034](https\://github\.com/ansible\-collections/community\.docker/pull/1034)\)\.
-
+
#### community\.general
+* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.general/pull/10687](https\://github\.com/ansible\-collections/community\.general/pull/10687)\)\.
+* apache2\_mod\_proxy \- make compatible with Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\.
+* apache2\_mod\_proxy \- passing the cluster\'s page as referer for the member\'s pages\. This makes the module actually work again for halfway modern Apache versions\. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\.
+* apache2\_module \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
+* apache2\_module \- check the cgi module restrictions only during activation \([https\://github\.com/ansible\-collections/community\.general/pull/10423](https\://github\.com/ansible\-collections/community\.general/pull/10423)\)\.
+* apk \- fix check for empty/whitespace\-only package names \([https\://github\.com/ansible\-collections/community\.general/pull/10532](https\://github\.com/ansible\-collections/community\.general/pull/10532)\)\.
+* apk \- handle empty name strings properly \([https\://github\.com/ansible\-collections/community\.general/issues/10441](https\://github\.com/ansible\-collections/community\.general/issues/10441)\, [https\://github\.com/ansible\-collections/community\.general/pull/10442](https\://github\.com/ansible\-collections/community\.general/pull/10442)\)\.
+* capabilities \- using invalid path \(symlink/directory/\.\.\.\) returned unrelated and incoherent error messages \([https\://github\.com/ansible\-collections/community\.general/issues/5649](https\://github\.com/ansible\-collections/community\.general/issues/5649)\, [https\://github\.com/ansible\-collections/community\.general/pull/10455](https\://github\.com/ansible\-collections/community\.general/pull/10455)\)\.
+* cloudflare\_dns \- fix crash when deleting a DNS record or when updating a record with solo\=true \([https\://github\.com/ansible\-collections/community\.general/issues/9652](https\://github\.com/ansible\-collections/community\.general/issues/9652)\, [https\://github\.com/ansible\-collections/community\.general/pull/9649](https\://github\.com/ansible\-collections/community\.general/pull/9649)\)\.
* cloudlare\_dns \- handle exhausted response stream in case of HTTP errors to show nice error message to the user \([https\://github\.com/ansible\-collections/community\.general/issues/9782](https\://github\.com/ansible\-collections/community\.general/issues/9782)\, [https\://github\.com/ansible\-collections/community\.general/pull/9818](https\://github\.com/ansible\-collections/community\.general/pull/9818)\)\.
+* cobbler\_system \- fix bug with Cobbler \>\= 3\.4\.0 caused by giving more than 2 positional arguments to CobblerXMLRPCInterface\.get\_system\_handle\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\)\.
+* cobbler\_system \- update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\, [https\://github\.com/ansible\-collections/community\.general/pull/10178](https\://github\.com/ansible\-collections/community\.general/pull/10178)\)\.
+* composer \- fix broken command lines \([https\://github\.com/ansible\-collections/community\.general/issues/10662](https\://github\.com/ansible\-collections/community\.general/issues/10662)\, [https\://github\.com/ansible\-collections/community\.general/pull/10669](https\://github\.com/ansible\-collections/community\.general/pull/10669)\)\.
+* cronvar \- fix crash on missing cron\_file parent directories \([https\://github\.com/ansible\-collections/community\.general/issues/10460](https\://github\.com/ansible\-collections/community\.general/issues/10460)\, [https\://github\.com/ansible\-collections/community\.general/pull/10461](https\://github\.com/ansible\-collections/community\.general/pull/10461)\)\.
+* cronvar \- handle empty strings on value properly \([https\://github\.com/ansible\-collections/community\.general/issues/10439](https\://github\.com/ansible\-collections/community\.general/issues/10439)\, [https\://github\.com/ansible\-collections/community\.general/pull/10445](https\://github\.com/ansible\-collections/community\.general/pull/10445)\)\.
+* dependent look plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
+* dependent lookup plugin \- avoid deprecated ansible\-core 2\.19 functionality \([https\://github\.com/ansible\-collections/community\.general/pull/10359](https\://github\.com/ansible\-collections/community\.general/pull/10359)\)\.
+* dig lookup plugin \- correctly handle NoNameserver exception \([https\://github\.com/ansible\-collections/community\.general/pull/9363](https\://github\.com/ansible\-collections/community\.general/pull/9363)\, [https\://github\.com/ansible\-collections/community\.general/issues/9362](https\://github\.com/ansible\-collections/community\.general/issues/9362)\)\.
+* diy callback plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
+* dnf\_config\_manager \- fix hanging when prompting to import GPG keys \([https\://github\.com/ansible\-collections/community\.general/pull/9124](https\://github\.com/ansible\-collections/community\.general/pull/9124)\, [https\://github\.com/ansible\-collections/community\.general/issues/8830](https\://github\.com/ansible\-collections/community\.general/issues/8830)\)\.
+* dnf\_config\_manager \- forces locale to C before module starts\. If the locale was set to non\-English\, the output of the dnf config\-manager could not be parsed \([https\://github\.com/ansible\-collections/community\.general/pull/9157](https\://github\.com/ansible\-collections/community\.general/pull/9157)\, [https\://github\.com/ansible\-collections/community\.general/issues/9046](https\://github\.com/ansible\-collections/community\.general/issues/9046)\)\.
* dnf\_versionlock \- add support for dnf5 \([https\://github\.com/ansible\-collections/community\.general/issues/9556](https\://github\.com/ansible\-collections/community\.general/issues/9556)\)\.
+* doas become plugin \- disable pipelining on ansible\-core 2\.19\+\. The plugin does not work with pipelining\, and since ansible\-core 2\.19 become plugins can indicate that they do not work with pipelining \([https\://github\.com/ansible\-collections/community\.general/issues/9977](https\://github\.com/ansible\-collections/community\.general/issues/9977)\, [https\://github\.com/ansible\-collections/community\.general/pull/10537](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
+* elasticsearch\_plugin \- fix ERROR\: D is not a recognized option issue when configuring proxy settings \([https\://github\.com/ansible\-collections/community\.general/pull/9774](https\://github\.com/ansible\-collections/community\.general/pull/9774)\, [https\://github\.com/ansible\-collections/community\.general/issues/9773](https\://github\.com/ansible\-collections/community\.general/issues/9773)\)\.
+* flatpak \- force the locale language to C when running the flatpak command \([https\://github\.com/ansible\-collections/community\.general/pull/9187](https\://github\.com/ansible\-collections/community\.general/pull/9187)\, [https\://github\.com/ansible\-collections/community\.general/issues/8883](https\://github\.com/ansible\-collections/community\.general/issues/8883)\)\.
+* gio\_mime \- fix command line when determining version of gio \([https\://github\.com/ansible\-collections/community\.general/pull/9171](https\://github\.com/ansible\-collections/community\.general/pull/9171)\, [https\://github\.com/ansible\-collections/community\.general/issues/9158](https\://github\.com/ansible\-collections/community\.general/issues/9158)\)\.
+* github\_deploy\_key \- check that key really exists on 422Â to avoid masking other errors \([https\://github\.com/ansible\-collections/community\.general/issues/6718](https\://github\.com/ansible\-collections/community\.general/issues/6718)\, [https\://github\.com/ansible\-collections/community\.general/pull/10011](https\://github\.com/ansible\-collections/community\.general/pull/10011)\)\.
+* github\_key \- in check mode\, a faulty call to \`datetime\.strftime\(\.\.\.\)\` was being made which generated an exception \([https\://github\.com/ansible\-collections/community\.general/issues/9185](https\://github\.com/ansible\-collections/community\.general/issues/9185)\)\.
+* github\_release \- support multiple types of GitHub tokens\; no longer failing when ghs\_ token type is provided \([https\://github\.com/ansible\-collections/community\.general/issues/10338](https\://github\.com/ansible\-collections/community\.general/issues/10338)\, [https\://github\.com/ansible\-collections/community\.general/pull/10339](https\://github\.com/ansible\-collections/community\.general/pull/10339)\)\.
+* gitlab\_group\_access\_token\, gitlab\_project\_access\_token \- fix handling of group and project access tokens for changes in GitLab 17\.10 \([https\://github\.com/ansible\-collections/community\.general/pull/10196](https\://github\.com/ansible\-collections/community\.general/pull/10196)\)\.
+* hashids and unicode\_normalize filter plugins \- avoid deprecated AnsibleFilterTypeError on ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/9992](https\://github\.com/ansible\-collections/community\.general/pull/9992)\)\.
+* homebrew \- emit a useful error message if brew info reports a package tap is null \([https\://github\.com/ansible\-collections/community\.general/pull/10013](https\://github\.com/ansible\-collections/community\.general/pull/10013)\, [https\://github\.com/ansible\-collections/community\.general/issues/10012](https\://github\.com/ansible\-collections/community\.general/issues/10012)\)\.
* homebrew \- fix crash when package names include tap \([https\://github\.com/ansible\-collections/community\.general/issues/9777](https\://github\.com/ansible\-collections/community\.general/issues/9777)\, [https\://github\.com/ansible\-collections/community\.general/pull/9803](https\://github\.com/ansible\-collections/community\.general/pull/9803)\)\.
+* homebrew \- fix incorrect handling of aliased homebrew modules when the alias is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9255](https\://github\.com/ansible\-collections/community\.general/pull/9255)\, [https\://github\.com/ansible\-collections/community\.general/issues/9240](https\://github\.com/ansible\-collections/community\.general/issues/9240)\)\.
+* homebrew \- fix incorrect handling of homebrew modules when a tap is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9546](https\://github\.com/ansible\-collections/community\.general/pull/9546)\, [https\://github\.com/ansible\-collections/community\.general/issues/9533](https\://github\.com/ansible\-collections/community\.general/issues/9533)\)\.
+* homebrew \- make package name parsing more resilient \([https\://github\.com/ansible\-collections/community\.general/pull/9665](https\://github\.com/ansible\-collections/community\.general/pull/9665)\, [https\://github\.com/ansible\-collections/community\.general/issues/9641](https\://github\.com/ansible\-collections/community\.general/issues/9641)\)\.
+* homebrew\_cask \- allow \+ symbol in Homebrew cask name validation regex \([https\://github\.com/ansible\-collections/community\.general/pull/9128](https\://github\.com/ansible\-collections/community\.general/pull/9128)\)\.
* homebrew\_cask \- handle unusual brew version strings \([https\://github\.com/ansible\-collections/community\.general/issues/8432](https\://github\.com/ansible\-collections/community\.general/issues/8432)\, [https\://github\.com/ansible\-collections/community\.general/pull/9881](https\://github\.com/ansible\-collections/community\.general/pull/9881)\)\.
+* htpasswd \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
+* htpasswd \- report changes when file permissions are adjusted \([https\://github\.com/ansible\-collections/community\.general/issues/9485](https\://github\.com/ansible\-collections/community\.general/issues/9485)\, [https\://github\.com/ansible\-collections/community\.general/pull/9490](https\://github\.com/ansible\-collections/community\.general/pull/9490)\)\.
+* icinga2 inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\.
+* incus connection plugin \- fix error handling to return more useful Ansible errors to the user \([https\://github\.com/ansible\-collections/community\.general/issues/10344](https\://github\.com/ansible\-collections/community\.general/issues/10344)\, [https\://github\.com/ansible\-collections/community\.general/pull/10349](https\://github\.com/ansible\-collections/community\.general/pull/10349)\)\.
+* iocage inventory plugin \- the plugin parses the IP4 tab of the jails list and put the elements into the new variable iocage\_ip4\_dict\. In multiple interface format the variable iocage\_ip4 keeps the comma\-separated list of IP4 \([https\://github\.com/ansible\-collections/community\.general/issues/9538](https\://github\.com/ansible\-collections/community\.general/issues/9538)\)\.
+* ipa\_host \- module revoked existing host certificates even if user\_certificate was not given \([https\://github\.com/ansible\-collections/community\.general/pull/9694](https\://github\.com/ansible\-collections/community\.general/pull/9694)\)\.
+* irc \- pass hostname to wrap\_socket\(\) if use\_tls\=true and validate\_certs\=true \([https\://github\.com/ansible\-collections/community\.general/issues/10472](https\://github\.com/ansible\-collections/community\.general/issues/10472)\, [https\://github\.com/ansible\-collections/community\.general/pull/10491](https\://github\.com/ansible\-collections/community\.general/pull/10491)\)\.
+* java\_cert \- the module no longer fails if the optional parameters pkcs12\_alias and cert\_alias are not provided \([https\://github\.com/ansible\-collections/community\.general/pull/9970](https\://github\.com/ansible\-collections/community\.general/pull/9970)\)\.
+* jenkins\_plugin \- install latest compatible version instead of latest \([https\://github\.com/ansible\-collections/community\.general/issues/854](https\://github\.com/ansible\-collections/community\.general/issues/854)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
+* jenkins\_plugin \- separate Jenkins and external URL credentials \([https\://github\.com/ansible\-collections/community\.general/issues/4419](https\://github\.com/ansible\-collections/community\.general/issues/4419)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
+* json\_query filter plugin \- make compatible with lazy evaluation list and dictionary types of ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10539](https\://github\.com/ansible\-collections/community\.general/pull/10539)\)\.
+* kdeconfig \- allow option values beginning with a dash \([https\://github\.com/ansible\-collections/community\.general/issues/10127](https\://github\.com/ansible\-collections/community\.general/issues/10127)\, [https\://github\.com/ansible\-collections/community\.general/pull/10128](https\://github\.com/ansible\-collections/community\.general/pull/10128)\)\.
+* keycloak \- update more than 10 sub\-groups \([https\://github\.com/ansible\-collections/community\.general/issues/9690](https\://github\.com/ansible\-collections/community\.general/issues/9690)\, [https\://github\.com/ansible\-collections/community\.general/pull/9692](https\://github\.com/ansible\-collections/community\.general/pull/9692)\)\.
+* keycloak module utils \- replaces missing return in get\_role\_composites method which caused it to return None instead of composite roles \([https\://github\.com/ansible\-collections/community\.general/issues/9678](https\://github\.com/ansible\-collections/community\.general/issues/9678)\, [https\://github\.com/ansible\-collections/community\.general/pull/9691](https\://github\.com/ansible\-collections/community\.general/pull/9691)\)\.
+* keycloak\_authentication \- fix authentification config duplication for Keycloak \< 26\.2\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9987](https\://github\.com/ansible\-collections/community\.general/pull/9987)\)\.
+* keycloak\_client \- fix and improve existing tests\. The module showed a diff without actual changes\, solved by improving the normalise\_cr\(\) function \([https\://github\.com/ansible\-collections/community\.general/pull/9644](https\://github\.com/ansible\-collections/community\.general/pull/9644)\)\.
+* keycloak\_client \- fix diff by removing code that turns the attributes dict which contains additional settings into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9077](https\://github\.com/ansible\-collections/community\.general/pull/9077)\)\.
+* keycloak\_client \- fix the idempotency regression by normalizing the Keycloak response for after\_client \([https\://github\.com/ansible\-collections/community\.general/issues/9905](https\://github\.com/ansible\-collections/community\.general/issues/9905)\, [https\://github\.com/ansible\-collections/community\.general/pull/9976](https\://github\.com/ansible\-collections/community\.general/pull/9976)\)\.
+* keycloak\_client \- in check mode\, detect whether the lists in before client \(for example redirect URI list\) contain items that the lists in the desired client do not contain \([https\://github\.com/ansible\-collections/community\.general/pull/9739](https\://github\.com/ansible\-collections/community\.general/pull/9739)\)\.
+* keycloak\_clientscope \- fix diff and end\_state by removing the code that turns the attributes dict\, which contains additional config items\, into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9082](https\://github\.com/ansible\-collections/community\.general/pull/9082)\)\.
+* keycloak\_clientscope\_type \- sort the default and optional clientscope lists to improve the diff \([https\://github\.com/ansible\-collections/community\.general/pull/9202](https\://github\.com/ansible\-collections/community\.general/pull/9202)\)\.
+* keycloak\_user\_rolemapping \- fix \-\-diff mode \([https\://github\.com/ansible\-collections/community\.general/issues/10067](https\://github\.com/ansible\-collections/community\.general/issues/10067)\, [https\://github\.com/ansible\-collections/community\.general/pull/10075](https\://github\.com/ansible\-collections/community\.general/pull/10075)\)\.
+* linode inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\.
+* listen\_port\_facts \- avoid crash when required commands are missing \([https\://github\.com/ansible\-collections/community\.general/issues/10457](https\://github\.com/ansible\-collections/community\.general/issues/10457)\, [https\://github\.com/ansible\-collections/community\.general/pull/10458](https\://github\.com/ansible\-collections/community\.general/pull/10458)\)\.
+* lldp \- fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\.
+* logstash callback plugin \- remove reference to Python 2 library \([https\://github\.com/ansible\-collections/community\.general/pull/10345](https\://github\.com/ansible\-collections/community\.general/pull/10345)\)\.
+* lvm\_pv \- properly detect SCSI or NVMe devices to rescan \([https\://github\.com/ansible\-collections/community\.general/issues/10444](https\://github\.com/ansible\-collections/community\.general/issues/10444)\, [https\://github\.com/ansible\-collections/community\.general/pull/10596](https\://github\.com/ansible\-collections/community\.general/pull/10596)\)\.
+* machinectl become plugin \- disable pipelining on ansible\-core 2\.19\+\. The plugin does not work with pipelining\, and since ansible\-core 2\.19 become plugins can indicate that they do not work with pipelining \([https\://github\.com/ansible\-collections/community\.general/pull/10537](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
+* merge\_variables lookup plugin \- avoid deprecated functionality from ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10566](https\://github\.com/ansible\-collections/community\.general/pull/10566)\)\.
* nmcli \- enable changing only the order of DNS servers or search suffixes \([https\://github\.com/ansible\-collections/community\.general/issues/8724](https\://github\.com/ansible\-collections/community\.general/issues/8724)\, [https\://github\.com/ansible\-collections/community\.general/pull/9880](https\://github\.com/ansible\-collections/community\.general/pull/9880)\)\.
+* onepassword\_doc lookup plugin \- ensure that 1Password Connect support also works for this plugin \([https\://github\.com/ansible\-collections/community\.general/pull/9625](https\://github\.com/ansible\-collections/community\.general/pull/9625)\)\.
+* pacemaker\_resource \- fix resource\_type parameter formatting \([https\://github\.com/ansible\-collections/community\.general/issues/10426](https\://github\.com/ansible\-collections/community\.general/issues/10426)\, [https\://github\.com/ansible\-collections/community\.general/pull/10663](https\://github\.com/ansible\-collections/community\.general/pull/10663)\)\.
+* passwordstore lookup plugin \- fix subkey creation even when create\=false \([https\://github\.com/ansible\-collections/community\.general/issues/9105](https\://github\.com/ansible\-collections/community\.general/issues/9105)\, [https\://github\.com/ansible\-collections/community\.general/pull/9106](https\://github\.com/ansible\-collections/community\.general/pull/9106)\)\.
+* pickle cache plugin \- avoid extra JSON serialization with ansible\-core \>\= 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10136](https\://github\.com/ansible\-collections/community\.general/pull/10136)\)\.
+* pids \- prevent error when an empty string is provided for name \([https\://github\.com/ansible\-collections/community\.general/issues/10672](https\://github\.com/ansible\-collections/community\.general/issues/10672)\, [https\://github\.com/ansible\-collections/community\.general/pull/10688](https\://github\.com/ansible\-collections/community\.general/pull/10688)\)\.
+* pipx \- honor option global when state\=latest \([https\://github\.com/ansible\-collections/community\.general/pull/9623](https\://github\.com/ansible\-collections/community\.general/pull/9623)\)\.
* proxmox \- add missing key selection of \'status\' key to get\_lxc\_status \([https\://github\.com/ansible\-collections/community\.general/issues/9696](https\://github\.com/ansible\-collections/community\.general/issues/9696)\, [https\://github\.com/ansible\-collections/community\.general/pull/9809](https\://github\.com/ansible\-collections/community\.general/pull/9809)\)\.
+* proxmox \- fix crash in module when the used on an existing LXC container with state\=present and force\=true \([https\://github\.com/ansible\-collections/community\.proxmox/pull/91](https\://github\.com/ansible\-collections/community\.proxmox/pull/91)\, [https\://github\.com/ansible\-collections/community\.general/pull/10155](https\://github\.com/ansible\-collections/community\.general/pull/10155)\)\.
+* proxmox inventory plugin \- fix ansible\_host staying empty for certain Proxmox nodes \([https\://github\.com/ansible\-collections/community\.general/issues/5906](https\://github\.com/ansible\-collections/community\.general/issues/5906)\, [https\://github\.com/ansible\-collections/community\.general/pull/9952](https\://github\.com/ansible\-collections/community\.general/pull/9952)\)\.
+* proxmox\_disk \- fail gracefully if storage is required but not provided by the user \([https\://github\.com/ansible\-collections/community\.general/issues/9941](https\://github\.com/ansible\-collections/community\.general/issues/9941)\, [https\://github\.com/ansible\-collections/community\.general/pull/9963](https\://github\.com/ansible\-collections/community\.general/pull/9963)\)\.
* proxmox\_vm\_info \- the module no longer expects that the key template exists in a dictionary returned by Proxmox \([https\://github\.com/ansible\-collections/community\.general/issues/9875](https\://github\.com/ansible\-collections/community\.general/issues/9875)\, [https\://github\.com/ansible\-collections/community\.general/pull/9910](https\://github\.com/ansible\-collections/community\.general/pull/9910)\)\.
+* qubes connection plugin \- fix the printing of debug information \([https\://github\.com/ansible\-collections/community\.general/pull/9334](https\://github\.com/ansible\-collections/community\.general/pull/9334)\)\.
+* redfish\_utils module utils \- Fix VerifyBiosAttributes command on multi system resource nodes \([https\://github\.com/ansible\-collections/community\.general/pull/9234](https\://github\.com/ansible\-collections/community\.general/pull/9234)\)\.
+* redfish\_utils module utils \- remove undocumented default applytime \([https\://github\.com/ansible\-collections/community\.general/pull/9114](https\://github\.com/ansible\-collections/community\.general/pull/9114)\)\.
+* redhat\_subscription \- do not try to unsubscribe \(i\.e\. remove subscriptions\)
+ when unregistering a system\: newer versions of subscription\-manager\, as
+ available in EL 10 and Fedora 41\+\, do not support entitlements anymore\, and
+ thus unsubscribing will fail
+ \([https\://github\.com/ansible\-collections/community\.general/pull/9578](https\://github\.com/ansible\-collections/community\.general/pull/9578)\)\.
+* redhat\_subscription \- use the \"enable\_content\" option \(when available\) when
+ registering using D\-Bus\, to ensure that subscription\-manager enables the
+ content on registration\; this is particular important on EL 10\+ and Fedora
+ 41\+
+ \([https\://github\.com/ansible\-collections/community\.general/pull/9778](https\://github\.com/ansible\-collections/community\.general/pull/9778)\)\.
+* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
+* rundeck\_acl\_policy \- ensure that project ACLs are sent to the correct endpoint \([https\://github\.com/ansible\-collections/community\.general/pull/10097](https\://github\.com/ansible\-collections/community\.general/pull/10097)\)\.
+* slack \- fail if Slack API response is not OK with error message \([https\://github\.com/ansible\-collections/community\.general/pull/9198](https\://github\.com/ansible\-collections/community\.general/pull/9198)\)\.
* sudoers \- display stdout and stderr raised while failed validation \([https\://github\.com/ansible\-collections/community\.general/issues/9674](https\://github\.com/ansible\-collections/community\.general/issues/9674)\, [https\://github\.com/ansible\-collections/community\.general/pull/9871](https\://github\.com/ansible\-collections/community\.general/pull/9871)\)\.
+* syspatch \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
+* sysrc \- fixes parsing with multi\-line variables \([https\://github\.com/ansible\-collections/community\.general/issues/10394](https\://github\.com/ansible\-collections/community\.general/issues/10394)\, [https\://github\.com/ansible\-collections/community\.general/pull/10417](https\://github\.com/ansible\-collections/community\.general/pull/10417)\)\.
+* sysrc \- no longer always reporting changed\=true when state\=absent\. This fixes the method exists\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/10004](https\://github\.com/ansible\-collections/community\.general/issues/10004)\, [https\://github\.com/ansible\-collections/community\.general/pull/10005](https\://github\.com/ansible\-collections/community\.general/pull/10005)\)\.
+* sysrc \- split the output of sysrc \-e \-a on the first \= only \([https\://github\.com/ansible\-collections/community\.general/issues/10120](https\://github\.com/ansible\-collections/community\.general/issues/10120)\, [https\://github\.com/ansible\-collections/community\.general/pull/10121](https\://github\.com/ansible\-collections/community\.general/pull/10121)\)\.
+* sysupgrade \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
+* wsl connection plugin \- avoid deprecated ansible\-core paramiko import helper\, import paramiko directly instead \([https\://github\.com/ansible\-collections/community\.general/issues/10515](https\://github\.com/ansible\-collections/community\.general/issues/10515)\, [https\://github\.com/ansible\-collections/community\.general/pull/10531](https\://github\.com/ansible\-collections/community\.general/pull/10531)\)\.
+* xml \- ensure file descriptor is closed \([https\://github\.com/ansible\-collections/community\.general/pull/9695](https\://github\.com/ansible\-collections/community\.general/pull/9695)\)\.
+* yaml callback plugin \- adjust to latest changes in ansible\-core devel \([https\://github\.com/ansible\-collections/community\.general/pull/10212](https\://github\.com/ansible\-collections/community\.general/pull/10212)\)\.
+* yaml callback plugin \- use ansible\-core internals to avoid breakage with Data Tagging \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
+* yaml callback plugin \- when using ansible\-core 2\.19\.0b2 or newer\, uses a new utility provided by ansible\-core\. This allows us to remove all hacks and vendored code that was part of the plugin for ansible\-core versions with Data Tagging so far \([https\://github\.com/ansible\-collections/community\.general/pull/10242](https\://github\.com/ansible\-collections/community\.general/pull/10242)\)\.
+* zfs \- fix handling of multi\-line values of user\-defined ZFS properties \([https\://github\.com/ansible\-collections/community\.general/pull/6264](https\://github\.com/ansible\-collections/community\.general/pull/6264)\)\.
+* zfs\_facts \- parameter type now accepts multple values as documented \([https\://github\.com/ansible\-collections/community\.general/issues/5909](https\://github\.com/ansible\-collections/community\.general/issues/5909)\, [https\://github\.com/ansible\-collections/community\.general/pull/9697](https\://github\.com/ansible\-collections/community\.general/pull/9697)\)\.
+* zypper\_repository \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
+* zypper\_repository \- make compatible with Python 3\.12\+ \([https\://github\.com/ansible\-collections/community\.general/issues/10222](https\://github\.com/ansible\-collections/community\.general/issues/10222)\, [https\://github\.com/ansible\-collections/community\.general/pull/10223](https\://github\.com/ansible\-collections/community\.general/pull/10223)\)\.
+* zypper\_repository \- use metalink attribute to identify repositories without \ element \([https\://github\.com/ansible\-collections/community\.general/issues/10224](https\://github\.com/ansible\-collections/community\.general/issues/10224)\, [https\://github\.com/ansible\-collections/community\.general/pull/10225](https\://github\.com/ansible\-collections/community\.general/pull/10225)\)\.
+
+
+#### community\.grafana
+
+* Fix parsing of grafana version for pre\-releases and security releases
+* Remove field apiVersion from return of current grafana\_datasource for working diff
+* grafana\_dashboard \- add uid to payload
+* grafana\_dashboard \- fix change detection for dashboards in folders
+* test\: replace more deprecated TestCase\.assertEquals to support Python 3\.12
+
+
+#### community\.hashi\_vault
+
+* connection\_options \- the validate\_certs option had no effect if the retries option was set\. Fix now also sets the parameter correctly in the retry request session \([https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/461](https\://github\.com/ansible\-collections/community\.hashi\_vault/issues/461)\)\.
+
+
+#### community\.hrobot
+
+* robot inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.hrobot/pull/165](https\://github\.com/ansible\-collections/community\.hrobot/pull/165)\)\.
+* storagebox \- make sure that changes of boolean parameters are sent correctly to the Robot service \([https\://github\.com/ansible\-collections/community\.hrobot/issues/160](https\://github\.com/ansible\-collections/community\.hrobot/issues/160)\, [https\://github\.com/ansible\-collections/community\.hrobot/pull/161](https\://github\.com/ansible\-collections/community\.hrobot/pull/161)\)\.
#### community\.library\_inventory\_filtering\_v1
@@ -7866,20 +3851,28 @@
* inventory\_filter plugin utils \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/24](https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/24)\)\.
* inventory\_plugin plugin util \- parse\_filters now filters None values with allowed keys \([https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/27](https\://github\.com/ansible\-collections/community\.library\_inventory\_filtering/pull/27)\)\.
-
+
#### community\.libvirt
* libvirt\_lxc \- add configuration for libvirt\_lxc\_noseclabel\.
+* virt\_volume \- create\_from was non\-functional\, and is now folded into create \(added clone\_source parameter\)\. Fixes
+* virt\_volume \- info\, facts\, download\, upload commands have been removed as they were not functional \(and not tested\)\.
+* virt\_volume \- wipe command now works \(and is also a boolean option for \'state/absent\' and \'command/delete\'\)\.
-
+
#### community\.mysql
* mysql\_db \- fix dump and import to find MariaDB binaries \(mariadb and mariadb\-dump\) when MariaDB 11\+ is used and symbolic links to MySQL binaries are absent\.
+* mysql\_info \- fix a crash \(ERROR 1141\, There is no such grant defined for user \'PUBLIC\' on host \'\%\'\) when using the users\_info filter with a PUBLIC role present in MariaDB 10\.11\+\. Do note that the fix doesn\'t change the fact that the module won\'t return the privileges from the PUBLIC role in the users privileges list\. It can\'t do that because you have to login as the particular user and use SHOW GRANTS FOR CURRENT\_USER\. We considered using an aggregation with the SHOW GRANTS FOR PUBLIC command\. However\, this approach would make copying users from one server to another transform the privileges inherited from the role as if they were direct privileges on the user\.
+* mysql\_query \- fix a Python 2 compatibility issue caused by the addition of execution\_time\_ms in version 3\.12 \(see [https\://github\.com/ansible\-collections/community\.mysql/issues/716](https\://github\.com/ansible\-collections/community\.mysql/issues/716)\)\.
+* mysql\_replication \- fixed an issue where setting primary\_ssl\_verify\_server\_cert to false had no effect \([https\://github\.com/ansible\-collections/community\.mysql/issues/689](https\://github\.com/ansible\-collections/community\.mysql/issues/689)\)\.
+* mysql\_user \- fix a crash \(unable to parse the MySQL grant string\: SET DEFAULT ROLE somerole FOR someuser\`\@\`\%\) when using the mysql\_user module with a DEFAULT role present in MariaDB\. The DEFAULT role is now ignored by the parser \([https\://github\.com/ansible\-collections/community\.mysql/issues/710](https\://github\.com/ansible\-collections/community\.mysql/issues/710)\)\.
* mysql\_user\,mysql\_role \- The sql\_mode ANSI\_QUOTES affects how the modules mysql\_user and mysql\_role compare the existing privileges with the configured privileges\, as well as decide whether double quotes or backticks should be used in the GRANT statements\. Pointing out in issue 671\, the modules mysql\_user and mysql\_role allow users to enable/disable ANSI\_QUOTES in session variable \(within a DB session\, the session variable always overwrites the global one\)\. But due to the issue\, the modules do not check for ANSI\_MODE in the session variable\, instead\, they only check in the GLOBAL one\.That behavior is not only limiting the users\' flexibility\, but also not allowing users to explicitly disable ANSI\_MODE to work around such bugs like [https\://bugs\.mysql\.com/bug\.php\?id\=115953](https\://bugs\.mysql\.com/bug\.php\?id\=115953)\. \([https\://github\.com/ansible\-collections/community\.mysql/issues/671](https\://github\.com/ansible\-collections/community\.mysql/issues/671)\)
-
+
#### community\.postgresql
+* postgresql\_alter\_system \- fix failure when max\_val contains a huge number written in scientific notation \([https\://github\.com/ansible\-collections/community\.postgresql/issues/853](https\://github\.com/ansible\-collections/community\.postgresql/issues/853)\)\.
* postgresql\_info \- fix failure when a default database is used \(neither db nor login\_db are specified\) \([https\://github\.com/ansible\-collections/community\.postgresql/issues/794](https\://github\.com/ansible\-collections/community\.postgresql/issues/794)\)\.
* postgresql\_info \- fix issue when gathering information fails if user doesn\'t have access to all databases \([https\://github\.com/ansible\-collections/community\.postgresql/pull/788](https\://github\.com/ansible\-collections/community\.postgresql/pull/788)\)\.
* postgresql\_info \- fix module failure when the db parameter is used instead of login\_db \([https\://github\.com/ansible\-collections/community\.postgresql/issues/794](https\://github\.com/ansible\-collections/community\.postgresql/issues/794)\)\.
@@ -7890,54 +3883,118 @@
* postgresql\_pg\_hba \- fixes \#777 the module will ignore the \'address\' and \'netmask\' options again when the contype is \'local\' \([https\://github\.com/ansible\-collections/community\.postgresql/pull/779](https\://github\.com/ansible\-collections/community\.postgresql/pull/779)\)
* postgresql\_pg\_hba \- improves parsing of quoted strings and escaped newlines \([https\://github\.com/ansible\-collections/community\.postgresql/pull/761](https\://github\.com/ansible\-collections/community\.postgresql/pull/761)\)
* postgresql\_privs \- fix the error occurring when trying to grant a function execution and set the schema to not\-specified \([https\://github\.com/ansible\-collections/community\.postgresql/pull/783](https\://github\.com/ansible\-collections/community\.postgresql/pull/783)\)\.
+* postgresql\_schema \- change reported in check\_mode was negated\. Now it reports a change when removing an existing schema \([https\://github\.com/ansible\-collections/community\.postgresql/pull/858](https\://github\.com/ansible\-collections/community\.postgresql/pull/858)\)
* postgresql\_table \- consider schema name when checking for table \([https\://github\.com/ansible\-collections/community\.postgresql/issues/817](https\://github\.com/ansible\-collections/community\.postgresql/issues/817)\)\. Table names are only unique within a schema\. This allows using the same table name in multiple schemas\.
* postgresql\_user \- doesn\'t take password\_encryption into account when checking if a password should be updated \([https\://github\.com/ansible\-collections/community\.postgresql/issues/688](https\://github\.com/ansible\-collections/community\.postgresql/issues/688)\)\.
-
+
#### community\.rabbitmq
+* rabbitmq\_binding \- fix idempotency when arguments and/or routing\_key are given \([https\://github\.com/ansible\-collections/community\.rabbitmq/pull/191](https\://github\.com/ansible\-collections/community\.rabbitmq/pull/191)\)
* rabbitmq\_publish \- fix support for publishing headers as a part of a message \([https\://github\.com/ansible\-collections/community\.rabbitmq/pull/182](https\://github\.com/ansible\-collections/community\.rabbitmq/pull/182)\)
+* rabbitmq\_user \- URL encode the vhost and user fields to allow for input with \'/\' characters\. \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/205](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/205)\)
+* rabbitmq\_vhost \- Fail module if the requests library is missing\. This maintains the same behavior across all the modules\.
+* setup\_rabbitmq \- incorrect SSL library was selected for install on Ubuntu Noble\. Fix now installs the correct version on newer Ubuntu versions\. \([https\://github\.com/ansible\-collections/community\.rabbitmq/issues/199](https\://github\.com/ansible\-collections/community\.rabbitmq/issues/199)\)
-
+
#### community\.routeros
+* api\_facts \- also report interfaces that are inferred only by reference by IP addresses\.
+ RouterOS\'s APIs have IPv4 and IPv6 addresses point at interfaces by their name\, which can
+ change over time and in\-between API calls\, such that interfaces may have been enumerated
+ under another name\, or not at all \(for example when removed\)\. Such interfaces are now reported
+ under their new or temporary name and with a synthetic type property set to differentiate
+ the more likely and positively confirmed removal case \(with type\: \"ansible\:unknown\"\) from
+ the unlikely and probably transient naming mismatch \(with type\: \"ansible\:mismatch\"\)\.
+ Previously\, the api\_facts module would have crashed with a KeyError exception
+ \([https\://github\.com/ansible\-collections/community\.routeros/pull/391](https\://github\.com/ansible\-collections/community\.routeros/pull/391)\)\.
* api\_info\, api\_modify \- fields log and log\-prefix in paths ip firewall filter\, ip firewall mangle\, ip firewall nat\, ip firewall raw now have the correct default values \([https\://github\.com/ansible\-collections/community\.routeros/pull/324](https\://github\.com/ansible\-collections/community\.routeros/pull/324)\)\.
* api\_info\, api\_modify \- remove the primary key action from the interface wifi provisioning path\, since RouterOS also allows to create completely duplicate entries \([https\://github\.com/ansible\-collections/community\.routeros/issues/344](https\://github\.com/ansible\-collections/community\.routeros/issues/344)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/345](https\://github\.com/ansible\-collections/community\.routeros/pull/345)\)\.
+* facts and api\_facts modules \- prevent deprecation warnings when used with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.routeros/pull/384](https\://github\.com/ansible\-collections/community\.routeros/pull/384)\)\.
+* routeros terminal plugin \- fix terminal\_stdout\_re pattern to handle long system identities when connecting to RouterOS through SSH \([https\://github\.com/ansible\-collections/community\.routeros/pull/386](https\://github\.com/ansible\-collections/community\.routeros/pull/386)\)\.
-
+
#### community\.sops
+* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.sops/pull/260](https\://github\.com/ansible\-collections/community\.sops/pull/260)\)\.
+* all modules and plugins \- the default of enable\_local\_keyservice changed from false to true\, and explicitly setting it to false now passes \-\-enable\-local\-keyservice\=false\. SOPS\' default has always been true\, and when setting this option to true so far it resulted in passing \-\-enable\-local\-keyservice\, which is equivalent to \-\-enable\-local\-keyservice\=true and had no effect\. This means that from now on\, setting enable\_local\_keyservice explicitly to false has an effect\. If enable\_local\_keyservice was not set before\, or was set to true\, nothing will change \([https\://github\.com/ansible\-collections/community\.sops/issues/261](https\://github\.com/ansible\-collections/community\.sops/issues/261)\, [https\://github\.com/ansible\-collections/community\.sops/pull/262](https\://github\.com/ansible\-collections/community\.sops/pull/262)\)\.
* install role \- sops\_install\_on\_localhost\=false was not working properly if the role was running on more than one host due to a bug in ansible\-core \([https\://github\.com/ansible\-collections/community\.sops/issues/223](https\://github\.com/ansible\-collections/community\.sops/issues/223)\, [https\://github\.com/ansible\-collections/community\.sops/pull/224](https\://github\.com/ansible\-collections/community\.sops/pull/224)\)\.
+* install role \- avoid deprecated parameter value for the ansible\.builtin\.uri module \([https\://github\.com/ansible\-collections/community\.sops/pull/255](https\://github\.com/ansible\-collections/community\.sops/pull/255)\)\.
* install role \- when used with Debian on ARM architecture\, the architecture name is now correctly translated from aarch64 to arm64 \([https\://github\.com/ansible\-collections/community\.sops/issues/220](https\://github\.com/ansible\-collections/community\.sops/issues/220)\, [https\://github\.com/ansible\-collections/community\.sops/pull/221](https\://github\.com/ansible\-collections/community\.sops/pull/221)\)\.
* load\_vars \- make evaluation compatible with Data Tagging in upcoming ansible\-core release \([https\://github\.com/ansible\-collections/community\.sops/pull/225](https\://github\.com/ansible\-collections/community\.sops/pull/225)\)\.
-
+
#### community\.vmware
+* Fix issues with pyvmomi 9\.0\.0\.0 \([https\://github\.com/ansible\-collections/community\.vmware/issues/2414](https\://github\.com/ansible\-collections/community\.vmware/issues/2414)\)\.
* vm\_device\_helper \- Fix \'invalid configuration for device\' error caused by missing fileoperation parameter\. \([https\://github\.com/ansible\-collections/community\.vmware/pull/2009](https\://github\.com/ansible\-collections/community\.vmware/pull/2009)\)\.
+* vm\_device\_helper \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
+* vmware\_deploy\_ovf \- Fix detection of HTTP range support in WebHandle to support HTTP/2 endpoints like Nexus that do not return accept\-ranges header \([https\://github\.com/ansible\-collections/community\.vmware/pull/2399](https\://github\.com/ansible\-collections/community\.vmware/pull/2399)\)\.
+* vmware\_dvs\_portgroup \- Fix idempotency issue with mac\_learning \([https\://github\.com/ansible\-collections/community\.vmware/issues/1873](https\://github\.com/ansible\-collections/community\.vmware/issues/1873)\)\.
* vmware\_guest \- Fix errors occuring during hardware version upgrade not being reported\. \([https\://github\.com/ansible\-collections/community\.vmware/pull/2010](https\://github\.com/ansible\-collections/community\.vmware/pull/2010)\)\.
* vmware\_guest \- Fix vmware\_guest always reporting change when using dvswitch\. \([https\://github\.com/ansible\-collections/community\.vmware/pull/2000](https\://github\.com/ansible\-collections/community\.vmware/pull/2000)\)\.
* vmware\_guest \- setting vApp properties on virtual machines without vApp options raised an AttributeError\. Fix now gracefully handles a None value for vApp options when retrieving current vApp properties \([https\://github\.com/ansible\-collections/community\.vmware/pull/2220](https\://github\.com/ansible\-collections/community\.vmware/pull/2220)\)\.
+* vmware\_guest\_controller \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
+* vmware\_guest\_disk \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
+* vmware\_guest\_file\_operation \- Fix to use custom port provided to the module \([https\://github\.com/ansible\-collections/community\.vmware/pull/2397](https\://github\.com/ansible\-collections/community\.vmware/pull/2397)\)\.
* vmware\_guest\_tools\_upgrade \- Account for all possible tools status \([https\://github\.com/ansible\-collections/community\.vmware/issues/2237](https\://github\.com/ansible\-collections/community\.vmware/issues/2237)\)\.
+* vmware\_host\_inventory \- New option enable\_backward\_compatability that can be set to false to work with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
* vmware\_object\_role\_permission \- The module ignores changing recursive \([https\://github\.com/ansible\-collections/community\.vmware/pull/2350](https\://github\.com/ansible\-collections/community\.vmware/pull/2350)\)\.
+* vmware\_target\_canonical\_info \- Fix an issue with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
+* vmware\_vm\_config\_option \- change to use \'disk\_ctl\_device\_type\' defined in \'device\_helper\' and add \'support\_cpu\_hotadd\'\, \'support\_memory\_hotadd\'\, \'support\_for\_create\' in output\. \([https\://github\.com/ansible\-collections/community\.vmware/pull/2428](https\://github\.com/ansible\-collections/community\.vmware/pull/2428)\)
+* vmware\_vm\_inventory \- New option enable\_backward\_compatability that can be set to false to work with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.vmware/pull/2391](https\://github\.com/ansible\-collections/community\.vmware/pull/2391)\)\.
+* vmware\_vmotion \- Fix issue with same resource pool name on different clusters \([https\://github\.com/ansible\-collections/community\.vmware/issues/1719](https\://github\.com/ansible\-collections/community\.vmware/issues/1719)\)\.
+
+
+#### community\.windows
-
+* win\_format \- fix crash when using path parameter without force option \([https\://github\.com/ansible\-collections/community\.windows/pull/615](https\://github\.com/ansible\-collections/community\.windows/pull/615)\)\.
+* win\_rabbitmq\_plugin \- removed redundant quotes that caused failures when specifying rabbitmq\_bin\_path \([https\://github\.com/ansible\-collections/community\.windows/issues/635](https\://github\.com/ansible\-collections/community\.windows/issues/635)\)\.
+* win\_scoop \- Fix issue when scoop is installed at a path with spaces like C\:\\Program Files \- [https\://github\.com/ansible\-collections/community\.windows/issues/614](https\://github\.com/ansible\-collections/community\.windows/issues/614)
+* win\_toast \- fix title and message in the notification\.
+
+
#### community\.zabbix
* Java Gateway Role \- Temporary work around to solve failure on RHEL9\.
+* Token Module \- Fixed integration with Zabbix 7\.4
+* host module \- Fixed idempotentcy related to changes in tag order\.
+* maintenace module \- Fixed idempotentcy related to changes in tag order\.
+* roles/zabbix\_agent \- Reading existing PSK files failed on Windows
+* roles/zabbix\_agent \- UserParameterDir get wrong value if var zabbix\_agent\_userparamaterdir is set
+* roles/zabbix\_repo \- debian architectures should map better for i386 and armhf
+* roles/zabbix\_repo \- debian/ubuntu arm64 repo url fixed for zabbix 7\.2
* zabbix inventory plugin \- do not require login\_user and login\_password to be present when auth\_token is provided \([https\://github\.com/ansible\-collections/community\.zabbix/pull/1439](https\://github\.com/ansible\-collections/community\.zabbix/pull/1439)\)\.
* zabbix\_agent Role \- Add Zabbix 7\.0 LTS in supported versions for windows\.
+* zabbix\_agent Role \- Add \_zabbix\_agent\_pluginsocket variable to override /tmp/agent\.plugin\.sock
* zabbix\_agent Role \- Added ability to set the monitored\_by and proxy\_group values\.
* zabbix\_agent Role \- Set become parameter explicitly to false for API tasks to run without sudo on the local computer\.
+* zabbix\_service \- fix propagation\_value and propagation\_rule parameters
+* zabbix\_template\_info module \- Dump YAML formatted template data without date in Zabbix 7\.0 or higher\.
+* zabbix\_web role \- fix /etc/zabbix/web/zabbix\.conf\.php file mode\.
-
+
#### containers\.podman
+* Document that sdnotify can be set to healthy
* Don\'t pull image when state is absent or pull\=never \(\#889\)
+* Fix CI for podman\_image\_info
+* Fix None values in LogOpt in Quadlet
+* Fix conditions in CI jobs
+* Fix idempotency for any podman secret driver
* Fix idempotency for containers with env vars containing MAX\_SIZE \(\#893\)
+* Fix idempotency for systemd keyword
* Fix list tags failure in podman\_search \(\#875\)
* Fix podman\_container\_copy examples \(\#882\)
+* Fix setuptools
+* Handle image arguments in podman\_container
+* Remove docker protocol when inspecting image
+* Set custom tmpfs idempotency
+* Use usedforsecurity for hashlib\.sha256 only in python version \>\=3\.9
+* correctly quote labels and environment variables for quadlets
+* doc \- podman\_secret \- fix indentation error in example
* docs\(podman\_container\) \- improve comments on network property \(\#878\)
+* fix\(podman\_image\) \- correct intendation on \'loop\' keyword
#### dellemc\.enterprise\_sonic
@@ -7959,29 +4016,40 @@
* sonic\_vrrp \- Update delete handling to fix regression failure \([https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/455](https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/455)\)\.
* sonic\_vxlan \- Fix failing regression tests for sonic\_vxlan \([https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/471](https\://github\.com/ansible\-collections/dellemc\.enterprise\_sonic/pull/471)\)\.
-
+
#### dellemc\.openmanage
* Internal defect fixes were done for the following modules \- idrac\_network\_attributes\, idrac\_certificates\, idrac\_redfish\_storage\_controller\, idrac\_boot\_order and idrac\_firmware
* Resolved the issue in idrac\_redfish\_storage\_volume module where it returns 404 error on job creation when enabling encryption for virtual drives\. \([https\://github\.com/dell/dellemc\-openmanage\-ansible\-modules/issues](https\://github\.com/dell/dellemc\-openmanage\-ansible\-modules/issues) /713\)
* idrac\_certificates \- \(Issue 737\) \- Fixed SSL CSR generation for 4096 key size\.
+* idrac\_system\_info \- \(Issue 812\) \- idrac\_system\_info fails on iDRAC10\.
+
+
+#### dellemc\.powerflex
+
+* snapshot\_policy \- Renamed snapshotAccessMode and secureSnapshots to snapshot\_access\_mode and secure\_snapshots respectively\.
-
+
#### f5networks\.f5\_modules
+* added github actions
* bigip\_firewall\_address\_list to support both cidr and route domain
* bigip\_monitor\_external \- external monitor user\-defined variables not reflected for non\-common partition
* bigip\_profile\_server\_ssl \- Fixed bug \- create server SSL profile if SSL key is passphrase protected
* bigip\_profile\_server\_ssl to support parent\'s \[None\, \"\"\, \"None\"\] profiles
* bigip\_snmp\_community \- Allow v3 usernames that begin with a number or contains any special characters\.
+* bigip\_virtual\_server fix module crash issue
+* fixed automation hub import log issues
-
+
#### fortinet\.fortimanager
+* Added \"gather\_facts\" to all example playbooks\.
* Changed all input argument name in ansible built\-in documentation to the underscore format\. E\.g\.\, changed \"var\-name\" to \"var\_name\"\.
* Changed parameter type of some parameters\.
* Changed the default playbook examples for each module to pass ansible\-lint\.
* Corrected mainkey of some modules\.
+* Fixed a BUG that occurred when username/password and access token were used at the same time\.
* Fixed a bug where rc\_failed and rc\_succeeded did not work\.
* Improved code logic\, reduced redundant requests for system information\.
* Modified built\-in document to support sanity tests in ansible\-core 2\.18\.0\. No functionality changed\.
@@ -7994,17 +4062,39 @@
* Github Issue
* Mantis Issue
-
+
+#### google\.cloud
+
+* ansible \- 2\.17 is now the minimum version supported
+* ansible \- 3\.11 is now the minimum Python version
+* ansible\-test \- fixed sanity tests
+* ansible\-test \- integration tests are now run against 2\.17 and 2\.18
+* gcp\_bigquery\_table \- fixed nested schema definitions \([https\://github\.com/ansible\-collections/google\.cloud/issues/637](https\://github\.com/ansible\-collections/google\.cloud/issues/637)\)\.
+* gcp\_bigquery\_table \- properly handle BigQuery table clustering fields
+* gcp\_compute \- fixed get\_project\_disks to process all responses \([https\://github\.com/ansible\-collections/google\.cloud/pull/677](https\://github\.com/ansible\-collections/google\.cloud/pull/677)\)\.
+* gcp\_pubsub\_subscription \- fixed improper subscription uprade PATCH request
+* gcp\_secret\_manager \- cleaned up error responses \([https\://github\.com/ansible\-collections/google\.cloud/pull/690](https\://github\.com/ansible\-collections/google\.cloud/pull/690)\)\.
+* gcp\_serviceusage\_service \- updated documentation \([https\://github\.com/ansible\-collections/google\.cloud/pull/691](https\://github\.com/ansible\-collections/google\.cloud/pull/691)\)\.
+* run integration test with Ansible 2\.16 to match requires\_ansible version
+* updated README to match required format \([https\://github\.com/ansible\-collections/google\.cloud/pull/682](https\://github\.com/ansible\-collections/google\.cloud/pull/682)\)\.
+
+
#### hetzner\.hcloud
+* All returned resource IDs are now integers instead of strings\.
* hcloud\_load\_balancer\_service \- Improve unknown certificate id or name error\.
* hcloud\_server \- Only rebuild existing servers\, skip rebuild if the server was just created\.
+* server \- The placement\_group argument now correctly handles placement group IDs during updates\.
+* volume\_attachment \- Add hcloud\_volume\_attachment alias to volume\_attachment module\.
+* volume\_attachment \- Add volume\_attachment module to action group all\.
-
+
#### ibm\.storage\_virtualize
* ibm\_svc\_manage\_flashcopy \- Added support for creating flashcopy with existing target volume
* ibm\_svc\_manage\_replication \- Added checks for mutually\-exclusive parameters and policing for updating remote\-copy relationship
+* ibm\_svc\_ssh \- Added fix for nginx timeout
+* ibm\_svc\_utils \- Added fix for nginx timeout
#### infoblox\.nios\_modules
@@ -8012,7 +4102,12 @@
* For Host IPv6\, the mac parameter has been renamed to duid\.
* Refined Host record return fields to ensure use\_nextserver and nextserver are only included for IPv4\, as these fields are not applicable to IPv6\.
-
+
+#### junipernetworks\.junos
+
+* Fixes interface\_type parameter in the proccesses block\.
+
+
#### kubernetes\.core
* helm \- Helm version checks did not support RC versions\. They now accept any version tags\. \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/745](https\://github\.com/ansible\-collections/kubernetes\.core/pull/745)\)\.
@@ -8021,26 +4116,51 @@
* k8s\_drain \- Fix k8s\_drain runs into a timeout when evicting a pod which is part of a stateful set \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/792](https\://github\.com/ansible\-collections/kubernetes\.core/issues/792)\)\.
* kubeconfig option should not appear in module invocation log \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/782](https\://github\.com/ansible\-collections/kubernetes\.core/issues/782)\)\.
* kustomize \- kustomize plugin fails with deprecation warnings \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/639](https\://github\.com/ansible\-collections/kubernetes\.core/issues/639)\)\.
+* module\_utils/k8s/service \- fix issue when trying to delete resource using delete\_options and check\_mode\=true \([https\://github\.com/ansible\-collections/kubernetes\.core/issues/892](https\://github\.com/ansible\-collections/kubernetes\.core/issues/892)\)\.
+* module\_utils/k8s/service \- hide fields first before creating diffs \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/915](https\://github\.com/ansible\-collections/kubernetes\.core/pull/915)\)\.
* waiter \- Fix waiting for daemonset when desired number of pods is 0\. \([https\://github\.com/ansible\-collections/kubernetes\.core/pull/756](https\://github\.com/ansible\-collections/kubernetes\.core/pull/756)\)\.
-
+
#### lowlydba\.sqlserver
* Fix error that occurred when creating a login with skip\_password\_reset as true\. \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/287](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/287)\)
* Fix error when creating an agent job schedule with enabled as true\. \([https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/288](https\://github\.com/lowlydba/lowlydba\.sqlserver/pull/288)\)
-
+
+#### microsoft\.ad
+
+* ldap inventory \- Fix up support for Ansible 2\.19\.
+* microsoft\.ad\.ldap \- Ensure the encrypted LAPS value is marked as unsafe to stop unexpected templating of the raw JSON result value \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/194](https\://github\.com/ansible\-collections/microsoft\.ad/issues/194)
+* microsoft\.ad\.object\_info \- Correctly return multivalued attributes with one entry as array with on item \(instead of returning a string\) \- [https\://github\.com/ansible\-collections/microsoft\.ad/issues/199](https\://github\.com/ansible\-collections/microsoft\.ad/issues/199)
+
+
#### netapp\.ontap
+* Corrected typo in email address from ng\-ansibleteam\@netapp\.com to ng\-ansible\-team\@netapp\.com across Ansible collection\.
* Resolved Ansible lint issues\.
* all modules supporting REST \- avoid duplicate calls to api/cluster to get ONTAP version\.
* na\_ontap\_aggregate \- fix issue with \'raid\_type\' change in REST\.
* na\_ontap\_broadcast\_domain \- fix issue with port modification in REST\.
+* na\_ontap\_cg\_snapshot \- fixed issue with CG not being found with given volumes in REST\.
+* na\_ontap\_ems\_config \- fix issue with support check mode when proxy\_password is not set in REST\.
+* na\_ontap\_firmware\_upgrade \- fixed typo in example\.
* na\_ontap\_flexcache \- fix typo error in the query \'origins\.cluster\.name\' in REST\.
* na\_ontap\_kerberos\_interface \- updated example in module documentation\.
+* na\_ontap\_ndmp \- fix idempotency issue and added example for ndmp user generate password in REST\.
* na\_ontap\_qtree \- fix timeout issue with qtree delete in REST\.
+* na\_ontap\_quotas \- changed examples in documentation for type\.
* na\_ontap\_rest\_info \- rectified subset name to cluster/firmware/history\.
+* na\_ontap\_snapmirror \- fix delete snapmirror timeout issue by retrying in REST\.
* na\_ontap\_snapshot\_policy \- fix issue with \'retention\_period\' in REST\.
+* na\_ontap\_software\_update \- Updated documentation for https\.
+* na\_ontap\_user \- fixed issue with idempotency while creating a user account in REST\.
+* na\_ontap\_user\_role \- fix issue with modifying privileges in REST\.
+* na\_ontap\_volume \- fixed indentation in example\.
+
+
+#### netapp\.storagegrid
+
+* na\_sg\_org\_user \- fix where existing users with no groups attached were not getting any groups added\.
#### netbox\.netbox
@@ -8050,13 +4170,21 @@
* fix call /api/status/ instead /api/status in nb\_inventory plugin\. \([https\://github\.com/netbox\-community/ansible\_modules/issues/1335](https\://github\.com/netbox\-community/ansible\_modules/issues/1335)\)\.
* netbox\_ip\_address \- Fixed the problem preventing assignment of an IP address to a network interface
-
+
+#### ovirt\.ovirt
+
+* ovirt\_disk \- fix documentation for lun\_id parameter \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/740](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/740)\)
+* ovirt\_proxied\_check \- fix documentation string \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/761](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/761)\)
+* roles \- Fix ansible\-test errors change include to include\_tasks \([https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/733](https\://github\.com/oVirt/ovirt\-ansible\-collection/pull/733)\)\.
+
+
#### purestorage\.flasharray
* purefa\_alert \- Fix unreferenced variable error
* purefa\_audits \- Fix issue when start parameter not supplied
* purefa\_dirsnap \- Fixed issues with keep\_for setting and issues related to recovery of deleted snapshots
* purefa\_ds \- Fixed issue with trying to create a pre\-existing system\-defined role
+* purefa\_ds \- Fixed issue with updaing a LDAP configuration fails with a list error\.
* purefa\_dsrole \- Fixed bug in role creation\.
* purefa\_dsrole \- Fixed bug with DS role having no group or group base cannot be updated
* purefa\_eradication \- Fix incorrect timer settings
@@ -8073,91 +4201,199 @@
* purefa\_pgsnap \- Fixed issue with overwrite failing
* purefa\_pod \- Allow pd to be deleted with contents if delete\_contents specified
* purefa\_pod \- Errored out when setting failover preference for pod
+* purefa\_proxy \- Fixed issue with incorrect string comparison
* purefa\_ra \- Fixed duration check logic
* purefa\_sessions \- Correctly report sessions with no start or end time
* purefa\_smtp \- Fixed SMTP deletion issue
* purefa\_snmp \- Fix issues with deleting SNMP entries
* purefa\_snmp\_agent \- Fix issues with deleting v3 agent
* purefa\_vg \- Fixed idempotency issue when clearing volume group QoS settings
+* purefa\_vg \- Fixed issue where VG QoS updates were being ignored
* purefa\_vg \- Fixed issue with creating non\-QoS volume groups
* purefa\_vlan \- Allow LACP bonds to be subnet interfaces
* purefa\_volume \- Added error message to warn about moving protected volume
* purefa\_volume \- Errors out when pgroup and add\_to\_pgs used incorrectly
+* purefa\_volume \- Fixed issue for error on volume delete w/o eradicate
* purefa\_volume \- Fixed issue of unable to move volume from pod to vgroup
* purefa\_volume \- Fixes issue of moving protected volume into volume group
-
+
#### purestorage\.flashblade
* purefb\_bucket \- Fixed issue with idempotency reported when hard\_limit not provided\.
+* purefb\_bucket \- Resolved issue with removing bucket quota
* purefb\_info \- Fixed AttributeError for snapshot subset when snapshot had been created manually\, rather than using a snapshot policy
+* purefb\_info \- Fixed issue after SMD Directory Services no longer avaible from REST 2\.16
* purefb\_info \- Fixed issue with admin token creation time and bucket policies
+* purefb\_policy \- Fixed creation of snapshot policies with assigned filesystems and/or replica links
* purefb\_policy \- Fixed syntax error is account name\.
+* purefb\_s3acc \- Fixed issue with public access config settings not being correctly for an account
* purefb\_smtp \- Fix errors that occurred after adding support for smtp encrpytion and using the module on older FlashBlades\.
* purefb\_snap \- Fixed issue where target incorrectly required for a regular snapshot
-
+
#### telekom\_mms\.icinga\_director
* Add Icinga notification template imports \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/267](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/267)\)
+* Bug\: dependency apply module raises error when using a variable for parent host or service \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/276](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/276)\)
+* Extend checks in diff as a workaround for type confusion with the Director API \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/278](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/278)\)
+* add \'groups\' parameter to task \'icinga\_user\.yml\' \([https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/284](https\://github\.com/telekom\-mms/ansible\-collection\-icinga\-director/pull/284)\)
-
+
#### theforeman\.foreman
+* activation\_key \- ensure LCE and CV are always sent together when updating one of them
* callback plugin \- fix another exception when serializing secrets \([https\://github\.com/theforeman/foreman\-ansible\-modules/pull/1819](https\://github\.com/theforeman/foreman\-ansible\-modules/pull/1819)\)
+* content\_upload \- lower chunk size to 1MB to avoid generating too big requests \([https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1862](https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1862)\)
+* host \- ensure LCE and CV are always sent together when updating one of them
+* hostgroup \- fix idempotency of hostgroup module when assigning Ansible roles to a hostgroup with a parent hostgroup \([https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1865](https\://github\.com/theforeman/foreman\-ansible\-modules/issues/1865)\)
* inventory \- Drop fallback to Host API when Reports API fails\, as this leads to possibly wrong data being used
-
+
#### vmware\.vmware
+* Make integration tests compatible with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/194](https\://github\.com/ansible\-collections/vmware\.vmware/issues/194)\)
* client utils \- Fixed error message when required library could not be imported
+* cluster\_drs \- Fix error when non\-string advanced settings are applied \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/190](https\://github\.com/ansible\-collections/vmware\.vmware/issues/190)\)
+* cluster\_ha \- Fix error when non\-string advanced settings are applied \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/190](https\://github\.com/ansible\-collections/vmware\.vmware/issues/190)\)
+* cluster\_ha \- Fix exception when cluster ha module checks for differences with VM monitoring configs
+* cluster\_ha \- fix typo that causes PDL response mode \'restart\' to throw an error
* content\_library\_item\_info \- Library name and ID are ignored if item ID is provided so updated docs and arg parse rules to reflect this
+* content\_template \- Fix error when creating template from VM and not specifying certain non\-critical placement options
+* content\_template \- Replace non\-existent method used when handling api errors
+* deploy\_\* \- Fix issue where datastore was expected even though it is optional
+* deploy\_content\_library\_ovf \- fix error when deploying from a datastore cluster by simplifying the ds selection process
+* fix method to lookup datastore clusters by name or moid [https\://github\.com/ansible\-collections/vmware\.vmware/issues/152](https\://github\.com/ansible\-collections/vmware\.vmware/issues/152)
* folder \- replaced non\-existent \'storage\' type with \'datastore\' type
+* inventory plugins \- fix issue where cache did not work \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/175](https\://github\.com/ansible\-collections/vmware\.vmware/issues/175)\)
* module\_deploy\_vm\_base \- fix attribute error when deploying to a resource pool
+* pyvmomi \- Replace deprecated JSON encoder with new one from pyvmomi package \([https\://github\.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG\.md\?plain\=1\#L72](https\://github\.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG\.md\?plain\=1\#L72)\)
+* tests/integration/vmware\_folder\_template\_from\_vm \- Fix tests for 2\.19
+* vcsa\_settings \- Fix bug where proxy settings cannot be disabled\, even if enabled is set to false\. \([https\://github\.com/ansible\-collections/vmware\.vmware/issues/207](https\://github\.com/ansible\-collections/vmware\.vmware/issues/207)\)
+* vm\_snapshot \- Make sure snapshot output is always included if state is present
* vms inventory \- fix handling of VMs within VApps
-
+
#### vmware\.vmware\_rest
+* Allow cloud\.common 5\.0\.0 and later again \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/614](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/614)\)\.
* lookup plugins \- Fixed issue where datacenter search filter was never properly set
* module\_utils \- fixed return value for vmware\.vmware\_rest\.vcenter\_vm\_guest\_filesystem\_directories module
* vcenter\_ovf\_libraryitem \- Update documentation to mention the metadata cannot be updated via conventional means\. Added example showing workaround \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/385](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/issues/385)\)
-
+
+#### vyos\.vyos
+
+* vyos\_config \- Fix change detection for recent Vyos versions
+* vyos\_firewall\_global \- Fix removing last member of a firewall group\.
+* vyos\_firewall\_global \- Fixed ipv6 route\-redirects and tests
+* vyos\_firewall\_global \- Fixed parsing of global\-options \(1\.4\+\)
+* vyos\_firewall\_global \- Fixed state\-policy deletion \(partial and full\)
+* vyos\_firewall\_global \- fixed behavior for stanzas processing by facts in 1\.4\+ \(e\.g\. present/absent stanza vs enable/disable\)
+* vyos\_firewall\_global \- fixed the facts parsers to include state\-policies\, redirect
+* vyos\_firewall\_rules \- Allow deleting of firewall description\.
+* vyos\_firewall\_rules \- Fix limit parameter processing
+* vyos\_firewall\_rules \- fixed behavior for log\, disable attributes
+* vyos\_firewall\_rules \- fixed behavior for override and replaced states
+* vyos\_interfaces \- fixed bug where \'replace\' would delete an active disable and not reinstate it
+* vyos\_interfaces \- fixed over\-zealous handling of disable\, which could catch other interface items that are disabled\.
+* vyos\_l3\_interfaces \- fix delete in interfaces to remove vif completely if in affected interface
+* vyos\_l3\_interfaces \- fix override in interfaces to remove vif completely if not present in new config
+* vyos\_l3\_interfaces \- fix replace in interfaces to remove vif completely if not present in new config
+* vyos\_logging\_global \- Fixed v1\.3 and before when protocol and level were set for the same host
+* vyos\_ospf\_interfaces \- fixed get\_config to cater for unordered command lists in 1\.4\+
+* vyos\_ospfv2 \- passive\-interface processing for 1\.3\- and 1\.4\+
+* vyos\_ospfv3 \- added support for adding interfaces to areas
+* vyos\_static routes \- fixed the facts\, argspecs\, config to include interface\-routes
+* vyos\_user \- fix handling of full\-name in parser and module
+
+
### Known Issues
-
+
+#### community\.general
+
+* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- note that ansible\-core\'s Data Tagging feature implements new aliases\, such as \_AnsibleTaggedStr for str\, \_AnsibleTaggedInt for int\, and \_AnsibleTaggedFloat for float \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\.
+
+
+#### community\.hrobot
+
+* storagebox\* modules \- the Hetzner Robot API for storage boxes is [deprecated and will be sunset on July 30\, 2025](https\://docs\.hetzner\.cloud/changelog\#2025\-06\-25\-new\-api\-for\-storage\-boxes)\. The modules are currently not compatible with the new API\. We will try to adjust them until then\, but usage and return values might change slightly due to differences in the APIs\.
+ For the new API\, an API token needs to be registered and provided as hetzner\_token \([https\://github\.com/ansible\-collections/community\.hrobot/pull/166](https\://github\.com/ansible\-collections/community\.hrobot/pull/166)\)\.
+
+
+#### community\.libvirt
+
+* virt\_volume \- check\_mode is disabled\. It was not fully supported in the previous code either \(\'state/present\'\, \'command/create\' did not support it\)\.
+
+
#### dellemc\.openmanage
+* idrac\_attributes \- The module accepts both the string as well as integer value for the field \"SNMP\.1\.AgentCommunity\" for iDRAC10\.
* idrac\_diagnostics \- Issue\(285322\) \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
+* idrac\_diagnostics \- This module doesn\'t support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy\.
* idrac\_firmware \- Issue\(279282\) \- This module does not support firmware update using HTTP\, HTTPS\, and FTP shares with authentication on iDRAC8\.
* ome\_smart\_fabric\_uplink \- Issue\(186024\) \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
+* ome\_smart\_fabric\_uplink \- The module supported by OpenManage Enterprise Modular\, however it does not allow the creation of multiple uplinks of the same name\. If an uplink is created using the same name as an existing uplink\, then the existing uplink is modified\.
-
+
#### purestorage\.flasharray
* All Fusion fleet members will be assumed to be at the same Purity//FA version level as the array connected to by Ansible\.
* FlashArray//CBS is not currently supported as a member of a Fusion fleet
-
+
+#### vmware\.vmware\_rest
+
+* The lookup plugins use cloud\.common\, but this collection does not support ansible\-core 2\.19 or higher \([https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/621](https\://github\.com/ansible\-collections/vmware\.vmware\_rest/pull/621)\)\.
+
+
+#### vyos\.vyos
+
+* existing code for 1\.3 facility protocol and facility level are not compatible\, only one will be set and level is the priority\.
+
+
### New Plugins
-
+
+#### Callback
+
+* community\.general\.print\_task \- Prints playbook task snippet to job output\.
+* community\.general\.tasks\_only \- Only show tasks\.
+
+
+#### Connection
+
+* community\.general\.wsl \- Run tasks in WSL distribution using wsl\.exe CLI via SSH\.
+
+
#### Filter
* community\.dns\.reverse\_pointer \- Convert an IP address into a DNS name for reverse lookup\.
+* community\.general\.accumulate \- Produce a list of accumulated sums of the input list contents\.
+* community\.general\.json\_diff \- Create a JSON patch by comparing two JSON files\.
+* community\.general\.json\_patch \- Apply a JSON\-Patch \(RFC 6902\) operation to an object\.
+* community\.general\.json\_patch\_recipe \- Apply JSON\-Patch \(RFC 6902\) operations to an object\.
+* community\.general\.to\_prettytable \- Format a list of dictionaries as an ASCII table\.
* microsoft\.ad\.split\_dn \- Splits an LDAP DistinguishedName\.
-
+
+#### Inventory
+
+* community\.general\.iocage \- iocage inventory source\.
+
+
#### Lookup
* community\.dns\.reverse\_lookup \- Reverse\-look up IP addresses\.
+* community\.general\.binary\_file \- Read binary file and return it Base64 encoded\.
+* community\.general\.onepassword\_ssh\_key \- Fetch SSH keys stored in 1Password\.
* infoblox\.nios\_modules\.nios\_next\_vlan\_id \- Return the next available VLAN ID
-
+
### New Modules
-
+
#### amazon\.aws
* amazon\.aws\.ec2\_dedicated\_host \- Create\, update or delete \(release\) EC2 dedicated host
@@ -8165,7 +4401,7 @@
* amazon\.aws\.rds\_instance\_param\_group\_info \- Describes the RDS parameter group\.
* amazon\.aws\.route53\_key\_signing\_key \- Manages a key\-signing key \(KSK\)
-
+
#### ansible\.windows
* ansible\.windows\.win\_audit\_policy\_system \- Used to make changes to the system wide Audit Policy
@@ -8201,22 +4437,70 @@
* check\_point\.mgmt\.cp\_mgmt\_user\_template \- Manages user\-template objects on Checkpoint over Web Services API
* check\_point\.mgmt\.cp\_mgmt\_user\_template\_facts \- Get user\-template objects facts on Checkpoint over Web Services API
-
+
+#### cisco\.aci
+
+* cisco\.aci\.aci\_interface\_policy\_port\_channel\_member \- Manage Port Channel Member interface policies \(lacp\:IfPol\)
+* cisco\.aci\.aci\_l4l7\_concrete\_device \- Manage L4\-L7 Concrete Devices \(vns\:CDev\)
+* cisco\.aci\.aci\_l4l7\_concrete\_interface \- Manage L4\-L7 Concrete Interfaces \(vns\:CIf\)
+* cisco\.aci\.aci\_l4l7\_concrete\_interface\_attachment \- Manage L4\-L7 Concrete Interface Attachment \(vns\:RsCIfAttN\)
+* cisco\.aci\.aci\_l4l7\_device \- Manage L4\-L7 Devices \(vns\:LDevVip\)
+* cisco\.aci\.aci\_l4l7\_device\_selection\_interface\_context \- Manage L4\-L7 Device Selection Policy Logical Interface Contexts \(vns\:LIfCtx\)
+* cisco\.aci\.aci\_l4l7\_device\_selection\_policy \- Manage L4\-L7 Device Selection Policies \(vns\:LDevCtx\)
+* cisco\.aci\.aci\_l4l7\_logical\_interface \- Manage L4\-L7 Logical Interface \(vns\:LIf\)
+* cisco\.aci\.aci\_l4l7\_policy\_based\_redirect \- Manage L4\-L7 Policy Based Redirection Policies \(vns\:SvcRedirectPol\)
+* cisco\.aci\.aci\_l4l7\_policy\_based\_redirect\_destination \- Manage L4\-L7 Policy Based Redirect Destinations \(vns\:RedirectDest and vns\:L1L2RedirectDest\)
+* cisco\.aci\.aci\_l4l7\_redirect\_health\_group \- Manage L4\-L7 Redirect Health Groups \(vns\:RedirectHealthGroup\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template \- Manage L4\-L7 Service Graph Templates \(vns\:AbsGraph\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_connection \- Manage L4\-L7 Service Graph Template Abs Connections \(vns\:AbsConnection\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_connection\_to\_connector \- Manage L4\-L7 Service Graph Template Connections between function nodes and terminal nodes \(vns\:RsAbsConnectionConns\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_functional\_connection \- Manage L4\-L7 Service Graph Templates Functional Connections \(vns\:AbsFuncConn\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_node \- Manage L4\-L7 Service Graph Templates Nodes \(vns\:AbsNode\)
+* cisco\.aci\.aci\_l4l7\_service\_graph\_template\_term\_node \- Manage L4\-L7 SGT Term Nodes \(vns\:AbsTermNodeCon\, vns\:AbsTermNodeProv and vns\:AbsTermConn\)
+* cisco\.aci\.aci\_node\_mgmt\_epg\_to\_contract \- Bind Node Management EPGs to Contracts \(fv\:RsCons\, fv\:RsProv\, fv\:RsProtBy\, fv\:RsConsIf and mgmt\:RsOoBProv\)
+* cisco\.aci\.aci\_oob\_contract \- Manage Out\-of\-Band \(OOB\) Contract resources \(vz\:OOBBrCP\)
+* cisco\.aci\.aci\_vmm\_enhanced\_lag\_policy \- Manage Enhanced LACP Policy for Virtual Machine Manager \(VMM\) in Cisco ACI \(lacp\:EnhancedLagPol\)
+* cisco\.aci\.aci\_vrf\_fallback\_route\_group \- Manage VRF Fallback Route Groups \(fv\:FBRGroup\, fv\:FBRoute\, and fv\:FBRMember\)
+
+
#### cisco\.ios
* cisco\.ios\.ios\_evpn\_ethernet \- Resource module to configure L2VPN EVPN Ethernet Segment\.
-
+
#### cisco\.iosxr
* cisco\.iosxr\.iosxr\_vrf\_interfaces \- Resource module to configure VRF interfaces\.
-
+
+#### cisco\.mso
+
+* cisco\.mso\.ndo\_fabric\_span\_session \- Manage Fabric SPAN Sessions on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_fabric\_span\_session\_source \- Manage Fabric SPAN Sessions Source on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_fabric\_span\_session\_source\_filter \- Manage Fabric SPAN Sessions Source Filter on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_l3out\_bgp\_peer \- Manage L3Out BGP Peer on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_l3out\_node\_static\_route \- Manage L3Out Node Static Routes on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_l3out\_node\_static\_route\_next\_hop \- Manage L3Out Node Static Route Next Hops on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_l3out\_routed\_interface \- Manage L3Out Routed Interfaces on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_l3out\_routed\_sub\_interface \- Manage L3Out Routed Sub\-Interfaces on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_pod\_profile \- Manage Pod Profiles on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_pod\_settings \- Manage Pod Settings on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_qos\_class\_policy \- Manage QoS Class Policies on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_schema\_template\_contract\_service\_chain \- Manage the Schema Template Contract Service Chaining workflow on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_service\_device\_cluster \- Manage Service Device Clusters on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+* cisco\.mso\.ndo\_tenant\_span\_session \- Manage Tenant SPAN Sessions on Cisco Nexus Dashboard Orchestrator \(NDO\)\.
+
+
#### cisco\.nxos
* cisco\.nxos\.nxos\_vrf\_address\_family \- Resource module to configure VRF address family definitions\.
-
+
+#### cloudscale\_ch\.cloud
+
+* cloudscale\_ch\.cloud\.volume\_snapshot \- Manage volume snapshots on the cloudscale\.ch IaaS service
+
+
#### community\.crypto
* community\.crypto\.acme\_certificate\_order\_create \- Create an ACME v2 order\.
@@ -8224,62 +4508,120 @@
* community\.crypto\.acme\_certificate\_order\_info \- Obtain information for an ACME v2 order\.
* community\.crypto\.acme\_certificate\_order\_validate \- Validate authorizations of an ACME v2 order\.
-
+
+#### community\.dns
+
+* community\.dns\.adguardhome\_rewrite \- Add\, update or delete DNS rewrite rules from AdGuardHome\.
+* community\.dns\.adguardhome\_rewrite\_info \- Retrieve DNS rewrite rules from AdGuardHome\.
+
+
#### community\.docker
* community\.docker\.docker\_context\_info \- Retrieve information on Docker contexts for the current user\.
-
+
#### community\.general
+* community\.general\.android\_sdk \- Manages Android SDK packages\.
+* community\.general\.decompress \- Decompresses compressed files\.
+* community\.general\.jenkins\_credential \- Manage Jenkins credentials and domains via API\.
+* community\.general\.ldap\_inc \- Use the Modify\-Increment LDAP V3 feature to increment an attribute value\.
+* community\.general\.lvm\_pv \- Manage LVM Physical Volumes\.
+* community\.general\.lvm\_pv\_move\_data \- Move data between LVM Physical Volumes \(PVs\)\.
+* community\.general\.pacemaker\_info \- Gather information about Pacemaker cluster\.
* community\.general\.pacemaker\_resource \- Manage pacemaker resources\.
+* community\.general\.systemd\_creds\_decrypt \- C\(systemd\)\'s C\(systemd\-creds decrypt\) plugin\.
+* community\.general\.systemd\_creds\_encrypt \- C\(systemd\)\'s C\(systemd\-creds encrypt\) plugin\.
+* community\.general\.systemd\_info \- Gather C\(systemd\) unit info\.
+* community\.general\.xdg\_mime \- Set default handler for MIME types\, for applications using XDG tools\.
+* community\.general\.zpool \- Manage ZFS zpools\.
-
+
#### community\.hrobot
* community\.hrobot\.reset\_info \- Query information on the resetter of a dedicated server\.
* community\.hrobot\.storagebox \- Modify a storage box\'s basic configuration\.
* community\.hrobot\.storagebox\_info \- Query information on one or more storage boxes\.
* community\.hrobot\.storagebox\_set\_password \- \(Re\)set the password for a storage box\.
+* community\.hrobot\.storagebox\_snapshot \- Create\, update\, or delete a snapshot of a storage box\.
+* community\.hrobot\.storagebox\_snapshot\_info \- Query the snapshots for a storage box\.
* community\.hrobot\.storagebox\_snapshot\_plan \- Modify a storage box\'s snapshot plans\.
* community\.hrobot\.storagebox\_snapshot\_plan\_info \- Query the snapshot plans for a storage box\.
+* community\.hrobot\.storagebox\_subaccount \- Create\, update\, or delete a subaccount for a storage box\.
+* community\.hrobot\.storagebox\_subaccount\_info \- Query the subaccounts for a storage box\.
-
+
+#### community\.libvirt
+
+* community\.libvirt\.virt\_install \- Provision new virtual machines using virt\-install tool
+* community\.libvirt\.virt\_volume \- Manage libvirt volumes inside a storage pool
+
+
#### community\.postgresql
* community\.postgresql\.postgresql\_alter\_system \- Change a PostgreSQL server configuration parameter
-
+
#### community\.vmware
* community\.vmware\.vmware\_drs\_override \- Configure DRS behavior for a specific VM in vSphere
-
+
#### community\.zabbix
* community\.zabbix\.zabbix\_connector \- Create/Delete/Update Zabbix connectors
* community\.zabbix\.zabbix\_regexp\_info \- Retrieve Zabbix regular expression
+
+#### containers\.podman
+
+* containers\.podman\.podman\_system\_info \- Get podman system information from host machine
+
#### dellemc\.enterprise\_sonic
* dellemc\.enterprise\_sonic\.sonic\_ssh \- Manage SSH configurations on SONiC\.
-
+
#### dellemc\.powerflex
* dellemc\.powerflex\.nvme\_host \- Manage NVMe Hosts on Dell PowerFlex
* dellemc\.powerflex\.sdt \- Manage SDTs on Dell PowerFlex
-
+
#### fortinet\.fortimanager
+* fortinet\.fortimanager\.fmgr\_dlp\_exactdatamatch \- Configure exact\-data\-match template used by DLP scan\.
+* fortinet\.fortimanager\.fmgr\_dlp\_exactdatamatch\_columns \- DLP exact\-data\-match column types\.
+* fortinet\.fortimanager\.fmgr\_dlp\_label \- Configure labels used by DLP blocking\.
+* fortinet\.fortimanager\.fmgr\_dlp\_label\_entries \- DLP label entries\.
+* fortinet\.fortimanager\.fmgr\_extensioncontroller\_extendervap \- FortiExtender wifi vap configuration\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension \- Configure Internet Services Extension\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry \- Disable entries in the Internet Service database\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_ip6range \- IPv6 ranges in the disable entry\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_iprange \- IPv4 ranges in the disable entry\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_disableentry\_portrange \- Port ranges in the disable entry\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_entry \- Entries added to the Internet Service extension database\.
+* fortinet\.fortimanager\.fmgr\_firewall\_internetserviceextension\_entry\_portrange \- Port ranges in the custom entry\.
+* fortinet\.fortimanager\.fmgr\_fmupdate\_fgdsetting \- Cli fmupdate fgd setting
+* fortinet\.fortimanager\.fmgr\_fmupdate\_fgdsetting\_serveroverride \- Cli fmupdate fgd setting server override
* fortinet\.fortimanager\.fmgr\_gtp\_ieallowlist \- IE allow list\.
* fortinet\.fortimanager\.fmgr\_gtp\_ieallowlist\_entries \- Entries of allow list for unknown or out\-of\-state IEs\.
+* fortinet\.fortimanager\.fmgr\_gtp\_rattimeoutprofile \- RAT timeout profile
+* fortinet\.fortimanager\.fmgr\_icap\_servergroup \- Configure an ICAP server group consisting of multiple forward servers\.
+* fortinet\.fortimanager\.fmgr\_icap\_servergroup\_serverlist \- Add ICAP servers to a list to form a server group\.
* fortinet\.fortimanager\.fmgr\_pkg\_videofilter\_youtubekey \- Configure YouTube API keys\.
+* fortinet\.fortimanager\.fmgr\_system\_log\_deviceselector \- Accept/reject devices matching specified filter types\.
+* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_agentprofile \- Configure FortiTelemetry agent profiles\.
+* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_application\_predefine \- Configure FortiTelemetry predefined applications\.
+* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile \- Configure FortiTelemetry profiles\.
+* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile\_application \- Configure applications\.
+* fortinet\.fortimanager\.fmgr\_telemetrycontroller\_profile\_application\_sla \- Service level agreement
* fortinet\.fortimanager\.fmgr\_ums\_setting \- Ums setting
+* fortinet\.fortimanager\.fmgr\_user\_scim \- Configure SCIM client entries\.
+* fortinet\.fortimanager\.fmgr\_wireless\_vap\_ip6prefixlist \- Wireless controller vap ip6 prefix list
-
+
#### ibm\.storage\_virtualize
* ibm\.storage\_virtualize\.ibm\_sv\_manage\_flashsystem\_grid \- Manages operations of Flashsystem grid containing multiple Storage Virtualize systems
@@ -8290,70 +4632,94 @@
* infoblox\.nios\_modules\.nios\_adminuser \- Configure Infoblox NIOS Admin Users
* infoblox\.nios\_modules\.nios\_vlan \- Configure Infoblox NIOS VLANs
-
+
#### kubernetes\.core
* kubernetes\.core\.helm\_registry\_auth \- Helm registry authentication module
-
+
#### lowlydba\.sqlserver
* lowlydba\.sqlserver\.login\_role \- Configures a login\'s server roles\.
* lowlydba\.sqlserver\.user\_role \- Configures a user\'s role in a database\.
-
+
#### netapp\.ontap
+* netapp\.ontap\.na\_ontap\_autoupdate\_support \- NetApp ONTAP enable auto update status\.
* netapp\.ontap\.na\_ontap\_bgp\_config \- NetApp ONTAP network BGP configuration
* netapp\.ontap\.na\_ontap\_cifs\_privileges \- NetApp ONTAP CIFS privileges
+* netapp\.ontap\.na\_ontap\_mav\_approval\_group \- NetApp ONTAP multi\-admin verification \(MAV\) approval group
+* netapp\.ontap\.na\_ontap\_mav\_config \- NetApp ONTAP multi\-admin verification \(MAV\) global setting
+* netapp\.ontap\.na\_ontap\_mav\_rule \- NetApp ONTAP multi\-admin verification \(MAV\) rule
+* netapp\.ontap\.na\_ontap\_storage\_unit \- NetApp ONTAP ASA r2 storage unit
+* netapp\.ontap\.na\_ontap\_storage\_unit\_snapshot \- NetApp ONTAP ASA r2 storage unit snapshot
+* netapp\.ontap\.na\_ontap\_support\_config\_backup \- NetApp ONTAP support configuration backup
-
+
#### netapp\.storagegrid
+* netapp\.storagegrid\.na\_sg\_grid\_alert\_receiver \- NetApp StorageGRID manage alert receiver\.
+* netapp\.storagegrid\.na\_sg\_grid\_audit\_destination \- Configure audit log destinations on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_grid\_autosupport \- Configure autosupport on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_grid\_domain\_name \- Configure endpoint domain name on StorageGRID\.
* netapp\.storagegrid\.na\_sg\_grid\_ec\_profile \- Manage EC profiles on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_grid\_hotfix \- Apply hotfixes on StorageGRID\.
* netapp\.storagegrid\.na\_sg\_grid\_ilm\_policy \- Manage ILM policies on StorageGRID\.
* netapp\.storagegrid\.na\_sg\_grid\_ilm\_policy\_tag \- Manage ILM policy tags on StorageGRID\.
* netapp\.storagegrid\.na\_sg\_grid\_ilm\_pool \- Manage ILM pools on StorageGRID\.
* netapp\.storagegrid\.na\_sg\_grid\_ilm\_rule \- Manage ILM rules on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_grid\_proxy\_settings \- NetApp StorageGRID manage proxy settings for the grid\.
+* netapp\.storagegrid\.na\_sg\_grid\_snmp \- Configure SNMP agent on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_grid\_tenant \- NetApp StorageGRID manage tenant accounts\.
+* netapp\.storagegrid\.na\_sg\_grid\_vlan\_interface \- Configure VLAN interface on StorageGRID\.
+* netapp\.storagegrid\.na\_sg\_org\_bucket \- Manage buckets on StorageGRID\.
#### netbox\.netbox
* netbox\.netbox\.netbox\_mac\_address \- Create\, update or delete MAC addresses within NetBox
-
+
#### purestorage\.flasharray
* purestorage\.flasharray\.purefa\_fleet \- Manage Fusion Fleet
* purestorage\.flasharray\.purefa\_realm \- Manage realms on Pure Storage FlashArrays
-
+
+#### purestorage\.flashblade
+
+* purestorage\.flashblade\.purefb\_bucket\_access \- Manage FlashBlade bucket access policies
+* purestorage\.flashblade\.purefb\_fleet \- Manage Fusion Fleet
+* purestorage\.flashblade\.purefb\_server \- Manage FlashBlade servers
+
+
+#### telekom\_mms\.icinga\_director
+
+* telekom\_mms\.icinga\_director\.icinga\_dependency\_apply \- Manage dependency apply rules in Icinga2
+
+
+#### theforeman\.foreman
+
+* theforeman\.foreman\.flatpak\_remote \- Manage Flatpak Remotes
+* theforeman\.foreman\.flatpak\_remote\_repository\_mirror \- Mirror a Flatpak Remote Repository
+* theforeman\.foreman\.flatpak\_remote\_scan \- Scan a Flatpak Remote
+
+
### Unchanged Collections
-* ansible\.utils \(still version 5\.1\.2\)
* awx\.awx \(still version 24\.6\.1\)
* chocolatey\.chocolatey \(still version 1\.5\.3\)
-* cisco\.aci \(still version 2\.10\.1\)
-* cisco\.intersight \(still version 2\.0\.20\)
-* cisco\.mso \(still version 2\.9\.0\)
-* cloud\.common \(still version 4\.0\.0\)
* community\.digitalocean \(still version 1\.27\.0\)
-* community\.grafana \(still version 2\.1\.0\)
-* community\.hashi\_vault \(still version 6\.2\.0\)
* community\.proxysql \(still version 1\.6\.0\)
* community\.sap\_libs \(still version 1\.4\.2\)
-* dellemc\.unity \(still version 2\.0\.0\)
* ibm\.qradar \(still version 4\.0\.0\)
* ieisystem\.inmanage \(still version 3\.0\.0\)
-* infinidat\.infinibox \(still version 1\.4\.5\)
* inspur\.ispim \(still version 2\.2\.3\)
* kaytus\.ksmanage \(still version 2\.0\.0\)
-* kubevirt\.core \(still version 2\.1\.0\)
* netapp\.cloudmanager \(still version 21\.24\.0\)
* netapp\_eseries\.santricity \(still version 1\.4\.1\)
* ngine\_io\.cloudstack \(still version 2\.5\.0\)
-* ovirt\.ovirt \(still version 3\.2\.0\)
* splunk\.es \(still version 4\.0\.0\)
* vultr\.cloud \(still version 1\.13\.0\)
-* vyos\.vyos \(still version 5\.0\.0\)
* wti\.remote \(still version 1\.0\.10\)
diff -Nru ansible-12.0.0~b5+dfsg/CHANGELOG-v12.rst ansible-12.0.0+dfsg/CHANGELOG-v12.rst
--- ansible-12.0.0~b5+dfsg/CHANGELOG-v12.rst 2025-08-26 19:32:32.000000000 +0000
+++ ansible-12.0.0+dfsg/CHANGELOG-v12.rst 2025-09-09 13:44:55.000000000 +0000
@@ -7,8 +7,8 @@
.. contents::
:depth: 2
-v12.0.0b5
-=========
+v12.0.0
+=======
.. contents::
:local:
@@ -17,1373 +17,252 @@
Release Summary
---------------
-Release Date: 2025-08-26
+Release Date: 2025-09-09
`Porting Guide `_
-Ansible-core
-------------
-
-Ansible 12.0.0b5 contains ansible-core version 2.19.1.
-This is a newer version than version 2.19.1rc1 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.1)
-- ansible.netcommon (still version 8.1.0)
-- ansible.posix (still version 2.1.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.2.0)
-- arista.eos (still version 12.0.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.7.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.12.0)
-- cisco.dnac (still version 6.39.0)
-- cisco.intersight (still version 2.2.0)
-- cisco.ios (still version 11.0.0)
-- cisco.iosxr (still version 12.0.0)
-- cisco.meraki (still version 2.21.4)
-- cisco.mso (still version 2.11.0)
-- cisco.nxos (still version 11.0.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.2)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.11)
-- community.crypto (still version 3.0.3)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.3.1)
-- community.docker (still version 4.7.0)
-- community.general (still version 11.2.1)
-- community.grafana (still version 2.3.0)
-- community.hashi_vault (still version 7.0.0)
-- community.hrobot (still version 2.5.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 2.0.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.15.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxmox (still version 1.3.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.6.0)
-- community.routeros (still version 3.9.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.2.1)
-- community.vmware (still version 5.7.2)
-- community.windows (still version 3.0.1)
-- community.zabbix (still version 4.1.0)
-- containers.podman (still version 1.17.0)
-- cyberark.conjur (still version 1.3.7)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.3)
-- dellemc.powerflex (still version 2.6.1)
-- dellemc.unity (still version 2.1.0)
-- f5networks.f5_modules (still version 1.38.0)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- google.cloud (still version 1.7.0)
-- grafana.grafana (still version 6.0.3)
-- hetzner.hcloud (still version 5.2.0)
-- hitachivantara.vspone_block (still version 4.1.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.6.3)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 11.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.1.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.7.0)
-- microsoft.ad (still version 1.9.2)
-- microsoft.iis (still version 1.0.3)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.1.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.36.0)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.4.0)
-- theforeman.foreman (still version 5.5.0)
-- vmware.vmware (still version 2.3.0)
-- vmware.vmware_rest (still version 4.8.1)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0b4
-=========
+Removed Collections
+-------------------
-.. contents::
- :local:
- :depth: 2
+- cisco.asa (previously included version: 6.0.0)
+- cisco.ise (previously included version: 2.9.5)
+- cloud.common (previously included version: 4.0.0)
+- community.network (previously included version: 5.1.0)
+- ibm.spectrum_virtualize (previously included version: 2.0.0)
+- sensu.sensu_go (previously included version: 1.14.0)
-Release Summary
----------------
+You can still install a removed collection manually with ``ansible-galaxy collection install ``.
-Release Date: 2025-08-21
+Added Collections
+-----------------
-`Porting Guide `_
+- community.proxmox (version 1.3.0)
+- hitachivantara.vspone_block (version 4.1.0)
+- microsoft.iis (version 1.0.3)
Ansible-core
------------
-Ansible 12.0.0b4 contains ansible-core version 2.19.1rc1.
-This is a newer version than version 2.19.0 contained in the previous Ansible release.
+Ansible 12.0.0 contains ansible-core version 2.19.1.
+This is a newer version than version 2.18.0 contained in the previous Ansible release.
The changes are reported in the combined changelog below.
-Changed Collections
--------------------
+Included Collections
+--------------------
If not mentioned explicitly, the changes are reported in the combined changelog below.
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0b3 | Ansible 12.0.0b4 | Notes |
-+=============================+==================+==================+=================================================================================================================================================================================================================+
-| amazon.aws | 10.1.0 | 10.1.1 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ansible.netcommon | 8.0.1 | 8.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| arista.eos | 11.0.1 | 12.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.dnac | 6.37.0 | 6.39.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.ios | 10.1.1 | 11.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.iosxr | 11.1.0 | 12.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.nxos | 10.2.0 | 11.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.dns | 3.2.7 | 3.3.1 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 11.1.2 | 11.2.1 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.proxmox | 1.2.0 | 1.3.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.routeros | 3.8.1 | 3.9.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.vmware | 5.7.1 | 5.7.2 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.conjur | 1.3.6 | 1.3.7 | You can find the collection's changelog at `https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md `__. |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.unity | 2.0.0 | 2.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| f5networks.f5_modules | 1.37.1 | 1.38.0 | There are no changes recorded in the changelog. |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| hetzner.hcloud | 5.1.0 | 5.2.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | 4.0.1 | 4.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| junipernetworks.junos | 10.0.0 | 11.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| kubernetes.core | 6.0.0 | 6.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| lowlydba.sqlserver | 2.6.1 | 2.7.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| theforeman.foreman | 5.4.0 | 5.5.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 2.2.0 | 2.3.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Collection | Ansible 11.0.0 | Ansible 12.0.0 | Notes |
++==========================================+================+================+=================================================================================================================================================================================================================+
+| amazon.aws | 9.0.0 | 10.1.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ansible.netcommon | 7.1.0 | 8.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ansible.posix | 1.6.2 | 2.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ansible.utils | 5.1.2 | 6.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ansible.windows | 2.5.0 | 3.2.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| arista.eos | 10.0.1 | 12.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| azure.azcollection | 3.0.0 | 3.8.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| check_point.mgmt | 6.2.1 | 6.4.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.aci | 2.10.1 | 2.12.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.dnac | 6.22.0 | 6.39.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.intersight | 2.0.20 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.ios | 9.0.3 | 11.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.iosxr | 10.2.2 | 12.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.meraki | 2.18.3 | 2.21.4 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.mso | 2.9.0 | 2.11.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.nxos | 9.2.1 | 11.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cisco.ucs | 1.14.0 | 1.16.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cloudscale_ch.cloud | 2.4.0 | 2.5.2 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.aws | 9.0.0 | 10.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.ciscosmb | 1.0.9 | 1.0.11 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.crypto | 2.22.3 | 3.0.3 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.dns | 3.0.7 | 3.3.2 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.docker | 4.0.1 | 4.7.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.general | 10.0.1 | 11.2.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.grafana | 2.1.0 | 2.3.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.hashi_vault | 6.2.0 | 7.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.hrobot | 2.0.2 | 2.5.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.library_inventory_filtering_v1 | 1.0.2 | 1.1.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.libvirt | 1.3.0 | 2.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.mongodb | 1.7.8 | 1.7.10 | There are no changes recorded in the changelog. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.mysql | 3.10.3 | 3.15.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.okd | 4.0.0 | 5.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.postgresql | 3.7.0 | 4.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.proxmox | | 1.3.0 | The collection was added to Ansible |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.rabbitmq | 1.3.0 | 1.6.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.routeros | 3.0.0 | 3.10.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.sops | 2.0.0 | 2.2.2 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.vmware | 5.1.0 | 5.7.2 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.windows | 2.3.0 | 3.0.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| community.zabbix | 3.1.2 | 4.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| containers.podman | 1.16.2 | 1.17.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cyberark.conjur | 1.3.1 | 1.3.7 | You can find the collection's changelog at `https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md `__. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| cyberark.pas | 1.0.27 | 1.0.35 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dellemc.enterprise_sonic | 2.5.1 | 3.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dellemc.openmanage | 9.8.0 | 9.12.3 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dellemc.powerflex | 2.5.0 | 2.6.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dellemc.unity | 2.0.0 | 2.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| f5networks.f5_modules | 1.32.1 | 1.38.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| fortinet.fortimanager | 2.7.0 | 2.10.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| fortinet.fortios | 2.3.8 | 2.4.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| google.cloud | 1.4.1 | 1.7.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| grafana.grafana | 5.6.0 | 6.0.3 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| hetzner.hcloud | 4.2.1 | 5.2.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| hitachivantara.vspone_block | | 4.1.0 | The collection was added to Ansible |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ibm.storage_virtualize | 2.5.0 | 2.7.4 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| infinidat.infinibox | 1.4.5 | 1.6.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| infoblox.nios_modules | 1.7.0 | 1.8.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| junipernetworks.junos | 9.1.0 | 11.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| kubernetes.core | 5.0.0 | 6.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| kubevirt.core | 2.1.0 | 2.2.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| lowlydba.sqlserver | 2.3.4 | 2.7.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| microsoft.ad | 1.7.1 | 1.9.2 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| microsoft.iis | | 1.0.3 | The collection was added to Ansible |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| netapp.ontap | 22.12.0 | 23.1.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| netapp.storagegrid | 21.13.0 | 21.15.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| netbox.netbox | 3.20.0 | 3.21.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| openstack.cloud | 2.2.0 | 2.4.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ovirt.ovirt | 3.2.0 | 3.2.1 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| purestorage.flasharray | 1.31.1 | 1.36.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| purestorage.flashblade | 1.19.1 | 1.20.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| telekom_mms.icinga_director | 2.2.0 | 2.4.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| theforeman.foreman | 4.2.0 | 5.5.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vmware.vmware | 1.6.0 | 2.3.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vmware.vmware_rest | 4.2.0 | 4.9.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| vyos.vyos | 5.0.0 | 6.0.0 | |
++------------------------------------------+----------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Major Changes
-------------
-cisco.ios
-~~~~~~~~~
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-cisco.iosxr
-~~~~~~~~~~~
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-cisco.nxos
-~~~~~~~~~~
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-dellemc.unity
-~~~~~~~~~~~~~
-
-- Adding support for Unity v5.5.
-
-Minor Changes
--------------
-
Ansible-core
~~~~~~~~~~~~
-- AnsibleModule - Add temporary internal monkeypatch-able hook to alter module result serialization by splitting serialization from ``_return_formatted`` into ``_record_module_result``.
-- ansible-test - Improve formatting of generated coverage config file.
-- ansible-test - Use OS packages to satisfy controller requirements on FreeBSD 13.5 during managed instance bootstrapping.
-- encrypt - check datatype of salt_size in password_hash filter.
-- service_facts - handle keyerror exceptions with warning.
-- service_facts - warn user about missing service details instead of ignoring.
-
-ansible.netcommon
-~~~~~~~~~~~~~~~~~
-
-- Changes to supplement direct execution of Ansible module in validate_config(utils.py) and _patch_update_module(network.py) added.
-- Override new 2.19.1+ AnsibleModule._record_module_result hook in network action plugin to bypass module result serialization when direct execution is enabled
-
-cisco.dnac
-~~~~~~~~~~
-
-- Added attribute 'config_file_types' in device_configs_backup_workflow_manager module
-- Added attribute 'device_controllability_details' in network_settings_workflow_manager module
-- Added attribute 'projects' in template_workflow_manager module
-- Added attribute 'template_description' in template_workflow_manager module
-- Added attribute 'wireless_controller_settings' in sda_fabric_devices_workflow_manager module
-- Changes in assurance_icap_settings_workflow_manager module
-- Changes in device_configs_backup_workflow_manager module
-- Changes in dnac.py module
-- Changes in inventory_workflow_manager module
-- Changes in network_settings_workflow_manager module
-- Changes in provision_workflow_manager module
-- Changes in sda_fabric_devices_workflow_manager module
-- Changes in sda_fabric_multicast_workflow_manager module
-- Changes in sda_host_port_onboarding_workflow_manager module
-- Changes in site_workflow_manager module
-- Changes in template_workflow_manager module
-- Documentation changes in assurance_issue_workflow_manager module
-- Documentation changes in inventory_workflow_manager module
-- Removed attribute 'description' in template_workflow_manager module
+- Jinja plugins - Jinja builtin filter and test plugins are now accessible via their fully-qualified names ``ansible.builtin.{name}``.
+- Task Execution / Forks - Forks no longer inherit stdio from the parent ``ansible-playbook`` process. ``stdout``, ``stderr``, and ``stdin`` within a worker are detached from the terminal, and non-functional. All needs to access stdio from a fork for controller side plugins requires use of ``Display``.
+- ansible-test - Packages beneath ``module_utils`` can now contain ``__init__.py`` files.
+- variables - The type system underlying Ansible's variable storage has been significantly overhauled and formalized. Attempts to store unsupported Python object types in variables now more consistently yields early warnings or errors.
+- variables - To support new Ansible features, many variable objects are now represented by subclasses of their respective native Python types. In most cases, they behave indistinguishably from their original types, but some Python libraries do not handle builtin object subclasses properly. Custom plugins that interact with such libraries may require changes to convert and pass the native types.
-cisco.nxos
+amazon.aws
~~~~~~~~~~
-- cisco.nxos.nxos_l3_interfaces - Rewrite of l3_interfaces with bug fixes and enhancements.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- apk - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/issues/10479, https://github.com/ansible-collections/community.general/pull/10520).
-- bzr - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10523).
-- capabilities - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10524).
-- composer - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10525).
-- django module utils - remove deprecated parameter ``_DjangoRunner`` call (https://github.com/ansible-collections/community.general/pull/10574).
-- easy_install - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10526).
-- imgadm - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10536).
-- jenkins_plugin - install dependencies for specific version (https://github.com/ansible-collections/community.general/issue/4995, https://github.com/ansible-collections/community.general/pull/10346).
-- keycloak_identity_provider – add support for ``fromUrl`` to automatically fetch OIDC endpoints from the well-known discovery URL, simplifying identity provider configuration (https://github.com/ansible-collections/community.general/pull/10527).
-- keycloak_realm - add support for ``brute_force_strategy`` and ``max_temporary_lockouts`` (https://github.com/ansible-collections/community.general/issues/10412, https://github.com/ansible-collections/community.general/pull/10415).
-- keycloak_realm - add support for client-related options and Oauth2 device (https://github.com/ansible-collections/community.general/pull/10538).
-- logstash_plugin - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/issues/10479, https://github.com/ansible-collections/community.general/pull/10520).
-- nagios - make parameter ``services`` a ``list`` instead of a ``str`` (https://github.com/ansible-collections/community.general/pull/10493).
-- open_iscsi - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10599).
-- pear - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10601).
-- portage - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10602).
-- riak - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10603).
-- scaleway_* modules, scaleway inventory plugin - update available zones and API URLs (https://github.com/ansible-collections/community.general/issues/10383, https://github.com/ansible-collections/community.general/pull/10424).
-- sensu_subscription - normalize quotes in the module output (https://github.com/ansible-collections/community.general/pull/10483).
-- solaris_zone - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10604).
-- swupd - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10605).
-- tasks_only callback plugin - add ``result_format`` and ``pretty_results`` options similarly to the default callback (https://github.com/ansible-collections/community.general/pull/10422).
-- timezone - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10612).
-- urpmi - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10606).
-- xbps - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10608).
-- xfs_quota - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10609).
+- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
+- amazon.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/), support for Python less than 3.8 by this collection was deprecated in release 6.0.0 and removed in release 10.0.0. (https://github.com/ansible-collections/amazon.aws/pull/2426).
+- connection/aws_ssm - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.aws_ssm``.
-community.proxmox
+ansible.netcommon
~~~~~~~~~~~~~~~~~
-- proxmox* modules - added fallback environment variables for ``api_token``, ``api_secret``, and ``validate_certs`` (https://github.com/ansible-collections/community.proxmox/issues/63, https://github.com/ansible-collections/community.proxmox/pull/136).
-- proxmox_cluster_ha_groups - fix idempotency in proxmox_cluster_ha_groups module (https://github.com/ansible-collections/community.proxmox/issues/138, https://github.com/ansible-collections/community.proxmox/pull/139).
-- proxmox_cluster_ha_resources - Fix idempotency proxmox_cluster_ha_resources (https://github.com/ansible-collections/community.proxmox/pull/135).
-- proxmox_kvm - Add missing 'storage' parameter to create_vm()-call.
-- proxmox_kvm - add new purge parameter to proxmox_kvm module (https://github.com/ansible-collections/community.proxmox/issues/60, https://github.com/ansible-collections/community.proxmox/pull/148).
-
-community.routeros
-~~~~~~~~~~~~~~~~~~
-
-- api_info, api modify - add ``remote-log-format``, ``remote-protocol``, and ``event-delimiter`` to ``system logging action`` (https://github.com/ansible-collections/community.routeros/pull/381).
-- api_info, api_modify - add ``disable-link-local-address`` and ``stale-neighbor-timeout`` fields to ``ipv6 settings`` (https://github.com/ansible-collections/community.routeros/pull/380).
-- api_info, api_modify - adjust neighbor limit fields in ``ipv6 settings`` to match RouterOS 7.18 and newer (https://github.com/ansible-collections/community.routeros/pull/380).
-- api_info, api_modify - set ``passthrough`` default in ``ip firewall mangle`` to ``true`` for RouterOS 7.19 and newer (https://github.com/ansible-collections/community.routeros/pull/382).
-- api_info, api_modify - since RouterOS 7.17 VRF is supported for OVPN server. It now supports multiple entries, while ``api_modify`` so far only accepted a single entry. The ``interface ovpn-server server`` path now allows multiple entries on RouterOS 7.17 and newer (https://github.com/ansible-collections/community.routeros/pull/383).
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- volume - Allow renaming a volume.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added a new `"hv_journal"` module as a replacement for the `"hv_journal_volume"` module.
-- Added a new `"hv_journal_facts"` module as a replacement for the `"hv_journal_volume_facts"` module.
-- Added a new `"hv_sds_block_authentication_ticket"` module to create, delete and update authentication tickets.
-- Added a new `"hv_sds_block_cluster"` module to add and remove storage nodes from the cluster, and download cluster configuration files.
-- Added a new `"hv_sds_block_cluster_config_facts"` module to retrieve information about SDS block cluster configurations.
-- Added a new `"hv_sds_block_control_port_facts"` module to retrieve control port information from SDS block cluster.
-- Added a new `"hv_sds_block_drives_facts"` module to retrieve drive information from SDS block cluster.
-- Added a new `"hv_sds_block_event_logs_facts"` module to retrieve event logs from SDS block cluster.
-- Added a new `"hv_sds_block_fault_domain_facts"` module to retrieve fault domains information from SDS block cluster.
-- Added a new `"hv_sds_block_internode_port_facts"` module to retrieve internode port information from SDS block cluster.
-- Added a new `"hv_sds_block_job_facts"` module to retrieve job details from SDS block cluster.
-- Added a new `"hv_sds_block_protection_domain_facts"` module to retrieve protection domains from SDS block cluster.
-- Added a new `"hv_sds_block_snapshot"` module to manage snapshots on SDS block cluster.
-- Added a new `"hv_sds_block_snapshot_facts"` module to retrieve snapshot information from SDS block cluster.
-- Added a new `"hv_sds_block_storage_controller_facts"` module to retrieve storage controller information from SDS block cluster.
-- Added a new `"hv_sds_block_storage_network_setting_facts"` module to retrieve storage network settings from SDS block cluster.
-- Added a new `"hv_sds_block_storage_node"` module to block and restore storage nodes.
-- Added a new `"hv_sds_block_storage_node_facts"` module to retrieve information about storage nodes.
-- Added a new `"hv_sds_block_storage_node_network_settings_facts"` module to retrieve storage node network settings from SDS block cluster.
-- Added a new `"hv_sds_block_storage_pool"` module to expand storage pools on SDS block cluster.
-- Added a new `"hv_sds_block_storage_pool_facts"` module to retrieve storage pools from SDS block cluster.
-- Added a new `"hv_sds_block_storage_time_facts"` module to retrieve storage time from SDS block cluster.
-- Added a new `"hv_sds_block_user"` module to create and update users on SDS block cluster.
-- Added a new `"hv_sds_block_user_facts"` module to retrieve users on SDS block cluster.
-- Note `"hv_journal_volume"` and `"hv_journal_volume_facts"` modules will be deprecated from future release.
-
-kubernetes.core
-~~~~~~~~~~~~~~~
-
-- Module helm_registry_auth do not support idempotency with `helm >= 3.18.0` (https://github.com/ansible-collections/kubernetes.core/pull/946)
-- Module k8s_json_patch - Add support for `hidden_fields` (https://github.com/ansible-collections/kubernetes.core/pull/964).
-- helm - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
-- helm - Parameter take_ownership added (https://github.com/ansible-collections/kubernetes.core/pull/957).
-- helm_pull - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
-- helm_template - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
-
-lowlydba.sqlserver
-~~~~~~~~~~~~~~~~~~
-
-- agent_job_step - Added ``output_file`` parameter to specify the output file path for SQL Agent job steps (https://github.com/lowlydba/lowlydba.sqlserver/pull/329).
-
-theforeman.foreman
-~~~~~~~~~~~~~~~~~~
-
-- content_view - add ``rolling``-flag to create a Rolling Content View
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-vmware.vmware
+ansible.utils
~~~~~~~~~~~~~
-- add folder_paths_are_absolute option to all modules that support folder paths, allowing users to specify if folder paths are absolute and override the default behavior of intelligently determining if the path is absolute or relative. (https://github.com/ansible-collections/vmware.vmware/issues/202)
-- vcsa_settings - Add always_update_password parameter to proxy settings, which can be used to control if the password should be updated.
-
-Deprecated Features
--------------------
-
-- The ``ibm.qradar`` collection has been deprecated.
- It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13.
- See `Collections Removal Process for unmaintained collections `__ for more details (`https://forum.ansible.com/t/44259 `__).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- bearychat - module is deprecated and will be removed in community.general 12.0.0 (https://github.com/ansible-collections/community.general/issues/10514).
-- cpanm - deprecate ``mode=compatibility``, ``mode=new`` should be used instead (https://github.com/ansible-collections/community.general/pull/10434).
-- github_repo - deprecate ``force_defaults=true`` (https://github.com/ansible-collections/community.general/pull/10435).
-- rocketchat - the default value for ``is_pre740``, currently ``true``, is deprecated and will change to ``false`` in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490).
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- ansible-test - Always exclude the ``tests/output/`` directory from a collection's code coverage. (https://github.com/ansible/ansible/issues/84244)
-- ansible-test - Limit package install retries during managed remote instance bootstrapping.
-- ansible-test - Use a consistent coverage config for all collection testing.
-- argspec validation - The ``str`` argspec type treats ``None`` values as empty string for better consistency with pre-2.19 templating conversions.
-- conditionals - When displaying a broken conditional error or deprecation warning, the origin of the non-boolean result is included (if available), and the raw result is omitted.
-- failed_when - When using ``failed_when`` to suppress an error, the ``exception`` key in the result is renamed to ``failed_when_suppressed_exception``. This prevents the error from being displayed by callbacks after being suppressed. (https://github.com/ansible/ansible/issues/85505)
-- import_tasks - fix templating parent include arguments.
-- plugins config, get_option_and_origin now correctly displays the value and origin of the option.
-- template lookup - Skip finalization on the internal templating operation to allow markers to be returned and handled by, e.g. the ``default`` filter. Previously, finalization tripped markers, causing an exception to end processing of the current template pipeline. (https://github.com/ansible/ansible/issues/85674)
-- templating - Avoid tripping markers within Jinja generated code. (https://github.com/ansible/ansible/issues/85674)
-- templating - Ensure filter plugin result processing occurs under the correct call context. (https://github.com/ansible/ansible/issues/85585)
-- templating - Fix slicing of tuples in templating (https://github.com/ansible/ansible/issues/85606).
-- templating - Multi-node template results coerce embedded ``None`` nodes to empty string (instead of rendering literal ``None`` to the output).
-- templating - Undefined marker values sourced from the Jinja ``getattr->getitem`` fallback are now accessed correctly, raising AnsibleUndefinedVariable for user plugins that do not understand markers. Previously, these values were erroneously returned to user plugin code that had not opted in to marker acceptance.
-- tqm - use display.error_as_warning instead of display.warning_as_error.
-- tqm - use display.error_as_warning instead of self.warning.
-
-amazon.aws
-~~~~~~~~~~
-
-- ec2_instance - corrected typo for InsufficientInstanceCapacity. Fix now will retry Ec2 creation when InsufficientInstanceCapacity error occurs (https://github.com/ansible-collections/amazon.aws/issues/1038).
-
-ansible.netcommon
-~~~~~~~~~~~~~~~~~
-
-- Improved error handling in DirectExecutionModule._record_module_result method for better compatibility with core<=2.18
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
arista.eos
~~~~~~~~~~
-- Add unit and integration tests to verify the change
-- Fix regex in route_map module to support match community with or without exact-match
-- Update the ACL module to support using protocol names for source port
-- arista.eos.eos_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
cisco.ios
~~~~~~~~~
-- ios_vrf_address_family - fixed an issue where the module failed to gather `mdt` configuration options.
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
cisco.iosxr
~~~~~~~~~~~
-- iosxr_route_map - Fixes route-policy attribute facts gathering.
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
cisco.nxos
~~~~~~~~~~
-- cisco.nxos.nxos_vrf_global - Added support for rd attribute for nxos_vrf_global module.
-
-community.dns
-~~~~~~~~~~~~~
-
-- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.dns/pull/280).
-- Update Public Suffix List.
-- nameserver_record_info - removed type ``ALL``, which never worked (https://github.com/ansible-collections/community.dns/issues/278, https://github.com/ansible-collections/community.dns/pull/279).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.general/pull/10687).
-- apache2_module - check the ``cgi`` module restrictions only during activation (https://github.com/ansible-collections/community.general/pull/10423).
-- composer - fix broken command lines (https://github.com/ansible-collections/community.general/issues/10662, https://github.com/ansible-collections/community.general/pull/10669).
-- jenkins_plugin - install latest compatible version instead of latest (https://github.com/ansible-collections/community.general/issues/854, https://github.com/ansible-collections/community.general/pull/10346).
-- jenkins_plugin - separate Jenkins and external URL credentials (https://github.com/ansible-collections/community.general/issues/4419, https://github.com/ansible-collections/community.general/pull/10346).
-- lvm_pv - properly detect SCSI or NVMe devices to rescan (https://github.com/ansible-collections/community.general/issues/10444, https://github.com/ansible-collections/community.general/pull/10596).
-- pacemaker_resource - fix ``resource_type`` parameter formatting (https://github.com/ansible-collections/community.general/issues/10426, https://github.com/ansible-collections/community.general/pull/10663).
-- pids - prevent error when an empty string is provided for ``name`` (https://github.com/ansible-collections/community.general/issues/10672, https://github.com/ansible-collections/community.general/pull/10688).
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- proxmox_pct_remote connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead (https://github.com/ansible-collections/community.proxmox/issues/146, https://github.com/ansible-collections/community.proxmox/pull/151).
-
-community.routeros
-~~~~~~~~~~~~~~~~~~
-
-- routeros terminal plugin - fix ``terminal_stdout_re`` pattern to handle long system identities when connecting to RouterOS through SSH (https://github.com/ansible-collections/community.routeros/pull/386).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vmware_deploy_ovf - Fix detection of HTTP range support in `WebHandle` to support HTTP/2 endpoints like Nexus that do not return `accept-ranges` header (https://github.com/ansible-collections/community.vmware/pull/2399).
-- vmware_guest_file_operation - Fix to use custom port provided to the module (https://github.com/ansible-collections/community.vmware/pull/2397).
-- vmware_vm_config_option - change to use 'disk_ctl_device_type' defined in 'device_helper' and add 'support_cpu_hotadd', 'support_memory_hotadd', 'support_for_create' in output. (https://github.com/ansible-collections/community.vmware/pull/2428)
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- volume_attachment - Add ``hcloud_volume_attachment`` alias to ``volume_attachment`` module.
-- volume_attachment - Add ``volume_attachment`` module to action group ``all``.
-
-junipernetworks.junos
-~~~~~~~~~~~~~~~~~~~~~
-
-- Fixes interface_type parameter in the proccesses block.
-
-kubernetes.core
-~~~~~~~~~~~~~~~
-
-- module_utils/k8s/service - hide fields first before creating diffs (https://github.com/ansible-collections/kubernetes.core/pull/915).
-
-theforeman.foreman
-~~~~~~~~~~~~~~~~~~
-
-- activation_key - ensure LCE and CV are always sent together when updating one of them
-- hostgroup - fix idempotency of hostgroup module when assigning Ansible roles to a hostgroup with a parent hostgroup (https://github.com/theforeman/foreman-ansible-modules/issues/1865)
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- vcsa_settings - Fix bug where proxy settings cannot be disabled, even if enabled is set to false. (https://github.com/ansible-collections/vmware.vmware/issues/207)
-
-New Plugins
------------
-
-Lookup
-~~~~~~
-
-- community.general.binary_file - Read binary file and return it Base64 encoded.
-
-New Modules
------------
-
-community.dns
-~~~~~~~~~~~~~
-
-- community.dns.adguardhome_rewrite - Add, update or delete DNS rewrite rules from AdGuardHome.
-- community.dns.adguardhome_rewrite_info - Retrieve DNS rewrite rules from AdGuardHome.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- community.general.lvm_pv_move_data - Move data between LVM Physical Volumes (PVs).
-- community.general.pacemaker_info - Gather information about Pacemaker cluster.
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- community.proxmox.proxmox_storage - Manage storage in PVE clusters and nodes.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Sds Block
-^^^^^^^^^
-
-- hitachivantara.vspone_block.hv_sds_block_authentication_ticket - Manages Hitachi SDS block storage system authentication tickets.
-- hitachivantara.vspone_block.hv_sds_block_cluster - Manages storage cluster on Hitachi SDS block storage systems.
-- hitachivantara.vspone_block.hv_sds_block_cluster_config_facts - Retrieves information about configuration of SDS block clusters from Hitachi SDS block storage systems.
-- hitachivantara.vspone_block.hv_sds_block_control_port_facts - Get control port from storage system.
-- hitachivantara.vspone_block.hv_sds_block_drives_facts - Get drives from storage system.
-- hitachivantara.vspone_block.hv_sds_block_event_logs_facts - Get event logs from storage system.
-- hitachivantara.vspone_block.hv_sds_block_fault_domain_facts - Get fault domains from storage system.
-- hitachivantara.vspone_block.hv_sds_block_internode_port_facts - Get internode port from storage system.
-- hitachivantara.vspone_block.hv_sds_block_job_facts - Retrieves information about Hitachi SDS block storage system storage nodes.
-- hitachivantara.vspone_block.hv_sds_block_protection_domain_facts - Get protection domains from storage system.
-- hitachivantara.vspone_block.hv_sds_block_snapshot - Manages snapshots on Hitachi SDS Block storage systems.
-- hitachivantara.vspone_block.hv_sds_block_snapshot_facts - Gather facts about snapshots on Hitachi SDS Block storage systems.
-- hitachivantara.vspone_block.hv_sds_block_storage_controller_facts - Get storage_controllers from storage system.
-- hitachivantara.vspone_block.hv_sds_block_storage_network_setting_facts - Get storage network settings from storage system.
-- hitachivantara.vspone_block.hv_sds_block_storage_node - Manages storage node on Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_sds_block_storage_node_facts - Retrieves information about Hitachi SDS block storage system storage nodes.
-- hitachivantara.vspone_block.hv_sds_block_storage_node_network_settings_facts - Get storage node network settings from storage system.
-- hitachivantara.vspone_block.hv_sds_block_storage_pool - Manages storage pool on Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_sds_block_storage_pool_facts - Retrieves information about Hitachi SDS block storage system storage pools.
-- hitachivantara.vspone_block.hv_sds_block_storage_time_facts - Get storage time from storage system.
-- hitachivantara.vspone_block.hv_sds_block_user - Create and update users from storage system.
-- hitachivantara.vspone_block.hv_sds_block_user_facts - Get users from storage system.
-
-theforeman.foreman
-~~~~~~~~~~~~~~~~~~
-
-- theforeman.foreman.flatpak_remote - Manage Flatpak Remotes
-- theforeman.foreman.flatpak_remote_repository_mirror - Mirror a Flatpak Remote Repository
-- theforeman.foreman.flatpak_remote_scan - Scan a Flatpak Remote
-
-Unchanged Collections
----------------------
-
-- ansible.posix (still version 2.1.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.2.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.7.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.12.0)
-- cisco.intersight (still version 2.2.0)
-- cisco.meraki (still version 2.21.4)
-- cisco.mso (still version 2.11.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.2)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.11)
-- community.crypto (still version 3.0.3)
-- community.digitalocean (still version 1.27.0)
-- community.docker (still version 4.7.0)
-- community.grafana (still version 2.3.0)
-- community.hashi_vault (still version 7.0.0)
-- community.hrobot (still version 2.5.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 2.0.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.15.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.6.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.2.1)
-- community.windows (still version 3.0.1)
-- community.zabbix (still version 4.1.0)
-- containers.podman (still version 1.17.0)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.3)
-- dellemc.powerflex (still version 2.6.1)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- google.cloud (still version 1.7.0)
-- grafana.grafana (still version 6.0.3)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.6.3)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- kaytus.ksmanage (still version 2.0.0)
-- kubevirt.core (still version 2.2.3)
-- microsoft.ad (still version 1.9.2)
-- microsoft.iis (still version 1.0.3)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.1.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.36.0)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.4.0)
-- vmware.vmware_rest (still version 4.8.1)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0b3
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-08-05
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0b3 contains ansible-core version 2.19.0.
-This is the same version of ansible-core as in the previous Ansible release.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0b2 | Ansible 12.0.0b3 | Notes |
-+=====================+==================+==================+==============================================================================================================================+
-| azure.azcollection | 3.6.0 | 3.7.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.dnac | 6.36.0 | 6.37.0 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.intersight | 2.1.0 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cloudscale_ch.cloud | 2.5.1 | 2.5.2 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 3.0.2 | 3.0.3 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.docker | 4.6.2 | 4.7.0 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 11.1.1 | 11.1.2 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.mysql | 3.14.0 | 3.15.0 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.sops | 2.2.0 | 2.2.1 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.openmanage | 9.12.2 | 9.12.3 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| google.cloud | 1.6.0 | 1.7.0 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| infinidat.infinibox | 1.4.5 | 1.6.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| netapp.ontap | 23.0.0 | 23.1.0 | |
-+---------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2.19.
-- idrac_bios - This role is enhanced to support iDRAC10.
-- idrac_boot - This module is enhanced to support iDRAC10.
-- idrac_boot - This role is enhanced to support iDRAC10.
-- idrac_certificates - This module is enhanced to support iDRAC10.
-- idrac_reset - This module is enhanced to support iDRAC10.
-- idrac_reset - This role is enhanced to support iDRAC10.
-- idrac_support_assist - This module is enhanced to support iDRAC10.
-- idrac_user - This module is enhanced to support iDRAC10.
-- idrac_user - This role is enhanced to support iDRAC10.
-- ome_firmware - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline_compliance_info - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline_info - This module is enhanced to support OME 4.5.
-- ome_firmware_catalog - This module is enhanced to support OME 4.5.
-- redfish_firmware - This module is enhanced to support iDRAC10.
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- na_ontap_autoupdate_support - REST only support to enable automatic software update, requires ONTAP 9.10 or later.
-- na_ontap_s3_buckets - new option `snapshot_policy` added in REST, requires ONTAP 9.16.1 or later.
-
-Minor Changes
--------------
-
-cisco.dnac
-~~~~~~~~~~
-
-- Added attribute 'ignore_duration' in assurance_issue_workflow_manager module
-- Added attribute 'new_name' in tags_workflow_manager module
-- Added attributes 'commit' and 'version' in template_workflow_manager module
-- Adding log messages and minor documentation changes in accesspoint_workflow_manager module
-- Changes in application_policy_workflow_manager workflow manager module
-- Changes in device_credential_workflow_manager module
-- Changes in discovery_workflow_manager module
-- Changes in inventory_workflow_manager module
-- Changes in network_profile_switching_workflow_manager module
-- Changes in network_profile_wireless_workflow_manager module
-- Changes in networks_profile module
-- Changes in path_trace_workflow_manager module
-- Changes in pnp_workflow_manager module
-- Changes in provision_workflow_manager module
-- Changes in sda_fabric_virtual_networks_workflow_manager module
-- Changes in sda_host_port_onboarding_workflow_manager module
-- Changes in site_workflow_manager module
-- Changes in swim_workflow_manager module
-- Changes in tags_workflow_manager module
-- Changes in template_workflow_manager module
-- Changes in user_role_workflow_manager module
-- Changes in validation.py module
-- Changes in wireless_design_workflow_manger module
-- Documentation changes in device_configs_backup_workflow_manager module
-- Enhancements in assurance_issue_workflow_manager module to support ignore duration
-
-cloudscale_ch.cloud
-~~~~~~~~~~~~~~~~~~~
-
-- Remove the custom error message from snapshots module to fix root volume snapshots/restores on stopped servers
-
-community.docker
-~~~~~~~~~~~~~~~~
-
-- docker_swarm_service - add support for ``replicated-job`` mode for Swarm services (https://github.com/ansible-collections/community.docker/issues/626, https://github.com/ansible-collections/community.docker/pull/1108).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- gem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- git_config_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- github_deploy_key - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- github_repo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- github_webhook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- github_webhook_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_branch - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_group_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_group_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_hook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_instance_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_label - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_merge_request - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_milestone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_project - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_project_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- gitlab_project_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- grove - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- hg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- homebrew - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- homebrew_cask - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- homebrew_tap - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- honeybadger_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- htpasswd - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- icinga2_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- influxdb_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ini_file - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ipa_dnsrecord - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ipa_dnszone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ipa_service - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ipbase_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- ipwcli_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- irc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- jabber - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- jenkins_credential - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- jenkins_job - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- jenkins_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
-- keycloak_authz_authorization_scope - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- keycloak_authz_permission - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- keycloak_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- keycloak_userprofile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- keyring - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- kibana_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- layman - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- ldap_attrs - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- ldap_inc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- librato_annotation - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- lldp - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- logentries - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- lxca_cmms - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- lxca_nodes - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- macports - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- mail - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_alerts - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_policies - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_policies_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_tags - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- manageiq_tenant - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- matrix - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- mattermost - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- maven_artifact - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- memset_dns_reload - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- memset_zone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- memset_zone_record - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- mqtt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- mssql_db - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- mssql_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- netcup_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- newrelic_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- nsupdate - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
-- oci_vcn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- one_image_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- one_template - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- one_vnet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- onepassword_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- oneview_fc_network_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- opendj_backendprop - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- ovh_monthly_billing - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pagerduty - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pagerduty_change - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pagerduty_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pam_limits - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pear - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pkgng - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pnpm - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- portage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pritunl_org - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pritunl_org_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pritunl_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pritunl_user_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pubnub_blocks - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pushbullet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- pushover - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- redis_data - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- redis_data_incr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- riak - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- rocketchat - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- rollbar_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- say - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- scaleway_database_backup - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- sendgrid - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- sensu_silence - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- sorcery - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- ssh_config - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- statusio_maintenance - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- svr4pkg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- swdepot - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- syslogger - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- sysrc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- systemd_creds_decrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- systemd_creds_encrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
-- taiga_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- twilio - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_aaa_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_ca_host_key_cert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_dns_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_network_interface_address - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_proxy_auth_profile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_proxy_exception - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_proxy_frontend - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- utm_proxy_location - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- vertica_configuration - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- vertica_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- vertica_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- xbps - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- yarn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- zypper - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-- zypper_repository - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
-
-community.mysql
-~~~~~~~~~~~~~~~
-
-- mysql_db - Add support for ``sql_log_bin`` option (https://github.com/ansible-collections/community.mysql/issues/700).
-
-google.cloud
-~~~~~~~~~~~~
-
-- gcp_parameter_manager - added module support for managing parameters and versions (https://github.com/ansible-collections/google.cloud/pull/684).
-- gcp_storage_bucket - added support for iam_configuration (https://github.com/ansible-collections/google.cloud/pull/693).
-- lookup - added lookup via gcp_parameter_manager (https://github.com/ansible-collections/google.cloud/pull/684).
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- na_ontap_cifs_acl - added example showing ACL deletion.
-- na_ontap_cluster_peer - new options `local_name_for_peer` and `local_name_for_source` added in REST.
-- na_ontap_nfs - new option `nfsv3_hide_snapdir` added in REST.
-- na_ontap_rest_cli - added `next` key to enable API pagination support.
-- na_ontap_security_certificates - updated examples for create server type certificate and install with intermediate certificates.
-- na_ontap_snapmirror - new option `quick_resync` added in REST.
-- na_ontap_support_config_backup - new option `set_password` added in REST.
-- na_ontap_svm - new option `storage_limit` added in REST, requires ONTAP 9.13.1 or later.
-- na_ontap_user - added `totp` option for `application_dicts.second_authentication_method` in REST.
-- na_ontap_volume - new option `tiering_object_tags` added in REST.
-- updated `README` template, added `CHANGELOG.md` for release notes.
-
-Bugfixes
---------
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- acme_* modules - also retry on HTTP responses 502 Bad Gateway and 504 Gateway Timeout. The latter is needed for ZeroSSL, which seems to have a lot of 504s (https://github.com/ansible-collections/community.crypto/issues/945, https://github.com/ansible-collections/community.crypto/pull/947).
-- acme_* modules - increase the maximum amount of retries from 10 to 20 to accomodate ZeroSSL's buggy implementation (https://github.com/ansible-collections/community.crypto/pull/949).
-
-community.docker
-~~~~~~~~~~~~~~~~
-
-- docker_image, docker_image_push - work around a bug in Docker 28.3.3 that prevents pushing without authentication to a registry (https://github.com/ansible-collections/community.docker/pull/1110).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- apk - fix check for empty/whitespace-only package names (https://github.com/ansible-collections/community.general/pull/10532).
-- capabilities - using invalid path (symlink/directory/...) returned unrelated and incoherent error messages (https://github.com/ansible-collections/community.general/issues/5649, https://github.com/ansible-collections/community.general/pull/10455).
-- doas become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/issues/9977, https://github.com/ansible-collections/community.general/pull/10537).
-- json_query filter plugin - make compatible with lazy evaluation list and dictionary types of ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10539).
-- machinectl become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/pull/10537).
-- merge_variables lookup plugin - avoid deprecated functionality from ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10566).
-- wsl connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead (https://github.com/ansible-collections/community.general/issues/10515, https://github.com/ansible-collections/community.general/pull/10531).
-
-community.mysql
-~~~~~~~~~~~~~~~
-
-- mysql_query - fix a Python 2 compatibility issue caused by the addition of ``execution_time_ms`` in version 3.12 (see https://github.com/ansible-collections/community.mysql/issues/716).
-- mysql_user - fix a crash (unable to parse the MySQL grant string: SET DEFAULT ROLE `somerole` FOR `someuser`@`%`) when using the ``mysql_user`` module with a DEFAULT role present in MariaDB. The DEFAULT role is now ignored by the parser (https://github.com/ansible-collections/community.mysql/issues/710).
-
-community.sops
-~~~~~~~~~~~~~~
-
-- install role - avoid deprecated parameter value for the ``ansible.builtin.uri`` module (https://github.com/ansible-collections/community.sops/pull/255).
-
-google.cloud
-~~~~~~~~~~~~
-
-- gcp_bigquery_table - fixed nested schema definitions (https://github.com/ansible-collections/google.cloud/issues/637).
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- Corrected typo in email address from `ng-ansibleteam@netapp.com` to `ng-ansible-team@netapp.com` across Ansible collection.
-- na_ontap_cg_snapshot - fixed issue with CG not being found with given volumes in REST.
-- na_ontap_firmware_upgrade - fixed typo in example.
-- na_ontap_ndmp - fix idempotency issue and added example for ndmp user generate password in REST.
-- na_ontap_user - fixed issue with idempotency while creating a user account in REST.
-- na_ontap_volume - fixed indentation in example.
-
-Known Issues
-------------
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
-- idrac_diagnostics - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-New Modules
------------
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- netapp.ontap.na_ontap_autoupdate_support - NetApp ONTAP enable auto update status.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.1)
-- ansible.posix (still version 2.1.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.2.0)
-- arista.eos (still version 11.0.1)
-- awx.awx (still version 24.6.1)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.12.0)
-- cisco.ios (still version 10.1.1)
-- cisco.iosxr (still version 11.1.0)
-- cisco.meraki (still version 2.21.4)
-- cisco.mso (still version 2.11.0)
-- cisco.nxos (still version 10.2.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.11)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.7)
-- community.grafana (still version 2.3.0)
-- community.hashi_vault (still version 7.0.0)
-- community.hrobot (still version 2.5.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 2.0.0)
-- community.mongodb (still version 1.7.10)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxmox (still version 1.2.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.6.0)
-- community.routeros (still version 3.8.1)
-- community.sap_libs (still version 1.4.2)
-- community.vmware (still version 5.7.1)
-- community.windows (still version 3.0.1)
-- community.zabbix (still version 4.1.0)
-- containers.podman (still version 1.17.0)
-- cyberark.conjur (still version 1.3.6)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.powerflex (still version 2.6.1)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.37.1)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.3)
-- hetzner.hcloud (still version 5.1.0)
-- hitachivantara.vspone_block (still version 4.0.1)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.2)
-- microsoft.iis (still version 1.0.3)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.36.0)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.4.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware (still version 2.2.0)
-- vmware.vmware_rest (still version 4.8.1)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0b2
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-07-29
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0b2 contains ansible-core version 2.19.0.
-This is the same version of ansible-core as in the previous Ansible release.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| Collection | Ansible 12.0.0b1 | Ansible 12.0.0b2 | Notes |
-+=============================+==================+==================+==========================================================+
-| community.crypto | 3.0.1 | 3.0.2 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| community.dns | 3.2.6 | 3.2.7 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| community.docker | 4.6.1 | 4.6.2 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| community.general | 11.1.0 | 11.1.1 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| community.routeros | 3.8.0 | 3.8.1 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| grafana.grafana | 6.0.2 | 6.0.3 | The collection did not have a changelog in this version. |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-| hitachivantara.vspone_block | 4.0.0 | 4.0.1 | |
-+-----------------------------+------------------+------------------+----------------------------------------------------------+
-
-Minor Changes
--------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- aerospike_migrations - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- airbrake_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- bigpanda - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- bootc_manage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- bower - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- btrfs_subvolume - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- bundler - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- campfire - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- cargo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- catapult - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- cisco_webex - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- consul_kv - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- consul_policy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- copr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- datadog_downtime - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- datadog_monitor - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dconf - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dimensiondata_network - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dimensiondata_vlan - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dnf_config_manager - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dnsmadeeasy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- dpkg_divert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- easy_install - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- elasticsearch_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- facter - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- filesystem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
-- sysrc - adjustments to the code (https://github.com/ansible-collections/community.general/pull/10417).
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added support to 'create' and 'delete' external parity group in the 'hv_external_paritygroup' modules.
-- Added support to get ldev details using 'pool_id', 'resource_group_id', 'journal_id' and 'parity_group_id' in the `"hv_ldev_facts"` module.
-
-Bugfixes
---------
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- Improve error message when loading a private key fails due to correct private key files or wrong passwords. Also include the original cryptography error since it likely contains more helpful information (https://github.com/ansible-collections/community.crypto/issues/936, https://github.com/ansible-collections/community.crypto/pull/939).
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-community.dns
+community.aws
~~~~~~~~~~~~~
-- Update Public Suffix List.
-
-community.docker
-~~~~~~~~~~~~~~~~
-
-- docker_compose_v2 - adjust to new dry-run build events in Docker Compose 2.39.0+ (https://github.com/ansible-collections/community.docker/pull/1101).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- apache2_module - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
-- apk - handle empty name strings properly (https://github.com/ansible-collections/community.general/issues/10441, https://github.com/ansible-collections/community.general/pull/10442).
-- cronvar - fix crash on missing ``cron_file`` parent directories (https://github.com/ansible-collections/community.general/issues/10460, https://github.com/ansible-collections/community.general/pull/10461).
-- cronvar - handle empty strings on ``value`` properly (https://github.com/ansible-collections/community.general/issues/10439, https://github.com/ansible-collections/community.general/pull/10445).
-- htpasswd - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
-- irc - pass hostname to ``wrap_socket()`` if ``use_tls=true`` and ``validate_certs=true`` (https://github.com/ansible-collections/community.general/issues/10472, https://github.com/ansible-collections/community.general/pull/10491).
-- listen_port_facts - avoid crash when required commands are missing (https://github.com/ansible-collections/community.general/issues/10457, https://github.com/ansible-collections/community.general/pull/10458).
-- syspatch - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
-- sysrc - fixes parsing with multi-line variables (https://github.com/ansible-collections/community.general/issues/10394, https://github.com/ansible-collections/community.general/pull/10417).
-- sysupgrade - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
-- zypper_repository - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
-
-community.routeros
-~~~~~~~~~~~~~~~~~~
-
-- facts and api_facts modules - prevent deprecation warnings when used with ansible-core 2.19 (https://github.com/ansible-collections/community.routeros/pull/384).
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.1)
-- ansible.posix (still version 2.1.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.2.0)
-- arista.eos (still version 11.0.1)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.6.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.12.0)
-- cisco.dnac (still version 6.36.0)
-- cisco.intersight (still version 2.1.0)
-- cisco.ios (still version 10.1.1)
-- cisco.iosxr (still version 11.1.0)
-- cisco.meraki (still version 2.21.4)
-- cisco.mso (still version 2.11.0)
-- cisco.nxos (still version 10.2.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.11)
-- community.digitalocean (still version 1.27.0)
-- community.grafana (still version 2.3.0)
-- community.hashi_vault (still version 7.0.0)
-- community.hrobot (still version 2.5.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 2.0.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxmox (still version 1.2.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.6.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.2.0)
-- community.vmware (still version 5.7.1)
-- community.windows (still version 3.0.1)
-- community.zabbix (still version 4.1.0)
-- containers.podman (still version 1.17.0)
-- cyberark.conjur (still version 1.3.6)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.2)
-- dellemc.powerflex (still version 2.6.1)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.37.1)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- google.cloud (still version 1.6.0)
-- hetzner.hcloud (still version 5.1.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.2)
-- microsoft.iis (still version 1.0.3)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.36.0)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.4.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware (still version 2.2.0)
-- vmware.vmware_rest (still version 4.8.1)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0b1
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-07-22
-
-`Porting Guide `_
-
-Added Collections
------------------
-
-- google.cloud (version 1.6.0)
-
-Ansible-core
-------------
-
-Ansible 12.0.0b1 contains ansible-core version 2.19.0.
-This is a newer version than version 2.19.0rc2 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a9 | Ansible 12.0.0b1 | Notes |
-+=============================+==================+==================+=================================================================================================================================================================================================================+
-| ansible.posix | 2.0.0 | 2.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ansible.windows | 3.1.0 | 3.2.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.aci | 2.11.0 | 2.12.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.meraki | 2.21.3 | 2.21.4 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.mso | 2.10.0 | 2.11.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.ciscosmb | 1.0.10 | 1.0.11 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 3.0.0 | 3.0.1 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.dns | 3.2.5 | 3.2.6 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 11.0.0 | 11.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.grafana | 2.2.0 | 2.3.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.hashi_vault | 6.2.0 | 7.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.libvirt | 1.4.0 | 2.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.proxmox | 1.1.0 | 1.2.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.rabbitmq | 1.5.0 | 1.6.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.sops | 2.1.0 | 2.2.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.windows | 3.0.0 | 3.0.1 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.zabbix | 4.0.0 | 4.1.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.conjur | 1.3.3 | 1.3.6 | You can find the collection's changelog at `https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md `__. |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| google.cloud | | 1.6.0 | The collection was added to Ansible |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | 3.5.1 | 4.0.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.ad | 1.9.1 | 1.9.2 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.iis | 1.0.2 | 1.0.3 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| purestorage.flasharray | 1.35.1 | 1.36.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| telekom_mms.icinga_director | 2.3.0 | 2.4.0 | |
-+-----------------------------+------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-- The previously removed collection google.cloud was re-added to Ansible 12 (`https://forum.ansible.com/t/8609 `__).
- The sanity test failures have been addressed.
+- community.aws collection - The community.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
community.libvirt
~~~~~~~~~~~~~~~~~
@@ -1393,3414 +272,128 @@
- virt_volume - the mechanism of passing variables to the member functions was not flexible enough to cope with differing parameter requirements. All parameters are now passed as kwargs, which allows the member functions to select the parameters they need.
- virt_volume - the module appears to have been derived from virt_pool, but not cleaned up to remove much non-functional code. It has been refactored to remove the pool-specific code, and to make it more flexible.
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- All Roles - Updated to support Zabbix 7.4
-
-Minor Changes
--------------
-
-ansible.posix
-~~~~~~~~~~~~~
-
-- profile_tasks and profile_roles callback plugins - avoid deleted/deprecated callback functions, instead use modern interface that was introduced a longer time ago (https://github.com/ansible-collections/ansible.posix/issues/650).
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- win_find - add support for 'any' to find both directories and files (https://github.com/ansible-collections/ansible.windows/issues/797).
-- win_template - Preserve user-supplied value for ``ansible_managed`` when set on Ansible Core 2.19+.
-
-cisco.aci
-~~~~~~~~~
-
-- Add description, console_log_severity, local_file_log_format, and console_log_format to aci_syslog_group module.
-- Add enhanced_log and rfc5424-ts options to attribute format of aci_syslog_group module.
-- Add epg_cos, epg_cos_preference, ipam_dhcp_override, ipam_enabled, ipam_gateway, lag_policy_name, netflow_direction, primary_encap_inner, and secondary_encap_inner atributes to aci_epg_to_domain module.
-- Add missing options to priority attribute and vrf to scope attribute in aci_contract module.
-- Add nutanix support for aci_aep_to_domain, aci_domain, aci_domain_to_encap_pool, aci_domain_to_vlan_pool, aci_vmm_controller, aci_vmm_credential modules.
-- Add pod_id attribute to aci_switch_policy_vpc_protection_group module.
-
-cisco.mso
-~~~~~~~~~
-
-- Add admin_state attribute to mso_schema_site_anp_epg module.
-- Improved ndo modules returned current value with actual API response.
-
-community.ciscosmb
-~~~~~~~~~~~~~~~~~~
-
-- Update modules to conform core 2.19 and templating changes
-- solves
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- cloudflare_dns - adds support for PTR records (https://github.com/ansible-collections/community.general/pull/10267).
-- cloudflare_dns - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- cloudflare_dns - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10269).
-- crypttab - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- datadog_monitor - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- dense callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- gitlab_deploy_key - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- gitlab_group_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- gitlab_hook - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- gitlab_project_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- gitlab_runner - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- iocage inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- ipa_group - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- jc filter plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- jenkins_build - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- jenkins_build_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- keycloak - add support for ``grant_type=client_credentials`` to all keycloak modules, so that specifying ``auth_client_id`` and ``auth_client_secret`` is sufficient for authentication (https://github.com/ansible-collections/community.general/pull/10231).
-- keycloak module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- logstash callback plugin - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- mail callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- nmcli - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- nmcli - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10323).
-- oneandone_firewall_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- oneandone_load_balancer - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- oneandone_monitoring_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- onepassword_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- osx_defaults - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- ovh_ip_loadbalancing_backend - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- pacemaker_cluster - add ``state=maintenance`` for managing pacemaker maintenance mode (https://github.com/ansible-collections/community.general/issues/10200, https://github.com/ansible-collections/community.general/pull/10227).
-- pacemaker_cluster - rename ``node`` to ``name`` and add ``node`` alias (https://github.com/ansible-collections/community.general/pull/10227).
-- pacemaker_resource - enhance module by removing duplicative code (https://github.com/ansible-collections/community.general/pull/10227).
-- packet_device - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- pagerduty - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- pingdom - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- python_runner module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- rhevm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- rocketchat - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- sensu_silence - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- sl_vm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- urpmi - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- wsl connection plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- xattr - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-- xen_orchestra inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
-- xfconf - minor adjustments the the code (https://github.com/ansible-collections/community.general/pull/10311).
-- xml - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
-
-community.grafana
-~~~~~~~~~~~~~~~~~
-
-- grafana_team - integrate parameter ``org_id``
-- grafana_team - integrate parameter ``org_name``
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- proxmox inventory plugin - always provide basic information regardless of want_facts (https://github.com/ansible-collections/community.proxmox/pull/124).
-- proxmox_cluster - cluster creation has been made idempotent (https://github.com/ansible-collections/community.proxmox/pull/125).
-- proxmox_pct_remote - allow forward agent with paramiko (https://github.com/ansible-collections/community.proxmox/pull/130).
-
-community.rabbitmq
-~~~~~~~~~~~~~~~~~~
-
-- rabbitmq_policy - add support to policy manipulation through RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/203)
-- rabbitmq_vhost - make rabbitmqctl optional when configuring vhosts using the RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/201)
-
-community.sops
-~~~~~~~~~~~~~~
-
-- load_vars - expressions can now be lazily evaluated when using ansible-core 2.19 or newer (https://github.com/ansible-collections/community.sops/pull/229).
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- Web Role - Added `zabbix_web_custom_php` to allow for addition of customer PHP settings
-- Web Role - Added support for `ssl_prefer_server_ciphers`
-- Web Role - Added support for `zabbix_web_ssl_session_protocols`
-- Web Role - Added support for `zabbix_web_ssl_session_stapling`
-- roles/proxy - Fixing the zabbix_proxy_proxyconfigfrequency functionality
-- zabbix_group_info - Add the possibility to retrive all host Group
-- zabbix_template_info - Add the possibility to retrive all template Group
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added a new `"hv_audit_log_transfer_dest"` module to set the transfer destinations of audit log files using UDP/TCP ports.
-- Added a new `"hv_audit_log_transfer_dest_facts"` module to get information about the transfer destinations of audit log files.
-- Added a new `"hv_clpr"` module to create, update, and delete CLPR information.
-- Added a new `"hv_clpr_facts"` module to get CLPR information.
-- Added a new `"hv_external_paritygroup"` module to assign external volume groups to a CLPR.
-- Added a new `"hv_external_paritygroup"` module to change the MP blade assigned to an external volume group.
-- Added a new `"hv_server_priority_manager"` module to set, change, and delete Server Priority Manager information.
-- Added a new `"hv_server_priority_manager_facts"` module to get Server Priority Manager information.
-- Added a new `"hv_snmp_setting"` module to manage SNMP settings.
-- Added a new `"hv_snmp_settings_facts"` module to get SNMP settings for a storage system.
-- Added a new `"hv_storage_system"` module to set the date and time in a storage system with NTP disabled/enabled.
-- Added a new `"hv_storage_system_monitor_facts"` module to get alert, hardware installed, and channel board information.
-- Added a new `"hv_upload_file"` module to upload a primary/secondary client certificate file to a storage system for audit log.
-- Added support for a secondary volume takeover HUR pair to the `"hv_hur"` module.
-- Added support for assigning a CLPR ID to a parity group to the `"hv_paritygroup"` module.
-- Added support for changing pool settings by pool name and by pool ID with new parameters to the `"hv_storage_pool"` module.
-- Added support for creating a HUR pair with `"provisioned_secondary_volume_id"` to the `"hv_hur"`, `"hv_gad"` and `"hv_truecopy"` modules.
-- Added support for creating a pair with `"provisioned_secondary_volume_id"` and hostgroups to the `"hv_hur"` , `"hv_gad"` and `"hv_truecopy"` modules.
-- Added support for creating a storage pool with a specific pool ID and LDEV numbers to the `"hv_storage_pool"` module.
-- Added support for creating a storage pool with a specific pool ID and start and end LDEV numbers to the `"hv_storage_pool"` module.
-- Added support for deleting a pool including pool volumes to the `"hv_storage_pool"` module.
-- Added support for getting a list of time zones that can be used in a storage system to the `"hv_storagesystem_facts"` module.
-- Added support for getting free LDEV IDs to the `"hv_ldev_facts"` module.
-- Added support for initializing the capacity saving function for a pool to the `"hv_storage_pool"` module.
-- Added support for performing tier relocation of a pool to the `"hv_storage_pool"` module.
-- Added support for restoring a pool to the `"hv_storage_pool"` module.
-- Added support for running performance monitoring of a pool to the `"hv_storage_pool"` module.
-- Added support for setting the CLPR ID of a volume to the `"hv_ldev"` module.
-- Added support for taking over a remote copy group for the HUR replication type to the `"hv_remote_copy_group"` module.
-- Enhanced the `"hv_storagepool_facts"` module to support additional output parameters.
-- Removed query for ports, quorum disks, journalPools, and freeLogicalUnitList from the `"hv_storagesystem_facts"` module.
-
-purestorage.flasharray
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefa_user - No longer tries to expose API tokens as these are not required in the module
-
-telekom_mms.icinga_director
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Add zone option for icinga_user_group module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/286)
-
-Breaking Changes / Porting Guide
---------------------------------
-
-community.hashi_vault
-~~~~~~~~~~~~~~~~~~~~~
-
-- ansible-core - support for all end-of-life versions of ``ansible-core`` has been dropped. The collection is tested with ``ansible-core>=2.17`` (https://github.com/ansible-collections/community.hashi_vault/issues/470).
-- python - support for older versions of Python has been dropped. The collection is tested with all supported controller-side versions and a few lower target-side versions depending on the tests (https://github.com/ansible-collections/community.hashi_vault/issues/470).
-
-Deprecated Features
--------------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
-- pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227).
-
-community.hashi_vault
-~~~~~~~~~~~~~~~~~~~~~
-
-- ansible-core - support for several ``ansible-core`` versions will be dropped in ``v7.0.0``. The collection will focus on current supported versions of ``ansible-core`` going forward and more agressively drop end-of-life or soon-to-be EOL versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
-- python - support for several ``python`` versions will be dropped in ``v7.0.0``. The collection will focus on ``python`` versions that are supported by the active versions of ``ansible-core`` on the controller side at a minimum, and some subset of target versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- Web Role - Depricated `zabbix_web_SSLSessionCacheTimeout` for `zabbix_web_ssl_session_cache_timeout`
-- Web Role - Depricated `zabbix_web_SSLSessionCache` for `zabbix_web_ssl_session_cache`
-
-Removed Features (previously deprecated)
-----------------------------------------
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- virt_volume - PoolConnection class has been removed
-- virt_volume - the 'deleted' state has been removed as its definition was not entirely accurate, and the 'wipe' boolean option is added to 'state/absent' and 'command/delete'.
-- virt_volume - undocumented but unused FLAGS have been removed.
-- virt_volume - undocumented but unused/non-functional functions (get_status, get_status2, get_state, get_uuid, build) have been removed.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- `hv_gateway_admin_password` module has been removed.
-- `hv_gateway_subscriber_facts` module has been removed.
-- `hv_gateway_subscriber` module has been removed.
-- `hv_gateway_subscription_facts` module has been removed.
-- `hv_gateway_unsubscribe_resource` module has been removed.
-- `hv_storagesystem` module has been removed.
-- `hv_system_facts` module has been removed.
-- `hv_uaig_token_facts` module has been removed.
-
-Bugfixes
---------
-
-ansible.posix
-~~~~~~~~~~~~~
-
-- ansible.posix.cgroup_perf_recap - fixes json module load path (https://github.com/ansible-collections/ansible.posix/issues/630).
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- win_copy - report correct information about symlinks in action plugin.
-- win_service - Fix crash when attempting to create a service with the ``--check`` flag.
-
-cisco.aci
-~~~~~~~~~
-
-- Fix API call and index error for non-existing configExportP in aci_config_snapshot.
-- Fix the aci_access_port_block_to_access_port module to query a specific object with the object name.
-- Fix to read the last_as from the module params in aci_action_rule_set_as_path.
-- Fix type of subnet_control in aci_bd_subnet from string to list of strings.
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth - fix idempotency error.
-
-cisco.mso
-~~~~~~~~~
+community.postgresql
+~~~~~~~~~~~~~~~~~~~~
-- Fix API endpoint to query local and remote users in ND4.0
+- the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4.0.0 (https://github.com/ansible-collections/community.postgresql/issues/829).
-community.crypto
+community.vmware
~~~~~~~~~~~~~~~~
-- openssl_csr and openssl_csr_pipe - the idempotency check for ``key_usage`` resulted in a crash if ``Key Agreement``/``keyAgreement`` was not set (https://github.com/ansible-collections/community.crypto/issues/934, https://github.com/ansible-collections/community.crypto/pull/935).
-
-community.dns
-~~~~~~~~~~~~~
-
-- Update Public Suffix List.
-- hetzner_dns_records inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.dns/pull/266).
-- hosttech_dns_records inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.dns/pull/266).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- dependent lookup plugin - avoid deprecated ansible-core 2.19 functionality (https://github.com/ansible-collections/community.general/pull/10359).
-- github_release - support multiple types of GitHub tokens; no longer failing when ``ghs_`` token type is provided (https://github.com/ansible-collections/community.general/issues/10338, https://github.com/ansible-collections/community.general/pull/10339).
-- icinga2 inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271).
-- incus connection plugin - fix error handling to return more useful Ansible errors to the user (https://github.com/ansible-collections/community.general/issues/10344, https://github.com/ansible-collections/community.general/pull/10349).
-- linode inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271).
-- logstash callback plugin - remove reference to Python 2 library (https://github.com/ansible-collections/community.general/pull/10345).
-
-community.grafana
-~~~~~~~~~~~~~~~~~
-
-- Fix parsing of grafana version for pre-releases and security releases
-- grafana_dashboard - fix change detection for dashboards in folders
-
-community.hashi_vault
-~~~~~~~~~~~~~~~~~~~~~
-
-- connection_options - the ``validate_certs`` option had no effect if the ``retries`` option was set. Fix now also sets the parameter correctly in the retry request session (https://github.com/ansible-collections/community.hashi_vault/issues/461).
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- virt_volume - create_from was non-functional, and is now folded into create (added clone_source parameter). Fixes
-- virt_volume - info, facts, download, upload commands have been removed as they were not functional (and not tested).
-- virt_volume - wipe command now works (and is also a boolean option for 'state/absent' and 'command/delete').
-
-community.rabbitmq
-~~~~~~~~~~~~~~~~~~
-
-- rabbitmq_user - URL encode the `vhost` and `user` fields to allow for input with '/' characters. (https://github.com/ansible-collections/community.rabbitmq/issues/205)
-- rabbitmq_vhost - Fail module if the requests library is missing. This maintains the same behavior across all the modules.
-- setup_rabbitmq - incorrect SSL library was selected for install on Ubuntu Noble. Fix now installs the correct version on newer Ubuntu versions. (https://github.com/ansible-collections/community.rabbitmq/issues/199)
-
-community.windows
-~~~~~~~~~~~~~~~~~
-
-- win_rabbitmq_plugin - removed redundant quotes that caused failures when specifying ``rabbitmq_bin_path`` (https://github.com/ansible-collections/community.windows/issues/635).
-- win_scoop - Fix issue when scoop is installed at a path with spaces like ``C:\Program Files`` - https://github.com/ansible-collections/community.windows/issues/614
+- vmware_dvswitch_pvlans - The VLAN ID type has been updated to be handled as an integer (https://github.com/ansible-collections/community.vmware/pull/2267).
community.zabbix
~~~~~~~~~~~~~~~~
-- Token Module - Fixed integration with Zabbix 7.4
-
-microsoft.ad
-~~~~~~~~~~~~
-
-- microsoft.ad.object_info - Correctly return multivalued attributes with one entry as array with on item (instead of returning a string) - https://github.com/ansible-collections/microsoft.ad/issues/199
-
-microsoft.iis
-~~~~~~~~~~~~~
-
-- website_info - fixed a crash when the specified iis site does not exist, ensuring the module no longer inserts a ``null`` in the site list. (https://github.com/ansible-collections/microsoft.iis/pull/36)
-
-purestorage.flasharray
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefa_vg - Fixed issue where VG QoS updates were being ignored
-
-Known Issues
-------------
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- virt_volume - check_mode is disabled. It was not fully supported in the previous code either ('state/present', 'command/create' did not support it).
-
-New Plugins
------------
-
-Callback
-~~~~~~~~
-
-- community.general.tasks_only - Only show tasks.
-
-New Modules
------------
-
-cisco.aci
-~~~~~~~~~
-
-- cisco.aci.aci_interface_policy_port_channel_member - Manage Port Channel Member interface policies (lacp:IfPol)
-- cisco.aci.aci_l4l7_concrete_device - Manage L4-L7 Concrete Devices (vns:CDev)
-- cisco.aci.aci_l4l7_concrete_interface - Manage L4-L7 Concrete Interfaces (vns:CIf)
-- cisco.aci.aci_l4l7_concrete_interface_attachment - Manage L4-L7 Concrete Interface Attachment (vns:RsCIfAttN)
-- cisco.aci.aci_l4l7_device - Manage L4-L7 Devices (vns:LDevVip)
-- cisco.aci.aci_l4l7_device_selection_interface_context - Manage L4-L7 Device Selection Policy Logical Interface Contexts (vns:LIfCtx)
-- cisco.aci.aci_l4l7_device_selection_policy - Manage L4-L7 Device Selection Policies (vns:LDevCtx)
-- cisco.aci.aci_l4l7_logical_interface - Manage L4-L7 Logical Interface (vns:LIf)
-- cisco.aci.aci_l4l7_policy_based_redirect - Manage L4-L7 Policy Based Redirection Policies (vns:SvcRedirectPol)
-- cisco.aci.aci_l4l7_policy_based_redirect_destination - Manage L4-L7 Policy Based Redirect Destinations (vns:RedirectDest and vns:L1L2RedirectDest)
-- cisco.aci.aci_l4l7_redirect_health_group - Manage L4-L7 Redirect Health Groups (vns:RedirectHealthGroup)
-- cisco.aci.aci_l4l7_service_graph_template - Manage L4-L7 Service Graph Templates (vns:AbsGraph)
-- cisco.aci.aci_l4l7_service_graph_template_connection - Manage L4-L7 Service Graph Template Abs Connections (vns:AbsConnection)
-- cisco.aci.aci_l4l7_service_graph_template_connection_to_connector - Manage L4-L7 Service Graph Template Connections between function nodes and terminal nodes (vns:RsAbsConnectionConns)
-- cisco.aci.aci_l4l7_service_graph_template_functional_connection - Manage L4-L7 Service Graph Templates Functional Connections (vns:AbsFuncConn)
-- cisco.aci.aci_l4l7_service_graph_template_node - Manage L4-L7 Service Graph Templates Nodes (vns:AbsNode)
-- cisco.aci.aci_l4l7_service_graph_template_term_node - Manage L4-L7 SGT Term Nodes (vns:AbsTermNodeCon, vns:AbsTermNodeProv and vns:AbsTermConn)
-- cisco.aci.aci_node_mgmt_epg_to_contract - Bind Node Management EPGs to Contracts (fv:RsCons, fv:RsProv, fv:RsProtBy, fv:RsConsIf and mgmt:RsOoBProv)
-- cisco.aci.aci_oob_contract - Manage Out-of-Band (OOB) Contract resources (vz:OOBBrCP)
-- cisco.aci.aci_vmm_enhanced_lag_policy - Manage Enhanced LACP Policy for Virtual Machine Manager (VMM) in Cisco ACI (lacp:EnhancedLagPol)
-- cisco.aci.aci_vrf_fallback_route_group - Manage VRF Fallback Route Groups (fv:FBRGroup, fv:FBRoute, and fv:FBRMember)
-
-cisco.mso
-~~~~~~~~~
-
-- cisco.mso.ndo_fabric_span_session - Manage Fabric SPAN Sessions on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_fabric_span_session_source - Manage Fabric SPAN Sessions Source on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_fabric_span_session_source_filter - Manage Fabric SPAN Sessions Source Filter on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_l3out_bgp_peer - Manage L3Out BGP Peer on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_l3out_node_static_route - Manage L3Out Node Static Routes on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_l3out_node_static_route_next_hop - Manage L3Out Node Static Route Next Hops on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_l3out_routed_interface - Manage L3Out Routed Interfaces on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_l3out_routed_sub_interface - Manage L3Out Routed Sub-Interfaces on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_pod_profile - Manage Pod Profiles on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_pod_settings - Manage Pod Settings on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_qos_class_policy - Manage QoS Class Policies on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_schema_template_contract_service_chain - Manage the Schema Template Contract Service Chaining workflow on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_service_device_cluster - Manage Service Device Clusters on Cisco Nexus Dashboard Orchestrator (NDO).
-- cisco.mso.ndo_tenant_span_session - Manage Tenant SPAN Sessions on Cisco Nexus Dashboard Orchestrator (NDO).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- community.general.jenkins_credential - Manage Jenkins credentials and domains via API.
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- community.libvirt.virt_install - Provision new virtual machines using virt-install tool
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- community.proxmox.proxmox_group - Group management for Proxmox VE cluster.
-- community.proxmox.proxmox_node - Manage Proxmox VE nodes.
-- community.proxmox.proxmox_user - User management for Proxmox VE cluster.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Vsp
-^^^
-
-- hitachivantara.vspone_block.hv_audit_log_transfer_dest - This module specifies settings related to the transfer of audit log files from a storage system to the syslog servers.
-- hitachivantara.vspone_block.hv_audit_log_transfer_dest_facts - Retrieves about the settings related to the transfer of audit log files to the syslog servers.
-- hitachivantara.vspone_block.hv_external_paritygroup - Manages assignment of MP blade and CLPR to an External Parity Group from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_server_priority_manager - Manage Server Priority Manager information on Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_server_priority_manager_facts - Retrieves Server Priority Manager information from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_snmp_settings - Manage SNMP settings on Hitachi Vantara storage systems.
-- hitachivantara.vspone_block.hv_snmp_settings_facts - Retrieves SNMP configuration from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_storage_system - This module specifies storage systems settings like updating the date and time.
-- hitachivantara.vspone_block.hv_storage_system_monitor_facts - Retrieves alerts, hardware installed, and channel boards information from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_upload_file - This uploads the files required to set the transfer destination of audit log files.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.1)
-- ansible.utils (still version 6.0.0)
-- arista.eos (still version 11.0.1)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.6.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.dnac (still version 6.36.0)
-- cisco.intersight (still version 2.1.0)
-- cisco.ios (still version 10.1.1)
-- cisco.iosxr (still version 11.1.0)
-- cisco.nxos (still version 10.2.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.digitalocean (still version 1.27.0)
-- community.docker (still version 4.6.1)
-- community.hrobot (still version 2.5.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxysql (still version 1.6.0)
-- community.routeros (still version 3.8.0)
-- community.sap_libs (still version 1.4.2)
-- community.vmware (still version 5.7.1)
-- containers.podman (still version 1.17.0)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.2)
-- dellemc.powerflex (still version 2.6.1)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.37.1)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.2)
-- hetzner.hcloud (still version 5.1.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware (still version 2.2.0)
-- vmware.vmware_rest (still version 4.8.1)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a9
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-07-09
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a9 contains ansible-core version 2.19.0rc2.
-This is a newer version than version 2.19.0rc1 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------+------------------+------------------+-------+
-| Collection | Ansible 12.0.0a8 | Ansible 12.0.0a9 | Notes |
-+=======================+==================+==================+=======+
-| ansible.netcommon | 8.0.0 | 8.0.1 | |
-+-----------------------+------------------+------------------+-------+
-| arista.eos | 11.0.0 | 11.0.1 | |
-+-----------------------+------------------+------------------+-------+
-| cisco.dnac | 6.35.0 | 6.36.0 | |
-+-----------------------+------------------+------------------+-------+
-| cisco.ios | 10.1.0 | 10.1.1 | |
-+-----------------------+------------------+------------------+-------+
-| cisco.nxos | 10.1.0 | 10.2.0 | |
-+-----------------------+------------------+------------------+-------+
-| community.crypto | 3.0.0-rc1 | 3.0.0 | |
-+-----------------------+------------------+------------------+-------+
-| community.hrobot | 2.4.0 | 2.5.0 | |
-+-----------------------+------------------+------------------+-------+
-| community.proxmox | 1.0.1 | 1.1.0 | |
-+-----------------------+------------------+------------------+-------+
-| dellemc.openmanage | 9.12.1 | 9.12.2 | |
-+-----------------------+------------------+------------------+-------+
-| f5networks.f5_modules | 1.36.0 | 1.37.1 | |
-+-----------------------+------------------+------------------+-------+
-| vmware.vmware_rest | 4.7.0 | 4.8.1 | |
-+-----------------------+------------------+------------------+-------+
-
-Major Changes
--------------
+- All Roles - Updated to support Zabbix 7.4
+- All Roles - Updated to support version 7.2
dellemc.openmanage
~~~~~~~~~~~~~~~~~~
+- OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2.19.
+- idrac_attributes - This module is enhanced to support iDRAC10.
+- idrac_attributes - This role is enhanced to support iDRAC10.
- idrac_bios - This module is enhanced to support iDRAC10.
+- idrac_bios - This role is enhanced to support iDRAC10.
+- idrac_boot - This module is enhanced to support iDRAC10.
+- idrac_boot - This role is enhanced to support iDRAC10.
+- idrac_certificates - This module is enhanced to support iDRAC10.
- idrac_diagnostics - This module is enhanced to support iDRAC10.
- idrac_firmware - This module is enhanced to support iDRAC10.
+- idrac_gather_facts - This role is enhanced to support iDRAC10.
- idrac_job_queue - This role is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_job_status_info - This module is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_jobs - This module is enhanced to support iDRAC10.
- idrac_lifecycle_controller_logs - This module is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_status_info - This module is enhanced to support iDRAC10.
- idrac_network_attributes - This module is enhanced to support iDRAC10.
+- idrac_reset - This module is enhanced to support iDRAC10.
+- idrac_reset - This role is enhanced to support iDRAC10.
- idrac_secure_boot - This module is enhanced to support iDRAC10.
- idrac_server_powerstate - This role is enhanced to support iDRAC10.
- idrac_session - This module is enhanced to support iDRAC10.
+- idrac_support_assist - This module is enhanced to support iDRAC10.
+- idrac_syslog - This module is deprecated.
- idrac_system_erase - This module is enhanced to support iDRAC10.
+- idrac_system_info - This module is enhanced to support iDRAC10.
+- idrac_user - This module is enhanced to support iDRAC10.
+- idrac_user - This role is enhanced to support iDRAC10.
+- idrac_user_info - This module is enhanced to support iDRAC10.
+- idrac_virtual_media - This module is enhanced to support iDRAC10.
+- ome_firmware - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline_compliance_info - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline_info - This module is enhanced to support OME 4.5.
+- ome_firmware_catalog - This module is enhanced to support OME 4.5.
+- omevv_baseline_profile - This module allows to manage baseline profile.
+- omevv_baseline_profile_info - This module allows to retrieve baseline profile information.
+- omevv_compliance_info - This module allows to retrieve firmware compliance reports.
+- omevv_firmware - This module allows to update firmware of the single host and single cluster.
- redfish_event_subscription - This module is enhanced to support iDRAC10.
+- redfish_firmware - This module is enhanced to support iDRAC10.
- redfish_power_state - This module is enhanced to support iDRAC10.
-vmware.vmware_rest
-~~~~~~~~~~~~~~~~~~
-
-- modules - disable turbo mode for module execution by default. Make it optional to enable it using an environment variable (https://github.com/ansible-collections/vmware.vmware_rest/issues/499)
-
-Minor Changes
--------------
-
-cisco.dnac
-~~~~~~~~~~
-
-- Added create in configuration_template module
-- Changes in lan_automation_create module
-- Update dnacentersdk requirement from 2.7.0 to 2.10.1
-
-cisco.nxos
-~~~~~~~~~~
-
-- nxos_interfaces - Added service-policy, logging, mac-address and snmp configuration options for interface.
-- nxos_l2_interfaces - Enhances capability of the module to deal with addition attributes under l2 interfaces. Adds support for CDP, Link flap and beacon.
-
-community.hrobot
-~~~~~~~~~~~~~~~~
-
-- Introduced a new action group (module defaults group) ``community.hrobot.api`` that includes all modules that support the new Hetzner API. This is currently limited to a subset of the storage box modules; these currently support both the ``community.hrobot.robot`` and the new ``community.hrobot.api`` action group, and will eventually drop the ``community.hrobot.robot`` action group once the Robot API for storage boxes is removed by Hetzner (https://github.com/ansible-collections/community.hrobot/pull/166, https://github.com/ansible-collections/community.hrobot/pull/167, https://github.com/ansible-collections/community.hrobot/pull/168, https://github.com/ansible-collections/community.hrobot/pull/169).
-- storagebox - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/166).
-- storagebox_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/166).
-- storagebox_set_password - support the new Hetzner API. Note that the new API does not support setting a random password; you must always provide a password when using the new API (https://github.com/ansible-collections/community.hrobot/pull/168).
-- storagebox_snapshot - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
-- storagebox_snapshot_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
-- storagebox_snapshot_plan - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/167).
-- storagebox_snapshot_plan_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/167).
-- storagebox_subaccount - no longer mark ``password_mode`` as ``no_log`` (https://github.com/ansible-collections/community.hrobot/pull/168).
-- storagebox_subaccount - support the new Hetzner API. Note that the new API does not support setting a random password; you must always provide a password when using the new API to create a storagebox (https://github.com/ansible-collections/community.hrobot/pull/168).
-- storagebox_subaccount_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- proxmox - allow force deletion of LXC containers (https://github.com/ansible-collections/community.proxmox/pull/105).
-- proxmox - validate the cluster name length (https://github.com/ansible-collections/community.proxmox/pull/119).
-
-vmware.vmware_rest
-~~~~~~~~~~~~~~~~~~
-
-- change cloud.common dependency to 4.1 to support anisble 2.19
-
-Deprecated Features
--------------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Jinja test plugins - Returning a non-boolean result from a Jinja test plugin is deprecated.
-- YAML parsing - Usage of the YAML 1.1 ``!!omap`` and ``!!pairs`` tags is deprecated. Use standard mappings instead.
-- YAML parsing - Usage of the undocumented ``!vault-encrypted`` YAML tag is deprecated. Use ``!vault`` instead.
-- config - The ``DEFAULT_ALLOW_UNSAFE_LOOKUPS`` configuration option is deprecated and no longer has any effect. Ansible templating no longer encounters situations where use of lookup plugins is considered "unsafe".
-- config - The ``DEFAULT_UNDEFINED_VAR_BEHAVIOR`` configuration option is deprecated and no longer has any effect. Attempting to use an undefined variable where undefined values are unexpected is now always an error. This behavior was enabled by default in previous versions, and disabling it yielded inconsistent results.
-- config - The ``STRING_TYPE_FILTERS`` configuration option is deprecated and no longer has any effect. Since the template engine now always preserves native types, there is no longer a risk of unintended conversion from strings to native types.
-- config - Using the ``DEFAULT_JINJA2_EXTENSIONS`` configuration option to enable Jinja2 extensions is deprecated. Previously, custom Jinja extensions were disabled by default, as they can destabilize the Ansible templating environment. Templates should only make use of filter, test and lookup plugins.
-- config - Using the ``DEFAULT_MANAGED_STR`` configuration option to customize the value of the ``ansible_managed`` variable is deprecated. The ``ansible_managed`` variable can now be set the same as any other variable.
-- playbook - The ``timedout.frame`` task result value (injected when a task timeout occurs) is deprecated. Include ``error`` in the ``DISPLAY_TRACEBACK`` config value to capture a full Python traceback for timed out actions.
-- public API - The ``ansible.errors.AnsibleFilterTypeError`` exception type has been deprecated. Use ``AnsibleTypeError`` instead.
-- public API - The ``ansible.errors._AnsibleActionDone`` exception type has been deprecated. Action plugins should return a task result dictionary in success cases instead of raising.
-- public API - The ``ansible.module_utils.common.json.json_dump`` function is deprecated. Call Python stdlib ``json.dumps`` instead, with ``cls`` set to an Ansible profile encoder type from ``ansible.module_utils.common.json.get_encoder``.
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- acme_certificate - the option ``modify_account``'s default value ``true`` has been deprecated. It will change to ``false`` in community.crypto 4.0.0. We recommend to set the option to an explicit value to avoid deprecation warnings, and to prefer setting it to ``false`` already now. Better use the ``community.crypto.acme_account`` module instead (https://github.com/ansible-collections/community.crypto/issues/924).
-
-vmware.vmware_rest
-~~~~~~~~~~~~~~~~~~
-
-- lookup plugins - Deprecate all lookup plugins in favor of vmware.vmware.moid_from_path (https://github.com/ansible-collections/vmware.vmware_rest/pull/608)
-
-Bugfixes
---------
-
-ansible.netcommon
-~~~~~~~~~~~~~~~~~
-
-- (#633) Fixed typo in ansible.netcommon.telnet parameter crlf (was clrf by mistake)
-- netconf - Adds check for netconf session_close RPC happens only if connection is alive.
-
-arista.eos
-~~~~~~~~~~
-
-- Fix route map community handling to include missing community_attributes level in the dictionary
-- Fixed idempotency regarding logging port in differing versions of EOS
-- Fixed idempotency when using `replaced` state on host with multiple ACLs present.
-- Fixed parsing of relative route-map metric adjustments in when extracting settings from device output.
-- Support colon-delimited format in BGP community strings
-- Update route_maps to correctly handle ipv6 next-hop address
-
-cisco.dnac
-~~~~~~~~~~
-
-- Fixed get in sites_telemetry_settings module
-
-cisco.ios
-~~~~~~~~~
-
-- cisco.ios.ios_acls - Added default acls to not get updated/removed in any state.
-- cisco.ios.ios_hsrp_interfaces - Fix module operation around the preempt attributes, also addressed issues around command ordering.
-- cisco.ios.ios_l3_interfaces - Fixed Helper Address command support for l3 interface.
-- cisco.ios.ios_ospfv2 - Fix ospf admin distance parameter and fix other distance specific attributes to be optional.
-- cisco.ios.ios_vlans - Fixed errors during VLAN overrides where primary VLANs have private VLAN associations referencing non-existent or higher VLAN IDs, ensuring smoother private VLAN handling and preventing module failures.
-- ios_bgp_address_family - Refined state handling for `replaced` and `overridden` modes and enhanced address-family parsing to accurately differentiate between types such as unicast, multicast, and others.
-- ios_static_routes - Add missing interface names in parser
-- ios_vrf_address_family - Added support for parsing the `stitching` attribute under route targets when gathering facts. Enhanced handling of `import_config` and `export` and renamed them to `imports` and `exports` to consistently represent them as lists of dictionaries during fact collection.
-
-cisco.nxos
-~~~~~~~~~~
-
-- nxos_acls - Fix issue where Not sufficient TCAM bank error not being captured by error regex.
-
-community.hrobot
-~~~~~~~~~~~~~~~~
-
-- robot inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.hrobot/pull/165).
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- proxmox inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.proxmox/pull/108).
-
-f5networks.f5_modules
-~~~~~~~~~~~~~~~~~~~~~
-
-- added github actions
-- fixed automation hub import log issues
-
-vmware.vmware_rest
-~~~~~~~~~~~~~~~~~~
-
-- Allow cloud.common 5.0.0 and later again (https://github.com/ansible-collections/vmware.vmware_rest/pull/614).
+dellemc.unity
+~~~~~~~~~~~~~
-Known Issues
-------------
+- Adding support for Unity v5.5.
-community.hrobot
+fortinet.fortios
~~~~~~~~~~~~~~~~
-- storagebox* modules - the Hetzner Robot API for storage boxes is `deprecated and will be sunset on July 30, 2025 `__. The modules are currently not compatible with the new API. We will try to adjust them until then, but usage and return values might change slightly due to differences in the APIs.
- For the new API, an API token needs to be registered and provided as ``hetzner_token`` (https://github.com/ansible-collections/community.hrobot/pull/166).
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
-- idrac_diagnostics - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-New Modules
------------
-
-community.proxmox
-~~~~~~~~~~~~~~~~~
-
-- community.proxmox.proxmox_access_acl - Management of ACLs for objects in Proxmox VE Cluster.
-- community.proxmox.proxmox_cluster_ha_groups - Management of HA groups in Proxmox VE Cluster.
-- community.proxmox.proxmox_cluster_ha_resources - Management of HA groups in Proxmox VE Cluster.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.1.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.6.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.intersight (still version 2.1.0)
-- cisco.iosxr (still version 11.1.0)
-- cisco.meraki (still version 2.21.3)
-- cisco.mso (still version 2.10.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.10)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.5)
-- community.docker (still version 4.6.1)
-- community.general (still version 11.0.0)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.4.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.5.0)
-- community.routeros (still version 3.8.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.1.0)
-- community.vmware (still version 5.7.1)
-- community.windows (still version 3.0.0)
-- community.zabbix (still version 4.0.0)
-- containers.podman (still version 1.17.0)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.powerflex (still version 2.6.1)
-- dellemc.unity (still version 2.0.0)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.2)
-- hetzner.hcloud (still version 5.1.0)
-- hitachivantara.vspone_block (still version 3.5.1)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.35.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.3.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware (still version 2.2.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a8
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-07-01
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a8 contains ansible-core version 2.19.0rc1.
-This is a newer version than version 2.19.0b7 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a7 | Ansible 12.0.0a8 | Notes |
-+=============================+==================+==================+==============================================================================================================================+
-| azure.azcollection | 3.5.0 | 3.6.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| containers.podman | 1.16.4 | 1.17.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.powerflex | 2.6.0 | 2.6.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | 3.5.0 | 3.5.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- templating - Relaxed the Jinja sandbox to allow specific bitwise operations which have no filter equivalent. The allowed methods are ``__and__``, ``__lshift__``, ``__or__``, ``__rshift__``, ``__xor__``.
-- templating - Switched from the Jinja immutable sandbox to the standard sandbox. This restores the ability to use mutation methods such as ``list.append`` and ``dict.update``.
-
-containers.podman
-~~~~~~~~~~~~~~~~~
-
-- Add another test for volumes
-- Added checks for volume opts
-
-dellemc.powerflex
-~~~~~~~~~~~~~~~~~
-
-- Added none check for mdm cluster id in mdm_cluster module.
-- Updated minimum SDK version to 2.6.1.
-
-Bugfixes
---------
+- Support check_mode on all the configuration modules.
+- Supported new versions 7.6.1 and 7.6.2.
+- Updated the examples with correct values that have minimum or maximum values.
-Ansible-core
+google.cloud
~~~~~~~~~~~~
-- Update automatic role argument spec validation to not use deprecated syntax (https://github.com/ansible/ansible/issues/85399).
-- ssh connection plugin - Allow only one password prompt attempt when utilizing ``SSH_ASKPASS`` (https://github.com/ansible/ansible/issues/85359)
-
-dellemc.powerflex
-~~~~~~~~~~~~~~~~~
-
-- snapshot_policy - Renamed snapshotAccessMode and secureSnapshots to snapshot_access_mode and secure_snapshots respectively.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Resolved an issue where adding a path to an external path group for FC and retrieving external path group facts would fail.
-
-New Modules
------------
-
-containers.podman
-~~~~~~~~~~~~~~~~~
-
-- containers.podman.podman_system_info - Get podman system information from host machine
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 6.0.0)
-- ansible.windows (still version 3.1.0)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.dnac (still version 6.35.0)
-- cisco.intersight (still version 2.1.0)
-- cisco.ios (still version 10.1.0)
-- cisco.iosxr (still version 11.1.0)
-- cisco.meraki (still version 2.21.3)
-- cisco.mso (still version 2.10.0)
-- cisco.nxos (still version 10.1.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 5.0.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.10)
-- community.crypto (still version 3.0.0-rc1)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.5)
-- community.docker (still version 4.6.1)
-- community.general (still version 11.0.0)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.hrobot (still version 2.4.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.4.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.okd (still version 5.0.0)
-- community.postgresql (still version 4.1.0)
-- community.proxmox (still version 1.0.1)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.5.0)
-- community.routeros (still version 3.8.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.1.0)
-- community.vmware (still version 5.7.1)
-- community.windows (still version 3.0.0)
-- community.zabbix (still version 4.0.0)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.1)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.36.0)
-- fortinet.fortimanager (still version 2.10.0)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.2)
-- hetzner.hcloud (still version 5.1.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 6.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.15.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.35.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.3.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware (still version 2.2.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 6.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a7
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-06-25
-
-`Porting Guide `_
-
-Removed Collections
--------------------
-
-- cisco.ise (previously included version: 2.10.0)
-
-You can still install a removed collection manually with ``ansible-galaxy collection install ``.
-
-Ansible-core
-------------
-
-Ansible 12.0.0a7 contains ansible-core version 2.19.0b7.
-This is a newer version than version 2.19.0b6 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a6 | Ansible 12.0.0a7 | Notes |
-+========================+==================+==================+==============================================================================================================================+
-| ansible.utils | 5.1.2 | 6.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| azure.azcollection | 3.4.0 | 3.5.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.dnac | 6.31.3 | 6.35.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cloud.common | 4.2.0 | 5.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 3.0.0-a2 | 3.0.0-rc1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.dns | 3.2.4 | 3.2.5 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 10.7.0 | 11.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.okd | 4.0.2 | 5.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.routeros | 3.7.0 | 3.8.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.sops | 2.0.5 | 2.1.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.vmware | 5.7.0 | 5.7.1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| fortinet.fortimanager | 2.9.1 | 2.10.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| grafana.grafana | 6.0.1 | 6.0.2 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| kubernetes.core | 5.3.0 | 6.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| netapp.storagegrid | 21.14.0 | 21.15.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| purestorage.flasharray | 1.34.1 | 1.35.1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 2.1.0 | 2.2.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| vyos.vyos | 5.0.0 | 6.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-ansible.utils
-~~~~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+- google_cloud_ops_agents - role submodule removed because it prevents the collection from passing sanity and lint tests
grafana.grafana
~~~~~~~~~~~~~~~
+- Ability to set custom directory path for *.alloy config files by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/294
- Add delete protection by @KucicM in https://github.com/grafana/grafana-ansible-collection/pull/381
+- Add tempo role by @CSTDev in https://github.com/grafana/grafana-ansible-collection/pull/323
+- Do not log grafana.ini contents when setting facts by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/325
+- Fix 'dict object' has no attribute 'path' when running with --check by @JMLX42 in https://github.com/grafana/grafana-ansible-collection/pull/283
- Fix Mimir URL verify task by @parcimonic in https://github.com/grafana/grafana-ansible-collection/pull/358
+- Fix loki_operational_config section not getting rendered in config.yml by @olegkaspersky in https://github.com/grafana/grafana-ansible-collection/pull/330
+- Fix sectionless items edge case by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/303
- Fix some regression introduced by v6 by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/376
+- Fix tags Inherit default vars by @MJurayev in https://github.com/grafana/grafana-ansible-collection/pull/341
+- Fix the markdown code fences for install command by @benmatselby in https://github.com/grafana/grafana-ansible-collection/pull/306
+- Grafana fix facts in main.yml by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/315
+- Make dashboard imports more flexible by @torfbolt in https://github.com/grafana/grafana-ansible-collection/pull/308
+- Update grafana template by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/300
- Update when statement to test for dashboard files found by @hal58th in https://github.com/grafana/grafana-ansible-collection/pull/363
- Use become false in find task by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/368
+- add loki bloom support by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/298
- alloy_readiness_check_use_https by @piotr-g in https://github.com/grafana/grafana-ansible-collection/pull/359
+- force temporary directory even in check mode for dashboards.yml by @cmehat in https://github.com/grafana/grafana-ansible-collection/pull/339
+- grafana.ini yaml syntax by @intermittentnrg in https://github.com/grafana/grafana-ansible-collection/pull/232
+- integrate sles legacy init-script support by @floerica in https://github.com/grafana/grafana-ansible-collection/pull/184
+- management of the config.river with the conversion of the config.yaml by @lbrule in https://github.com/grafana/grafana-ansible-collection/pull/149
-vyos.vyos
-~~~~~~~~~
-
-- bgp modules - Added support for 1.4+ "system-as". 1.3 embedded as_number is still supported
-- vyos bgp modules - Many configuration attributes moved from `bgp_global` to `bgp_address_family` module (see documentation).
-- vyos_bgp_address_family - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute moved from `bgp_global` module. These are now Address-family specific. Many neighbor attributes also moved from `vyos_bgp_global` to `vyos_bgp_address_family` module.
-- vyos_bgp_global - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute Removed to `bgp_address_family` module.
-- vyos_user - add support for encrypted password specification
-- vyos_user - add support for public-key authentication
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Added type annotations to the ``Role.__init__()`` method to enable type checking. (https://github.com/ansible/ansible/pull/85346)
-- ansible-test - Added experimental support for remote debugging.
-- ansible-test - Added support for setting static environment variables in integration tests using ``env/set/`` entries in the ``aliases`` file. For example, ``env/set/MY_KEY/MY_VALUE`` or ``env/set/MY_PATH//an/abs/path``.
-- ansible-test - The ``shell`` command has been augmented to propagate remote debug configurations and other test-related settings when running on the controller. Use the ``--raw`` argument to bypass the additional environment configuration.
-- apt - consider lock timeout while invoking apt-get command (https://github.com/ansible/ansible/issues/78658).
-- assemble action added check_mode support
-- display - The ``formatted`` arg to ``warning`` has no effect. Warning wrapping is left to the consumer (e.g. terminal, browser).
-- display - The ``wrap_text`` and ``stderr`` arguments to ``error`` have no effect. Errors are always sent to stderr and wrapping is left to the consumer (e.g. terminal, browser).
-- module_utils.basic.backup_local enforces check_mode now
-- variables - Removed restriction on usage of most Python keywords as Ansible variable names.
-- variables - Warnings about reserved variable names now show context where the variable was defined.
-
-cisco.dnac
-~~~~~~~~~~
-
-- API Modules 2_2_2_3, 2_2_3_3, 2_3_3_0 were removed
-- Added 'application_policy_workflow_manager' for managing queuing profiles, applications, sets and policies
-- Added 'assurance_device_health_score_settings_workflow_manager' for managing assurance Health score settings
-- Added 'assurance_icap_settings_workflow_manager' for configuring and managing ICAP (Intelligent Capture) settings
-- Added 'assurance_issue_workflow_manager' for managing assurance global profile settings and issue resolution
-- Added 'network_profile_switching_workflow_manager' for managing switch profiles
-- Added 'network_profile_wireless_workflow_manager' for managing network wireless profile
-- Added 'path_trace_workflow_manager' for managing PathTrace settings
-- Added 'tags_workflow_manager' for create, update, delete Tags and Tag Memberships
-- Added 'wireless_design_workflow_manager' for managing wireless design elements
-- Added attribute 'device_type' in 'assurance_issue_workflow_manager' module
-- Added attribute 'devices_maintenance_schedule' in 'inventory_workflow_manager' module
-- Added attribute 'minimum_rssi' in 'wireless_design_workflow_manager' module
-- Added attribute 'resource_parameters' and 'copy_config' in 'template_workflow_manager' module
-- Added attribute 'sda_fabric_gateway_limit' in 'sda_fabric_virtual_networks_workflow_manager' module
-- Added attribute 'ssid_name' in 'network_profile_wireless_workflow_manager' module
-- Added attribute 'sub_package_images' in 'swim_workflow_manager' module
-- Added attributes 'ipv4_total_addresses', 'ipv4_unassignable_addresses', 'ipv4_assigned_addresses', 'ipv4_default_assigned_addresses', 'ipv6_total_addresses', 'ipv6_unassignable_addresses', 'ipv6_assigned_addresses', 'ipv6_default_assigned_addresses' in 'network_settings_workflow_manager' module
-- Added compatibility with Cisco version 3.1.3.0 -all corresponding modules were added-.
-- All alias modules were removed -*v1-.
-- Changes in 'application_policy_workflow_manager' module
-- Changes in 'assurance_icap_settings_workflow_manager' module
-- Changes in 'assurance_issue_workflow_manager' module
-- Changes in 'device_configs_backup_workflow_manager' module
-- Changes in 'device_credential_backup_workflow_manager' module
-- Changes in 'discovery_workflow_manager' module
-- Changes in 'events_and_notifications_workflow_manager' module
-- Changes in 'inventory_workflow_manager' module
-- Changes in 'ise_radius_integration_workflow_manager' module
-- Changes in 'lan_automation_workflow_manager' module
-- Changes in 'network_compliance_workflow_manager' module
-- Changes in 'network_profile_switching_workflow_manager' module
-- Changes in 'network_profile_wireless_workflow_manager' module
-- Changes in 'network_settings_workflow_manager' module
-- Changes in 'pnp_workflow_manager' module
-- Changes in 'provision_workflow_manager' module
-- Changes in 'sda_extranet_policies_workflow_manager' module
-- Changes in 'sda_fabric_devices_workflow_manager' module
-- Changes in 'sda_fabric_sites_zones_workflow_manager' module
-- Changes in 'sda_fabric_transits_workflow_manager' module
-- Changes in 'sda_fabric_virtual_networks_workflow_manager' module
-- Changes in 'sda_host_onboarding_workflow_manager' module
-- Changes in 'swim_workflow_manager' module
-- Changes in 'tags_workflow_manager' module
-- Changes in 'template_workflow_manager' module
-- Changes in 'user_and_roles_workflow_manager' module
-- Changes in 'wireless_design_workflow_manager' module
-- Changes in application_policy_workflow_manager workflow manager module
-- Changes in assurance_device_health_score_settings_workflow_manager module
-- Changes in assurance_issue_workflow_manager workflow manager module
-- Changes in path_trace_workflow_manager module
-- Correction of issue 266 in the reserve_ip_subpool modules
-- New enhancment in template_workflow_manager workflow manager module
-- Removed attribute 'application_sets' and 'application' in 'application_policy_workflow_manager' module
-- Removed attribute 'control_path' in 'path_trace_workflow_manager' module
-- Removed attribute 'minimum_rss' in 'wireless_design_workflow_manager' module
-- Removed attributes 'application_set_name' in 'application_policy_workflow_manager' module
-- Removed attributes 'ssid', 'onboarding_templates' in 'network_profile_wireless_workflow_manager' module
-- changing ansible.utils 6.x.y
-- modify problems in requests to the API
-
-cloud.common
-~~~~~~~~~~~~
-
-- Bump version of ansible-lint to minimum 24.7.0 (https://github.com/ansible-collections/cloud.common/pull/159).
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- Remove various no longer needed abstraction layers for multiple backends (https://github.com/ansible-collections/community.crypto/pull/912).
-- Various code refactorings (https://github.com/ansible-collections/community.crypto/pull/905, https://github.com/ansible-collections/community.crypto/pull/909, https://github.com/ansible-collections/community.crypto/pull/911, https://github.com/ansible-collections/community.crypto/pull/913, https://github.com/ansible-collections/community.crypto/pull/914, https://github.com/ansible-collections/community.crypto/pull/917).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- CmdRunner module utils - the convenience method ``cmd_runner_fmt.as_fixed()`` now accepts multiple arguments as a list (https://github.com/ansible-collections/community.general/pull/9893).
-- MH module utils - delegate ``debug`` to the underlying ``AnsibleModule`` instance or issues a warning if an attribute already exists with that name (https://github.com/ansible-collections/community.general/pull/9577).
-- alternatives - add ``family`` parameter that allows to utilize the ``--family`` option available in RedHat version of update-alternatives (https://github.com/ansible-collections/community.general/issues/5060, https://github.com/ansible-collections/community.general/pull/9096).
-- apache2_mod_proxy - better handling regexp extraction (https://github.com/ansible-collections/community.general/pull/9609).
-- apache2_mod_proxy - change type of ``state`` to a list of strings. No change for the users (https://github.com/ansible-collections/community.general/pull/9600).
-- apache2_mod_proxy - code simplification, no change in functionality (https://github.com/ansible-collections/community.general/pull/9457).
-- apache2_mod_proxy - improve readability when using results from ``fecth_url()`` (https://github.com/ansible-collections/community.general/pull/9608).
-- apache2_mod_proxy - refactor repeated code into method (https://github.com/ansible-collections/community.general/pull/9599).
-- apache2_mod_proxy - remove unused parameter and code from ``Balancer`` constructor (https://github.com/ansible-collections/community.general/pull/9614).
-- apache2_mod_proxy - simplified and improved string manipulation (https://github.com/ansible-collections/community.general/pull/9614).
-- apache2_mod_proxy - use ``deps`` to handle dependencies (https://github.com/ansible-collections/community.general/pull/9612).
-- apache2_module - added workaround for new PHP module name, from ``php7_module`` to ``php_module`` (https://github.com/ansible-collections/community.general/pull/9951).
-- bitwarden lookup plugin - add new option ``collection_name`` to filter results by collection name, and new option ``result_count`` to validate number of results (https://github.com/ansible-collections/community.general/pull/9728).
-- bitwarden lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- cargo - add ``features`` parameter to allow activating specific features when installing Rust packages (https://github.com/ansible-collections/community.general/pull/10198).
-- cartesian lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
-- cgroup_memory_recap callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- cgroup_memory_recap callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- chef_databag lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- chroot connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- chroot connection plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- chroot connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- cloud_init_data_facts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- cloudflare_dns - add support for ``comment`` and ``tags`` (https://github.com/ansible-collections/community.general/pull/9132).
-- cobbler inventory plugin - add ``connection_timeout`` option to specify the connection timeout to the cobbler server (https://github.com/ansible-collections/community.general/pull/11063).
-- cobbler inventory plugin - add ``facts_level`` option to allow requesting fully rendered variables for Cobbler systems (https://github.com/ansible-collections/community.general/issues/9419, https://github.com/ansible-collections/community.general/pull/9975).
-- cobbler inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- cobbler inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- cobbler inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- collection_version lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- consul_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- consul_token - fix idempotency when ``policies`` or ``roles`` are supplied by name (https://github.com/ansible-collections/community.general/issues/9841, https://github.com/ansible-collections/community.general/pull/9845).
-- context_demo callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- context_demo callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- counter filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- counter_enabled callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- counter_enabled callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- cpanm - enable usage of option ``--with-recommends`` (https://github.com/ansible-collections/community.general/issues/9554, https://github.com/ansible-collections/community.general/pull/9555).
-- cpanm - enable usage of option ``--with-suggests`` (https://github.com/ansible-collections/community.general/pull/9555).
-- crc32 filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- credstash lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- cronvar - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- crypttab - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- cyberarkpassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- cyberarkpassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- default_without_diff callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- dense callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- dense callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- dependent lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
-- dependent lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- deps module utils - add ``deps.clear()`` to clear out previously declared dependencies (https://github.com/ansible-collections/community.general/pull/9179).
-- dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- dict_kv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- dig lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- dig lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- diy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- diy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- dnstxt lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- dnstxt lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- doas become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- doas become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- dsv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- dzdo become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- dzdo become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- elastic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- elastic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
-- elastic callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- etcd lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- etcd3 lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- etcd3 lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- filetree lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- flattened lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
-- from_csv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- from_csv filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- from_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- from_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- funcd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- funcd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- git_config - remove redundant ``required=False`` from ``argument_spec`` (https://github.com/ansible-collections/community.general/pull/10177).
-- github_app_access_token lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- github_key - add ``api_url`` parameter to support GitHub Enterprise Server installations (https://github.com/ansible-collections/community.general/pull/10191).
-- gitlab_instance_variable - add support for ``raw`` variables suboption (https://github.com/ansible-collections/community.general/pull/9425).
-- gitlab_project - add option ``build_timeout`` (https://github.com/ansible-collections/community.general/pull/9960).
-- gitlab_project_members - extend choices parameter ``access_level`` by missing upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953).
-- gitlab_runners inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- gitlab_runners inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- gitlab_runners inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- groupby_as_dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- hashids filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- hiera lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- homebrew - greatly speed up module when multiple packages are passed in the ``name`` option (https://github.com/ansible-collections/community.general/pull/9181).
-- homebrew - remove duplicated package name validation (https://github.com/ansible-collections/community.general/pull/9076).
-- hpilo_boot - add option to get an idempotent behavior while powering on server, resulting in success instead of failure when using ``state: boot_once`` option (https://github.com/ansible-collections/community.general/pull/9646).
-- icinga2 inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- icinga2 inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- idrac_redfish_command, idrac_redfish_config, idrac_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- ilo_redfish_command, ilo_redfish_config, ilo_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- incus connection plugin - adds ``remote_user`` and ``incus_become_method`` parameters for allowing a non-root user to connect to an Incus instance (https://github.com/ansible-collections/community.general/pull/9743).
-- incus connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- incus connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- ini_file - modify an inactive option also when there are spaces in front of the comment symbol (https://github.com/ansible-collections/community.general/pull/10102, https://github.com/ansible-collections/community.general/issues/8539).
-- iocage connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- iocage connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- iocage inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- iocage inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- iocage inventory plugin - the new parameter ``hooks_results`` of the plugin is a list of files inside a jail that provide configuration parameters for the inventory. The inventory plugin reads the files from the jails and put the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650, https://github.com/ansible-collections/community.general/pull/9651).
-- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of the plugin provides the name of the tag in the C(iocage properties notes) that contains the jails alias. The new parameter ``inventory_hostname_required``, if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, https://github.com/ansible-collections/community.general/pull/10207).
-- iocage inventory plugin - the new parameter ``sudo`` of the plugin lets the command ``iocage list -l`` to run as root on the iocage host. This is needed to get the IPv4 of a running DHCP jail (https://github.com/ansible-collections/community.general/issues/9572, https://github.com/ansible-collections/community.general/pull/9573).
-- iptables_state action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- iptables_state action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318).
-- iso_extract - adds ``password`` parameter that is passed to 7z (https://github.com/ansible-collections/community.general/pull/9159).
-- jabber callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- jabber callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- jail connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- jail connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- jc filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- jira - adds ``client_cert`` and ``client_key`` parameters for supporting client certificate authentification when connecting to Jira (https://github.com/ansible-collections/community.general/pull/9753).
-- jira - transition operation now has ``status_id`` to directly reference wanted transition (https://github.com/ansible-collections/community.general/pull/9602).
-- json_query filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- keep_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- keycloak - add an action group for Keycloak modules to allow ``module_defaults`` to be set for Keycloak tasks (https://github.com/ansible-collections/community.general/pull/9284).
-- keycloak module_utils - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
-- keycloak_* modules - ``refresh_token`` parameter added. When multiple authentication parameters are provided (``token``, ``refresh_token``, and ``auth_username``/``auth_password``), modules will now automatically retry requests upon authentication errors (401), using in order the token, refresh token, and username/password (https://github.com/ansible-collections/community.general/pull/9494).
-- keycloak_realm - remove ID requirement when creating a realm to allow Keycloak generating its own realm ID (https://github.com/ansible-collections/community.general/pull/9768).
-- keycloak_user module - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
-- keyring lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- known_hosts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- ksu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- ksu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- lastpass lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- launchd - add ``plist`` option for services such as sshd, where the plist filename doesn't match the service name (https://github.com/ansible-collections/community.general/pull/9102).
-- linode inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- linode inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- lists filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- lists_mergeby filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- lldp - adds ``multivalues`` parameter to control behavior when lldpctl outputs an attribute multiple times (https://github.com/ansible-collections/community.general/pull/9657).
-- lmdb_kv lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- lmdb_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- locale_gen - invert the logic to determine ``ubuntu_mode``, making it look first for ``/etc/locale.gen`` (set ``ubuntu_mode`` to ``False``) and only then looking for ``/var/lib/locales/supported.d/`` (set ``ubuntu_mode`` to ``True``) (https://github.com/ansible-collections/community.general/pull/9238, https://github.com/ansible-collections/community.general/issues/9131, https://github.com/ansible-collections/community.general/issues/8487).
-- locale_gen - new return value ``mechanism`` to better express the semantics of the ``ubuntu_mode``, with the possible values being either ``glibc`` (``ubuntu_mode=False``) or ``ubuntu_legacy`` (``ubuntu_mode=True``) (https://github.com/ansible-collections/community.general/pull/9238).
-- log_plays callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- log_plays callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- loganalytics callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- loganalytics callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
-- loganalytics callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- logdna callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- logdna callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- logentries callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- logentries callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- logentries callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- logstash callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- lvg - add ``remove_extra_pvs`` parameter to control if ansible should remove physical volumes which are not in the ``pvs`` parameter (https://github.com/ansible-collections/community.general/pull/9698).
-- lxc connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- lxc connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- lxd connection plugin - adds ``remote_user`` and ``lxd_become_method`` parameters for allowing a non-root user to connect to an LXD instance (https://github.com/ansible-collections/community.general/pull/9659).
-- lxd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- lxd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- lxd inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- lxd inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- lxd inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- machinectl become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- machinectl become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- mail callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- mail callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- manageiq_alert_profiles - improve handling of parameter requirements (https://github.com/ansible-collections/community.general/pull/9449).
-- manifold lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- manifold lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- maven_artifact - removed compatibility code for ansible-core < 2.12 (https://github.com/ansible-collections/community.general/pull/10192).
-- memcached cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- memcached cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320).
-- merge_variables lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- nmap inventory plugin - adds ``dns_servers`` option for specifying DNS servers for name resolution. Accepts hostnames or IP addresses in the same format as the ``exclude`` option (https://github.com/ansible-collections/community.general/pull/9849).
-- nmap inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- nmap inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- nmap inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- nmcli - add ``sriov`` parameter that enables support for SR-IOV settings (https://github.com/ansible-collections/community.general/pull/9168).
-- nmcli - add a option ``fail_over_mac`` (https://github.com/ansible-collections/community.general/issues/9570, https://github.com/ansible-collections/community.general/pull/9571).
-- nmcli - add support for Infiniband MAC setting when ``type`` is ``infiniband`` (https://github.com/ansible-collections/community.general/pull/9962).
-- nmcli - adds VRF support with new ``type`` value ``vrf`` and new ``slave_type`` value ``vrf`` as well as new ``table`` parameter (https://github.com/ansible-collections/community.general/pull/9658, https://github.com/ansible-collections/community.general/issues/8014).
-- nmcli - adds ``autoconnect_priority`` and ``autoconnect_retries`` options to support autoconnect logic (https://github.com/ansible-collections/community.general/pull/10134).
-- nrdp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- nrdp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- null callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- one_template - adds ``filter`` option for retrieving templates which are not owned by the user (https://github.com/ansible-collections/community.general/pull/9547, https://github.com/ansible-collections/community.general/issues/9278).
-- one_vm - update allowed values for ``updateconf`` to include new parameters as per the latest OpenNebula API documentation.
- Added parameters:
-
- * ``OS``: ``FIRMWARE``;
- * ``CPU_MODEL``: ``MODEL``, ``FEATURES``;
- * ``FEATURES``: ``VIRTIO_BLK_QUEUES``, ``VIRTIO_SCSI_QUEUES``, ``IOTHREADS``;
- * ``GRAPHICS``: ``PORT``, ``COMMAND``;
- * ``VIDEO``: ``ATS``, ``IOMMU``, ``RESOLUTION``, ``TYPE``, ``VRAM``;
- * ``RAW``: ``VALIDATE``;
- * ``BACKUP_CONFIG``: ``FS_FREEZE``, ``KEEP_LAST``, ``BACKUP_VOLATILE``, ``MODE``, ``INCREMENT_MODE``.
-
- (https://github.com/ansible-collections/community.general/pull/9959).
-- onepassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- onepassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- onepassword_doc lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- onepassword_ssh_key - refactor to move code to lookup class (https://github.com/ansible-collections/community.general/pull/9633).
-- online inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- online inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- opennebula inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- opennebula inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- opennebula inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- opentelemetry callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- opentelemetry callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
-- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9482).
-- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9503).
-- opentelemetry callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- pacemaker_cluster - remove unused code (https://github.com/ansible-collections/community.general/pull/9471).
-- pacemaker_cluster - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/9471).
-- pacemaker_resource - add maintenance mode support for handling resource creation and deletion (https://github.com/ansible-collections/community.general/issues/10180, https://github.com/ansible-collections/community.general/pull/10194).
-- pacman_key - support verifying that keys are trusted and not expired (https://github.com/ansible-collections/community.general/issues/9949, https://github.com/ansible-collections/community.general/pull/9950).
-- parted - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- passwordstore lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- pbrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- pbrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- pfexec become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- pfexec become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- pickle cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- pipx - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180).
-- pipx - parameter ``name`` now accepts Python package specifiers (https://github.com/ansible-collections/community.general/issues/7815, https://github.com/ansible-collections/community.general/pull/10031).
-- pipx module_utils - filtering application list by name now happens in the modules (https://github.com/ansible-collections/community.general/pull/10031).
-- pipx_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180).
-- pipx_info - filtering application list by name now happens in the module (https://github.com/ansible-collections/community.general/pull/10031).
-- pmrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- pmrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- pulp_repo - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- puppet - improve parameter formatting, no impact to user (https://github.com/ansible-collections/community.general/pull/10014).
-- qubes connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- qubes connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- random_mac filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- random_pet lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- redfish module utils - add ``REDFISH_COMMON_ARGUMENT_SPEC``, a corresponding ``redfish`` docs fragment, and support for its ``validate_certs``, ``ca_path``, and ``ciphers`` options (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- redfish module utils - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
-- redfish_command - add ``PowerFullPowerCycle`` to power command options (https://github.com/ansible-collections/community.general/pull/9729).
-- redfish_command - add ``update_custom_oem_header``, ``update_custom_oem_params``, and ``update_custom_oem_mime_type`` options (https://github.com/ansible-collections/community.general/pull/9123).
-- redfish_command, redfish_config, redfish_info - add ``validate_certs`` and ``ca_path`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- redfish_config - add command ``SetPowerRestorePolicy`` to set the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9837).
-- redfish_info - add command ``GetAccountServiceConfig`` to get full information about AccountService configuration (https://github.com/ansible-collections/community.general/pull/9403).
-- redfish_info - add command ``GetPowerRestorePolicy`` to get the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9824).
-- redfish_utils module utils - remove redundant code (https://github.com/ansible-collections/community.general/pull/9190).
-- redhat_subscription - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- redis cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- redis cache plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- redis cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320).
-- redis lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- remove_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- replace_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- revbitspss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- reveal_ansible_type filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- rocketchat - fix duplicate JSON conversion for Rocket.Chat < 7.4.0 (https://github.com/ansible-collections/community.general/pull/9965).
-- rocketchat - option ``is_pre740`` has been added to control the format of the payload. For Rocket.Chat 7.4.0 or newer, it must be set to ``false`` (https://github.com/ansible-collections/community.general/pull/9882).
-- rpm_ostree_pkg - added the options ``apply_live`` (https://github.com/ansible-collections/community.general/pull/9167).
-- rpm_ostree_pkg - added the return value ``needs_reboot`` (https://github.com/ansible-collections/community.general/pull/9167).
-- run0 become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- saltstack connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- saltstack connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- say callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- say callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- scaleway inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- scaleway inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- scaleway inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- scaleway_lb - minor simplification in the code (https://github.com/ansible-collections/community.general/pull/9189).
-- selective callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- selective callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- sesu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- sesu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- shelvefile lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- shutdown action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- shutdown action plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- shutdown action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318).
-- slack callback plugin - add ``http_agent`` option to enable the user to set a custom user agent for slack callback plugin (https://github.com/ansible-collections/community.general/issues/9813, https://github.com/ansible-collections/community.general/pull/9836).
-- slack callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- slack callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- slack callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- snap - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598).
-- snap_alias - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598).
-- solaris_zone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- sorcery - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- splunk callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- splunk callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
-- splunk callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- ssh_config - add ``dynamicforward`` option (https://github.com/ansible-collections/community.general/pull/9192).
-- ssh_config - add ``other_options`` option (https://github.com/ansible-collections/community.general/issues/8053, https://github.com/ansible-collections/community.general/pull/9684).
-- stackpath_compute inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- stackpath_compute inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- sudosu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- sudosu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
-- sumologic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- sumologic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
-- syslog_json callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- systemd_info - add wildcard expression support in ``unitname`` option (https://github.com/ansible-collections/community.general/pull/9821).
-- systemd_info - extend support to timer units (https://github.com/ansible-collections/community.general/pull/9891).
-- terraform - adds the ``no_color`` parameter, which suppresses or allows color codes in stdout from Terraform commands (https://github.com/ansible-collections/community.general/pull/10154).
-- time filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- timestamp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- timestamp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- timezone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
-- to_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- to_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- tss lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- tss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
-- ufw - add support for ``vrrp`` protocol (https://github.com/ansible-collections/community.general/issues/9562, https://github.com/ansible-collections/community.general/pull/9582).
-- unicode_normalize filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- unixy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- unixy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- version_sort filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
-- virtualbox inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- virtualbox inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
-- virtualbox inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- vmadm - add new options ``flexible_disk_size`` and ``owner_uuid`` (https://github.com/ansible-collections/community.general/pull/9892).
-- wdc_redfish_command, wdc_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- xbps - add ``root`` and ``repository`` options to enable bootstrapping new void installations (https://github.com/ansible-collections/community.general/pull/9174).
-- xcc_redfish_command - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- xen_orchestra inventory plugin - add ``use_vm_uuid`` and ``use_host_uuid`` boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names (https://github.com/ansible-collections/community.general/pull/9787).
-- xen_orchestra inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- xen_orchestra inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
-- xfconf - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226).
-- xfconf_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226).
-- xml - support adding value of children when creating with subnodes (https://github.com/ansible-collections/community.general/pull/8437).
-- yaml cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- yaml callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
-- yaml callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
-- zone connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
-- zone connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
-- zypper - add ``quiet`` option (https://github.com/ansible-collections/community.general/pull/9270).
-- zypper - add ``simple_errors`` option (https://github.com/ansible-collections/community.general/pull/9270).
-- zypper - adds ``skip_post_errors`` that allows to skip RPM post-install errors (Zypper return code 107) (https://github.com/ansible-collections/community.general/issues/9972).
-
-community.okd
-~~~~~~~~~~~~~
-
-- Bump version of ansible-lint to 25.1.2 (https://github.com/openshift/community.okd/pull/255).
-- Bump version of ansible-lint to minimum 24.7.0 (https://github.com/openshift/community.okd/pull/240).
-
-community.routeros
-~~~~~~~~~~~~~~~~~~
-
-- api_info, api_modify - add ``interface ethernet switch port-isolation`` which is supported since RouterOS 6.43 (https://github.com/ansible-collections/community.routeros/pull/375).
-- api_info, api_modify - add ``routing bfd configuration``. Officially stabilized BFD support for BGP and OSPF is available since RouterOS 7.11
- (https://github.com/ansible-collections/community.routeros/pull/375).
-- api_modify, api_info - support API path ``ip ipsec mode-config`` (https://github.com/ansible-collections/community.routeros/pull/376).
-
-community.sops
-~~~~~~~~~~~~~~
-
-- Now supports specifying SSH private keys for age with the new ``age_ssh_private_keyfile`` option (https://github.com/ansible-collections/community.sops/pull/241).
-
-fortinet.fortimanager
-~~~~~~~~~~~~~~~~~~~~~
-
-- Supported new modules in FortiManager 7.4.6, 7.4.7, 7.6.3.
-
-netapp.storagegrid
-~~~~~~~~~~~~~~~~~~
-
-- na_sg_grid_ha_group - added check mode support in the module.
-- na_sg_org_container - Enhanced the Consistency setting.
-- na_sg_org_container - new option `capacity_limit` added for bucket, requires storageGRID 11.9 or later.
-
-purestorage.flasharray
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefa_endpoint - Converted to REST v2
-- purefa_fleet - Allows FlashBlades to be added to Fusion fleets if FlashArray is Purity//FA 6.8.5 or higher
-- purefa_host - Hosts can be created in realms and renamed within the same realm
-- purefa_host - Move function added to allow movement of host to/from realms
-- purefa_inventory - Added support for capacity down licensing
-- purefa_policy - Added support change a specific quota rule by name
-- purefa_subnet - Converted to use REST 2
-- purefa_volume - Added support for creating volumes in Realms
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- Fixed ansible-lint errors in examples.
-- cluster_ha - Add module required_by rules for admission control arguments that are mentioned in the docs (https://github.com/ansible-collections/vmware.vmware/issues/201)
-- cluster_ha - admission_control_failover_level can now always be managed by the user's inputs, and the default value for dedicated_host policy type is the number of dedicated failover hosts (https://github.com/ansible-collections/vmware.vmware/issues/201)
-
-vyos.vyos
-~~~~~~~~~
-
-- README.md - Add Communication section with Forum information.
-- vyos_bgp_address_family - Redistribute, network stanza - added support for modifiers (metric, backdoor etc as per T6829)
-- vyos_bgp_global - Added support for `solo` neighbor attribute
-- vyos_config - block get_config call if match is set to "none"
-- vyos_facts - added `network_os_major_version` to facts
-- vyos_firewall_global - Added support for input, output, and forward chains (1.4+)
-- vyos_firewall_global - Added support for log-level in state-policy (1.4+)
-- vyos_firewall_global - with 1.4+, use the the global keyword to define global firewall rules
-- vyos_firewall_interfaces - added support for VIF interfaces
-- vyos_firewall_interfaces - enable support for 1.4 firewall
-- vyos_firewall_interfaces - expanded firewall interface types to match existing types
-- vyos_firewall_rules - Add support for diff mode for rulesets
-- vyos_firewall_rules - Added support for 1.4+ firewall rules
-- vyos_firewall_rules - Fixed comparing of firewall rules
-- vyos_firewall_rules - added support for 1.5+ firewall `match-ipsec-in`, `match-ipsec-out`, `match-none-in`, `match-none-out`
-- vyos_firewall_rules - added support for packet-length-exclude for 1.4+ and the states
-- vyos_l3_interfaces - make l3_interfaces pick up loopback interfaces
-- vyos_lldp_global - address is now addresses, with appropriate coercion for existing address keys
-- vyos_ntp_global - Added ntp options for 1.5+ (interleave, ptp)
-- vyos_ntp_global - Added support for VyOS 1.4+ (chronyd vs ntpd)
-- vyos_ntp_global - Added syntax for allow_client in 1.4+
-- vyos_ospf_interaces - support for 1.4 ospf interfaces
-- vyos_ospf_interfaces - add support for VyOS 1.3- virtual interfaces
-- vyos_ospf_interfaces - add support for VyOS 1.4+, which moved interface configuration from the interfaces to ospf/ospfv3 interfaces configuration
-- vyos_route_maps - add support for as-path-prepend policy option
-
-Breaking Changes / Porting Guide
---------------------------------
-
-cloud.common
-~~~~~~~~~~~~
-
-- Remove support for ansible versions greater than ``2.19`` (https://github.com/ansible-collections/cloud.common/pull/183).
-
-community.okd
-~~~~~~~~~~~~~
-
-- Remove openshift inventory plugin deprecated in 3.0.0 (https://github.com/openshift/community.okd/pull/252).
-
-kubernetes.core
-~~~~~~~~~~~~~~~
-
-- Remove deprecated ``k8s`` invetory plugin (https://github.com/ansible-collections/kubernetes.core/pull/867).
-- Remove support for ``ansible-core<2.16`` (https://github.com/ansible-collections/kubernetes.core/pull/867).
-
-vyos.vyos
-~~~~~~~~~
-
-- Removed `vyos_logging`. Use `vyos_logging_global` instead.
-- lldp_global - if "address" is available, merge will cause it to be added, in contrast to the previous behavior where it was replaced. When used in replace mode, it will remove any existing addresses and replace them with the new one.
-- vyos_bgp_address_family - Support for 1.3+ VyOS only
-- vyos_bgp_global - Support for 1.3+ VyOS only
-- vyos_firewall_rules - removed p2p options as they have been removed prior to 1.3 of VyOS
-- vyos_firewall_rules - tcp.flags is now a list with an inversion flag to support 1.4+ firewall rules, but still supports 1.3-
-- vyos_lldp_global - civic_address is no longer a valid key (removed prior to 1.3)
-- vyos_logging_global - For 1.4, `protocol` is an attribute of the syslog host, not the facility
-- vyos_snmp_server - no longer works with versions prior to 1.3
-- vyos_snmp_server - parameter `engine_id` is no longer a `user` or `trap_target` parameter and is now a `snmp_v3` parameter
-- vyos_snmp_server - parameters `encrypted-key` and `plaintext-key` are now `encrypted-password` and `plaintext-password`
-- vyos_user - explicit support for version 1.3+ only
-- vyos_user - removed level (and its alias, role) they were removed in 1.3
-
-Deprecated Features
--------------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- inventory plugins - Setting invalid Ansible variable names in inventory plugins is deprecated.
-- playbook syntax - Specifying the task ``args`` keyword without a value is deprecated.
-- playbook syntax - Using ``key=value`` args and the task ``args`` keyword on the same task is deprecated.
-- playbook syntax - Using a mapping with the ``action`` keyword is deprecated. (https://github.com/ansible/ansible/issues/84101)
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- MH module utils - attribute ``debug`` definition in subclasses of MH is now deprecated, as that name will become a delegation to ``AnsibleModule`` in community.general 12.0.0, and any such attribute will be overridden by that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577).
-- atomic_container - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- atomic_host - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- atomic_image - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- facter - module is deprecated and will be removed in community.general 12.0.0, use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451).
-- locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238).
-- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
-- opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172).
-- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
-- profitbricks - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_datacenter - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_nic - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_volume - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_volume_attachments - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- pure module utils - the module utils is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
-- purestorage doc fragments - the doc fragment is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
-- redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` (https://github.com/ansible-collections/community.general/pull/9190).
-- sensu_check - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_client - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_handler - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_silence - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_subscription - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443).
-- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
-- yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456).
-- yaml callback plugin - the YAML callback plugin was deprecated for removal in community.general 13.0.0. Since it needs to use ansible-core internals since ansible-core 2.19 that are changing a lot, we will remove this plugin already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213).
-
-vyos.vyos
-~~~~~~~~~
-
-- vyos_bgp_global - no_ipv4_unicast - deprecated for use with VyOS 1.4+, use `ipv4_unicast` instead
-- vyos_firewall_interfaces - deprecated for use with VyOS 1.4+, firewalls are no longer connected directly to interfaces. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow, interface, or zone.
-- vyos_lldp_global - `address` is deprecated, use `addresses` instead. To be removed in 7.0.0.
-- vyos_logging_global - `protocol` is deprecated for 1.4 and later, use `facility` instead. To be removed in next major version where supprot for 1.3 is removed
-
-Removed Features (previously deprecated)
-----------------------------------------
-
-- The ``cisco.ise`` collection was considered unmaintained and has been removed from Ansible 12 (`https://forum.ansible.com/t/43367 `__).
- Users can still install this collection with ``ansible-galaxy collection install cisco.ise``.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- Dropped support for ansible-core 2.15. The collection now requires ansible-core 2.16 or newer. This means that on the controller, Python 3.10+ is required. On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192).
-- The Proxmox content (modules and plugins) has been moved to the `new collection community.proxmox `__. Since community.general 11.0.0, these modules and plugins have been replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``, or by installing a new enough version of the Ansible community package. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10110).
-- apt_rpm - the ``present`` and ``installed`` states are no longer equivalent to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126).
-- clc_* modules and doc fragment - the modules were removed since CenturyLink Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126).
-- django_manage - the ``ack_venv_creation_deprecation`` option has been removed. It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126).
-- git_config - it is no longer allowed to use ``state=present`` with no value to read the config value. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
-- git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
-- hipchat - the module was removed since the hipchat service has been discontinued and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126).
-- manifold lookup plugin - the plugin was removed since the company was acquired in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.mixins.deps module utils - this module utils has been removed. Use the ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` module utils and no longer from the removed ``mh.mixins.vars`` module utils (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` from ``ModuleHelper`` have been removed. We suggest to remove them from your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126).
-- module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
-- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
-- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
-- profitbrick* modules - the modules were removed since the supporting library is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126).
-- redfish_utils module utils - the ``_init_session`` method has been removed (https://github.com/ansible-collections/community.general/pull/10126).
-- stackpath_compute inventory plugin - the plugin was removed since the company and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126).
-
-Security Fixes
---------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- keycloak_authentication - API calls did not properly set the ``priority`` during update resulting in incorrectly sorted authentication flows. This apparently only affects Keycloak 25 or newer (https://github.com/ansible-collections/community.general/pull/9263).
-- keycloak_client - Sanitize ``saml.encryption.private.key`` so it does not show in the logs (https://github.com/ansible-collections/community.general/pull/9621).
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- ansible-test - Fix Python relative import resolution from ``__init__.py`` files when using change detection.
-- callback plugins - A more descriptive error is now raised if the stdout callback plugin cannot be loaded.
-- callback plugins - Callback plugins that do not extend ``ansible.plugins.callback.CallbackBase`` will fail to load with a warning. If the plugin is used as the stdout callback plugin, this will also be a fatal error.
-- callback plugins - Removed unused methods - runner_on_no_hosts, playbook_on_setup, playbook_on_import_for_host, playbook_on_not_import_for_host, v2_playbook_on_cleanup_task_start, v2_playbook_on_import_for_host, v2_playbook_on_not_import_for_host.
-- callback plugins - The stdout callback plugin is no longer called twice if it is also in the list of additional callback plugins.
-- password lookup - fix acquiring the lock when human-readable FileExistsError error message is not English.
-- plugin loader - A warning is now emitted for any plugin which fails to load due to a missing base class.
-- variables - Added Jinja scalar singletons (``true``, ``false``, ``none``) to invalid Ansible variable name detection. Previously, variables with these names could be assigned without error, but could not be resolved.
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- acme_account - make work with CAs that do not accept any account request without External Account Binding data (https://github.com/ansible-collections/community.crypto/issues/918, https://github.com/ansible-collections/community.crypto/pull/919).
-- openssl_csr, openssl_csr_pipe - avoid accessing internal members of cryptography's ``KeyUsage`` extension object (https://github.com/ansible-collections/community.crypto/pull/910).
-
-community.dns
-~~~~~~~~~~~~~
-
-- Update Public Suffix List.
-- lookup and lookup_as_dict lookup plugins - removed type ``ALL``, which never worked (https://github.com/ansible-collections/community.dns/issues/264, https://github.com/ansible-collections/community.dns/pull/265).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- apache2_mod_proxy - make compatible with Python 3 (https://github.com/ansible-collections/community.general/pull/9762).
-- apache2_mod_proxy - passing the cluster's page as referer for the member's pages. This makes the module actually work again for halfway modern Apache versions. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 (https://github.com/ansible-collections/community.general/pull/9762).
-- cloudflare_dns - fix crash when deleting a DNS record or when updating a record with ``solo=true`` (https://github.com/ansible-collections/community.general/issues/9652, https://github.com/ansible-collections/community.general/pull/9649).
-- cloudlare_dns - handle exhausted response stream in case of HTTP errors to show nice error message to the user (https://github.com/ansible-collections/community.general/issues/9782, https://github.com/ansible-collections/community.general/pull/9818).
-- cobbler_system - fix bug with Cobbler >= 3.4.0 caused by giving more than 2 positional arguments to ``CobblerXMLRPCInterface.get_system_handle()`` (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145).
-- cobbler_system - update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145, https://github.com/ansible-collections/community.general/pull/10178).
-- dependent look plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- dig lookup plugin - correctly handle ``NoNameserver`` exception (https://github.com/ansible-collections/community.general/pull/9363, https://github.com/ansible-collections/community.general/issues/9362).
-- diy callback plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- dnf_config_manager - fix hanging when prompting to import GPG keys (https://github.com/ansible-collections/community.general/pull/9124, https://github.com/ansible-collections/community.general/issues/8830).
-- dnf_config_manager - forces locale to ``C`` before module starts. If the locale was set to non-English, the output of the ``dnf config-manager`` could not be parsed (https://github.com/ansible-collections/community.general/pull/9157, https://github.com/ansible-collections/community.general/issues/9046).
-- dnf_versionlock - add support for dnf5 (https://github.com/ansible-collections/community.general/issues/9556).
-- elasticsearch_plugin - fix ``ERROR: D is not a recognized option`` issue when configuring proxy settings (https://github.com/ansible-collections/community.general/pull/9774, https://github.com/ansible-collections/community.general/issues/9773).
-- flatpak - force the locale language to ``C`` when running the flatpak command (https://github.com/ansible-collections/community.general/pull/9187, https://github.com/ansible-collections/community.general/issues/8883).
-- gio_mime - fix command line when determining version of ``gio`` (https://github.com/ansible-collections/community.general/pull/9171, https://github.com/ansible-collections/community.general/issues/9158).
-- github_deploy_key - check that key really exists on 422Â to avoid masking other errors (https://github.com/ansible-collections/community.general/issues/6718, https://github.com/ansible-collections/community.general/pull/10011).
-- github_key - in check mode, a faulty call to ```datetime.strftime(...)``` was being made which generated an exception (https://github.com/ansible-collections/community.general/issues/9185).
-- gitlab_group_access_token, gitlab_project_access_token - fix handling of group and project access tokens for changes in GitLab 17.10 (https://github.com/ansible-collections/community.general/pull/10196).
-- hashids and unicode_normalize filter plugins - avoid deprecated ``AnsibleFilterTypeError`` on ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/9992).
-- homebrew - emit a useful error message if ``brew info`` reports a package tap is ``null`` (https://github.com/ansible-collections/community.general/pull/10013, https://github.com/ansible-collections/community.general/issues/10012).
-- homebrew - fix crash when package names include tap (https://github.com/ansible-collections/community.general/issues/9777, https://github.com/ansible-collections/community.general/pull/9803).
-- homebrew - fix incorrect handling of aliased homebrew modules when the alias is requested (https://github.com/ansible-collections/community.general/pull/9255, https://github.com/ansible-collections/community.general/issues/9240).
-- homebrew - fix incorrect handling of homebrew modules when a tap is requested (https://github.com/ansible-collections/community.general/pull/9546, https://github.com/ansible-collections/community.general/issues/9533).
-- homebrew - make package name parsing more resilient (https://github.com/ansible-collections/community.general/pull/9665, https://github.com/ansible-collections/community.general/issues/9641).
-- homebrew_cask - allow ``+`` symbol in Homebrew cask name validation regex (https://github.com/ansible-collections/community.general/pull/9128).
-- homebrew_cask - handle unusual brew version strings (https://github.com/ansible-collections/community.general/issues/8432, https://github.com/ansible-collections/community.general/pull/9881).
-- htpasswd - report changes when file permissions are adjusted (https://github.com/ansible-collections/community.general/issues/9485, https://github.com/ansible-collections/community.general/pull/9490).
-- iocage inventory plugin - the plugin parses the IP4 tab of the jails list and put the elements into the new variable ``iocage_ip4_dict``. In multiple interface format the variable ``iocage_ip4`` keeps the comma-separated list of IP4 (https://github.com/ansible-collections/community.general/issues/9538).
-- ipa_host - module revoked existing host certificates even if ``user_certificate`` was not given (https://github.com/ansible-collections/community.general/pull/9694).
-- java_cert - the module no longer fails if the optional parameters ``pkcs12_alias`` and ``cert_alias`` are not provided (https://github.com/ansible-collections/community.general/pull/9970).
-- kdeconfig - allow option values beginning with a dash (https://github.com/ansible-collections/community.general/issues/10127, https://github.com/ansible-collections/community.general/pull/10128).
-- keycloak - update more than 10 sub-groups (https://github.com/ansible-collections/community.general/issues/9690, https://github.com/ansible-collections/community.general/pull/9692).
-- keycloak module utils - replaces missing return in get_role_composites method which caused it to return None instead of composite roles (https://github.com/ansible-collections/community.general/issues/9678, https://github.com/ansible-collections/community.general/pull/9691).
-- keycloak_authentication - fix authentification config duplication for Keycloak < 26.2.0 (https://github.com/ansible-collections/community.general/pull/9987).
-- keycloak_client - fix and improve existing tests. The module showed a diff without actual changes, solved by improving the ``normalise_cr()`` function (https://github.com/ansible-collections/community.general/pull/9644).
-- keycloak_client - fix diff by removing code that turns the attributes dict which contains additional settings into a list (https://github.com/ansible-collections/community.general/pull/9077).
-- keycloak_client - fix the idempotency regression by normalizing the Keycloak response for ``after_client`` (https://github.com/ansible-collections/community.general/issues/9905, https://github.com/ansible-collections/community.general/pull/9976).
-- keycloak_client - in check mode, detect whether the lists in before client (for example redirect URI list) contain items that the lists in the desired client do not contain (https://github.com/ansible-collections/community.general/pull/9739).
-- keycloak_clientscope - fix diff and ``end_state`` by removing the code that turns the attributes dict, which contains additional config items, into a list (https://github.com/ansible-collections/community.general/pull/9082).
-- keycloak_clientscope_type - sort the default and optional clientscope lists to improve the diff (https://github.com/ansible-collections/community.general/pull/9202).
-- keycloak_user_rolemapping - fix ``--diff`` mode (https://github.com/ansible-collections/community.general/issues/10067, https://github.com/ansible-collections/community.general/pull/10075).
-- lldp - fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf (https://github.com/ansible-collections/community.general/pull/9657).
-- nmcli - enable changing only the order of DNS servers or search suffixes (https://github.com/ansible-collections/community.general/issues/8724, https://github.com/ansible-collections/community.general/pull/9880).
-- onepassword_doc lookup plugin - ensure that 1Password Connect support also works for this plugin (https://github.com/ansible-collections/community.general/pull/9625).
-- passwordstore lookup plugin - fix subkey creation even when ``create=false`` (https://github.com/ansible-collections/community.general/issues/9105, https://github.com/ansible-collections/community.general/pull/9106).
-- pickle cache plugin - avoid extra JSON serialization with ansible-core >= 2.19 (https://github.com/ansible-collections/community.general/pull/10136).
-- pipx - honor option ``global`` when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/9623).
-- qubes connection plugin - fix the printing of debug information (https://github.com/ansible-collections/community.general/pull/9334).
-- redfish_utils module utils - Fix ``VerifyBiosAttributes`` command on multi system resource nodes (https://github.com/ansible-collections/community.general/pull/9234).
-- redfish_utils module utils - remove undocumented default applytime (https://github.com/ansible-collections/community.general/pull/9114).
-- redhat_subscription - do not try to unsubscribe (i.e. remove subscriptions)
- when unregistering a system: newer versions of subscription-manager, as
- available in EL 10 and Fedora 41+, do not support entitlements anymore, and
- thus unsubscribing will fail
- (https://github.com/ansible-collections/community.general/pull/9578).
-- redhat_subscription - use the "enable_content" option (when available) when
- registering using D-Bus, to ensure that subscription-manager enables the
- content on registration; this is particular important on EL 10+ and Fedora
- 41+
- (https://github.com/ansible-collections/community.general/pull/9778).
-- reveal_ansible_type filter plugin and ansible_type test plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- rundeck_acl_policy - ensure that project ACLs are sent to the correct endpoint (https://github.com/ansible-collections/community.general/pull/10097).
-- slack - fail if Slack API response is not OK with error message (https://github.com/ansible-collections/community.general/pull/9198).
-- sudoers - display stdout and stderr raised while failed validation (https://github.com/ansible-collections/community.general/issues/9674, https://github.com/ansible-collections/community.general/pull/9871).
-- sysrc - no longer always reporting ``changed=true`` when ``state=absent``. This fixes the method ``exists()`` (https://github.com/ansible-collections/community.general/issues/10004, https://github.com/ansible-collections/community.general/pull/10005).
-- sysrc - split the output of ``sysrc -e -a`` on the first ``=`` only (https://github.com/ansible-collections/community.general/issues/10120, https://github.com/ansible-collections/community.general/pull/10121).
-- xml - ensure file descriptor is closed (https://github.com/ansible-collections/community.general/pull/9695).
-- yaml callback plugin - adjust to latest changes in ansible-core devel (https://github.com/ansible-collections/community.general/pull/10212).
-- yaml callback plugin - use ansible-core internals to avoid breakage with Data Tagging (https://github.com/ansible-collections/community.general/pull/9833).
-- yaml callback plugin - when using ansible-core 2.19.0b2 or newer, uses a new utility provided by ansible-core. This allows us to remove all hacks and vendored code that was part of the plugin for ansible-core versions with Data Tagging so far (https://github.com/ansible-collections/community.general/pull/10242).
-- zfs - fix handling of multi-line values of user-defined ZFS properties (https://github.com/ansible-collections/community.general/pull/6264).
-- zfs_facts - parameter ``type`` now accepts multple values as documented (https://github.com/ansible-collections/community.general/issues/5909, https://github.com/ansible-collections/community.general/pull/9697).
-- zypper_repository - make compatible with Python 3.12+ (https://github.com/ansible-collections/community.general/issues/10222, https://github.com/ansible-collections/community.general/pull/10223).
-- zypper_repository - use ``metalink`` attribute to identify repositories without ```` element (https://github.com/ansible-collections/community.general/issues/10224, https://github.com/ansible-collections/community.general/pull/10225).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- Fix issues with pyvmomi 9.0.0.0 (https://github.com/ansible-collections/community.vmware/issues/2414).
-- vmware_vmotion - Fix issue with same resource pool name on different clusters (https://github.com/ansible-collections/community.vmware/issues/1719).
-
-fortinet.fortimanager
-~~~~~~~~~~~~~~~~~~~~~
-
-- Added "gather_facts" to all example playbooks.
-- Fixed a BUG that occurred when username/password and access token were used at the same time.
-
-netapp.storagegrid
-~~~~~~~~~~~~~~~~~~
-
-- na_sg_org_user - fix where existing users with no groups attached were not getting any groups added.
-
-purestorage.flasharray
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefa_ds - Fixed issue with updaing a LDAP configuration fails with a list error.
-- purefa_proxy - Fixed issue with incorrect string comparison
-- purefa_volume - Fixed issue for error on volume delete w/o eradicate
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- content_template - Fix error when creating template from VM and not specifying certain non-critical placement options
-- content_template - Replace non-existent method used when handling api errors
-- pyvmomi - Replace deprecated JSON encoder with new one from pyvmomi package (https://github.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG.md?plain=1#L72)
-
-vyos.vyos
-~~~~~~~~~
-
-- vyos_config - Fix change detection for recent Vyos versions
-- vyos_firewall_global - Fix removing last member of a firewall group.
-- vyos_firewall_global - Fixed ipv6 route-redirects and tests
-- vyos_firewall_global - Fixed parsing of global-options (1.4+)
-- vyos_firewall_global - Fixed state-policy deletion (partial and full)
-- vyos_firewall_global - fixed behavior for stanzas processing by facts in 1.4+ (e.g. present/absent stanza vs enable/disable)
-- vyos_firewall_global - fixed the facts parsers to include state-policies, redirect
-- vyos_firewall_rules - Allow deleting of firewall description.
-- vyos_firewall_rules - Fix limit parameter processing
-- vyos_firewall_rules - fixed behavior for log, disable attributes
-- vyos_firewall_rules - fixed behavior for override and replaced states
-- vyos_interfaces - fixed bug where 'replace' would delete an active disable and not reinstate it
-- vyos_interfaces - fixed over-zealous handling of disable, which could catch other interface items that are disabled.
-- vyos_l3_interfaces - fix delete in interfaces to remove vif completely if in affected interface
-- vyos_l3_interfaces - fix override in interfaces to remove vif completely if not present in new config
-- vyos_l3_interfaces - fix replace in interfaces to remove vif completely if not present in new config
-- vyos_logging_global - Fixed v1.3 and before when `protocol` and `level` were set for the same host
-- vyos_ospf_interfaces - fixed get_config to cater for unordered command lists in 1.4+
-- vyos_ospfv2 - passive-interface processing for 1.3- and 1.4+
-- vyos_ospfv3 - added support for adding interfaces to areas
-- vyos_static routes - fixed the facts, argspecs, config to include interface-routes
-- vyos_user - fix handling of `full-name` in parser and module
-
-Known Issues
-------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
-
-vyos.vyos
-~~~~~~~~~
-
-- existing code for 1.3 facility protocol and facility level are not compatible, only one will be set and level is the priority.
-
-New Plugins
------------
-
-Callback
-~~~~~~~~
-
-- community.general.print_task - Prints playbook task snippet to job output.
-
-Connection
-~~~~~~~~~~
-
-- community.general.wsl - Run tasks in WSL distribution using wsl.exe CLI via SSH.
-
-Filter
-~~~~~~
-
-- community.general.accumulate - Produce a list of accumulated sums of the input list contents.
-- community.general.json_diff - Create a JSON patch by comparing two JSON files.
-- community.general.json_patch - Apply a JSON-Patch (RFC 6902) operation to an object.
-- community.general.json_patch_recipe - Apply JSON-Patch (RFC 6902) operations to an object.
-- community.general.to_prettytable - Format a list of dictionaries as an ASCII table.
-
-Inventory
-~~~~~~~~~
-
-- community.general.iocage - iocage inventory source.
-
-Lookup
-~~~~~~
-
-- community.general.onepassword_ssh_key - Fetch SSH keys stored in 1Password.
-
-New Modules
------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- community.general.android_sdk - Manages Android SDK packages.
-- community.general.decompress - Decompresses compressed files.
-- community.general.ldap_inc - Use the Modify-Increment LDAP V3 feature to increment an attribute value.
-- community.general.lvm_pv - Manage LVM Physical Volumes.
-- community.general.pacemaker_resource - Manage pacemaker resources.
-- community.general.systemd_creds_decrypt - C(systemd)'s C(systemd-creds decrypt) plugin.
-- community.general.systemd_creds_encrypt - C(systemd)'s C(systemd-creds encrypt) plugin.
-- community.general.systemd_info - Gather C(systemd) unit info.
-- community.general.xdg_mime - Set default handler for MIME types, for applications using XDG tools.
-- community.general.zpool - Manage ZFS zpools.
-
-fortinet.fortimanager
-~~~~~~~~~~~~~~~~~~~~~
-
-- fortinet.fortimanager.fmgr_dlp_exactdatamatch - Configure exact-data-match template used by DLP scan.
-- fortinet.fortimanager.fmgr_dlp_exactdatamatch_columns - DLP exact-data-match column types.
-- fortinet.fortimanager.fmgr_dlp_label - Configure labels used by DLP blocking.
-- fortinet.fortimanager.fmgr_dlp_label_entries - DLP label entries.
-- fortinet.fortimanager.fmgr_extensioncontroller_extendervap - FortiExtender wifi vap configuration.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension - Configure Internet Services Extension.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry - Disable entries in the Internet Service database.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_ip6range - IPv6 ranges in the disable entry.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_iprange - IPv4 ranges in the disable entry.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_portrange - Port ranges in the disable entry.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_entry - Entries added to the Internet Service extension database.
-- fortinet.fortimanager.fmgr_firewall_internetserviceextension_entry_portrange - Port ranges in the custom entry.
-- fortinet.fortimanager.fmgr_fmupdate_fgdsetting - Cli fmupdate fgd setting
-- fortinet.fortimanager.fmgr_fmupdate_fgdsetting_serveroverride - Cli fmupdate fgd setting server override
-- fortinet.fortimanager.fmgr_gtp_rattimeoutprofile - RAT timeout profile
-- fortinet.fortimanager.fmgr_icap_servergroup - Configure an ICAP server group consisting of multiple forward servers.
-- fortinet.fortimanager.fmgr_icap_servergroup_serverlist - Add ICAP servers to a list to form a server group.
-- fortinet.fortimanager.fmgr_system_log_deviceselector - Accept/reject devices matching specified filter types.
-- fortinet.fortimanager.fmgr_telemetrycontroller_agentprofile - Configure FortiTelemetry agent profiles.
-- fortinet.fortimanager.fmgr_telemetrycontroller_application_predefine - Configure FortiTelemetry predefined applications.
-- fortinet.fortimanager.fmgr_telemetrycontroller_profile - Configure FortiTelemetry profiles.
-- fortinet.fortimanager.fmgr_telemetrycontroller_profile_application - Configure applications.
-- fortinet.fortimanager.fmgr_telemetrycontroller_profile_application_sla - Service level agreement
-- fortinet.fortimanager.fmgr_user_scim - Configure SCIM client entries.
-- fortinet.fortimanager.fmgr_wireless_vap_ip6prefixlist - Wireless controller vap ip6 prefix list
-
-netapp.storagegrid
-~~~~~~~~~~~~~~~~~~
-
-- netapp.storagegrid.na_sg_grid_alert_receiver - NetApp StorageGRID manage alert receiver.
-- netapp.storagegrid.na_sg_grid_audit_destination - Configure audit log destinations on StorageGRID.
-- netapp.storagegrid.na_sg_grid_autosupport - Configure autosupport on StorageGRID.
-- netapp.storagegrid.na_sg_grid_domain_name - Configure endpoint domain name on StorageGRID.
-- netapp.storagegrid.na_sg_grid_hotfix - Apply hotfixes on StorageGRID.
-- netapp.storagegrid.na_sg_grid_proxy_settings - NetApp StorageGRID manage proxy settings for the grid.
-- netapp.storagegrid.na_sg_grid_snmp - Configure SNMP agent on StorageGRID.
-- netapp.storagegrid.na_sg_grid_tenant - NetApp StorageGRID manage tenant accounts.
-- netapp.storagegrid.na_sg_grid_vlan_interface - Configure VLAN interface on StorageGRID.
-- netapp.storagegrid.na_sg_org_bucket - Manage buckets on StorageGRID.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.windows (still version 3.1.0)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.intersight (still version 2.1.0)
-- cisco.ios (still version 10.1.0)
-- cisco.iosxr (still version 11.1.0)
-- cisco.meraki (still version 2.21.3)
-- cisco.mso (still version 2.10.0)
-- cisco.nxos (still version 10.1.0)
-- cisco.ucs (still version 1.16.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.10)
-- community.digitalocean (still version 1.27.0)
-- community.docker (still version 4.6.1)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.hrobot (still version 2.4.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.4.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.postgresql (still version 4.1.0)
-- community.proxmox (still version 1.0.1)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.5.0)
-- community.sap_libs (still version 1.4.2)
-- community.windows (still version 3.0.0)
-- community.zabbix (still version 4.0.0)
-- containers.podman (still version 1.16.4)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.1)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.36.0)
-- fortinet.fortios (still version 2.4.0)
-- hetzner.hcloud (still version 5.1.0)
-- hitachivantara.vspone_block (still version 3.5.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubevirt.core (still version 2.2.3)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.3.0)
-- theforeman.foreman (still version 5.4.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a6
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-06-12
-
-`Porting Guide `_
-
-Added Collections
------------------
-
-- community.proxmox (version 1.0.1)
-
-Ansible-core
-------------
-
-Ansible 12.0.0a6 contains ansible-core version 2.19.0b6.
-This is a newer version than version 2.19.0b5 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a5 | Ansible 12.0.0a6 | Notes |
-+=============================+==================+==================+==============================================================================================================================+
-| cisco.meraki | 2.21.2 | 2.21.3 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.docker | 4.6.0 | 4.6.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.hrobot | 2.3.0 | 2.4.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.proxmox | | 1.0.1 | The collection was added to Ansible |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.vmware | 5.6.0 | 5.7.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.zabbix | 3.3.0 | 4.0.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| containers.podman | 1.16.3 | 1.16.4 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| hetzner.hcloud | 5.0.1 | 5.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | 3.4.2 | 3.5.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| kubevirt.core | 2.2.2 | 2.2.3 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| telekom_mms.icinga_director | 2.2.2 | 2.3.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| theforeman.foreman | 5.3.0 | 5.4.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 2.0.1 | 2.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- ansiballz - Added an experimental AnsiballZ extension for remote debugging.
-- ansiballz - Added support for AnsiballZ extensions.
-- ansiballz - Moved AnsiballZ code coverage support into an extension.
-- ansiballz - Refactored AnsiballZ and module respawn.
-- template action and lookup plugin - The value of the ``ansible_managed`` variable (if set) will not be masked by the ``template`` action and lookup. Previously, the value calculated by the ``DEFAULT_MANAGED_STR`` configuration option always masked the variable value during plugin execution, preventing runtime customization.
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vcenter_extension - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_guest_cross_vc_clone - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_guest_instant_clone - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_vm_inventory - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_vsan_cluster - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- Add `zabbix_http_headers` variable to allow specifying custom HTTP headers for Zabbix API calls. This can be useful for authentication or other custom header requirements.
-- Agent Role - Removed Temporary Fix supporting RHEL9
-- You can now deploy these roles with inject_facts_as_vars set to false
-- roles - sane selinux defaults
-- roles/proxy - optionally creation of proxy_group and adding proxy to group (Zabbix 7.0+)
-- roles/zabbix_agent - Tweaking the windows service
-- zabbix_action module - properly configure discovery check condition in discovery action depending on information provided in discovery check `value`.
-- zabbix_configuration module - Add this module to import configuration data.
-- zabbix_group - add propagate parameter
-- zabbix_item - added support for item types zabbix_agent, snmp_trap, snmp_agent, ipmi_agent and jmx_agent
-- zabbix_mediatype - add Message template for services
-- zabbix_proxy role - fix Zabbix proxy with encryptuion registration
-- zabbix_server role - facilitate overriding database schemas loaded
-- zabbix_server role - facilitate overriding packages installed
-- zabbix_service - add better idempotency that checks every parameter for change and updates only the changed ones
-- zabbix_templategroup - add propagate parameter
-- zabbix_token module - Fix status value for zabbix Auth token.
-- zabbix_token module - update the logic for update of Zabbix Token
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- ssh_key - Log a warning when the provided public key does not match one in the API.
-- ssh_key - When the public key does not match the one in the API, allow recreating the SSH Key in the API using the ``force=true`` argument.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added additional parameters primary_volume_device_group_name and secondary_volume_device_group_name to retrieve ShadowImage group details more quickly.
-- Added new module `hv_external_paritygroup_facts` to retrieve information about External Parity Group.
-- Added new module `hv_external_path_group_facts` to retrieve information about External Path Group.
-- Added new module `hv_external_path_group` to manage External Path Groups.
-- Added new module `hv_mp_facts` to retrieve MP Blades information from VSP storage models.
-- Added support for begin_secondary_volume_id and end_secondary_volume_id to the remote replication modules - hv_gad, hv_hur, hv_truecopy.
-- Added support for cloning a Thin Image pair to the hv_snapshot module.
-- Added support for cloning pairs in a specified snapshot group to the hv_snapshot_group module.
-- Added support for deleting an iSCSI name of an external storage system that is registered to a port on the local storage system to the hv_storage_port module.
-- Added support for deleting garbage data for all Thin Image pairs in a snapshot tree to the hv_snapshot module.
-- Added support for disconnecting from a volume on the external storage system to the hv_external_volume module.
-- Added support for getting a list of LUs defined for a port on an external storage system to the hv_storage_port_facts module.
-- Added support for getting a list of ports on an external storage system to the hv_storage_port_facts module.
-- Added support for getting information about a specific LU path to the hv_hostgroup_facts module.
-- Added support for getting information about a specific LU path to the hv_iscsi_target_facts module.
-- Added support for getting information about an iSCSI target of a port on an external storage system to the hv_storage_port_facts module.
-- Added support for getting the iSCSI name of an external storage system that is registered to a port on the local storage system to the hv_storage_port_facts module.
-- Added support for lun_id for the secondary host group for TC and HUR. For GAD, lun_id and enable_preferred_path are supported.
-- Added support for performing a login test on an iSCSI target of an external storage system that is registered to a port on the local storage system to the hv_storage_port module.
-- Added support for reclaiming the zero pages of a DP volume to the hv_ldev module.
-- Added support for registering an iSCSI name of an external storage system to a port on the local storage system to the hv_storage_port module.
-- Added support for releasing the host reservation status by specifying a host group to the hv_hostgroup module.
-- Added support for releasing the host reservation status by specifying an iSCSI target to the hv_iscsi_target module.
-- Added support for releasing the host reservation status by specifying the LU path to the hv_hostgroup module.
-- Added support for releasing the host reservation status by specifying the LU path to the hv_iscsi_target module.
-- Added support for setting the nickname for a WWN to the hv_hostgroup module.
-- Added support for setting the nickname for an iSCSI name to the hv_iscsi_target module.
-- Added support for setting the nickname of an IQN initiator to the hv_iscsi_target module.
-- Added the ability to change the settings of the following parameters of an LDEV using the hv_ldev module - data_reduction_process_mode, is_compression_acceleration_enabled, is_relocation_enabled,is_full_allocation_enabled, is_alua_enabled
-- Added the ability to format a volume to the hv_ldev module.
-- Added the ability to set the nick_name of an iSCSI using the hv_iscsi_target module.
-- Added the following new parameters to the output of hv_ldev_facts is_compression_acceleration_enabled, data_reduction_process_mode, is_relocation_enabled, is_full_allocation_enabled
-- Added the following parameters to creating an LDEV using the hv_ldev module is_parallel_execution_enabled, start_ldev_id, end_ldev_id, external_parity_group, is_compression_acceleration_enabled
-- Enabled host group name together with port ID as identifiers for a host group.
-- Enabled the iSCSI target name together with the port ID as identifiers for the iSCSI target.if both ID and name are specified, the ID is used together with the port ID as the iSCSI target identifier.
-
-telekom_mms.icinga_director
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Add API timeout option for all modules (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/282)
-- Add support for IcingaDB in inventory plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/274)
-- Icinga dependency modules implementation (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/272)
-
-theforeman.foreman
-~~~~~~~~~~~~~~~~~~
-
-- repository - add ``rhel-10`` to os version filter choices
-- repository - add support for the ``retain_package_versions_count`` parameter
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- moid_from_path - Add lookup plugins to get an objects MOID (https://github.com/ansible-collections/vmware.vmware/issues/191)
-
-Breaking Changes / Porting Guide
---------------------------------
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- All Roles - Remove support for Ubuntu 20.04
-- zabbix 6.4 in roles is no longer supported
-
-Deprecated Features
--------------------
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- module_utils.vmware - Deprecate ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_guest_powerstate - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2398).
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Fix templating ``tags`` on plays and roles. (https://github.com/ansible/ansible/issues/69903)
-- ansible-doc will no longer ignore docs for modules without an extension (https://github.com/ansible/ansible/issues/85279).
-- display - Fix hang caused by early post-fork writers to stdout/stderr (e.g., pydevd) encountering an unreleased fork lock.
-- get_url - add a check to recognize incomplete data transfers.
-- include_tasks - fix templating options when used as a handler (https://github.com/ansible/ansible/pull/85015).
-- templating - Fixed cases where template expression blocks halted prematurely when a Jinja macro invocation returned an undefined value.
-- templating - Jinja macros returned from a template expression can now be called from another template expression.
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- cisco.meraki.devices_cellular_sims - fix idempotency error.
-
-community.docker
-~~~~~~~~~~~~~~~~
-
-- docker_compose_v2 - handle a (potentially unintentional) breaking change in Docker Compose 2.37.0. Note that ``ContainerName`` is no longer part of the return value (https://github.com/ansible-collections/community.docker/issues/1082, https://github.com/ansible-collections/community.docker/pull/1083).
-- docker_container - fix idempotency if ``command=[]`` and ``command_handling=correct`` (https://github.com/ansible-collections/community.docker/issues/1080, https://github.com/ansible-collections/community.docker/pull/1085).
-
-community.hrobot
-~~~~~~~~~~~~~~~~
-
-- storagebox - make sure that changes of boolean parameters are sent correctly to the Robot service (https://github.com/ansible-collections/community.hrobot/issues/160, https://github.com/ansible-collections/community.hrobot/pull/161).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vm_device_helper - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-- vmware_guest_controller - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-- vmware_guest_disk - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-- vmware_host_inventory - New option ``enable_backward_compatability`` that can be set to ``false`` to work with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-- vmware_target_canonical_info - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-- vmware_vm_inventory - New option ``enable_backward_compatability`` that can be set to ``false`` to work with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- host module - Fixed idempotentcy related to changes in tag order.
-- maintenace module - Fixed idempotentcy related to changes in tag order.
-- roles/zabbix_agent - Reading existing PSK files failed on Windows
-- roles/zabbix_agent - UserParameterDir get wrong value if var zabbix_agent_userparamaterdir is set
-- roles/zabbix_repo - debian architectures should map better for i386 and armhf
-- roles/zabbix_repo - debian/ubuntu arm64 repo url fixed for zabbix 7.2
-- zabbix_agent Role - Add _zabbix_agent_pluginsocket variable to override /tmp/agent.plugin.sock
-- zabbix_service - fix propagation_value and propagation_rule parameters
-- zabbix_template_info module - Dump YAML formatted template data without date in Zabbix 7.0 or higher.
-- zabbix_web role - fix /etc/zabbix/web/zabbix.conf.php file mode.
-
-containers.podman
-~~~~~~~~~~~~~~~~~
-
-- Document that sdnotify can be set to healthy
-- Fix CI for podman_image_info
-- Fix None values in LogOpt in Quadlet
-- Fix conditions in CI jobs
-- Fix idempotency for any podman secret driver
-- Fix idempotency for systemd keyword
-- Fix setuptools
-- Handle image arguments in podman_container
-- Remove docker protocol when inspecting image
-- Set custom tmpfs idempotency
-- Use usedforsecurity for hashlib.sha256 only in python version >=3.9
-- correctly quote labels and environment variables for quadlets
-- doc - podman_secret - fix indentation error in example
-- fix(podman_image) - correct intendation on 'loop' keyword
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- All returned resource IDs are now integers instead of strings.
-- server - The ``placement_group`` argument now correctly handles placement group IDs during updates.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Fixed output details of `host_group_number` and `host_group_id` in `hv_hg` and 'hv_hg_facts' modules to be consistent.
-
-telekom_mms.icinga_director
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Bug: dependency apply module raises error when using a variable for parent host or service (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/276)
-- Extend checks in diff as a workaround for type confusion with the Director API (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/278)
-- add 'groups' parameter to task 'icinga_user.yml' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/284)
-
-theforeman.foreman
-~~~~~~~~~~~~~~~~~~
-
-- content_upload - lower chunk size to 1MB to avoid generating too big requests (https://github.com/theforeman/foreman-ansible-modules/issues/1862)
-- host - ensure LCE and CV are always sent together when updating one of them
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- Make integration tests compatible with ansible-core 2.19 (https://github.com/ansible-collections/vmware.vmware/issues/194)
-- cluster_drs - Fix error when non-string advanced settings are applied (https://github.com/ansible-collections/vmware.vmware/issues/190)
-- cluster_ha - Fix error when non-string advanced settings are applied (https://github.com/ansible-collections/vmware.vmware/issues/190)
-- tests/integration/vmware_folder_template_from_vm - Fix tests for 2.19
-
-New Modules
------------
-
-community.hrobot
-~~~~~~~~~~~~~~~~
-
-- community.hrobot.storagebox_snapshot_info - Query the snapshots for a storage box.
-- community.hrobot.storagebox_subaccount - Create, update, or delete a subaccount for a storage box.
-- community.hrobot.storagebox_subaccount_info - Query the subaccounts for a storage box.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Vsp
-^^^
-
-- hitachivantara.vspone_block.hv_external_paritygroup_facts - Retrieves information about External Parity Group from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_external_path_group - Manages External Path Groups in the Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_external_path_group_facts - Retrieves information about External Path Group from Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_mp_facts - Retrieves MP blades information from Hitachi VSP storage systems.
-
-telekom_mms.icinga_director
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- telekom_mms.icinga_director.icinga_dependency_apply - Manage dependency apply rules in Icinga2
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 10.1.0)
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 5.1.2)
-- ansible.windows (still version 3.1.0)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.4.0)
-- check_point.mgmt (still version 6.4.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.dnac (still version 6.31.3)
-- cisco.intersight (still version 2.1.0)
-- cisco.ios (still version 10.1.0)
-- cisco.iosxr (still version 11.1.0)
-- cisco.ise (still version 2.10.0)
-- cisco.mso (still version 2.10.0)
-- cisco.nxos (still version 10.1.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 4.2.0)
-- cloudscale_ch.cloud (still version 2.5.1)
-- community.aws (still version 10.0.0)
-- community.ciscosmb (still version 1.0.10)
-- community.crypto (still version 3.0.0-a2)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.4)
-- community.general (still version 10.7.0)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.4.0)
-- community.mongodb (still version 1.7.10)
-- community.mysql (still version 3.14.0)
-- community.okd (still version 4.0.2)
-- community.postgresql (still version 4.1.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.5.0)
-- community.routeros (still version 3.7.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.0.5)
-- community.windows (still version 3.0.0)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.1)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.36.0)
-- fortinet.fortimanager (still version 2.9.1)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.1)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.4)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 5.3.0)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.14.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.1)
-- purestorage.flasharray (still version 1.34.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a5
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-06-04
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a5 contains ansible-core version 2.19.0b5.
-This is a newer version than version 2.19.0b4 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a4 | Ansible 12.0.0a5 | Notes |
-+=============================+==================+==================+==============================================================================================================================+
-| amazon.aws | 9.5.0 | 10.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| ansible.windows | 3.0.0 | 3.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| azure.azcollection | 3.3.1 | 3.4.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| check_point.mgmt | 6.4.0 | 6.4.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.intersight | 2.0.20 | 2.1.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.ios | 10.0.0 | 10.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.iosxr | 11.0.0 | 11.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.meraki | 2.21.1 | 2.21.2 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.nxos | 10.0.0 | 10.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cloud.common | 4.0.0 | 4.2.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cloudscale_ch.cloud | 2.4.1 | 2.5.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.aws | 9.3.0 | 10.0.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 2.26.1 | 3.0.0-a2 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.dns | 3.2.3 | 3.2.4 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 10.6.0 | 10.7.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.libvirt | 1.3.1 | 1.4.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.mongodb | 1.7.9 | 1.7.10 | There are no changes recorded in the changelog. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.mysql | 3.13.0 | 3.14.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.okd | 4.0.1 | 4.0.2 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.postgresql | 4.0.0 | 4.1.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.rabbitmq | 1.4.0 | 1.5.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.routeros | 3.6.0 | 3.7.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.openmanage | 9.12.0 | 9.12.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| f5networks.f5_modules | 1.35.0 | 1.36.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| hetzner.hcloud | 4.3.0 | 5.0.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | 3.4.0 | 3.4.2 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| ibm.storage_virtualize | 2.7.3 | 2.7.4 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| kubernetes.core | 5.2.0 | 5.3.0 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| kubevirt.core | 2.2.0 | 2.2.2 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.ad | 1.9.0 | 1.9.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| ovirt.ovirt | 3.2.0 | 3.2.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 2.0.0 | 2.0.1 | |
-+-----------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-amazon.aws
-~~~~~~~~~~
-
-- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
-- amazon.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/), support for Python less than 3.8 by this collection was deprecated in release 6.0.0 and removed in release 10.0.0. (https://github.com/ansible-collections/amazon.aws/pull/2426).
-- connection/aws_ssm - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.aws_ssm``.
-
-community.aws
-~~~~~~~~~~~~~
-
-- community.aws collection - The community.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_attributes - This module is enhanced to support iDRAC10.
-- idrac_attributes - This role is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_jobs - This module is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_status_info - This module is enhanced to support iDRAC10.
-- idrac_syslog - This module is deprecated.
-- idrac_user_info - This module is enhanced to support iDRAC10.
-- idrac_virtual_media - This module is enhanced to support iDRAC10.
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Improved SUSE distribution detection in distribution.py by parsing VARIANT_ID from /etc/os-release for identifying SLES_SAP and SL-Micro. Falls back to /etc/products.d/baseproduct symlink for older systems.
-- Remove unnecessary shebang from the ``hostname`` module.
-- Use ``importlib.metadata.version()`` to detect Jinja version as jinja2.__version__ is deprecated and will be removed in Jinja 3.3.
-- ansible-doc - Return dynamic stub when reporting on Jinja filters and tests not explicitly documented in Ansible
-- ansible-doc - Skip listing the internal ``ansible._protomatter`` plugins unless explicitly requested
-- ansible-test - Add RHEL 10.0 as a remote platform for testing.
-- apt_repository - remove Python 2 support
-- csvfile lookup - remove Python 2 compat
-- display - Add ``help_text`` and ``obj`` to ``Display.error_as_warning``.
-- display - Replace Windows newlines (``\r\n``) in display output with Unix newlines (``\n``). This ensures proper display of strings sourced from Windows hosts in environments which treat ``\r`` as ``\n``, such as Azure Pipelines.
-- facts - add "Linode" for Linux VM in virtual facts
-- module_utils - Add ``AnsibleModule.error_as_warning``.
-- module_utils - Add ``ansible.module_utils.common.warnings.error_as_warning``.
-- module_utils - Add optional ``help_text`` argument to ``AnsibleModule.warn``.
-- ssh agent - Added ``SSH_AGENT_EXECUTABLE`` config to allow override of ssh-agent.
-- ssh connection plugin - Added ``verbosity`` config to decouple SSH debug output verbosity from Ansible verbosity. Previously, the Ansible verbosity value was always applied to the SSH client command-line, leading to excessively verbose output. Set the ``ANSIBLE_SSH_VERBOSITY`` envvar or ``ansible_ssh_verbosity`` Ansible variable to a positive integer to increase SSH client verbosity.
-- task timeout - Specifying a timeout greater than 100,000,000 now results in an error.
-- templating - Added ``_ANSIBLE_TEMPLAR_SANDBOX_MODE=allow_unsafe_attributes`` environment variable to disable Jinja template attribute sandbox. (https://github.com/ansible/ansible/issues/85202)
-- windows - Added support for ``#AnsibleRequires -Wrapper`` to request a PowerShell module be run through the execution wrapper scripts without any module utils specified.
-- windows - Added support for running signed modules and scripts with a Windows host protected by Windows App Control/WDAC. This is a tech preview and the interface may be subject to change.
-- windows - Script modules will preserve UTF-8 encoding when executing the script.
-
-amazon.aws
-~~~~~~~~~~
-
-- inventory/aws_ec2 - Adding support for Route53 as hostname (https://github.com/ansible-collections/amazon.aws/pull/2580).
-- module_utils.s3 - added "501" to the list of error codes thrown by S3 replacements (https://github.com/ansible-collections/amazon.aws/issues/2447).
-- module_utils/s3 - add initial ErrorHandler for S3 modules (https://github.com/ansible-collections/amazon.aws/pull/2060).
-- s3_bucket - migrated to use updated error handlers for better handling of non-AWS errors (https://github.com/ansible-collections/amazon.aws/pull/2478).
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- setup - add "CloudStack KVM Hypervisor" for Windows VM in virtual facts (https://github.com/ansible-collections/ansible.windows/pull/785).
-- setup - added ``ansible_product_uuid`` to align with Python facts - https://github.com/ansible-collections/ansible.windows/issues/789
-- win_dns_client - add support for suffixsearchlist (https://github.com/ansible-collections/ansible.windows/issues/656).
-- win_powershell - Add support for running scripts on a Windows host with an active Windows Application Control policy in place. Scripts that are unsigned will be run in Constrained Language Mode while scripts that are signed and trusted by the remote host's WDAC policy will be run in Full Language Mode.
-- win_powershell - Added the ``path`` and ``remote_src`` options which can be used to specify a local or remote PowerShell script to run.
-- win_shell - Add support for running scripts on a Windows host with an active Windows Application Control policy in place. Scripts will always run in Contrained Language Mode as they are executed in memory, use the ``ansible.windows.win_powershell`` module to run signed scripts in Full Language Mode on a WDAC enabled host.
-
-cisco.ios
-~~~~~~~~~
-
-- ios_hsrp_interfaces - Added support for cisco.ios.hsrp_interfaces module (standby commands).
-
-cisco.iosxr
-~~~~~~~~~~~
-
-- Adds support for missing set route map attributes med and extcommunity
-- Enhanced CDP neighbor parsing to support updated output formats in IOS-XR 7.7.21 and 7.4.1
-- Modified `parse_cdp_ip` to recognize "IPv4 address" in place of "IP address"
-- Updated `parse_cdp_intf_port` to handle newline-separated "Interface" and "Port ID" fields
-
-cisco.nxos
-~~~~~~~~~~
-
-- hsrp_interfaces - Fixes and enhances capability of the module to deal with entire hsrp configuration under interfaces.
-
-cloud.common
-~~~~~~~~~~~~
-
-- Bump version of ansible-lint to minimum 25.1.2
-- module_utils/turbo/module - Add support for 2.19 by returning a json compatible arg obj instead of a dict if possible (https://github.com/ansible-collections/cloud.common/pull/167).
-- module_utils/turbo/server - Add support for 2.19 by making FakeStdin implement the IOBase ABC (https://github.com/ansible-collections/cloud.common/pull/167).
-- plugins/module_utils/turbo/server - Update how the async loop is created to support python 3.12+ (https://github.com/ansible-collections/cloud.common/pull/169).
-
-cloudscale_ch.cloud
-~~~~~~~~~~~~~~~~~~~
-
-- Add ansible-core 2.19+ compatibility
-- volume - Add revert parameter.
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- No longer provide cryptography's ``backend`` parameter. This will break with cryptography < 3.1 (https://github.com/ansible-collections/community.crypto/pull/878).
-- On cryptography 36.0.0+, always use ``public_bytes()`` for X.509 extension objects instead of using cryptography internals to obtain DER value of extension (https://github.com/ansible-collections/community.crypto/pull/878).
-- Python code modernization: add type hints and type checking (https://github.com/ansible-collections/community.crypto/pull/885).
-- Python code modernization: avoid unnecessary string conversion (https://github.com/ansible-collections/community.crypto/pull/880).
-- Python code modernization: avoid using ``six`` (https://github.com/ansible-collections/community.crypto/pull/884).
-- Python code modernization: remove Python 3 specific code (https://github.com/ansible-collections/community.crypto/pull/877).
-- Python code modernization: update ``__future__`` imports, remove Python 2 specific boilerplates (https://github.com/ansible-collections/community.crypto/pull/876).
-- Python code modernization: use ``unittest.mock`` instead of ``ansible_collections.community.internal_test_tools.tests.unit.compat.mock`` (https://github.com/ansible-collections/community.crypto/pull/881).
-- Python code modernization: use f-strings instead of ``%`` and ``str.format()`` (https://github.com/ansible-collections/community.crypto/pull/875).
-- Remove ``backend`` parameter from internal code whenever possible (https://github.com/ansible-collections/community.crypto/pull/883).
-- Remove various compatibility code for cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878).
-- Remove vendored copy of ``distutils.version`` in favor of vendored copy included with ansible-core 2.12+ (https://github.com/ansible-collections/community.crypto/pull/371).
-- acme_* modules - improve parsing of ``Retry-After`` reply headers in regular ACME requests (https://github.com/ansible-collections/community.crypto/pull/890).
-- action_module plugin utils - remove compatibility with older ansible-core/ansible-base/Ansible versions (https://github.com/ansible-collections/community.crypto/pull/872).
-- x509_certificate, x509_certificate_pipe - the ``ownca_version`` and ``selfsigned_version`` parameters explicitly only allow the value ``3``. The module already failed for other values in the past, now this is validated as part of the module argument spec (https://github.com/ansible-collections/community.crypto/pull/890).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- cobbler inventory plugin - add ``connection_timeout`` option to specify the connection timeout to the cobbler server (https://github.com/ansible-collections/community.general/pull/11063).
-- cobbler inventory plugin - add ``facts_level`` option to allow requesting fully rendered variables for Cobbler systems (https://github.com/ansible-collections/community.general/issues/9419, https://github.com/ansible-collections/community.general/pull/9975).
-- ini_file - modify an inactive option also when there are spaces in front of the comment symbol (https://github.com/ansible-collections/community.general/pull/10102, https://github.com/ansible-collections/community.general/issues/8539).
-- pipx - parameter ``name`` now accepts Python package specifiers (https://github.com/ansible-collections/community.general/issues/7815, https://github.com/ansible-collections/community.general/pull/10031).
-- pipx module_utils - filtering application list by name now happens in the modules (https://github.com/ansible-collections/community.general/pull/10031).
-- pipx_info - filtering application list by name now happens in the module (https://github.com/ansible-collections/community.general/pull/10031).
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- virt - implement basic check mode functionality (https://github.com/ansible-collections/community.libvirt/issue/98)
-- virt - implement the gathering of Dom UUIDs as per FR https://github.com/ansible-collections/community.libvirt/issues/187
-- virt - implement the gathering of Dom interface names and mac addresses as per FR https://github.com/ansible-collections/community.libvirt/issues/189
-- virt - implement the removal of volumes for a dom as per FR https://github.com/ansible-collections/community.libvirt/issues/177
-
-community.mysql
-~~~~~~~~~~~~~~~
-
-- mysql_replication - change default value for ``primary_ssl_verify_server_cert`` from False to None. This should not affect existing playbooks (https://github.com/ansible-collections/community.mysql/pull/707).
-
-community.rabbitmq
-~~~~~~~~~~~~~~~~~~
-
-- rabbitmq_vhost - add support to vhost manipulation through RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/171)
-
-community.routeros
-~~~~~~~~~~~~~~~~~~
-
-- api_find_and_modify - allow to control whether ``dynamic`` and/or ``builtin`` entries are ignored with the new ``ignore_dynamic`` and ``ignore_builtin`` options (https://github.com/ansible-collections/community.routeros/issues/372, https://github.com/ansible-collections/community.routeros/pull/373).
-- api_info, api_modify - add ``port-cost-mode`` to ``interface bridge`` which is supported since RouterOS 7.13 (https://github.com/ansible-collections/community.routeros/pull/371).
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- server - Allow renaming a server.
-- volume_attachment - Add new `volume_attachment` module to manage Volumes attachment.
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added back 'mu_number' parameter to the `hv_gad` module.
-- Resolved various documentation inconsistencies.
-
-ibm.storage_virtualize
-~~~~~~~~~~~~~~~~~~~~~~
-
-- ibm_svc_host.py - Added support for adding and removing preferred location, and IO Groups
-- ibm_svc_hostcluster.py - Added support for adding site
-- ibm_svc_manage_volume - Added support for warning parameter
-
-kubernetes.core
-~~~~~~~~~~~~~~~
-
-- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/kubernetes.core/pull/919).
-- action/k8s_info - update templating mechanism with changes from ``ansible-core 2.19`` (https://github.com/ansible-collections/kubernetes.core/pull/888).
-- helm - add reset_then_reuse_values support to helm module (https://github.com/ansible-collections/kubernetes.core/issues/803).
-- helm - add support for ``insecure_skip_tls_verify`` option to helm and helm_repository(https://github.com/ansible-collections/kubernetes.core/issues/694).
-
-ovirt.ovirt
-~~~~~~~~~~~
-
-- Enable and start postfix service so that ovirt-ha-agent logs are not filled with mail notification errors (https://github.com/oVirt/ovirt-ansible-collection/pull/741)
-- Maintenance tasks regarding linting, testing and CI (https://github.com/oVirt/ovirt-ansible-collection/pull/762)
-
-Breaking Changes / Porting Guide
---------------------------------
-
-amazon.aws
-~~~~~~~~~~
-
-- amazon.aws collection - Support for ansible-core < 2.17 has been dropped (https://github.com/ansible-collections/amazon.aws/pull/2601).
-- amazon.aws collection - Support for the ``EC2_ACCESS_KEY`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``access_key`` parameter or ``AWS_ACCESS_KEY_ID`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - Support for the ``EC2_REGION`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``region`` parameter or ``AWS_REGION`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - Support for the ``EC2_SECRET_KEY`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``secret_key`` parameter or ``AWS_SECRET_ACCESS_KEY`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - Support for the ``EC2_SECURITY_TOKEN`` and ``AWS_SECURITY_TOKEN`` environment variables were deprecated in release ``6.0.0`` and have now been removed. Please use the ``session_token`` parameter or ``AWS_SESSION_TOKEN`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - Support for the ``EC2_URL`` and ``S3_URL`` environment variables were deprecated in release ``6.0.0`` and have now been removed. Please use the ``endpoint_url`` parameter or ``AWS_URL`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``access_token``, ``aws_security_token`` and ``security_token`` aliases for the ``session_token`` parameter were deprecated in release ``6.0.0`` and have now been removed. Please use the ``session_token`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``boto_profile`` alias for the ``profile`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``profile`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``ec2_access_key`` alias for the ``access_key`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``access_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``ec2_region`` alias for the ``region`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``region`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``ec2_secret_key`` alias for the ``secret_key`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``secret_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- amazon.aws collection - The ``endpoint``, ``ec2_url`` and ``s3_url`` aliases for the ``endpoint_url`` parameter were deprecated in release ``6.0.0`` and have now been removed. Please use the ``region`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- docs_fragments - The previously deprecated ``amazon.aws.aws_credentials`` docs fragment has been removed please use ``amazon.aws.common.plugins`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- docs_fragments - The previously deprecated ``amazon.aws.aws_region`` docs fragment has been removed please use ``amazon.aws.region.plugins`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- docs_fragments - The previously deprecated ``amazon.aws.aws`` docs fragment has been removed please use ``amazon.aws.common.modules`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- docs_fragments - The previously deprecated ``amazon.aws.ec2`` docs fragment has been removed please use ``amazon.aws.region.modules`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
-- ec2_vpc_peering_info - the `result` key has been removed from the return value. `vpc_peering_connections` should be used instead (https://github.com/ansible-collections/amazon.aws/pull/2618).
-- module_utils.botocore - drop deprecated ``boto3`` parameter for ``get_aws_region()`` and ``get_aws_connection_info()``, this parameter has had no effect since release 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2443).
-- module_utils.ec2 - drop deprecated ``boto3`` parameter for ``get_ec2_security_group_ids_from_names()`` and ``get_aws_connection_info()``, this parameter has had no effect since release 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2603).
-- rds_param_group - the redirect has been removed and playbooks should be updated to use rds_instance_param_group (https://github.com/ansible-collections/amazon.aws/pull/2618).
-
-community.aws
-~~~~~~~~~~~~~
-
-- Support for ``ansible-core<2.17`` has been dropped (https://github.com/ansible-collections/community.aws/pull/2303).
-- The community.aws collection has dropped support for ``botocore<1.31.0`` and ``boto3<1.28.0``. Most modules will continue to work with older versions of the AWS SDK. However, compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/2195).
-- connection/aws_ssm - The connection plugin has been migrated from the ``community.aws`` collection. Playbooks or Inventory using the Fully Qualified Collection Name for this connection plugin should be updated to use ``amazon.aws.aws_ssm``.
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- All doc_fragments are now private to the collection and must not be used from other collections or unrelated plugins/modules. Breaking changes in these can happen at any time, even in bugfix releases (https://github.com/ansible-collections/community.crypto/pull/898).
-- All module_utils and plugin_utils are now private to the collection and must not be used from other collections or unrelated plugins/modules. Breaking changes in these can happen at any time, even in bugfix releases (https://github.com/ansible-collections/community.crypto/pull/887).
-- Ignore value of ``select_crypto_backend`` for all modules except acme_* and ..., and always assume the value ``auto``. This ensures that the ``cryptography`` version is always checked (https://github.com/ansible-collections/community.crypto/pull/883).
-- The validation for relative timestamps is now more strict. A string starting with ``+`` or ``-`` must be valid, otherwise validation will fail. In the past such strings were often silently ignored, and in many cases the code which triggered the validation was not able to handle no result (https://github.com/ansible-collections/community.crypto/pull/885).
-- acme.certificates module utils - the ``retrieve_acme_v1_certificate()`` helper function has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
-- get_certificate - the default for ``asn1_base64`` changed from ``false`` to ``true`` (https://github.com/ansible-collections/community.crypto/pull/873).
-- x509_crl - the ``mode`` parameter no longer denotes the update mode, but the CRL file mode. Use ``crl_mode`` instead for the update mode (https://github.com/ansible-collections/community.crypto/pull/873).
-
-hetzner.hcloud
-~~~~~~~~~~~~~~
-
-- Drop support for ansible-core 2.15.
-- Drop support for ansible-core 2.16.
-- Drop support for python 3.8.
-- inventory - The default value for the `hostvars_prefix` option is now set to `hcloud_`. Make sure to update all references to host variables provided by the inventory. You may revert this change by setting the `hostvars_prefix` option to `""`.
-- server - The deprecated ``force_upgrade`` argument is removed from the server module. Please use the ``force`` argument instead.
-- volume - Volumes are no longer detached when the server argument is not provided. Please use the ``volume_attachment`` module to manage volume attachments.
-
-Deprecated Features
--------------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- The ``ShellModule.checksum`` method is now deprecated and will be removed in ansible-core 2.23. Use ``ActionBase._execute_remote_stat()`` instead.
-- The ``ansible.module_utils.common.collections.count()`` function is deprecated and will be removed in ansible-core 2.23. Use ``collections.Counter()`` from the Python standard library instead.
-- ``ansible.compat.importlib_resources`` is deprecated and will be removed in ansible-core 2.23. Use ``importlib.resources`` from the Python standard library instead.
-
-cisco.nxos
-~~~~~~~~~~
-
-- nxos_hsrp - deprecate nxos.nxos.nxos_hsrp in favor of nxos.nxos.nxos_hsrp_interfaces.
-- nxos_vrf_interface - deprecate nxos.nxos.nxos_vrf_interface in favor of nxos.nxos.nxos_vrf_interfaces.
-
-community.aws
-~~~~~~~~~~~~~
-
-- community.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.8 by this collection has been deprecated and will removed in release 10.0.0 (https://github.com/ansible-collections/community.aws/pull/2195).
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- acme_certificate - deprecate the ``agreement`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
-- openssl_pkcs12 - deprecate the ``maciter_size`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- The proxmox content (modules and plugins) is being moved to the `new collection community.proxmox `__. In community.general 11.0.0, these modules and plugins will be replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10109).
-- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- postgresql modules - the ``port`` alias is deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_port`` argument instead.
-
-Removed Features (previously deprecated)
-----------------------------------------
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust's Public Certificates Business to Sectigo; see `the announcement with key dates `__ and `the migration brief for customers `__ for details. Since this process will be completed in 2025, we decided to remove all Entrust content from community.general 3.0.0 (https://github.com/ansible-collections/community.crypto/issues/895, https://github.com/ansible-collections/community.crypto/pull/901).
-- The collection no longer supports cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878, https://github.com/ansible-collections/community.crypto/pull/882).
-- acme.acme module utils - the ``get_default_argspec()`` function has been removed. Use ``create_default_argspec()`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme.backends module utils - the methods ``get_ordered_csr_identifiers()`` and ``get_cert_information()`` of ``CryptoBackend`` now must be implemented (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme.documentation docs fragment - the ``documentation`` docs fragment has been removed. Use both the ``basic`` and ``account`` docs fragments in ``acme`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme_* modules - support for ACME v1 has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
-- community.crypto no longer supports Ansible 2.9, ansible-base 2.10, and ansible-core versions 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16. While content from this collection might still work with some older versions of ansible-core, it will not work with any Python version before 3.7 (https://github.com/ansible-collections/community.crypto/pull/870).
-- crypto.basic module utils - remove ``CRYPTOGRAPHY_HAS_*`` flags. All tested features are supported since cryptography 3.0 (https://github.com/ansible-collections/community.crypto/pull/878).
-- crypto.cryptography_support module utils - remove ``cryptography_serial_number_of_cert()`` helper function (https://github.com/ansible-collections/community.crypto/pull/878).
-- crypto.module_backends.common module utils - this module utils has been removed. Use the ``argspec`` module utils instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- crypto.support module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
-- ecs_certificate - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
-- ecs_domain - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
-- execution environment dependencies - remove PyOpenSSL dependency (https://github.com/ansible-collections/community.crypto/pull/874).
-- openssl_csr_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-- openssl_pkcs12 - support for the ``pyopenssl`` backend has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
-- openssl_privatekey_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-- time module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
-- x509_certificate - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
-- x509_certificate_pipe - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
-- x509_certificate_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Core Jinja test plugins - Builtin test plugins now always return ``bool`` to avoid spurious deprecation warnings for some malformed inputs.
-- ansible-test - Disabled the ``bad-super-call`` pylint rule due to false positives.
-- ansible-test - Fix incorrect handling of options with optional args (e.g. ``--color``), when followed by other options which are omitted during arg filtering (e.g. ``--docker``). Previously it was possible for non-option arguments to be incorrectly omitted in these cases. (https://github.com/ansible/ansible/issues/85173)
-- ansible-test - Improve type inference for pylint deprecated checks to accommodate some type annotations.
-- async_status module - The ``started`` and ``finished`` return values are now ``True`` or ``False`` instead of ``1`` or ``0``.
-- constructed inventory - Use the ``default_value`` or ``trailing_separator`` in a ``keyed_groups`` entry if the expression result of ``key`` is ``None`` and not just an empty string.
-- dnf5 - handle all libdnf5 specific exceptions (https://github.com/ansible/ansible/issues/84634)
-- error handling - Error details and tracebacks from connection and built-in action exceptions are preserved. Previously, much of the detail was lost or mixed into the error message.
-- from_yaml_all filter - `None` and empty string inputs now always return an empty list. Previously, `None` was returned in Jinja native mode and empty list in classic mode.
-- local connection plugin - The command-line used to create subprocesses is now always ``str`` to avoid issues with debuggers and profilers.
-- ssh agent - Fixed several potential startup hangs for badly-behaved or overloaded ssh agents.
-- task timeout - Specifying a negative task timeout now results in an error.
-
-amazon.aws
-~~~~~~~~~~
-
-- s3_bucket - bucket ACLs now consistently returned (https://github.com/ansible-collections/amazon.aws/pull/2478).
-- s3_bucket - fixed idempotency when setting bucket ACLs (https://github.com/ansible-collections/amazon.aws/pull/2478).
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- win_package - fail to remove package when no product id is provided with path as an URL (https://github.com/ansible-collections/ansible.windows/issues/667).
-
-check_point.mgmt
-~~~~~~~~~~~~~~~~
-
-- Added required management version to the documentation for all collection modules.
-- module_utils/checkpoint - Prevent redundant logout call when there is no authentication header 'X-chkp-sid'.
-
-cisco.ios
-~~~~~~~~~
-
-- cisco.ios.ios_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes.
-- ios_acls - Fix issue where commands were not being parsed correctly and incorrect commands were being generated.
-- ios_bgp_address_family - fix configuration of neighbor's as-override split-horizon.
-
-cisco.iosxr
-~~~~~~~~~~~
-
-- Fixes route map fact gathering to correctly gather facts with a elif condition.
-- cisco.iosxr.iosxr_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes.
-- iosxr_route_maps - Fix issue where wrong commands were being generated for several attributes.
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- cisco.meraki.networks_appliance_firewall_l7_firewall_rules - fix idempotency error.
-
-cloudscale_ch.cloud
-~~~~~~~~~~~~~~~~~~~
-
-- floating_ip - Fix sanity tests.
-
-community.dns
-~~~~~~~~~~~~~
-
-- Update Public Suffix List.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- cobbler_system - fix bug with Cobbler >= 3.4.0 caused by giving more than 2 positional arguments to ``CobblerXMLRPCInterface.get_system_handle()`` (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145).
-- kdeconfig - allow option values beginning with a dash (https://github.com/ansible-collections/community.general/issues/10127, https://github.com/ansible-collections/community.general/pull/10128).
-- keycloak_user_rolemapping - fix ``--diff`` mode (https://github.com/ansible-collections/community.general/issues/10067, https://github.com/ansible-collections/community.general/pull/10075).
-- pickle cache plugin - avoid extra JSON serialization with ansible-core >= 2.19 (https://github.com/ansible-collections/community.general/pull/10136).
-- proxmox - fix crash in module when the used on an existing LXC container with ``state=present`` and ``force=true`` (https://github.com/ansible-collections/community.proxmox/pull/91, https://github.com/ansible-collections/community.general/pull/10155).
-- rundeck_acl_policy - ensure that project ACLs are sent to the correct endpoint (https://github.com/ansible-collections/community.general/pull/10097).
-- sysrc - split the output of ``sysrc -e -a`` on the first ``=`` only (https://github.com/ansible-collections/community.general/issues/10120, https://github.com/ansible-collections/community.general/pull/10121).
-
-community.mysql
-~~~~~~~~~~~~~~~
-
-- mysql_info - fix a crash (ERROR 1141, There is no such grant defined for user 'PUBLIC' on host '%') when using the ``users_info`` filter with a PUBLIC role present in MariaDB 10.11+. Do note that the fix doesn't change the fact that the module won't return the privileges from the PUBLIC role in the users privileges list. It can't do that because you have to login as the particular user and use `SHOW GRANTS FOR CURRENT_USER`. We considered using an aggregation with the `SHOW GRANTS FOR PUBLIC` command. However, this approach would make copying users from one server to another transform the privileges inherited from the role as if they were direct privileges on the user.
-- mysql_replication - fixed an issue where setting ``primary_ssl_verify_server_cert`` to false had no effect (https://github.com/ansible-collections/community.mysql/issues/689).
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- postgresql_alter_system - fix failure when max_val contains a huge number written in scientific notation (https://github.com/ansible-collections/community.postgresql/issues/853).
-- postgresql_schema - change reported in check_mode was negated. Now it reports a change when removing an existing schema (https://github.com/ansible-collections/community.postgresql/pull/858)
-
-community.rabbitmq
-~~~~~~~~~~~~~~~~~~
-
-- rabbitmq_binding - fix idempotency when arguments and/or routing_key are given (https://github.com/ansible-collections/community.rabbitmq/pull/191)
-
-f5networks.f5_modules
+junipernetworks.junos
~~~~~~~~~~~~~~~~~~~~~
-- bigip_virtual_server fix module crash issue
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Fixed the mapping lun to multiple HostGroup/Iscsi Target issues for remote replication.
-- Resolved various documentation inconsistencies.
-
-ibm.storage_virtualize
-~~~~~~~~~~~~~~~~~~~~~~
-
-- ibm_svc_ssh - Added fix for nginx timeout
-- ibm_svc_utils - Added fix for nginx timeout
-
-kubernetes.core
-~~~~~~~~~~~~~~~
-
-- module_utils/k8s/service - fix issue when trying to delete resource using `delete_options` and `check_mode=true` (https://github.com/ansible-collections/kubernetes.core/issues/892).
-
-microsoft.ad
-~~~~~~~~~~~~
-
-- microsoft.ad.ldap - Ensure the encrypted LAPS value is marked as unsafe to stop unexpected templating of the raw JSON result value - https://github.com/ansible-collections/microsoft.ad/issues/194
-
-ovirt.ovirt
-~~~~~~~~~~~
-
-- ovirt_disk - fix documentation for lun_id parameter (https://github.com/oVirt/ovirt-ansible-collection/pull/740)
-- ovirt_proxied_check - fix documentation string (https://github.com/oVirt/ovirt-ansible-collection/pull/761)
-- roles - Fix ansible-test errors change include to include_tasks (https://github.com/oVirt/ovirt-ansible-collection/pull/733).
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- cluster_ha - fix typo that causes PDL response mode 'restart' to throw an error
-- deploy_* - Fix issue where datastore was expected even though it is optional
-- deploy_content_library_ovf - fix error when deploying from a datastore cluster by simplifying the ds selection process
-- inventory plugins - fix issue where cache did not work (https://github.com/ansible-collections/vmware.vmware/issues/175)
-
-Known Issues
-------------
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
-- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-New Plugins
------------
-
-Callback
-~~~~~~~~
-
-- community.general.print_task - Prints playbook task snippet to job output.
-
-Filter
-~~~~~~
-
-- community.general.to_prettytable - Format a list of dictionaries as an ASCII table.
-
-New Modules
------------
-
-cloudscale_ch.cloud
-~~~~~~~~~~~~~~~~~~~
-
-- cloudscale_ch.cloud.volume_snapshot - Manage volume snapshots on the cloudscale.ch IaaS service
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- community.general.xdg_mime - Set default handler for MIME types, for applications using XDG tools.
-
-community.libvirt
-~~~~~~~~~~~~~~~~~
-
-- community.libvirt.virt_volume - Manage libvirt volumes inside a storage pool
-
-Unchanged Collections
----------------------
-
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 5.1.2)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.dnac (still version 6.31.3)
-- cisco.ise (still version 2.10.0)
-- cisco.mso (still version 2.10.0)
-- cisco.ucs (still version 1.16.0)
-- community.ciscosmb (still version 1.0.10)
-- community.digitalocean (still version 1.27.0)
-- community.docker (still version 4.6.0)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.hrobot (still version 2.3.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.proxysql (still version 1.6.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.0.5)
-- community.vmware (still version 5.6.0)
-- community.windows (still version 3.0.0)
-- community.zabbix (still version 3.3.0)
-- containers.podman (still version 1.16.3)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.35)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- fortinet.fortimanager (still version 2.9.1)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.1)
-- ibm.qradar (still version 4.0.0)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 23.0.0)
-- netapp.storagegrid (still version 21.14.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- purestorage.flasharray (still version 1.34.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.2.2)
-- theforeman.foreman (still version 5.3.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a4
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-05-12
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a4 contains ansible-core version 2.19.0b4.
-This is a newer version than version 2.19.0b3 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+--------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a3 | Ansible 12.0.0a4 | Notes |
-+==============+==================+==================+==============================================================================================================================+
-| amazon.aws | 9.4.0 | 9.5.0 | |
-+--------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cisco.meraki | 2.21.0 | 2.21.1 | |
-+--------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.pas | 1.0.32 | 1.0.35 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+--------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| netapp.ontap | 22.14.0 | 23.0.0 | |
-+--------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
netapp.ontap
~~~~~~~~~~~~
- library `netapp-lib` is now an optional requirement.
+- na_ontap_autoupdate_support - REST only support to enable automatic software update, requires ONTAP 9.10 or later.
- na_ontap_lun - added compatibility for ASA r2 systems.
- na_ontap_lun_copy - added check to prevent use on unsupported ASA r2 systems.
- na_ontap_lun_map - added compatibility for ASA r2 systems.
- na_ontap_lun_map_reporting_nodes - added compatibility for ASA r2 systems.
- na_ontap_nvme_namespace - added compatibility for ASA r2 systems.
- na_ontap_nvme_subsystem - added compatibility for ASA r2 systems.
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- facts - add "CloudStack KVM Hypervisor" for Linux VM in virtual facts (https://github.com/ansible/ansible/issues/85089).
-- modules - use ``AnsibleModule.warn`` instead of passing ``warnings`` to ``exit_json`` or ``fail_json`` which is deprecated.
-
-amazon.aws
-~~~~~~~~~~
-
-- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/amazon.aws/pull/2590).
-- iam_user_info - Add tags to ListUsers or GetGroup results (https://github.com/ansible-collections/amazon.aws/pull/2567).
-- iam_user_info - Return empty user list when invalid group name is provided instead of python error (https://github.com/ansible-collections/amazon.aws/pull/2567).
-- module_utils/modules.py - call to ``deprecate()`` without specifying ``collection_name``, ``version`` or ``date`` arguments raises a sanity errors (https://github.com/ansible-collections/amazon.aws/pull/2607).
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- all modules - defaults to certificate based authentication if `username,password` and `cert_filepath/key_filepath` are set.
-- na_ontap_ndmp - Added get method to generate and retrieve ndmp user passowrd in REST.
-- na_ontap_volume - updated documentation for `snapshot_auto_delete`.
-- updated ZAPI deprecation warnings in README & module utilities.
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- ansible-test - Updated the ``pylint`` sanity test to skip some deprecation validation checks when all arguments are dynamic.
-- config - Preserve or apply Origin tag to values returned by config.
-- config - Prevented fatal errors when ``MODULE_IGNORE_EXTS`` configuration was set.
-- config - Templating failures on config defaults now issue a warning. Previously, failures silently returned an unrendered and untrusted template to the caller.
-- config - ``ensure_type`` correctly propagates trust and other tags on returned values.
-- config - ``ensure_type`` now converts mappings to ``dict`` when requested, instead of returning the mapping.
-- config - ``ensure_type`` now converts sequences to ``list`` when requested, instead of returning the sequence.
-- config - ``ensure_type`` now correctly errors when ``pathlist`` or ``pathspec`` types encounter non-string list items.
-- config - ``ensure_type`` now reports an error when ``bytes`` are provided for any known ``value_type``. Previously, the behavior was undefined, but often resulted in an unhandled exception or incorrect return type.
-- config - ``ensure_type`` with expected type ``int`` now properly converts ``True`` and ``False`` values to ``int``. Previously, these values were silently returned unmodified.
-- convert_bool.boolean API conversion function - Unhashable values passed to ``boolean`` behave like other non-boolean convertible values, returning False or raising ``TypeError`` depending on the value of ``strict``. Previously, unhashable values always raised ``ValueError`` due to an invalid set membership check.
-- dnf5 - when ``bugfix`` and/or ``security`` is specified, skip packages that do not have any such updates, even for new versions of libdnf5 where this functionality changed and it is considered failure
-- plugin loader - Apply template trust to strings loaded from plugin configuration definitions and doc fragments.
-- template action - Template files where the entire file's output renders as ``None`` are no longer emitted as the string "None", but instead render to an empty file as in previous releases.
-
-amazon.aws
-~~~~~~~~~~
-
-- iam_user_info - Actually call GetUser when only user name is supplied instead of listing and filtering from all users (https://github.com/ansible-collections/amazon.aws/pull/2567).
-- iam_user_info - Actually filter users by path prefix when one is provided (https://github.com/ansible-collections/amazon.aws/pull/2567).
-- route53_info - removes jijna delimiters from example using when (https://github.com/ansible-collections/amazon.aws/issues/2594).
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- cisco.meraki.devices_switch_ports - fix get_object_by_name method.
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- na_ontap_ems_config - fix issue with support check mode when proxy_password is not set in REST.
-- na_ontap_quotas - changed examples in documentation for `type`.
-- na_ontap_snapmirror - fix delete snapmirror timeout issue by retrying in REST.
-- na_ontap_software_update - Updated documentation for `https`.
-- na_ontap_user_role - fix issue with modifying privileges in REST.
-
-New Modules
------------
-
-netapp.ontap
-~~~~~~~~~~~~
-
-- netapp.ontap.na_ontap_mav_approval_group - NetApp ONTAP multi-admin verification (MAV) approval group
-- netapp.ontap.na_ontap_mav_config - NetApp ONTAP multi-admin verification (MAV) global setting
-- netapp.ontap.na_ontap_mav_rule - NetApp ONTAP multi-admin verification (MAV) rule
-- netapp.ontap.na_ontap_storage_unit - NetApp ONTAP ASA r2 storage unit
-- netapp.ontap.na_ontap_storage_unit_snapshot - NetApp ONTAP ASA r2 storage unit snapshot
-- netapp.ontap.na_ontap_support_config_backup - NetApp ONTAP support configuration backup
-
-Unchanged Collections
----------------------
-
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 5.1.2)
-- ansible.windows (still version 3.0.0)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.3.1)
-- check_point.mgmt (still version 6.4.0)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.dnac (still version 6.31.3)
-- cisco.intersight (still version 2.0.20)
-- cisco.ios (still version 10.0.0)
-- cisco.iosxr (still version 11.0.0)
-- cisco.ise (still version 2.10.0)
-- cisco.mso (still version 2.10.0)
-- cisco.nxos (still version 10.0.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 4.0.0)
-- cloudscale_ch.cloud (still version 2.4.1)
-- community.aws (still version 9.3.0)
-- community.ciscosmb (still version 1.0.10)
-- community.crypto (still version 2.26.1)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.3)
-- community.docker (still version 4.6.0)
-- community.general (still version 10.6.0)
-- community.grafana (still version 2.2.0)
-- community.hashi_vault (still version 6.2.0)
-- community.hrobot (still version 2.3.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.3.1)
-- community.mongodb (still version 1.7.9)
-- community.mysql (still version 3.13.0)
-- community.okd (still version 4.0.1)
-- community.postgresql (still version 4.0.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.4.0)
-- community.routeros (still version 3.6.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.0.5)
-- community.vmware (still version 5.6.0)
-- community.windows (still version 3.0.0)
-- community.zabbix (still version 3.3.0)
-- containers.podman (still version 1.16.3)
-- cyberark.conjur (still version 1.3.3)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.12.0)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.35.0)
-- fortinet.fortimanager (still version 2.9.1)
-- fortinet.fortios (still version 2.4.0)
-- grafana.grafana (still version 6.0.1)
-- hetzner.hcloud (still version 4.3.0)
-- hitachivantara.vspone_block (still version 3.4.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.3)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 5.2.0)
-- kubevirt.core (still version 2.2.0)
-- lowlydba.sqlserver (still version 2.6.1)
-- microsoft.ad (still version 1.9.0)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.storagegrid (still version 21.14.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.0)
-- purestorage.flasharray (still version 1.34.1)
-- purestorage.flashblade (still version 1.20.0)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.2.2)
-- theforeman.foreman (still version 5.3.0)
-- vmware.vmware (still version 2.0.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a3
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-05-06
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a3 contains ansible-core version 2.19.0b3.
-This is a newer version than version 2.19.0b2 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 12.0.0a2 | Ansible 12.0.0a3 | Notes |
-+========================+==================+==================+==============================================================================================================================+
-| ansible.windows | 2.8.0 | 3.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.aws | 9.2.0 | 9.3.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 2.26.0 | 2.26.1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.docker | 4.5.2 | 4.6.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.grafana | 2.1.0 | 2.2.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.hrobot | 2.2.0 | 2.3.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.postgresql | 3.14.0 | 4.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| community.windows | 2.4.0 | 3.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.pas | 1.0.30 | 1.0.32 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.openmanage | 9.11.0 | 9.12.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| grafana.grafana | 6.0.0 | 6.0.1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| kubevirt.core | 2.1.0 | 2.2.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| lowlydba.sqlserver | 2.6.0 | 2.6.1 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.ad | 1.8.1 | 1.9.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| purestorage.flashblade | 1.19.2 | 1.20.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 1.11.0 | 2.0.0 | |
-+------------------------+------------------+------------------+------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4.0.0 (https://github.com/ansible-collections/community.postgresql/issues/829).
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_gather_facts - This role is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_job_status_info - This module is enhanced to support iDRAC10.
-- idrac_system_info - This module is enhanced to support iDRAC10.
+- na_ontap_s3_buckets - new option `snapshot_policy` added in REST, requires ONTAP 9.16.1 or later.
vmware.vmware
~~~~~~~~~~~~~
@@ -4811,1002 +404,21 @@
- module_utils/clients - make client utils public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
- update query file to include cluster module queries
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- ansible-config will now show internal, but not test configuration entries. This allows for debugging but still denoting the configurations as internal use only (_ prefix).
-- ansible-test - Improved ``pylint`` checks for Ansible-specific deprecation functions.
-- ansible-test - Use the ``-t`` option to set the stop timeout when stopping a container. This avoids use of the ``--time`` option which was deprecated in Docker v28.0.
-- collection metadata - The collection loader now parses scalar values from ``meta/runtime.yml`` as strings. This avoids issues caused by unquoted values such as versions or dates being parsed as types other than strings.
-- deprecation warnings - Deprecation warning APIs automatically capture the identity of the deprecating plugin. The ``collection_name`` argument is only required to correctly attribute deprecations that occur in module_utils or other non-plugin code.
-- deprecation warnings - Improved deprecation messages to more clearly indicate the affected content, including plugin name when available.
-- deprecations - Collection name strings not of the form ``ns.coll`` passed to deprecation API functions will result in an error.
-- deprecations - Removed support for specifying deprecation dates as a ``datetime.date``, which was included in an earlier 2.19 pre-release.
-- deprecations - Some argument names to ``deprecate_value`` for consistency with existing APIs. An earlier 2.19 pre-release included a ``removal_`` prefix on the ``date`` and ``version`` arguments.
-- modules - The ``AnsibleModule.deprecate`` function no longer sends deprecation messages to the target host's logging system.
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
-- win_template - Added ``comment_start_string`` and ``comment_end_string`` as options to align with the builtin ``template`` module.
-
-community.aws
-~~~~~~~~~~~~~
-
-- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/community.aws/pull/2295).
-- aws_ssm - Move the ``aws_ssm`` connection plugin's plugin_utils into a dedicated folder (https://github.com/ansible-collections/community.aws/pull/2279).
-- aws_ssm - Refactor S3 operations methods for improved clarity (https://github.com/ansible-collections/community.aws/pull/2275).
-- aws_ssm - Refactor connection/aws_ssm to add new TerminalManager class and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2270).
-- aws_ssm - Refactor connection/aws_ssm to add new ``FileTransferManager`` class and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2273).
-- aws_ssm - Refactor connection/aws_ssm to add new ``SSMSessionManager`` and ``ProcessManager`` classes and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2272).
-
-community.docker
-~~~~~~~~~~~~~~~~
-
-- docker_container_copy_into - add ``mode_parse`` parameter which determines how ``mode`` is parsed (https://github.com/ansible-collections/community.docker/pull/1074).
-
-community.grafana
-~~~~~~~~~~~~~~~~~
-
-- Add argument `tls_servername` for `grafana_datasource`
-- Support `alertmanager` as type for `grafana_datasource`
-- grafana_dashboard - allow creating dashboards in subfolders
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- postgresql_user - return a PostgreSQL error message when a user cannot be removed.
-
-community.windows
-~~~~~~~~~~~~~~~~~
-
-- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
-
-grafana.grafana
-~~~~~~~~~~~~~~~
-
-- Remove Node modules from Ansible Collection build
-
-lowlydba.sqlserver
-~~~~~~~~~~~~~~~~~~
-
-- Added support for Ansible 2.19
-- Updated the test matrix to include Ansible 2.19 and remove Ansible 2.16
-
-microsoft.ad
-~~~~~~~~~~~~
-
-- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
-
-purestorage.flashblade
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefb_ad - Add support for Global Catalog Servers
-- purefb_dns - Added support for multiple DNS configurations.
-- purefb_ds - SMB directory services deprecated from Purity//FB 4.5.2
-- purefb_info - Add support for Active Directory Global Catalog Servers
-- purefb_info - Added snapshot creation date-time and time_remaining, if snapshot is not deleted, to the ``snapshots`` response.
-- purefb_info - Added support for multiple DNS configurations.
-- purefb_policy - Snapshot policies can now have specific filesystems and/or replica links added or deletred from the policy
-- purefb_proxy - Added support to update existing proxy
-- purefb_proxy - Updated to REST v2
-- purefb_s3user - Changed ``key_state`` state to be ``keystate`` as ``key_state`` is reserved.
-- purefb_s3user - Changed ``remove_key`` parameter to ``key_name`` and add new ``state`` of ``key_state`` to allow a specificed key to be enabled/disabled using the new parameter ``enable_key``.
-- purefb_s3user - Updated failure messages for applying policies to an object user account.
-- purefb_subnet - ``prefix`` removed as a required parameter for updating an existing subnet
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- Warn the user when more than one host has the same name in the inventory plugins. Throw an error if strict is true
-- content_template - Added more options to search for the source VM like uuid and moid. Also made argument validation more accurate
-- guest_info - Allow user to specify folder path to help select the VM to query
-- rename private module_utils to drop the redundant vmware prefix
-- vcsa_backup_schedule - Add module to manage the vCenter backup schedule
-- vcsa_backup_schedule_info - Add module to gather info about the vCenter backup schedules
-- vm_advanced_settings - Add module to manage the advanced settings on a VM
-- vm_powerstate - Add better error message when scheduling a power state task in the past
-- vm_snapshot - migrate vmware_guest_snapshot module from community to here
-- vms inventory - Fixed issue where a user could accidentally not collect a required parameter, config.guestId
-
-Breaking Changes / Porting Guide
---------------------------------
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- drop support for ansible 2.15 since it is EOL https://github.com/ansible-collections/vmware.vmware/issues/103
-- updated minimum pyVmomi version to 8.0.3.0.1 https://github.com/ansible-collections/vmware.vmware/issues/56
-
-Deprecated Features
--------------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Passing a ``warnings` or ``deprecations`` key to ``exit_json`` or ``fail_json`` is deprecated. Use ``AnsibleModule.warn`` or ``AnsibleModule.deprecate`` instead.
-- plugins - Accessing plugins with ``_``-prefixed filenames without the ``_`` prefix is deprecated.
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- postgresql modules = the ``login``, ``unix_socket`` and ``host`` aliases are deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_user``, ``login_unix_socket`` and ``login_host`` arguments instead.
-- postgresql_set - the module has been deprecated and will be removed in ``community.postgresql 5.0.0``. Please use the ``community.postgresql.postgresql_alter_system`` module instead (https://github.com/ansible-collections/community.postgresql/issues/823).
-
-community.windows
-~~~~~~~~~~~~~~~~~
-
-- win_audit_policy_system - Deprecated module and will be redirected to ``ansible.windows.win_audit_policy_system``. Use ``ansible.windows.win_audit_policy_system`` instead as the redirection will be removed in 4.0.0
-- win_audit_rule - Deprecated module and will be redirected to ``ansible.windows.win_audit_rule``. Use ``ansible.windows.win_audit_rule`` instead as the redirection will be removed in 4.0.0
-- win_auto_logon - Deprecated module and will be redirected to ``ansible.windows.win_auto_logon``. Use ``ansible.windows.win_auto_logon`` instead as the redirection will be removed in 4.0.0
-- win_certificate_info - Deprecated module and will be redirected to ``ansible.windows.win_certificate_info``. Use ``ansible.windows.win_certificate_info`` instead as the redirection will be removed in 4.0.0
-- win_computer_description - Deprecated module and will be redirected to ``ansible.windows.win_computer_description``. Use ``ansible.windows.win_computer_description`` instead as the redirection will be removed in 4.0.0
-- win_credential - Deprecated module and will be redirected to ``ansible.windows.win_credential``. Use ``ansible.windows.win_credential`` instead as the redirection will be removed in 4.0.0
-- win_dhcp_lease - Deprecated module and will be redirected to ``ansible.windows.win_dhcp_lease``. Use ``ansible.windows.win_dhcp_lease`` instead as the redirection will be removed in 4.0.0
-- win_dns_record - Deprecated module and will be redirected to ``ansible.windows.win_dns_record``. Use ``ansible.windows.win_dns_record`` instead as the redirection will be removed in 4.0.0
-- win_dns_zone - Deprecated module and will be redirected to ``ansible.windows.win_dns_zone``. Use ``ansible.windows.win_dns_zone`` instead as the redirection will be removed in 4.0.0
-- win_eventlog - Deprecated module and will be redirected to ``ansible.windows.win_eventlog``. Use ``ansible.windows.win_eventlog`` instead as the redirection will be removed in 4.0.0
-- win_feature_info - Deprecated module and will be redirected to ``ansible.windows.win_feature_info``. Use ``ansible.windows.win_feature_info`` instead as the redirection will be removed in 4.0.0
-- win_file_compression - Deprecated module and will be redirected to ``ansible.windows.win_file_compression``. Use ``ansible.windows.win_file_compression`` instead as the redirection will be removed in 4.0.0
-- win_firewall - Deprecated module and will be redirected to ``ansible.windows.win_firewall``. Use ``ansible.windows.win_firewall`` instead as the redirection will be removed in 4.0.0
-- win_hosts - Deprecated module and will be redirected to ``ansible.windows.win_hosts``. Use ``ansible.windows.win_hosts`` instead as the redirection will be removed in 4.0.0
-- win_hotfix - Deprecated module and will be redirected to ``ansible.windows.win_hotfix``. Use ``ansible.windows.win_hotfix`` instead as the redirection will be removed in 4.0.0
-- win_http_proxy - Deprecated module and will be redirected to ``ansible.windows.win_http_proxy``. Use ``ansible.windows.win_http_proxy`` instead as the redirection will be removed in 4.0.0
-- win_iis_virtualdirectory - Deprecated module, use ``microsoft.iis.virtual_directory`` instead as the module will be removed in 4.0.0
-- win_iis_webapplication - Deprecated module, use ``microsoft.iis.web_application`` instead instead as the module will be removed in 4.0.0
-- win_iis_webapppool - Deprecated module, use ``microsoft.iis.web_app_pool`` instead instead as the module will be removed in 4.0.0
-- win_iis_webbinding - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
-- win_iis_website - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
-- win_inet_proxy - Deprecated module and will be redirected to ``ansible.windows.win_inet_proxy``. Use ``ansible.windows.win_inet_proxy`` instead as the redirection will be removed in 4.0.0
-- win_listen_ports_facts - Deprecated module and will be redirected to ``ansible.windows.win_listen_ports_facts``. Use ``ansible.windows.win_listen_ports_facts`` instead as the redirection will be removed in 4.0.0
-- win_mapped_drive - Deprecated module and will be redirected to ``ansible.windows.win_mapped_drive``. Use ``ansible.windows.win_mapped_drive`` instead as the redirection will be removed in 4.0.0
-- win_product_facts - Deprecated module and will be redirected to ``ansible.windows.win_product_facts``. Use ``ansible.windows.win_product_facts`` instead as the redirection will be removed in 4.0.0
-- win_region - Deprecated module and will be redirected to ``ansible.windows.win_region``. Use ``ansible.windows.win_region`` instead as the redirection will be removed in 4.0.0
-- win_route - Deprecated module and will be redirected to ``ansible.windows.win_route``. Use ``ansible.windows.win_route`` instead as the redirection will be removed in 4.0.0
-- win_timezone - Deprecated module and will be redirected to ``ansible.windows.win_timezone``. Use ``ansible.windows.win_timezone`` instead as the redirection will be removed in 4.0.0
-- win_user_profile - Deprecated module and will be redirected to ``ansible.windows.win_user_profile``. Use ``ansible.windows.win_user_profile`` instead as the redirection will be removed in 4.0.0
-
-Removed Features (previously deprecated)
-----------------------------------------
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- win_domain - Removed deprecated module, use ``microsoft.ad.domain`` instead
-- win_domain_controller - Removed deprecated module, use ``microsoft.ad.domain_controller`` instead
-- win_domain_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
-- win_feature - Removed deprecated return value ``restart_needed`` in ``feature_result``, use ``reboot_required`` instead
-- win_updates - Removed deprecated return value ``filtered_reason``, use ``filtered_reasons`` instead
-
-community.postgresql
-~~~~~~~~~~~~~~~~~~~~
-
-- postgresql_info - the db alias has been removed in ``community.postgresql 4.0.0``. Please use the ``login_db`` option instead (https://github.com/ansible-collections/community.postgresql/issues/801).
-- postgresql_lang - the module has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_ext`` module instead (https://github.com/ansible-collections/community.postgresql/issues/561).
-- postgresql_privs - the ``password`` argument has been removed in ``community.postgresql 4.0.0``. Use the ``login_password`` argument instead (https://github.com/ansible-collections/community.postgresql/issues/408).
-- postgresql_user - the ``priv`` argument has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/493).
-
-community.windows
-~~~~~~~~~~~~~~~~~
-
-- win_domain_computer - Removed deprecated module, use ``microsoft.ad.computer`` instead
-- win_domain_group - Removed deprecated module, use ``microsoft.ad.group`` instead
-- win_domain_group_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
-- win_domain_object_info - Removed deprecated module, use ``microsoft.ad.object_info`` instead
-- win_domain_ou - Removed deprecated module, use ``microsoft.ad.ou`` instead
-- win_domain_user - Removed deprecated module, use ``microsoft.ad.user`` instead
-- win_lineinfile - Removed deprecated return value ``backup``, use ``backup_file`` instead
-- win_xml - Removed deprecated, and undocumented, return value ``backup``, use ``backup_file`` instead
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- vm_list_group_by_clusters - Tombstone module in favor of vmware.vmware.vm_list_group_by_clusters_info
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Ansible will now ensure predictable permissions on remote artifacts, until now it only ensured executable and relied on system masks for the rest.
-- dnf5 - avoid generating excessive transaction entries in the dnf5 history (https://github.com/ansible/ansible/issues/85046)
-
-ansible.windows
-~~~~~~~~~~~~~~~
-
-- win_find - allow users case sensitive match the filename (https://github.com/ansible-collections/ansible.windows/issues/473).
-- win_powershell - Handle failure on output conversion when the output object uses a custom adapter set that fails to enumerate the method members. This is seen when using the output from ``Get-WmiObject`` - https://github.com/ansible-collections/ansible.windows/issues/767
-- win_regedit - Handle decimal values with no decimal values which may be the result of a Jinja2 template
-- win_template - Added support for Ansible 2.19 and the introduction of the data tagging feature.
-
-community.crypto
-~~~~~~~~~~~~~~~~
-
-- luks_device - mark parameter ``passphrase_encoding`` as ``no_log=False`` to avoid confusing warning (https://github.com/ansible-collections/community.crypto/pull/867).
-- luks_device - removing a specific keyslot with ``remove_keyslot`` caused the module to hang while cryptsetup was waiting for a passphrase from stdin, while the module did not supply one. Since a keyslot is not necessary, do not provide one (https://github.com/ansible-collections/community.crypto/issues/864, https://github.com/ansible-collections/community.crypto/pull/868).
-
-community.grafana
-~~~~~~~~~~~~~~~~~
-
-- Remove field `apiVersion` from return of current `grafana_datasource` for working diff
-- grafana_dashboard - add uid to payload
-- test: replace more deprecated `TestCase.assertEquals` to support Python 3.12
-
-community.windows
-~~~~~~~~~~~~~~~~~
-
-- win_format - fix crash when using path parameter without force option (https://github.com/ansible-collections/community.windows/pull/615).
-- win_toast - fix title and message in the notification.
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_system_info - (Issue 812) - idrac_system_info fails on iDRAC10.
-
-microsoft.ad
-~~~~~~~~~~~~
-
-- ldap inventory - Fix up support for Ansible 2.19.
-
-purestorage.flashblade
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purefb_bucket - Resolved issue with removing bucket quota
-- purefb_info - Fixed issue after SMD Directory Services no longer avaible from REST 2.16
-- purefb_policy - Fixed creation of snapshot policies with assigned filesystems and/or replica links
-- purefb_s3acc - Fixed issue with public access config settings not being correctly for an account
-
-vmware.vmware
-~~~~~~~~~~~~~
-
-- cluster_ha - Fix exception when cluster ha module checks for differences with VM monitoring configs
-- fix method to lookup datastore clusters by name or moid https://github.com/ansible-collections/vmware.vmware/issues/152
-- vm_snapshot - Make sure snapshot output is always included if state is present
-
-Known Issues
-------------
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
-- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-New Modules
------------
-
-community.hrobot
-~~~~~~~~~~~~~~~~
-
-- community.hrobot.storagebox_snapshot - Create, update, or delete a snapshot of a storage box.
-
-purestorage.flashblade
-~~~~~~~~~~~~~~~~~~~~~~
-
-- purestorage.flashblade.purefb_bucket_access - Manage FlashBlade bucket access policies
-- purestorage.flashblade.purefb_fleet - Manage Fusion Fleet
-- purestorage.flashblade.purefb_server - Manage FlashBlade servers
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 9.4.0)
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 5.1.2)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.3.1)
-- check_point.mgmt (still version 6.4.0)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.11.0)
-- cisco.dnac (still version 6.31.3)
-- cisco.intersight (still version 2.0.20)
-- cisco.ios (still version 10.0.0)
-- cisco.iosxr (still version 11.0.0)
-- cisco.ise (still version 2.10.0)
-- cisco.meraki (still version 2.21.0)
-- cisco.mso (still version 2.10.0)
-- cisco.nxos (still version 10.0.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 4.0.0)
-- cloudscale_ch.cloud (still version 2.4.1)
-- community.ciscosmb (still version 1.0.10)
-- community.digitalocean (still version 1.27.0)
-- community.dns (still version 3.2.3)
-- community.general (still version 10.6.0)
-- community.hashi_vault (still version 6.2.0)
-- community.library_inventory_filtering_v1 (still version 1.1.1)
-- community.libvirt (still version 1.3.1)
-- community.mongodb (still version 1.7.9)
-- community.mysql (still version 3.13.0)
-- community.okd (still version 4.0.1)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.4.0)
-- community.routeros (still version 3.6.0)
-- community.sap_libs (still version 1.4.2)
-- community.sops (still version 2.0.5)
-- community.vmware (still version 5.6.0)
-- community.zabbix (still version 3.3.0)
-- containers.podman (still version 1.16.3)
-- cyberark.conjur (still version 1.3.3)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.35.0)
-- fortinet.fortimanager (still version 2.9.1)
-- fortinet.fortios (still version 2.4.0)
-- hetzner.hcloud (still version 4.3.0)
-- hitachivantara.vspone_block (still version 3.4.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.3)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 5.2.0)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 22.14.0)
-- netapp.storagegrid (still version 21.14.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.0)
-- purestorage.flasharray (still version 1.34.1)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.2.2)
-- theforeman.foreman (still version 5.3.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a2
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-04-24
-
-`Porting Guide `_
-
-Ansible-core
-------------
-
-Ansible 12.0.0a2 contains ansible-core version 2.19.0b2.
-This is a newer version than version 2.19.0b1 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Changed Collections
--------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+------------------------------------------+------------------+------------------+-------+
-| Collection | Ansible 12.0.0a1 | Ansible 12.0.0a2 | Notes |
-+==========================================+==================+==================+=======+
-| cisco.aci | 2.10.1 | 2.11.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| cisco.meraki | 2.20.8 | 2.21.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| cisco.mso | 2.9.0 | 2.10.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.dns | 3.2.2 | 3.2.3 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.general | 10.5.0 | 10.6.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.library_inventory_filtering_v1 | 1.1.0 | 1.1.1 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.routeros | 3.5.0 | 3.6.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.sops | 2.0.4 | 2.0.5 | |
-+------------------------------------------+------------------+------------------+-------+
-| community.vmware | 5.5.0 | 5.6.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| grafana.grafana | 5.7.0 | 6.0.0 | |
-+------------------------------------------+------------------+------------------+-------+
-| hitachivantara.vspone_block | 3.3.0 | 3.4.0 | |
-+------------------------------------------+------------------+------------------+-------+
-
-Major Changes
--------------
-
-grafana.grafana
-~~~~~~~~~~~~~~~
-
-- Add tempo role by @CSTDev in https://github.com/grafana/grafana-ansible-collection/pull/323
-- Do not log grafana.ini contents when setting facts by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/325
-- Fix loki_operational_config section not getting rendered in config.yml by @olegkaspersky in https://github.com/grafana/grafana-ansible-collection/pull/330
-- Fix sectionless items edge case by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/303
-- Fix tags Inherit default vars by @MJurayev in https://github.com/grafana/grafana-ansible-collection/pull/341
-- Fix the markdown code fences for install command by @benmatselby in https://github.com/grafana/grafana-ansible-collection/pull/306
-- Grafana fix facts in main.yml by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/315
-- Make dashboard imports more flexible by @torfbolt in https://github.com/grafana/grafana-ansible-collection/pull/308
-- force temporary directory even in check mode for dashboards.yml by @cmehat in https://github.com/grafana/grafana-ansible-collection/pull/339
-- integrate sles legacy init-script support by @floerica in https://github.com/grafana/grafana-ansible-collection/pull/184
-- management of the config.river with the conversion of the config.yaml by @lbrule in https://github.com/grafana/grafana-ansible-collection/pull/149
-
-Minor Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- comment filter - Improve the error message shown when an invalid ``style`` argument is provided.
-
-cisco.aci
-~~~~~~~~~
-
-- Add aci_endpoint_tag_ip and aci_endpoint_tag_mac modules to manage Endpoint IP and MAC Tags.
-- Add aci_ip_sla_monitoring_policy module.
-- Add management_epg and management_epg_type attributes in aci_dns_profile module.
-- Add stratum attribute to aci_ntp_policy module.
-- Add support for Ansible 2.18 and dropped support for Ansible 2.15 as required by Ansible Galaxy.
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- plugins/action/devices_sensor_commands - new plugin.
-- plugins/action/devices_sensor_commands_info - new plugin.
-- plugins/action/networks_appliance_firewall_multicast_forwarding - new plugin.
-- plugins/action/organizations_appliance_dns_local_profiles - new plugin.
-- plugins/action/organizations_appliance_dns_local_profiles_assignments_bulk_create - new plugin.
-- plugins/action/organizations_appliance_dns_local_profiles_assignments_bulk_delete - new plugin.
-- plugins/action/organizations_appliance_dns_local_profiles_assignments_info - new plugin.
-- plugins/action/organizations_appliance_dns_local_profiles_info - new plugin.
-- plugins/action/organizations_appliance_dns_local_records - new plugin.
-- plugins/action/organizations_appliance_dns_local_records_info - new plugin.
-- plugins/action/organizations_appliance_dns_split_profiles - new plugin.
-- plugins/action/organizations_appliance_dns_split_profiles_assignments_bulk_create - new plugin.
-- plugins/action/organizations_appliance_dns_split_profiles_assignments_bulk_delete - new plugin.
-- plugins/action/organizations_appliance_dns_split_profiles_assignments_info - new plugin.
-- plugins/action/organizations_appliance_dns_split_profiles_info - new plugin.
-- plugins/action/organizations_appliance_firewall_multicast_forwarding_by_network_info - new plugin.
-- plugins/action/organizations_devices_controller_migrations - new plugin.
-- plugins/action/organizations_devices_controller_migrations_info - new plugin.
-- plugins/action/organizations_devices_system_memory_usage_history_by_interval_info - new plugin.
-- plugins/action/organizations_integrations_xdr_networks_disable - new plugin.
-- plugins/action/organizations_integrations_xdr_networks_enable - new plugin.
-- plugins/action/organizations_integrations_xdr_networks_info - new plugin.
-- plugins/action/organizations_switch_ports_usage_history_by_device_by_interval_info - new plugin.
-- plugins/action/organizations_wireless_devices_power_mode_history_info - new plugin.
-- plugins/action/organizations_wireless_devices_system_cpu_load_history_info - new plugin.
-- plugins/action/organizations_wireless_ssids_firewall_isolation_allowlist_entries - new plugin.
-- plugins/action/organizations_wireless_ssids_firewall_isolation_allowlist_entries_info - new plugin.
-
-cisco.mso
-~~~~~~~~~
-
-- Add ep_move_detection_mode attribute in mso_schema_template_bd.
-- Add mso_schema_template_anp_epg_annotation module.
-- Add mso_schema_template_anp_epg_intra_epg_contract module.
-- Add name attribute to mso_schema_template_external_epg_subnet module.
-- Add ndo_ipsla_track_list and ndo_ipsla_monitoring_policy modules.
-- Add ndo_l3out_node_routing_policy, ndo_l3out_interface_routing_policy, and ndo_tenant_bgp_peer_prefix_policy modules.
-- Add ndo_l3out_template, ndo_l3out_annotation, ndo_l3out_interface_group_policy, and ndo_l3out_node_group_policy modules.
-- Add ndo_mcp_global_policy module.
-- Add ndo_ntp_policy, ndo_ptp_policy, and ndo_ptp_policy_profiles modules.
-- Add ndo_physical_interface, ndo_port_channel_interface, ndo_virtual_port_channel_interface, ndo_node_profile, and ndo_fex_device modules to support NDO Fabric Resource Policies.
-- Add ndo_qos_dscp_cos_translation_policy module.
-- Add ndo_synce_interface_policy, ndo_interface_setting, ndo_node_setting, and ndo_macsec_policy modules.
-- Add ndo_tenant_custom_qos_policy module.
-- Add ndo_tenant_igmp_interface_policy, ndo_tenant_igmp_snooping_policy, and ndo_tenant_mld_snooping_policy modules.
-- Add qos_level attribute to the mso_schema_template_external_epg module.
-- Add support for Ansible 2.18 and dropped support for Ansible 2.15 as required by Ansible Galaxy.
-- Add support for site configuration for tenant policy template in ndo_template module.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- apache2_module - added workaround for new PHP module name, from ``php7_module`` to ``php_module`` (https://github.com/ansible-collections/community.general/pull/9951).
-- gitlab_project - add option ``build_timeout`` (https://github.com/ansible-collections/community.general/pull/9960).
-- gitlab_project_members - extend choices parameter ``access_level`` by missing upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953).
-- hpilo_boot - add option to get an idempotent behavior while powering on server, resulting in success instead of failure when using ``state: boot_once`` option (https://github.com/ansible-collections/community.general/pull/9646).
-- idrac_redfish_command, idrac_redfish_config, idrac_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- ilo_redfish_command, ilo_redfish_config, ilo_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- keycloak module_utils - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
-- keycloak_user module - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
-- nmcli - add support for Infiniband MAC setting when ``type`` is ``infiniband`` (https://github.com/ansible-collections/community.general/pull/9962).
-- one_vm - update allowed values for ``updateconf`` to include new parameters as per the latest OpenNebula API documentation.
- Added parameters:
-
- * ``OS``: ``FIRMWARE``;
- * ``CPU_MODEL``: ``MODEL``, ``FEATURES``;
- * ``FEATURES``: ``VIRTIO_BLK_QUEUES``, ``VIRTIO_SCSI_QUEUES``, ``IOTHREADS``;
- * ``GRAPHICS``: ``PORT``, ``COMMAND``;
- * ``VIDEO``: ``ATS``, ``IOMMU``, ``RESOLUTION``, ``TYPE``, ``VRAM``;
- * ``RAW``: ``VALIDATE``;
- * ``BACKUP_CONFIG``: ``FS_FREEZE``, ``KEEP_LAST``, ``BACKUP_VOLATILE``, ``MODE``, ``INCREMENT_MODE``.
-
- (https://github.com/ansible-collections/community.general/pull/9959).
-- proxmox and proxmox_kvm modules - allow uppercase characters in VM/container tags (https://github.com/ansible-collections/community.general/issues/9895, https://github.com/ansible-collections/community.general/pull/10024).
-- puppet - improve parameter formatting, no impact to user (https://github.com/ansible-collections/community.general/pull/10014).
-- redfish module utils - add ``REDFISH_COMMON_ARGUMENT_SPEC``, a corresponding ``redfish`` docs fragment, and support for its ``validate_certs``, ``ca_path``, and ``ciphers`` options (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- redfish_command, redfish_config, redfish_info - add ``validate_certs`` and ``ca_path`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- rocketchat - fix duplicate JSON conversion for Rocket.Chat < 7.4.0 (https://github.com/ansible-collections/community.general/pull/9965).
-- wdc_redfish_command, wdc_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- xcc_redfish_command - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
-- zypper - adds ``skip_post_errors`` that allows to skip RPM post-install errors (Zypper return code 107) (https://github.com/ansible-collections/community.general/issues/9972).
-
-community.routeros
+vmware.vmware_rest
~~~~~~~~~~~~~~~~~~
-- api_info, api_modify - add ``mdns-repeat-ifaces`` to ``ip dns`` for RouterOS 7.16 and newer (https://github.com/ansible-collections/community.routeros/pull/358).
-- api_info, api_modify - field name change in ``routing bgp connection`` path implemented by RouterOS 7.19 and newer (https://github.com/ansible-collections/community.routeros/pull/360).
-- api_info, api_modify - rename ``is-responder`` property in ``interface wireguard peers`` to ``responder`` for RouterOS 7.17 and newer (https://github.com/ansible-collections/community.routeros/pull/364).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- module_utils.vmware - Move ``vmware_argument_spec`` to a dedicated file (https://github.com/ansible-collections/community.vmware/pull/2370).
-- module_utils.vmware_rest_client - Move ``vmware_client_argument_spec`` to a dedicated file (https://github.com/ansible-collections/community.vmware/pull/2370).
-- vmware_dvs_portgroup - New option ``network_policy.mac_learning`` to replace ``mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
-- vmware_object_role_permission - Document setting permissions on vCenter level (https://github.com/ansible-collections/community.vmware/pull/2374).
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Added iSCSI target support for GAD, TrueCopy, HUR, ShadowImage, and Snapshot/ThinImage modules.
-- Added new module `hv_ddp_pool_facts` to retrieve DDP-based pool details on VSP One Block storage models.
-- Added new module `hv_ddp_pool` to create, update, and delete DDP-based pools on VSP One Block storage models.
-- Added support to delete SVOL post-pair deletion for GAD, TrueCopy, HUR, ShadowImage, and Snapshot/ThinImage modules.
-- Enhanced `hv_ldev_facts` module to support query parameters.
-- Enhanced `hv_shadow_image` module: support for local copy group and copy pair name for shadow image pair management; group management of shadow image pairs.
-- Enhanced `hv_snapshot_group` module to support retention period.
-- Enhanced `hv_snapshot` module: added copy speed, clones automation, retention period, support for Floating Snapshot, and pair creation with specific or auto-selected SVOL and mirror unit.
-- Enhanced `hv_storage_port` module to support attributes like connection, speed, and type.
-- Removed gateway connection type from all the modules.
-
-Deprecated Features
--------------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
-- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vmware_dvs_portgroup - ``mac_learning`` is deprecated in favour of ``network_policy.mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
-
-Bugfixes
---------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Remove use of `required` parameter in `get_bin_path` which has been deprecated.
-- ansible-doc - fix indentation for first line of descriptions of suboptions and sub-return values (https://github.com/ansible/ansible/pull/84690).
-- ansible-doc - fix line wrapping for first line of description of options and return values (https://github.com/ansible/ansible/pull/84690).
-
-cisco.aci
-~~~~~~~~~
-
-- Fix aci_rest module to only add annotation when the value is a dictionary
-- Fix payload to define the correct vPC member side in aci_l3out_logical_interface_vpc_member (#663)
-- Fix subclass issue in aci_domain_to_vlan_pool to fix deletion of binding (#695)
-- Modify interface_configs requirement using required_if dependency for aci_bulk_static_binding_to_epg
-
-cisco.meraki
-~~~~~~~~~~~~
-
-- Added validation for `radiusServerAttemptsLimit` with choices `[1, 2, 3, 4, 5]`.
-- Added validation for `radiusServerTimeout` with a range of valid values `[1-10]`.
-- Fixed parameter handling for `update_by_id_params` in cisco.meraki.networks_wireless_ssids to correctly map the following parameters - `perClientBandwidthLimitDown` - `perClientBandwidthLimitUp` - `perSsidBandwidthLimitDown` - `perSsidBandwidthLimitUp` - `defaultVlanId` - `radiusAccountingInterimInterval` - `radiusGuestVlanId` - `vlanId` - `radiusServerAttemptsLimit` - `radiusServerTimeout`
-- cisco.meraki.devices_wireless_radio_settings changed compare equality method to use `meraki_compare_equality`
-- cisco.meraki.networks_wireless_ssids refactor parameter handling to avoid None values
-
-cisco.mso
-~~~~~~~~~
-
-- Fix query results for bulk query to display correct static_paths in mso_schema_site_anp_epg_staticport module
-- Fix replace operation for bulk present without force replace in mso_schema_site_anp_epg_staticport module
-
-community.dns
-~~~~~~~~~~~~~
-
-- Update Public Suffix List.
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- dependent look plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- diy callback plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- github_deploy_key - check that key really exists on 422Â to avoid masking other errors (https://github.com/ansible-collections/community.general/issues/6718, https://github.com/ansible-collections/community.general/pull/10011).
-- hashids and unicode_normalize filter plugins - avoid deprecated ``AnsibleFilterTypeError`` on ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/9992).
-- homebrew - emit a useful error message if ``brew info`` reports a package tap is ``null`` (https://github.com/ansible-collections/community.general/pull/10013, https://github.com/ansible-collections/community.general/issues/10012).
-- java_cert - the module no longer fails if the optional parameters ``pkcs12_alias`` and ``cert_alias`` are not provided (https://github.com/ansible-collections/community.general/pull/9970).
-- keycloak_authentication - fix authentification config duplication for Keycloak < 26.2.0 (https://github.com/ansible-collections/community.general/pull/9987).
-- keycloak_client - fix the idempotency regression by normalizing the Keycloak response for ``after_client`` (https://github.com/ansible-collections/community.general/issues/9905, https://github.com/ansible-collections/community.general/pull/9976).
-- proxmox inventory plugin - fix ``ansible_host`` staying empty for certain Proxmox nodes (https://github.com/ansible-collections/community.general/issues/5906, https://github.com/ansible-collections/community.general/pull/9952).
-- proxmox_disk - fail gracefully if ``storage`` is required but not provided by the user (https://github.com/ansible-collections/community.general/issues/9941, https://github.com/ansible-collections/community.general/pull/9963).
-- reveal_ansible_type filter plugin and ansible_type test plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
-- sysrc - no longer always reporting ``changed=true`` when ``state=absent``. This fixes the method ``exists()`` (https://github.com/ansible-collections/community.general/issues/10004, https://github.com/ansible-collections/community.general/pull/10005).
-- yaml callback plugin - use ansible-core internals to avoid breakage with Data Tagging (https://github.com/ansible-collections/community.general/pull/9833).
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vmware_dvs_portgroup - Fix idempotency issue with ``mac_learning`` (https://github.com/ansible-collections/community.vmware/issues/1873).
-
-Known Issues
-------------
-
-community.general
-~~~~~~~~~~~~~~~~~
-
-- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
-
-New Plugins
------------
-
-Connection
-~~~~~~~~~~
-
-- community.general.wsl - Run tasks in WSL distribution using wsl.exe CLI via SSH.
-
-New Modules
------------
-
-hitachivantara.vspone_block
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Vsp
-^^^
-
-- hitachivantara.vspone_block.hv_ddp_pool - Manages DDP Pools on Hitachi VSP storage systems.
-- hitachivantara.vspone_block.hv_ddp_pool_facts - Get facts of DDP Pools on Hitachi VSP storage systems.
-
-Unchanged Collections
----------------------
-
-- amazon.aws (still version 9.4.0)
-- ansible.netcommon (still version 8.0.0)
-- ansible.posix (still version 2.0.0)
-- ansible.utils (still version 5.1.2)
-- ansible.windows (still version 2.8.0)
-- arista.eos (still version 11.0.0)
-- awx.awx (still version 24.6.1)
-- azure.azcollection (still version 3.3.1)
-- check_point.mgmt (still version 6.4.0)
-- chocolatey.chocolatey (still version 1.5.3)
-- cisco.dnac (still version 6.31.3)
-- cisco.intersight (still version 2.0.20)
-- cisco.ios (still version 10.0.0)
-- cisco.iosxr (still version 11.0.0)
-- cisco.ise (still version 2.10.0)
-- cisco.nxos (still version 10.0.0)
-- cisco.ucs (still version 1.16.0)
-- cloud.common (still version 4.0.0)
-- cloudscale_ch.cloud (still version 2.4.1)
-- community.aws (still version 9.2.0)
-- community.ciscosmb (still version 1.0.10)
-- community.crypto (still version 2.26.0)
-- community.digitalocean (still version 1.27.0)
-- community.docker (still version 4.5.2)
-- community.grafana (still version 2.1.0)
-- community.hashi_vault (still version 6.2.0)
-- community.hrobot (still version 2.2.0)
-- community.libvirt (still version 1.3.1)
-- community.mongodb (still version 1.7.9)
-- community.mysql (still version 3.13.0)
-- community.okd (still version 4.0.1)
-- community.postgresql (still version 3.14.0)
-- community.proxysql (still version 1.6.0)
-- community.rabbitmq (still version 1.4.0)
-- community.sap_libs (still version 1.4.2)
-- community.windows (still version 2.4.0)
-- community.zabbix (still version 3.3.0)
-- containers.podman (still version 1.16.3)
-- cyberark.conjur (still version 1.3.3)
-- cyberark.pas (still version 1.0.30)
-- dellemc.enterprise_sonic (still version 3.0.0)
-- dellemc.openmanage (still version 9.11.0)
-- dellemc.powerflex (still version 2.6.0)
-- dellemc.unity (still version 2.0.0)
-- f5networks.f5_modules (still version 1.35.0)
-- fortinet.fortimanager (still version 2.9.1)
-- fortinet.fortios (still version 2.4.0)
-- hetzner.hcloud (still version 4.3.0)
-- ibm.qradar (still version 4.0.0)
-- ibm.storage_virtualize (still version 2.7.3)
-- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
-- infoblox.nios_modules (still version 1.8.0)
-- inspur.ispim (still version 2.2.3)
-- junipernetworks.junos (still version 10.0.0)
-- kaytus.ksmanage (still version 2.0.0)
-- kubernetes.core (still version 5.2.0)
-- kubevirt.core (still version 2.1.0)
-- lowlydba.sqlserver (still version 2.6.0)
-- microsoft.ad (still version 1.8.1)
-- microsoft.iis (still version 1.0.2)
-- netapp.cloudmanager (still version 21.24.0)
-- netapp.ontap (still version 22.14.0)
-- netapp.storagegrid (still version 21.14.0)
-- netapp_eseries.santricity (still version 1.4.1)
-- netbox.netbox (still version 3.21.0)
-- ngine_io.cloudstack (still version 2.5.0)
-- openstack.cloud (still version 2.4.1)
-- ovirt.ovirt (still version 3.2.0)
-- purestorage.flasharray (still version 1.34.1)
-- purestorage.flashblade (still version 1.19.2)
-- splunk.es (still version 4.0.0)
-- telekom_mms.icinga_director (still version 2.2.2)
-- theforeman.foreman (still version 5.3.0)
-- vmware.vmware (still version 1.11.0)
-- vmware.vmware_rest (still version 4.7.0)
-- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
-- wti.remote (still version 1.0.10)
-
-v12.0.0a1
-=========
-
-.. contents::
- :local:
- :depth: 2
-
-Release Summary
----------------
-
-Release Date: 2025-04-16
-
-`Porting Guide `_
-
-Removed Collections
--------------------
-
-- cisco.asa (previously included version: 6.0.0)
-- community.network (previously included version: 5.1.0)
-- google.cloud (previously included version: 1.4.1)
-- ibm.spectrum_virtualize (previously included version: 2.0.0)
-- sensu.sensu_go (previously included version: 1.14.0)
-
-You can still install a removed collection manually with ``ansible-galaxy collection install ``.
-
-Added Collections
------------------
-
-- hitachivantara.vspone_block (version 3.3.0)
-- microsoft.iis (version 1.0.2)
-
-Ansible-core
-------------
-
-Ansible 12.0.0a1 contains ansible-core version 2.19.0b1.
-This is a newer version than version 2.18.0 contained in the previous Ansible release.
-
-The changes are reported in the combined changelog below.
-
-Included Collections
---------------------
-
-If not mentioned explicitly, the changes are reported in the combined changelog below.
-
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| Collection | Ansible 11.0.0 | Ansible 12.0.0a1 | Notes |
-+==========================================+================+==================+=================================================================================================================================================================================================================+
-| amazon.aws | 9.0.0 | 9.4.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ansible.netcommon | 7.1.0 | 8.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ansible.posix | 1.6.2 | 2.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ansible.windows | 2.5.0 | 2.8.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| arista.eos | 10.0.1 | 11.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| azure.azcollection | 3.0.0 | 3.3.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| check_point.mgmt | 6.2.1 | 6.4.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.dnac | 6.22.0 | 6.31.3 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.ios | 9.0.3 | 10.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.iosxr | 10.2.2 | 11.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.ise | 2.9.5 | 2.10.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.meraki | 2.18.3 | 2.20.8 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.nxos | 9.2.1 | 10.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cisco.ucs | 1.14.0 | 1.16.0 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cloudscale_ch.cloud | 2.4.0 | 2.4.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.aws | 9.0.0 | 9.2.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.ciscosmb | 1.0.9 | 1.0.10 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.crypto | 2.22.3 | 2.26.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.dns | 3.0.7 | 3.2.2 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.docker | 4.0.1 | 4.5.2 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.general | 10.0.1 | 10.5.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.hrobot | 2.0.2 | 2.2.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.library_inventory_filtering_v1 | 1.0.2 | 1.1.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.libvirt | 1.3.0 | 1.3.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.mongodb | 1.7.8 | 1.7.9 | There are no changes recorded in the changelog. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.mysql | 3.10.3 | 3.13.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.okd | 4.0.0 | 4.0.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.postgresql | 3.7.0 | 3.14.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.rabbitmq | 1.3.0 | 1.4.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.routeros | 3.0.0 | 3.5.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.sops | 2.0.0 | 2.0.4 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.vmware | 5.1.0 | 5.5.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.windows | 2.3.0 | 2.4.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| community.zabbix | 3.1.2 | 3.3.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| containers.podman | 1.16.2 | 1.16.3 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.conjur | 1.3.1 | 1.3.3 | You can find the collection's changelog at `https://github.com/cyberark/ansible-conjur-collection/blob/master/CHANGELOG.md `__. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| cyberark.pas | 1.0.27 | 1.0.30 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.enterprise_sonic | 2.5.1 | 3.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.openmanage | 9.8.0 | 9.11.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| dellemc.powerflex | 2.5.0 | 2.6.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| f5networks.f5_modules | 1.32.1 | 1.35.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| fortinet.fortimanager | 2.7.0 | 2.9.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| fortinet.fortios | 2.3.8 | 2.4.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| grafana.grafana | 5.6.0 | 5.7.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| hetzner.hcloud | 4.2.1 | 4.3.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| hitachivantara.vspone_block | | 3.3.0 | The collection was added to Ansible |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| ibm.storage_virtualize | 2.5.0 | 2.7.3 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| infoblox.nios_modules | 1.7.0 | 1.8.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| junipernetworks.junos | 9.1.0 | 10.0.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| kubernetes.core | 5.0.0 | 5.2.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| lowlydba.sqlserver | 2.3.4 | 2.6.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.ad | 1.7.1 | 1.8.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| microsoft.iis | | 1.0.2 | The collection was added to Ansible |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| netapp.ontap | 22.12.0 | 22.14.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| netapp.storagegrid | 21.13.0 | 21.14.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| netbox.netbox | 3.20.0 | 3.21.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| openstack.cloud | 2.2.0 | 2.4.1 | Unfortunately, this collection does not provide changelog data in a format that can be processed by the changelog generator. |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| purestorage.flasharray | 1.31.1 | 1.34.1 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| purestorage.flashblade | 1.19.1 | 1.19.2 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| telekom_mms.icinga_director | 2.2.0 | 2.2.2 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| theforeman.foreman | 4.2.0 | 5.3.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware | 1.6.0 | 1.11.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| vmware.vmware_rest | 4.2.0 | 4.7.0 | |
-+------------------------------------------+----------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-Major Changes
--------------
-
-Ansible-core
-~~~~~~~~~~~~
-
-- Jinja plugins - Jinja builtin filter and test plugins are now accessible via their fully-qualified names ``ansible.builtin.{name}``.
-- Task Execution / Forks - Forks no longer inherit stdio from the parent ``ansible-playbook`` process. ``stdout``, ``stderr``, and ``stdin`` within a worker are detached from the terminal, and non-functional. All needs to access stdio from a fork for controller side plugins requires use of ``Display``.
-- ansible-test - Packages beneath ``module_utils`` can now contain ``__init__.py`` files.
-- variables - The type system underlying Ansible's variable storage has been significantly overhauled and formalized. Attempts to store unsupported Python object types in variables now more consistently yields early warnings or errors.
-- variables - To support new Ansible features, many variable objects are now represented by subclasses of their respective native Python types. In most cases, they behave indistinguishably from their original types, but some Python libraries do not handle builtin object subclasses properly. Custom plugins that interact with such libraries may require changes to convert and pass the native types.
-
-ansible.netcommon
-~~~~~~~~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-
-arista.eos
-~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+- Remove ``cloud.common`` as a dependency, so it will not be installed automatically anymore (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+- modules - disable turbo mode for module execution by default. Make it optional to enable it using an environment variable (https://github.com/ansible-collections/vmware.vmware_rest/issues/499)
-cisco.ios
+vyos.vyos
~~~~~~~~~
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-
-cisco.iosxr
-~~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-
-cisco.nxos
-~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-
-community.vmware
-~~~~~~~~~~~~~~~~
-
-- vmware_dvswitch_pvlans - The VLAN ID type has been updated to be handled as an integer (https://github.com/ansible-collections/community.vmware/pull/2267).
-
-community.zabbix
-~~~~~~~~~~~~~~~~
-
-- All Roles - Updated to support version 7.2
-
-dellemc.openmanage
-~~~~~~~~~~~~~~~~~~
-
-- omevv_baseline_profile - This module allows to manage baseline profile.
-- omevv_baseline_profile_info - This module allows to retrieve baseline profile information.
-- omevv_compliance_info - This module allows to retrieve firmware compliance reports.
-- omevv_firmware - This module allows to update firmware of the single host and single cluster.
-
-fortinet.fortios
-~~~~~~~~~~~~~~~~
-
-- Support check_mode on all the configuration modules.
-- Supported new versions 7.6.1 and 7.6.2.
-- Updated the examples with correct values that have minimum or maximum values.
-
-grafana.grafana
-~~~~~~~~~~~~~~~
-
-- Ability to set custom directory path for *.alloy config files by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/294
-- Fix 'dict object' has no attribute 'path' when running with --check by @JMLX42 in https://github.com/grafana/grafana-ansible-collection/pull/283
-- Update grafana template by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/300
-- add loki bloom support by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/298
-- grafana.ini yaml syntax by @intermittentnrg in https://github.com/grafana/grafana-ansible-collection/pull/232
-
-junipernetworks.junos
-~~~~~~~~~~~~~~~~~~~~~
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+- bgp modules - Added support for 1.4+ "system-as". 1.3 embedded as_number is still supported
+- vyos bgp modules - Many configuration attributes moved from `bgp_global` to `bgp_address_family` module (see documentation).
+- vyos_bgp_address_family - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute moved from `bgp_global` module. These are now Address-family specific. Many neighbor attributes also moved from `vyos_bgp_global` to `vyos_bgp_address_family` module.
+- vyos_bgp_global - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute Removed to `bgp_address_family` module.
+- vyos_user - add support for encrypted password specification
+- vyos_user - add support for public-key authentication
Minor Changes
-------------
@@ -5815,25 +427,42 @@
~~~~~~~~~~~~
- Added a -vvvvv log message indicating when a host fails to produce output within the timeout period.
+- Added type annotations to the ``Role.__init__()`` method to enable type checking. (https://github.com/ansible/ansible/pull/85346)
+- AnsibleModule - Add temporary internal monkeypatch-able hook to alter module result serialization by splitting serialization from ``_return_formatted`` into ``_record_module_result``.
- AnsibleModule.uri - Add option ``multipart_encoding`` for ``form-multipart`` files in body to change default base64 encoding for files
- INVENTORY_IGNORE_EXTS config, removed ``ini`` from the default list, inventory scripts using a corresponding .ini configuration are rare now and inventory.ini files are more common. Those that need to ignore the ini files for inventory scripts can still add it to configuration.
+- Improved SUSE distribution detection in distribution.py by parsing VARIANT_ID from /etc/os-release for identifying SLES_SAP and SL-Micro. Falls back to /etc/products.d/baseproduct symlink for older systems.
- Jinja plugins - Plugins can declare support for undefined values.
- Jinja2 version 3.1.0 or later is now required on the controller.
- Move ``follow_redirects`` parameter to module_utils so external modules can reuse it.
- PlayIterator - do not return tasks from already executed roles so specific strategy plugins do not have to do the filtering of such tasks themselves
+- Remove unnecessary shebang from the ``hostname`` module.
- SSH Escalation-related -vvv log messages now include the associated host information.
+- Use ``importlib.metadata.version()`` to detect Jinja version as jinja2.__version__ is deprecated and will be removed in Jinja 3.3.
- Windows - Add support for Windows Server 2025 to Ansible and as an ``ansible-test`` remote target - https://github.com/ansible/ansible/issues/84229
- Windows - refactor the async implementation to better handle errors during bootstrapping and avoid WMI when possible.
- ``ansible-galaxy collection install`` — the collection dependency resolver now prints out conflicts it hits during dependency resolution when it's taking too long and it ends up backtracking a lot. It also displays suggestions on how to help it compute the result more quickly.
+- ansiballz - Added an experimental AnsiballZ extension for remote debugging.
+- ansiballz - Added support for AnsiballZ extensions.
+- ansiballz - Moved AnsiballZ code coverage support into an extension.
+- ansiballz - Refactored AnsiballZ and module respawn.
- ansible, ansible-console, ansible-pull - add --flush-cache option (https://github.com/ansible/ansible/issues/83749).
+- ansible-config will now show internal, but not test configuration entries. This allows for debugging but still denoting the configurations as internal use only (_ prefix).
+- ansible-doc - Return dynamic stub when reporting on Jinja filters and tests not explicitly documented in Ansible
+- ansible-doc - Skip listing the internal ``ansible._protomatter`` plugins unless explicitly requested
- ansible-galaxy - Add support for Keycloak service accounts
- ansible-galaxy - support ``resolvelib >= 0.5.3, < 2.0.0`` (https://github.com/ansible/ansible/issues/84217).
+- ansible-test - Add RHEL 10.0 as a remote platform for testing.
- ansible-test - Added a macOS 15.3 remote VM, replacing 14.3.
+- ansible-test - Added experimental support for remote debugging.
+- ansible-test - Added support for setting static environment variables in integration tests using ``env/set/`` entries in the ``aliases`` file. For example, ``env/set/MY_KEY/MY_VALUE`` or ``env/set/MY_PATH//an/abs/path``.
- ansible-test - Automatically retry HTTP GET/PUT/DELETE requests on exceptions.
- ansible-test - Default to Python 3.13 in the ``base`` and ``default`` containers.
- ansible-test - Disable the ``deprecated-`` prefixed ``pylint`` rules as their results vary by Python version.
- ansible-test - Disable the ``pep8`` sanity test rules ``E701`` and ``E704`` to improve compatibility with ``black``.
- ansible-test - Improve container runtime probe error handling. When unexpected probe output is encountered, an error with more useful debugging information is provided.
+- ansible-test - Improve formatting of generated coverage config file.
+- ansible-test - Improved ``pylint`` checks for Ansible-specific deprecation functions.
- ansible-test - Replace container Alpine 3.20 with 3.21.
- ansible-test - Replace container Fedora 40 with 41.
- ansible-test - Replace remote Alpine 3.20 with 3.21.
@@ -5842,6 +471,7 @@
- ansible-test - Replace remote FreeBSD 14.1 with 14.2.
- ansible-test - Replace remote RHEL 9.4 with 9.5.
- ansible-test - Show a more user-friendly error message when a ``runme.sh`` script is not executable.
+- ansible-test - The ``shell`` command has been augmented to propagate remote debug configurations and other test-related settings when running on the controller. Use the ``--raw`` argument to bypass the additional environment configuration.
- ansible-test - The ``yamllint`` sanity test now enforces string values for the ``!vault`` tag.
- ansible-test - Update ``nios-test-container`` to version 7.0.0.
- ansible-test - Update ``pylint`` sanity test to use version 3.3.1.
@@ -5851,23 +481,43 @@
- ansible-test - Update the PyPI test container.
- ansible-test - Update the ``base`` and ``default`` containers.
- ansible-test - Update the utility container.
+- ansible-test - Use OS packages to satisfy controller requirements on FreeBSD 13.5 during managed instance bootstrapping.
- ansible-test - Use Python's ``urllib`` instead of ``curl`` for HTTP requests.
+- ansible-test - Use the ``-t`` option to set the stop timeout when stopping a container. This avoids use of the ``--time`` option which was deprecated in Docker v28.0.
- ansible-test - When detection of the current container network fails, a warning is now issued and execution continues. This simplifies usage in cases where the current container cannot be inspected, such as when running in GitHub Codespaces.
- ansible-test acme test container - bump `version to 2.3.0 `__ to include newer versions of Pebble, dependencies, and runtimes. This adds support for ACME profiles, ``dns-account-01`` support, and some smaller improvements (https://github.com/ansible/ansible/pull/84547).
+- apt - consider lock timeout while invoking apt-get command (https://github.com/ansible/ansible/issues/78658).
- apt_key module - add notes to docs and errors to point at the CLI tool deprecation by Debian and alternatives
+- apt_repository - remove Python 2 support
- apt_repository module - add notes to errors to point at the CLI tool deprecation by Debian and alternatives
+- assemble action added check_mode support
- become plugins get new property 'pipelining' to show support or lack there of for the feature.
- callback plugins - add has_option() to CallbackBase to match other functions overloaded from AnsiblePlugin
- callback plugins - fix get_options() for CallbackBase
+- collection metadata - The collection loader now parses scalar values from ``meta/runtime.yml`` as strings. This avoids issues caused by unquoted values such as versions or dates being parsed as types other than strings.
+- comment filter - Improve the error message shown when an invalid ``style`` argument is provided.
- copy - fix sanity test failures (https://github.com/ansible/ansible/pull/83643).
- copy - parameter ``local_follow`` was incorrectly documented as having default value ``True`` (https://github.com/ansible/ansible/pull/83643).
- cron - Provide additional error information while writing cron file (https://github.com/ansible/ansible/issues/83223).
- csvfile - let the config system do the typecasting (https://github.com/ansible/ansible/pull/82263).
+- csvfile lookup - remove Python 2 compat
+- deprecation warnings - Deprecation warning APIs automatically capture the identity of the deprecating plugin. The ``collection_name`` argument is only required to correctly attribute deprecations that occur in module_utils or other non-plugin code.
+- deprecation warnings - Improved deprecation messages to more clearly indicate the affected content, including plugin name when available.
+- deprecations - Collection name strings not of the form ``ns.coll`` passed to deprecation API functions will result in an error.
+- deprecations - Removed support for specifying deprecation dates as a ``datetime.date``, which was included in an earlier 2.19 pre-release.
+- deprecations - Some argument names to ``deprecate_value`` for consistency with existing APIs. An earlier 2.19 pre-release included a ``removal_`` prefix on the ``date`` and ``version`` arguments.
+- display - Add ``help_text`` and ``obj`` to ``Display.error_as_warning``.
- display - Deduplication of warning and error messages considers the full content of the message (including source and traceback contexts, if enabled). This may result in fewer messages being omitted.
+- display - Replace Windows newlines (``\r\n``) in display output with Unix newlines (``\n``). This ensures proper display of strings sourced from Windows hosts in environments which treat ``\r`` as ``\n``, such as Azure Pipelines.
+- display - The ``formatted`` arg to ``warning`` has no effect. Warning wrapping is left to the consumer (e.g. terminal, browser).
+- display - The ``wrap_text`` and ``stderr`` arguments to ``error`` have no effect. Errors are always sent to stderr and wrapping is left to the consumer (e.g. terminal, browser).
- distribution - Added openSUSE MicroOS to Suse OS family (#84685).
- dnf5, apt - add ``auto_install_module_deps`` option (https://github.com/ansible/ansible/issues/84206)
- docs - add collection name in message from which the module is being deprecated (https://github.com/ansible/ansible/issues/84116).
+- encrypt - check datatype of salt_size in password_hash filter.
- env lookup - The error message generated for a missing environment variable when ``default`` is an undefined value (e.g. ``undef('something')``) will contain the hint from that undefined value, except when the undefined value is the default of ``undef()`` with no arguments. Previously, any existing undefined hint would be ignored.
+- facts - add "CloudStack KVM Hypervisor" for Linux VM in virtual facts (https://github.com/ansible/ansible/issues/85089).
+- facts - add "Linode" for Linux VM in virtual facts
- file - enable file module to disable diff_mode (https://github.com/ansible/ansible/issues/80817).
- file - make code more readable and simple.
- filter - add support for URL-safe encoding and decoding in b64encode and b64decode (https://github.com/ansible/ansible/issues/84147).
@@ -5880,21 +530,36 @@
- local connection plugin - When a ``become`` plugin's ``prompt`` value is a non-string after the ``check_password_prompt`` callback has completed, no prompt stripping will occur on stderr.
- lookup_template - add an option to trim blocks while templating (https://github.com/ansible/ansible/issues/75962).
- module - set ipv4 and ipv6 rules simultaneously in iptables module (https://github.com/ansible/ansible/issues/84404).
+- module_utils - Add ``AnsibleModule.error_as_warning``.
- module_utils - Add ``NoReturn`` type annotations to functions which never return.
+- module_utils - Add ``ansible.module_utils.common.warnings.error_as_warning``.
+- module_utils - Add optional ``help_text`` argument to ``AnsibleModule.warn``.
+- module_utils.basic.backup_local enforces check_mode now
- modules - PowerShell modules can now receive ``datetime.date``, ``datetime.time`` and ``datetime.datetime`` values as ISO 8601 strings.
- modules - PowerShell modules can now receive strings sourced from inline vault-encrypted strings.
+- modules - The ``AnsibleModule.deprecate`` function no longer sends deprecation messages to the target host's logging system.
- modules - Unhandled exceptions during Python module execution are now returned as structured data from the target. This allows the new traceback handling to be applied to exceptions raised on targets.
+- modules - use ``AnsibleModule.warn`` instead of passing ``warnings`` to ``exit_json`` or ``fail_json`` which is deprecated.
- pipelining logic has mostly moved to connection plugins so they can decide/override settings.
- plugin error handling - When raising exceptions in an exception handler, be sure to use ``raise ... from`` as appropriate. This supersedes the use of the ``AnsibleError`` arg ``orig_exc`` to represent the cause. Specifying ``orig_exc`` as the cause is still permitted. Failure to use ``raise ... from`` when ``orig_exc`` is set will result in a warning. Additionally, if the two cause exceptions do not match, a warning will be issued.
- removed hardcoding of su plugin as it now works with pipelining.
- runtime-metadata sanity test - improve validation of ``action_groups`` (https://github.com/ansible/ansible/pull/83965).
+- service_facts - handle keyerror exceptions with warning.
+- service_facts - warn user about missing service details instead of ignoring.
- service_facts module got freebsd support added.
+- ssh agent - Added ``SSH_AGENT_EXECUTABLE`` config to allow override of ssh-agent.
+- ssh connection plugin - Added ``verbosity`` config to decouple SSH debug output verbosity from Ansible verbosity. Previously, the Ansible verbosity value was always applied to the SSH client command-line, leading to excessively verbose output. Set the ``ANSIBLE_SSH_VERBOSITY`` envvar or ``ansible_ssh_verbosity`` Ansible variable to a positive integer to increase SSH client verbosity.
- ssh connection plugin - Support ``SSH_ASKPASS`` mechanism to provide passwords, making it the default, but still offering an explicit choice to use ``sshpass`` (https://github.com/ansible/ansible/pull/83936)
- ssh connection plugin now overrides pipelining when a tty is requested.
- ssh-agent - ``ansible``, ``ansible-playbook`` and ``ansible-console`` are capable of spawning or reusing an ssh-agent, allowing plugins to interact with the ssh-agent. Additionally a pure python ssh-agent client has been added, enabling easy interaction with the agent. The ssh connection plugin contains new functionality via ``ansible_ssh_private_key`` and ``ansible_ssh_private_key_passphrase``, for loading an SSH private key into the agent from a variable.
+- task timeout - Specifying a timeout greater than 100,000,000 now results in an error.
+- template action and lookup plugin - The value of the ``ansible_managed`` variable (if set) will not be masked by the ``template`` action and lookup. Previously, the value calculated by the ``DEFAULT_MANAGED_STR`` configuration option always masked the variable value during plugin execution, preventing runtime customization.
- templating - Access to an undefined variable from inside a lookup, filter, or test (which raises MarkerError) no longer ends processing of the current template. The triggering undefined value is returned as the result of the offending plugin invocation, and the template continues to execute.
+- templating - Added ``_ANSIBLE_TEMPLAR_SANDBOX_MODE=allow_unsafe_attributes`` environment variable to disable Jinja template attribute sandbox. (https://github.com/ansible/ansible/issues/85202)
- templating - Embedding ``range()`` values in containers such as lists will result in an error on use. Previously the value would be converted to a string representing the range parameters, such as ``range(0, 3)``.
- templating - Handling of omitted values is now a first-class feature of the template engine, and is usable in all Ansible Jinja template contexts. Any template that resolves to ``omit`` is automatically removed from its parent container during templating.
+- templating - Relaxed the Jinja sandbox to allow specific bitwise operations which have no filter equivalent. The allowed methods are ``__and__``, ``__lshift__``, ``__or__``, ``__rshift__``, ``__xor__``.
+- templating - Switched from the Jinja immutable sandbox to the standard sandbox. This restores the ability to use mutation methods such as ``list.append`` and ``dict.update``.
- templating - Template evaluation is lazier than in previous versions. Template expressions which resolve only portions of a data structure no longer result in the entire structure being templated.
- templating - Templating errors now provide more information about both the location and context of the error, especially for deeply-nested and/or indirected templating scenarios.
- templating - Unified ``omit`` behavior now requires that plugins calling ``Templar.template()`` handle cases where the entire template result is omitted, by catching the ``AnsibleValueOmittedError`` that is raised. Previously, this condition caused a randomly-generated string marker to appear in the template result.
@@ -5903,9 +568,14 @@
- troubleshooting - Tracebacks can be collected and displayed for most errors, warnings, and deprecation warnings (including those generated by modules). Tracebacks are no longer enabled with ``-vvv``; the behavior is directly configurable via the ``DISPLAY_TRACEBACK`` config option. Module tracebacks passed to ``fail_json`` via the ``exception`` kwarg will not be included in the task result unless error tracebacks are configured.
- undef jinja function - The ``undef`` jinja function now raises an error if a non-string hint is given. Attempting to use an undefined hint also results in an error, ensuring incorrect use of the function can be distinguished from the function's normal behavior.
- validate-modules sanity test - make sure that ``module`` and ``plugin`` ``seealso`` entries use FQCNs (https://github.com/ansible/ansible/pull/84325).
+- variables - Removed restriction on usage of most Python keywords as Ansible variable names.
+- variables - Warnings about reserved variable names now show context where the variable was defined.
- vault - improved vault filter documentation by adding missing example content for dump_template_data.j2, refining examples for clarity, and ensuring variable consistency (https://github.com/ansible/ansible/issues/83583).
- warnings - All warnings (including deprecation warnings) issued during a task's execution are now accessible via the ``warnings`` and ``deprecations`` keys on the task result.
- when the ``dict`` lookup is given a non-dict argument, show the value of the argument and its type in the error message.
+- windows - Added support for ``#AnsibleRequires -Wrapper`` to request a PowerShell module be run through the execution wrapper scripts without any module utils specified.
+- windows - Added support for running signed modules and scripts with a Windows host protected by Windows App Control/WDAC. This is a tech preview and the interface may be subject to change.
+- windows - Script modules will preserve UTF-8 encoding when executing the script.
- windows - add hard minimum limit for PowerShell to 5.1. Ansible dropped support for older versions of PowerShell in the 2.16 release but this requirement is now enforced at runtime.
- windows - refactor windows exec runner to improve efficiency and add better error reporting on failures.
- winrm - Remove need for pexpect on macOS hosts when using ``kinit`` to retrieve the Kerberos TGT. By default the code will now only use the builtin ``subprocess`` library which should handle issues with select and a high fd count and also simplify the code.
@@ -5913,6 +583,7 @@
amazon.aws
~~~~~~~~~~
+- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/amazon.aws/pull/2590).
- autoscaling_group - adds ``group_name`` as an alias for the ``name`` parameter (https://github.com/ansible-collections/amazon.aws/pull/2396).
- autoscaling_group - avoid assignment to unused variable in except block (https://github.com/ansible-collections/amazon.aws/pull/2464).
- autoscaling_group_info - adds ``group_name`` as an alias for the ``name`` parameter (https://github.com/ansible-collections/amazon.aws/pull/2396).
@@ -5928,6 +599,9 @@
- ec2_vpc_vpn - minor linting fixups (https://github.com/ansible-collections/amazon.aws/pull/2444).
- iam_password_policy - avoid assignment to unused variable in except block (https://github.com/ansible-collections/amazon.aws/pull/2464).
- iam_role - avoid assignment to unused variable in except block (https://github.com/ansible-collections/amazon.aws/pull/2464).
+- iam_user_info - Add tags to ListUsers or GetGroup results (https://github.com/ansible-collections/amazon.aws/pull/2567).
+- iam_user_info - Return empty user list when invalid group name is provided instead of python error (https://github.com/ansible-collections/amazon.aws/pull/2567).
+- inventory/aws_ec2 - Adding support for Route53 as hostname (https://github.com/ansible-collections/amazon.aws/pull/2580).
- inventory/aws_ec2 - Support jinja2 expression in ``hostnames`` variable(https://github.com/ansible-collections/amazon.aws/issues/2402).
- inventory/aws_ec2 - Update templating mechanism to support ansible-core 2.19 changes (https://github.com/ansible-collections/amazon.aws/pull/2552).
- kms_key - avoid assignment to unused variable in except block (https://github.com/ansible-collections/amazon.aws/pull/2464).
@@ -5937,13 +611,17 @@
- module_utils.botocore - avoid assigning unused parts of exc_info return (https://github.com/ansible-collections/amazon.aws/pull/2497).
- module_utils.exceptions - avoid assigning unused parts of exc_info return (https://github.com/ansible-collections/amazon.aws/pull/2497).
- module_utils.iam - avoid assignment to unused ``result`` variable (https://github.com/ansible-collections/amazon.aws/pull/2464).
+- module_utils.s3 - added "501" to the list of error codes thrown by S3 replacements (https://github.com/ansible-collections/amazon.aws/issues/2447).
- module_utils.s3 - avoid assignment to unused ``endpoint`` variable (https://github.com/ansible-collections/amazon.aws/pull/2464).
+- module_utils/modules.py - call to ``deprecate()`` without specifying ``collection_name``, ``version`` or ``date`` arguments raises a sanity errors (https://github.com/ansible-collections/amazon.aws/pull/2607).
+- module_utils/s3 - add initial ErrorHandler for S3 modules (https://github.com/ansible-collections/amazon.aws/pull/2060).
- plugin_utils/inventory - Add ``filters`` to list of templatable inventory options (https://github.com/ansible-collections/amazon.aws/pull/2379)
- route53 - Add support for type ``SSHFP`` records (https://github.com/ansible-collections/amazon.aws/pull/2430).
- route53_zone - Add support for enabling DNSSEC signing in a specific hosted zone (https://github.com/ansible-collections/amazon.aws/issues/1976).
- route53_zone - avoid assignmenta to unused ``current_vpc_ids`` and ``current_vpc_regions`` variables (https://github.com/ansible-collections/amazon.aws/pull/2464).
- s3_bucket - avoid assignment to unused variable in except block (https://github.com/ansible-collections/amazon.aws/pull/2464).
- s3_bucket - avoid redefining ``id`` inside ``handle_bucket_inventory`` and ``delete_bucket_inventory`` (https://github.com/ansible-collections/amazon.aws/pull/2444).
+- s3_bucket - migrated to use updated error handlers for better handling of non-AWS errors (https://github.com/ansible-collections/amazon.aws/pull/2478).
- s3_object - avoid redefining ``key_check`` inside ``_head_object`` (https://github.com/ansible-collections/amazon.aws/pull/2444).
- s3_object - simplify ``path_check`` logic (https://github.com/ansible-collections/amazon.aws/pull/2444).
- s3_object - support passing metadata in ``create`` mode (https://github.com/ansible-collections/amazon.aws/pull/2529).
@@ -5954,20 +632,28 @@
ansible.netcommon
~~~~~~~~~~~~~~~~~
+- Changes to supplement direct execution of Ansible module in validate_config(utils.py) and _patch_update_module(network.py) added.
- Exposes new libssh options to configure publickey_accepted_algorithms and hostkeys. This requires ansible-pylibssh v1.1.0 or higher.
+- Override new 2.19.1+ AnsibleModule._record_module_result hook in network action plugin to bypass module result serialization when direct execution is enabled
ansible.posix
~~~~~~~~~~~~~
- authorized_keys - allow using absolute path to a file as a SSH key(s) source (https://github.com/ansible-collections/ansible.posix/pull/568)
- callback plugins - Add recap information to timer, profile_roles and profile_tasks callback outputs (https://github.com/ansible-collections/ansible.posix/pull/387).
+- profile_tasks and profile_roles callback plugins - avoid deleted/deprecated callback functions, instead use modern interface that was introduced a longer time ago (https://github.com/ansible-collections/ansible.posix/issues/650).
ansible.windows
~~~~~~~~~~~~~~~
- Added support for Windows Server 2025
+- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
- setup - Added ``ansible_os_install_date`` as the OS installation date in the ISO 8601 format ``yyyy-MM-ddTHH:mm:ssZ``. This date is represented in the UTC timezone - https://github.com/ansible-collections/ansible.windows/issues/663
- setup - Remove dependency on shared function loaded by Ansible
+- setup - add "CloudStack KVM Hypervisor" for Windows VM in virtual facts (https://github.com/ansible-collections/ansible.windows/pull/785).
+- setup - added ``ansible_product_uuid`` to align with Python facts - https://github.com/ansible-collections/ansible.windows/issues/789
+- win_dns_client - add support for suffixsearchlist (https://github.com/ansible-collections/ansible.windows/issues/656).
+- win_find - add support for 'any' to find both directories and files (https://github.com/ansible-collections/ansible.windows/issues/797).
- win_get_url - Added ``checksum`` and ``checksum_algorithm`` to verify the package before installation. Also returns ``checksum`` if ``checksum_algorithm`` is provided - https://github.com/ansible-collections/ansible.windows/issues/596
- win_get_url - if checksum is passed and destination file exists with different checksum file is always downloaded (https://github.com/ansible-collections/ansible.windows/issues/717)
- win_get_url - if checksum is passed and destination file exists with identical checksum no download is done unless force=yes (https://github.com/ansible-collections/ansible.windows/issues/717)
@@ -5975,6 +661,11 @@
- win_group - Added ``members`` option to set the group membership. This is designed to replace the functionality of the ``win_group_membership`` module.
- win_group - Added ``sid`` return value representing the security identifier of the group when ``state=present``.
- win_group - Migrate to newer Ansible.Basic fragment for better input validation and testing support.
+- win_powershell - Add support for running scripts on a Windows host with an active Windows Application Control policy in place. Scripts that are unsigned will be run in Constrained Language Mode while scripts that are signed and trusted by the remote host's WDAC policy will be run in Full Language Mode.
+- win_powershell - Added the ``path`` and ``remote_src`` options which can be used to specify a local or remote PowerShell script to run.
+- win_shell - Add support for running scripts on a Windows host with an active Windows Application Control policy in place. Scripts will always run in Contrained Language Mode as they are executed in memory, use the ``ansible.windows.win_powershell`` module to run signed scripts in Full Language Mode on a WDAC enabled host.
+- win_template - Added ``comment_start_string`` and ``comment_end_string`` as options to align with the builtin ``template`` module.
+- win_template - Preserve user-supplied value for ``ansible_managed`` when set on Ansible Core 2.19+.
arista.eos
~~~~~~~~~~
@@ -5988,14 +679,59 @@
- check_point.mgmt.cp_mgmt_lsm_cluster - support additional parameters (dynamic-objects, tags and topology)
- check_point.mgmt.cp_mgmt_lsm_gateway - support additional parameters (device_id, dynamic-objects, tags and topology)
+cisco.aci
+~~~~~~~~~
+
+- Add aci_endpoint_tag_ip and aci_endpoint_tag_mac modules to manage Endpoint IP and MAC Tags.
+- Add aci_ip_sla_monitoring_policy module.
+- Add description, console_log_severity, local_file_log_format, and console_log_format to aci_syslog_group module.
+- Add enhanced_log and rfc5424-ts options to attribute format of aci_syslog_group module.
+- Add epg_cos, epg_cos_preference, ipam_dhcp_override, ipam_enabled, ipam_gateway, lag_policy_name, netflow_direction, primary_encap_inner, and secondary_encap_inner atributes to aci_epg_to_domain module.
+- Add management_epg and management_epg_type attributes in aci_dns_profile module.
+- Add missing options to priority attribute and vrf to scope attribute in aci_contract module.
+- Add nutanix support for aci_aep_to_domain, aci_domain, aci_domain_to_encap_pool, aci_domain_to_vlan_pool, aci_vmm_controller, aci_vmm_credential modules.
+- Add pod_id attribute to aci_switch_policy_vpc_protection_group module.
+- Add stratum attribute to aci_ntp_policy module.
+- Add support for Ansible 2.18 and dropped support for Ansible 2.15 as required by Ansible Galaxy.
+
cisco.dnac
~~~~~~~~~~
- .ansible-lint is added to handle a formatting issue in Red Hat.
+- API Modules 2_2_2_3, 2_2_3_3, 2_3_3_0 were removed
+- Added 'application_policy_workflow_manager' for managing queuing profiles, applications, sets and policies
+- Added 'assurance_device_health_score_settings_workflow_manager' for managing assurance Health score settings
+- Added 'assurance_icap_settings_workflow_manager' for configuring and managing ICAP (Intelligent Capture) settings
+- Added 'assurance_issue_workflow_manager' for managing assurance global profile settings and issue resolution
+- Added 'network_profile_switching_workflow_manager' for managing switch profiles
+- Added 'network_profile_wireless_workflow_manager' for managing network wireless profile
+- Added 'path_trace_workflow_manager' for managing PathTrace settings
+- Added 'tags_workflow_manager' for create, update, delete Tags and Tag Memberships
+- Added 'wireless_design_workflow_manager' for managing wireless design elements
+- Added attribute 'config_file_types' in device_configs_backup_workflow_manager module
+- Added attribute 'device_controllability_details' in network_settings_workflow_manager module
+- Added attribute 'device_type' in 'assurance_issue_workflow_manager' module
+- Added attribute 'devices_maintenance_schedule' in 'inventory_workflow_manager' module
+- Added attribute 'ignore_duration' in assurance_issue_workflow_manager module
+- Added attribute 'minimum_rssi' in 'wireless_design_workflow_manager' module
+- Added attribute 'new_name' in tags_workflow_manager module
+- Added attribute 'projects' in template_workflow_manager module
+- Added attribute 'resource_parameters' and 'copy_config' in 'template_workflow_manager' module
+- Added attribute 'sda_fabric_gateway_limit' in 'sda_fabric_virtual_networks_workflow_manager' module
+- Added attribute 'ssid_name' in 'network_profile_wireless_workflow_manager' module
+- Added attribute 'sub_package_images' in 'swim_workflow_manager' module
+- Added attribute 'template_description' in template_workflow_manager module
+- Added attribute 'wireless_controller_settings' in sda_fabric_devices_workflow_manager module
+- Added attributes 'commit' and 'version' in template_workflow_manager module
+- Added attributes 'ipv4_total_addresses', 'ipv4_unassignable_addresses', 'ipv4_assigned_addresses', 'ipv4_default_assigned_addresses', 'ipv6_total_addresses', 'ipv6_unassignable_addresses', 'ipv6_assigned_addresses', 'ipv6_default_assigned_addresses' in 'network_settings_workflow_manager' module
+- Added compatibility with Cisco version 3.1.3.0 -all corresponding modules were added-.
+- Added create in configuration_template module
- Added sample playbook for Device Configs Backup Module
- Added support for bulk operations on multiple access points in accesspoint_workflow_manager
- Adding Unit Test automation in github actions
+- Adding log messages and minor documentation changes in accesspoint_workflow_manager module
- Aliases were implemented to handle v1 and v2 of the API.
+- All alias modules were removed -*v1-.
- Bug fixes in [sda_fabric_sites_zones_workflow_manager module
- Bug fixes in accesspoint_workflow_manager module
- Bug fixes in inventory_workflow_manager
@@ -6010,20 +746,60 @@
- Bug fixes in swim_workflow_manager module
- Bug fixes in template_workflow_manager module
- Bug fixes in user_role_workflow_manager module
+- Changes in 'application_policy_workflow_manager' module
+- Changes in 'assurance_icap_settings_workflow_manager' module
+- Changes in 'assurance_issue_workflow_manager' module
+- Changes in 'device_configs_backup_workflow_manager' module
+- Changes in 'device_credential_backup_workflow_manager' module
+- Changes in 'discovery_workflow_manager' module
+- Changes in 'events_and_notifications_workflow_manager' module
+- Changes in 'inventory_workflow_manager' module
+- Changes in 'ise_radius_integration_workflow_manager' module
+- Changes in 'lan_automation_workflow_manager' module
+- Changes in 'network_compliance_workflow_manager' module
+- Changes in 'network_profile_switching_workflow_manager' module
+- Changes in 'network_profile_wireless_workflow_manager' module
+- Changes in 'network_settings_workflow_manager' module
+- Changes in 'pnp_workflow_manager' module
+- Changes in 'provision_workflow_manager' module
+- Changes in 'sda_extranet_policies_workflow_manager' module
+- Changes in 'sda_fabric_devices_workflow_manager' module
+- Changes in 'sda_fabric_sites_zones_workflow_manager' module
+- Changes in 'sda_fabric_transits_workflow_manager' module
+- Changes in 'sda_fabric_virtual_networks_workflow_manager' module
+- Changes in 'sda_host_onboarding_workflow_manager' module
+- Changes in 'swim_workflow_manager' module
+- Changes in 'tags_workflow_manager' module
+- Changes in 'template_workflow_manager' module
+- Changes in 'user_and_roles_workflow_manager' module
+- Changes in 'wireless_design_workflow_manager' module
+- Changes in application_policy_workflow_manager workflow manager module
+- Changes in assurance_device_health_score_settings_workflow_manager module
+- Changes in assurance_icap_settings_workflow_manager module
+- Changes in assurance_issue_workflow_manager workflow manager module
- Changes in circleci and yaml lint files
- Changes in circleci to run test cases in integration branch
+- Changes in device_configs_backup_workflow_manager module
- Changes in device_credential_workflow_manager module
+- Changes in discovery_workflow_manager module
- Changes in dnac.py file
+- Changes in dnac.py module
- Changes in inventory_workflow_manager module
- Changes in ise_radius_integration_workflow_manager
- Changes in ise_radius_integration_workflow_manager module
+- Changes in lan_automation_create module
- Changes in network_compliance_workflow_manager
+- Changes in network_profile_switching_workflow_manager module
+- Changes in network_profile_wireless_workflow_manager module
- Changes in network_settings_workflow_manager
- Changes in network_settings_workflow_manager module
+- Changes in networks_profile module
+- Changes in path_trace_workflow_manager module
- Changes in pnp_workflow_manager module
- Changes in provision_workflow_manager module
- Changes in sda_extranet_policy_workflow_manager
- Changes in sda_fabric_devices_workflow_manager module
+- Changes in sda_fabric_multicast_workflow_manager module
- Changes in sda_fabric_site_zones_workflow_manager module
- Changes in sda_fabric_virtual_networks_workflow_manager module
- Changes in sda_host_port_onboarding_workflow_manager module
@@ -6031,8 +807,18 @@
- Changes in site_workflow_manager module
- Changes in swim_workflow_manager module
- Changes in swim_workflow_manager module to support list of images
+- Changes in tags_workflow_manager module
- Changes in template_workflow_manager
+- Changes in template_workflow_manager module
+- Changes in user_role_workflow_manager module
+- Changes in validation.py module
+- Changes in wireless_design_workflow_manger module
+- Correction of issue 266 in the reserve_ip_subpool modules
+- Documentation changes in assurance_issue_workflow_manager module
+- Documentation changes in device_configs_backup_workflow_manager module
+- Documentation changes in inventory_workflow_manager module
- Enhancements in [sda_fabric_virtual_networks_workflow_manager module to support batch operation.
+- Enhancements in assurance_issue_workflow_manager module to support ignore duration
- Enhancements in device_configs_backup_workflow_manager module to support unzipped backup file after download
- Enhancements in device_credential_workflow_manager module
- Enhancements in provision_workflow_manager module
@@ -6042,12 +828,20 @@
- Fixed issues in module sda_anycast_gateways_v1
- Fixed issues in module sda_layer3_virtual_networks_v1
- Modifications due to documentation errors
+- New enhancment in template_workflow_manager workflow manager module
+- Removed attribute 'application_sets' and 'application' in 'application_policy_workflow_manager' module
+- Removed attribute 'control_path' in 'path_trace_workflow_manager' module
+- Removed attribute 'description' in template_workflow_manager module
+- Removed attribute 'minimum_rss' in 'wireless_design_workflow_manager' module
+- Removed attributes 'application_set_name' in 'application_policy_workflow_manager' module
+- Removed attributes 'ssid', 'onboarding_templates' in 'network_profile_wireless_workflow_manager' module
- Removing duplicates in the discovery.py module. snmpRwCommunity property.
- Some parameters were modified in tag_member_v1_info
- Supporting unmarking the devices in rma_workflow_manager module
- The file format was changed to conform to the requested standards.
- Unit test modules added for pnp_workflow_manager module
- Update Readme
+- Update dnacentersdk requirement from 2.7.0 to 2.10.1
- aaa_services_count_v1_info - new module
- aaa_services_id_trend_analytics_v1 - new module
- aaa_services_id_v1_info - new module
@@ -6068,6 +862,7 @@
- assurance_tasks_count_v1_info - new module
- assurance_tasks_id_v1_info - new module
- assurance_tasks_v1_info - new module
+- changing ansible.utils 6.x.y
- cisco_imcs_id_v1 - new module
- cisco_imcs_id_v1_info - new module
- cisco_imcs_v1 - new module
@@ -6176,6 +971,7 @@
- license_register_v1 - new module
- license_renew_v1 - new module
- license_status_v1_info - new module
+- modify problems in requests to the API
- network_applications_count_v1_info - new module
- network_applications_trend_analytics_v1 - new module
- network_applications_v1_info - new module
@@ -6329,6 +1125,7 @@
- Add ios_evpn_ethernet resource module.
- Added ios_vrf_interfaces resource module,that helps with configuration of vrfs within interface
- Adds a new module `ios_vrf_address_family` to manage VRFs address families on Cisco IOS devices.
+- ios_hsrp_interfaces - Added support for cisco.ios.hsrp_interfaces module (standby commands).
- ios_interfaces - Added service-policy, logging and snmp configuration options for interface.
- ios_l2_interfaces - Added a few switchport and spanning-tree configuration options for interface.
- ios_l3_interfaces - Added a few ip configuration options for interface.
@@ -6337,12 +1134,11 @@
~~~~~~~~~~~
- Added iosxr_vrf_interfaces resource module, that helps with configuration of vrfs within interface.
+- Adds support for missing set route map attributes med and extcommunity
- Adds support for setting local-preference with plus/minus values in route policies
-
-cisco.ise
-~~~~~~~~~
-
-- Fix linting issues.
+- Enhanced CDP neighbor parsing to support updated output formats in IOS-XR 7.7.21 and 7.4.1
+- Modified `parse_cdp_ip` to recognize "IPv4 address" in place of "IP address"
+- Updated `parse_cdp_intf_port` to handle newline-separated "Interface" and "Port ID" fields
cisco.meraki
~~~~~~~~~~~~
@@ -6411,25 +1207,92 @@
- organizations_wireless_radio_auto_rf_channels_recalculate - new plugin.
- organizations_wireless_rf_profiles_assignments_by_device_info - new plugin.
- organizations_wireless_ssids_statuses_by_device_info - new plugin.
+- plugins/action/devices_sensor_commands - new plugin.
+- plugins/action/devices_sensor_commands_info - new plugin.
+- plugins/action/networks_appliance_firewall_multicast_forwarding - new plugin.
+- plugins/action/organizations_appliance_dns_local_profiles - new plugin.
+- plugins/action/organizations_appliance_dns_local_profiles_assignments_bulk_create - new plugin.
+- plugins/action/organizations_appliance_dns_local_profiles_assignments_bulk_delete - new plugin.
+- plugins/action/organizations_appliance_dns_local_profiles_assignments_info - new plugin.
+- plugins/action/organizations_appliance_dns_local_profiles_info - new plugin.
+- plugins/action/organizations_appliance_dns_local_records - new plugin.
+- plugins/action/organizations_appliance_dns_local_records_info - new plugin.
+- plugins/action/organizations_appliance_dns_split_profiles - new plugin.
+- plugins/action/organizations_appliance_dns_split_profiles_assignments_bulk_create - new plugin.
+- plugins/action/organizations_appliance_dns_split_profiles_assignments_bulk_delete - new plugin.
+- plugins/action/organizations_appliance_dns_split_profiles_assignments_info - new plugin.
+- plugins/action/organizations_appliance_dns_split_profiles_info - new plugin.
+- plugins/action/organizations_appliance_firewall_multicast_forwarding_by_network_info - new plugin.
+- plugins/action/organizations_devices_controller_migrations - new plugin.
+- plugins/action/organizations_devices_controller_migrations_info - new plugin.
+- plugins/action/organizations_devices_system_memory_usage_history_by_interval_info - new plugin.
+- plugins/action/organizations_integrations_xdr_networks_disable - new plugin.
+- plugins/action/organizations_integrations_xdr_networks_enable - new plugin.
+- plugins/action/organizations_integrations_xdr_networks_info - new plugin.
+- plugins/action/organizations_switch_ports_usage_history_by_device_by_interval_info - new plugin.
+- plugins/action/organizations_wireless_devices_power_mode_history_info - new plugin.
+- plugins/action/organizations_wireless_devices_system_cpu_load_history_info - new plugin.
+- plugins/action/organizations_wireless_ssids_firewall_isolation_allowlist_entries - new plugin.
+- plugins/action/organizations_wireless_ssids_firewall_isolation_allowlist_entries_info - new plugin.
+
+cisco.mso
+~~~~~~~~~
+
+- Add admin_state attribute to mso_schema_site_anp_epg module.
+- Add ep_move_detection_mode attribute in mso_schema_template_bd.
+- Add mso_schema_template_anp_epg_annotation module.
+- Add mso_schema_template_anp_epg_intra_epg_contract module.
+- Add name attribute to mso_schema_template_external_epg_subnet module.
+- Add ndo_ipsla_track_list and ndo_ipsla_monitoring_policy modules.
+- Add ndo_l3out_node_routing_policy, ndo_l3out_interface_routing_policy, and ndo_tenant_bgp_peer_prefix_policy modules.
+- Add ndo_l3out_template, ndo_l3out_annotation, ndo_l3out_interface_group_policy, and ndo_l3out_node_group_policy modules.
+- Add ndo_mcp_global_policy module.
+- Add ndo_ntp_policy, ndo_ptp_policy, and ndo_ptp_policy_profiles modules.
+- Add ndo_physical_interface, ndo_port_channel_interface, ndo_virtual_port_channel_interface, ndo_node_profile, and ndo_fex_device modules to support NDO Fabric Resource Policies.
+- Add ndo_qos_dscp_cos_translation_policy module.
+- Add ndo_synce_interface_policy, ndo_interface_setting, ndo_node_setting, and ndo_macsec_policy modules.
+- Add ndo_tenant_custom_qos_policy module.
+- Add ndo_tenant_igmp_interface_policy, ndo_tenant_igmp_snooping_policy, and ndo_tenant_mld_snooping_policy modules.
+- Add qos_level attribute to the mso_schema_template_external_epg module.
+- Add support for Ansible 2.18 and dropped support for Ansible 2.15 as required by Ansible Galaxy.
+- Add support for site configuration for tenant policy template in ndo_template module.
+- Improved ndo modules returned current value with actual API response.
cisco.nxos
~~~~~~~~~~
- Add support for VRF address family via `vrf_address_family` resource module.
- Added nxos_vrf_interfaces resource module, that helps with configuration of vrfs within interface in favor of nxos_vrf_interface module.
+- cisco.nxos.nxos_l3_interfaces - Rewrite of l3_interfaces with bug fixes and enhancements.
+- hsrp_interfaces - Fixes and enhances capability of the module to deal with entire hsrp configuration under interfaces.
+- nxos_interfaces - Added service-policy, logging, mac-address and snmp configuration options for interface.
+- nxos_l2_interfaces - Enhances capability of the module to deal with addition attributes under l2 interfaces. Adds support for CDP, Link flap and beacon.
- nxos_telemetry - Added support for 'overridden' state to provide complete configuration override capabilities.
- nxos_vpc - Added support for peer-switch feature configuration.
+cloudscale_ch.cloud
+~~~~~~~~~~~~~~~~~~~
+
+- Add ansible-core 2.19+ compatibility
+- Remove the custom error message from snapshots module to fix root volume snapshots/restores on stopped servers
+- volume - Add revert parameter.
+
community.aws
~~~~~~~~~~~~~
+- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/community.aws/pull/2295).
- aws_ssm - Refactor ``_init_clients`` Method for Improved Clarity and Efficiency (https://github.com/ansible-collections/community.aws/pull/2223).
- aws_ssm - Refactor ``_prepare_terminal()`` Method for Improved Clarity and Efficiency (https://github.com/ansible-collections/community.aws/pull/).
- aws_ssm - Refactor exec_command Method for Improved Clarity and Efficiency (https://github.com/ansible-collections/community.aws/pull/2224).
- aws_ssm - Add function to generate random strings for SSM CLI delimitation (https://github.com/ansible-collections/community.aws/pull/2235).
- aws_ssm - Add the possibility to define ``aws_ssm plugin`` variable via environment variable and by default use the version found on the $PATH rather than require that you provide an absolute path (https://github.com/ansible-collections/community.aws/issues/1990).
+- aws_ssm - Move the ``aws_ssm`` connection plugin's plugin_utils into a dedicated folder (https://github.com/ansible-collections/community.aws/pull/2279).
+- aws_ssm - Refactor S3 operations methods for improved clarity (https://github.com/ansible-collections/community.aws/pull/2275).
- aws_ssm - Refactor ``_exec_transport_commands``, ``_generate_commands``, and ``_exec_transport_commands`` methods for improved clarity (https://github.com/ansible-collections/community.aws/pull/2248).
- aws_ssm - Refactor connection/aws_ssm to add new S3ClientManager class and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2255).
+- aws_ssm - Refactor connection/aws_ssm to add new TerminalManager class and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2270).
+- aws_ssm - Refactor connection/aws_ssm to add new ``FileTransferManager`` class and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2273).
+- aws_ssm - Refactor connection/aws_ssm to add new ``SSMSessionManager`` and ``ProcessManager`` classes and move relevant methods to the new class (https://github.com/ansible-collections/community.aws/pull/2272).
- aws_ssm - Refactor display/verbosity-related methods in aws_ssm to simplify the code and avoid repetition (https://github.com/ansible-collections/community.aws/pull/2264).
- dms_endpoint - Improve resilience of parameter comparison (https://github.com/ansible-collections/community.aws/pull/2221).
- s3_lifecycle - Support for min and max object size when applying the filter rules (https://github.com/ansible-collections/community.aws/pull/2205).
@@ -6439,19 +1302,38 @@
community.ciscosmb
~~~~~~~~~~~~~~~~~~
+- Update modules to conform core 2.19 and templating changes
- added Catalyst 1300 to supported platforms
- parsing neighbour table allowes empty 4th column to allow Cisco Catalyst 1300 support
+- solves
community.crypto
~~~~~~~~~~~~~~~~
+- No longer provide cryptography's ``backend`` parameter. This will break with cryptography < 3.1 (https://github.com/ansible-collections/community.crypto/pull/878).
+- On cryptography 36.0.0+, always use ``public_bytes()`` for X.509 extension objects instead of using cryptography internals to obtain DER value of extension (https://github.com/ansible-collections/community.crypto/pull/878).
+- Python code modernization: add type hints and type checking (https://github.com/ansible-collections/community.crypto/pull/885).
+- Python code modernization: avoid unnecessary string conversion (https://github.com/ansible-collections/community.crypto/pull/880).
+- Python code modernization: avoid using ``six`` (https://github.com/ansible-collections/community.crypto/pull/884).
+- Python code modernization: remove Python 3 specific code (https://github.com/ansible-collections/community.crypto/pull/877).
+- Python code modernization: update ``__future__`` imports, remove Python 2 specific boilerplates (https://github.com/ansible-collections/community.crypto/pull/876).
+- Python code modernization: use ``unittest.mock`` instead of ``ansible_collections.community.internal_test_tools.tests.unit.compat.mock`` (https://github.com/ansible-collections/community.crypto/pull/881).
+- Python code modernization: use f-strings instead of ``%`` and ``str.format()`` (https://github.com/ansible-collections/community.crypto/pull/875).
+- Remove ``backend`` parameter from internal code whenever possible (https://github.com/ansible-collections/community.crypto/pull/883).
+- Remove various compatibility code for cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878).
+- Remove various no longer needed abstraction layers for multiple backends (https://github.com/ansible-collections/community.crypto/pull/912).
+- Remove vendored copy of ``distutils.version`` in favor of vendored copy included with ansible-core 2.12+ (https://github.com/ansible-collections/community.crypto/pull/371).
+- Various code refactorings (https://github.com/ansible-collections/community.crypto/pull/905, https://github.com/ansible-collections/community.crypto/pull/909, https://github.com/ansible-collections/community.crypto/pull/911, https://github.com/ansible-collections/community.crypto/pull/913, https://github.com/ansible-collections/community.crypto/pull/914, https://github.com/ansible-collections/community.crypto/pull/917).
+- acme_* modules - improve parsing of ``Retry-After`` reply headers in regular ACME requests (https://github.com/ansible-collections/community.crypto/pull/890).
- acme_certificate - add compatibility for ACME CAs that are not fully RFC8555 compliant and do not provide ``challenges`` in authz objects (https://github.com/ansible-collections/community.crypto/issues/824, https://github.com/ansible-collections/community.crypto/pull/832).
- acme_certificate - add options ``order_creation_error_strategy`` and ``order_creation_max_retries`` which allow to configure the error handling behavior if creating a new ACME order fails. This is particularly important when using the ``include_renewal_cert_id`` option, and the default value ``auto`` for ``order_creation_error_strategy`` tries to gracefully handle related errors (https://github.com/ansible-collections/community.crypto/pull/842).
- acme_certificate - allow to chose a profile for certificate generation, in case the CA supports this using Internet-Draft `draft-aaron-acme-profiles `__ (https://github.com/ansible-collections/community.crypto/pull/835).
- acme_certificate_renewal_info - add ``exists`` and ``parsable`` return values and ``treat_parsing_error_as_non_existing`` option (https://github.com/ansible-collections/community.crypto/pull/838).
+- action_module plugin utils - remove compatibility with older ansible-core/ansible-base/Ansible versions (https://github.com/ansible-collections/community.crypto/pull/872).
- luks_device - allow passphrases to contain newlines (https://github.com/ansible-collections/community.crypto/pull/844).
- luks_device - allow to provide passphrases base64-encoded (https://github.com/ansible-collections/community.crypto/issues/827, https://github.com/ansible-collections/community.crypto/pull/829).
- openssl_pkcs12 - the module now supports ``certificate_content``/``other_certificates_content`` for cases where the data already exists in memory and not yet in a file (https://github.com/ansible-collections/community.crypto/issues/847, https://github.com/ansible-collections/community.crypto/pull/848).
+- x509_certificate, x509_certificate_pipe - the ``ownca_version`` and ``selfsigned_version`` parameters explicitly only allow the value ``3``. The module already failed for other values in the past, now this is validated as part of the module argument spec (https://github.com/ansible-collections/community.crypto/pull/890).
- x509_certificate_convert - add new option ``verify_cert_parsable`` which allows to check whether the certificate can actually be parsed (https://github.com/ansible-collections/community.crypto/issues/809, https://github.com/ansible-collections/community.crypto/pull/830).
community.dns
@@ -6467,34 +1349,603 @@
- docker_compose_v2 - add ``assume_yes`` parameter for ``docker compose up`` (https://github.com/ansible-collections/community.docker/pull/1045).
- docker_compose_v2 - add ``ignore_build_events`` option (default value ``true``) which allows to (not) ignore build events for change detection (https://github.com/ansible-collections/community.docker/issues/1005, https://github.com/ansible-collections/community.docker/issues/pull/1011).
- docker_compose_v2* modules - determine compose version with ``docker compose version`` and only then fall back to ``docker info`` (https://github.com/ansible-collections/community.docker/pull/1021).
+- docker_container_copy_into - add ``mode_parse`` parameter which determines how ``mode`` is parsed (https://github.com/ansible-collections/community.docker/pull/1074).
- docker_image_build - ``outputs[].name`` can now be a list of strings (https://github.com/ansible-collections/community.docker/pull/1006).
- docker_image_build - the executed command is now returned in the ``command`` return value in case of success and some errors (https://github.com/ansible-collections/community.docker/pull/1006).
- docker_network - add ``enable_ipv4`` option (https://github.com/ansible-collections/community.docker/issues/1047, https://github.com/ansible-collections/community.docker/pull/1049).
- docker_network - added ``ingress`` option (https://github.com/ansible-collections/community.docker/pull/999).
- docker_stack - allow to add ``--detach=false`` option to ``docker stack deploy`` command (https://github.com/ansible-collections/community.docker/pull/987).
+- docker_swarm_service - add support for ``replicated-job`` mode for Swarm services (https://github.com/ansible-collections/community.docker/issues/626, https://github.com/ansible-collections/community.docker/pull/1108).
community.general
~~~~~~~~~~~~~~~~~
- CmdRunner module utils - the convenience method ``cmd_runner_fmt.as_fixed()`` now accepts multiple arguments as a list (https://github.com/ansible-collections/community.general/pull/9893).
+- MH module utils - delegate ``debug`` to the underlying ``AnsibleModule`` instance or issues a warning if an attribute already exists with that name (https://github.com/ansible-collections/community.general/pull/9577).
+- aerospike_migrations - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- airbrake_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- alternatives - add ``family`` parameter that allows to utilize the ``--family`` option available in RedHat version of update-alternatives (https://github.com/ansible-collections/community.general/issues/5060, https://github.com/ansible-collections/community.general/pull/9096).
+- apache2_mod_proxy - better handling regexp extraction (https://github.com/ansible-collections/community.general/pull/9609).
+- apache2_mod_proxy - change type of ``state`` to a list of strings. No change for the users (https://github.com/ansible-collections/community.general/pull/9600).
- apache2_mod_proxy - code simplification, no change in functionality (https://github.com/ansible-collections/community.general/pull/9457).
+- apache2_mod_proxy - improve readability when using results from ``fecth_url()`` (https://github.com/ansible-collections/community.general/pull/9608).
+- apache2_mod_proxy - refactor repeated code into method (https://github.com/ansible-collections/community.general/pull/9599).
+- apache2_mod_proxy - remove unused parameter and code from ``Balancer`` constructor (https://github.com/ansible-collections/community.general/pull/9614).
+- apache2_mod_proxy - simplified and improved string manipulation (https://github.com/ansible-collections/community.general/pull/9614).
+- apache2_mod_proxy - use ``deps`` to handle dependencies (https://github.com/ansible-collections/community.general/pull/9612).
+- apache2_module - added workaround for new PHP module name, from ``php7_module`` to ``php_module`` (https://github.com/ansible-collections/community.general/pull/9951).
+- apk - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/issues/10479, https://github.com/ansible-collections/community.general/pull/10520).
+- bigpanda - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- bitwarden lookup plugin - add new option ``collection_name`` to filter results by collection name, and new option ``result_count`` to validate number of results (https://github.com/ansible-collections/community.general/pull/9728).
+- bitwarden lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- bootc_manage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- bower - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- btrfs_subvolume - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- bundler - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- bzr - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10523).
+- campfire - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- capabilities - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10524).
+- cargo - add ``features`` parameter to allow activating specific features when installing Rust packages (https://github.com/ansible-collections/community.general/pull/10198).
+- cargo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- cartesian lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
+- catapult - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- cgroup_memory_recap callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- cgroup_memory_recap callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- chef_databag lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- chroot connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- chroot connection plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- chroot connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- cisco_webex - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- cloud_init_data_facts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- cloudflare_dns - add support for ``comment`` and ``tags`` (https://github.com/ansible-collections/community.general/pull/9132).
+- cloudflare_dns - adds support for PTR records (https://github.com/ansible-collections/community.general/pull/10267).
+- cloudflare_dns - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- cloudflare_dns - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10269).
+- cobbler inventory plugin - add ``connection_timeout`` option to specify the connection timeout to the cobbler server (https://github.com/ansible-collections/community.general/pull/11063).
+- cobbler inventory plugin - add ``facts_level`` option to allow requesting fully rendered variables for Cobbler systems (https://github.com/ansible-collections/community.general/issues/9419, https://github.com/ansible-collections/community.general/pull/9975).
+- cobbler inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- cobbler inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- cobbler inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- collection_version lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- composer - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10525).
+- consul_kv - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- consul_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- consul_policy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
- consul_token - fix idempotency when ``policies`` or ``roles`` are supplied by name (https://github.com/ansible-collections/community.general/issues/9841, https://github.com/ansible-collections/community.general/pull/9845).
+- context_demo callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- context_demo callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- copr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- counter filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- counter_enabled callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- counter_enabled callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- cpanm - enable usage of option ``--with-recommends`` (https://github.com/ansible-collections/community.general/issues/9554, https://github.com/ansible-collections/community.general/pull/9555).
+- cpanm - enable usage of option ``--with-suggests`` (https://github.com/ansible-collections/community.general/pull/9555).
+- crc32 filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- credstash lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- cronvar - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- crypttab - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- crypttab - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- cyberarkpassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- cyberarkpassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- datadog_downtime - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- datadog_monitor - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- datadog_monitor - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- dconf - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- default_without_diff callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- dense callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- dense callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- dense callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- dependent lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
+- dependent lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- deps module utils - add ``deps.clear()`` to clear out previously declared dependencies (https://github.com/ansible-collections/community.general/pull/9179).
+- dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- dict_kv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- dig lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- dig lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- dimensiondata_network - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- dimensiondata_vlan - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- diy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- diy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- django module utils - remove deprecated parameter ``_DjangoRunner`` call (https://github.com/ansible-collections/community.general/pull/10574).
+- dnf_config_manager - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- dnsmadeeasy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- dnstxt lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- dnstxt lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- doas become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- doas become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- dpkg_divert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- dsv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- dzdo become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- dzdo become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- easy_install - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- easy_install - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10526).
+- elastic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- elastic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
+- elastic callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- elasticsearch_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- etcd lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- etcd3 lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- etcd3 lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- facter - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- filesystem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494).
+- filetree lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- flattened lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
+- from_csv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- from_csv filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- from_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- from_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- funcd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- funcd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- gem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- git_config - remove redundant ``required=False`` from ``argument_spec`` (https://github.com/ansible-collections/community.general/pull/10177).
+- git_config_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- github_app_access_token lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- github_deploy_key - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- github_key - add ``api_url`` parameter to support GitHub Enterprise Server installations (https://github.com/ansible-collections/community.general/pull/10191).
+- github_repo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- github_webhook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- github_webhook_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_branch - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_deploy_key - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- gitlab_group_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- gitlab_group_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_group_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_hook - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- gitlab_hook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_instance_variable - add support for ``raw`` variables suboption (https://github.com/ansible-collections/community.general/pull/9425).
+- gitlab_instance_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_label - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_merge_request - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_milestone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_project - add option ``build_timeout`` (https://github.com/ansible-collections/community.general/pull/9960).
+- gitlab_project - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_project_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- gitlab_project_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_project_members - extend choices parameter ``access_level`` by missing upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953).
+- gitlab_project_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- gitlab_runner - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- gitlab_runners inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- gitlab_runners inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- gitlab_runners inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- groupby_as_dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- grove - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- hashids filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- hg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- hiera lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- homebrew - greatly speed up module when multiple packages are passed in the ``name`` option (https://github.com/ansible-collections/community.general/pull/9181).
+- homebrew - remove duplicated package name validation (https://github.com/ansible-collections/community.general/pull/9076).
+- homebrew - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- homebrew_cask - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- homebrew_tap - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- honeybadger_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- hpilo_boot - add option to get an idempotent behavior while powering on server, resulting in success instead of failure when using ``state: boot_once`` option (https://github.com/ansible-collections/community.general/pull/9646).
+- htpasswd - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- icinga2 inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- icinga2 inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- icinga2_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- idrac_redfish_command, idrac_redfish_config, idrac_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
+- ilo_redfish_command, ilo_redfish_config, ilo_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
+- imgadm - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10536).
+- incus connection plugin - adds ``remote_user`` and ``incus_become_method`` parameters for allowing a non-root user to connect to an Incus instance (https://github.com/ansible-collections/community.general/pull/9743).
+- incus connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- incus connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- influxdb_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- ini_file - modify an inactive option also when there are spaces in front of the comment symbol (https://github.com/ansible-collections/community.general/pull/10102, https://github.com/ansible-collections/community.general/issues/8539).
+- ini_file - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- iocage connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- iocage connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- iocage inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- iocage inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- iocage inventory plugin - the new parameter ``hooks_results`` of the plugin is a list of files inside a jail that provide configuration parameters for the inventory. The inventory plugin reads the files from the jails and put the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650, https://github.com/ansible-collections/community.general/pull/9651).
+- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of the plugin provides the name of the tag in the C(iocage properties notes) that contains the jails alias. The new parameter ``inventory_hostname_required``, if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, https://github.com/ansible-collections/community.general/pull/10207).
+- iocage inventory plugin - the new parameter ``sudo`` of the plugin lets the command ``iocage list -l`` to run as root on the iocage host. This is needed to get the IPv4 of a running DHCP jail (https://github.com/ansible-collections/community.general/issues/9572, https://github.com/ansible-collections/community.general/pull/9573).
+- iocage inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- ipa_dnsrecord - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- ipa_dnszone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- ipa_group - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- ipa_service - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- ipbase_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- iptables_state action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- iptables_state action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318).
+- ipwcli_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- irc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- iso_extract - adds ``password`` parameter that is passed to 7z (https://github.com/ansible-collections/community.general/pull/9159).
+- jabber - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- jabber callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- jabber callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- jail connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- jail connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- jc filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- jc filter plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- jenkins_build - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- jenkins_build_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- jenkins_credential - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- jenkins_job - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- jenkins_plugin - install dependencies for specific version (https://github.com/ansible-collections/community.general/issue/4995, https://github.com/ansible-collections/community.general/pull/10346).
+- jenkins_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505).
+- jira - adds ``client_cert`` and ``client_key`` parameters for supporting client certificate authentification when connecting to Jira (https://github.com/ansible-collections/community.general/pull/9753).
+- jira - transition operation now has ``status_id`` to directly reference wanted transition (https://github.com/ansible-collections/community.general/pull/9602).
+- json_query filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- keep_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- keycloak - add an action group for Keycloak modules to allow ``module_defaults`` to be set for Keycloak tasks (https://github.com/ansible-collections/community.general/pull/9284).
+- keycloak - add support for ``grant_type=client_credentials`` to all keycloak modules, so that specifying ``auth_client_id`` and ``auth_client_secret`` is sufficient for authentication (https://github.com/ansible-collections/community.general/pull/10231).
+- keycloak module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- keycloak module_utils - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
+- keycloak_* modules - ``refresh_token`` parameter added. When multiple authentication parameters are provided (``token``, ``refresh_token``, and ``auth_username``/``auth_password``), modules will now automatically retry requests upon authentication errors (401), using in order the token, refresh token, and username/password (https://github.com/ansible-collections/community.general/pull/9494).
+- keycloak_authz_authorization_scope - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- keycloak_authz_permission - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- keycloak_identity_provider – add support for ``fromUrl`` to automatically fetch OIDC endpoints from the well-known discovery URL, simplifying identity provider configuration (https://github.com/ansible-collections/community.general/pull/10527).
+- keycloak_realm - add support for ``brute_force_strategy`` and ``max_temporary_lockouts`` (https://github.com/ansible-collections/community.general/issues/10412, https://github.com/ansible-collections/community.general/pull/10415).
+- keycloak_realm - add support for client-related options and Oauth2 device (https://github.com/ansible-collections/community.general/pull/10538).
- keycloak_realm - remove ID requirement when creating a realm to allow Keycloak generating its own realm ID (https://github.com/ansible-collections/community.general/pull/9768).
+- keycloak_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- keycloak_user module - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898).
+- keycloak_userprofile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- keyring - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- keyring lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- kibana_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- known_hosts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- ksu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- ksu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- lastpass lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- launchd - add ``plist`` option for services such as sshd, where the plist filename doesn't match the service name (https://github.com/ansible-collections/community.general/pull/9102).
+- layman - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- ldap_attrs - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- ldap_inc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- librato_annotation - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- linode inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- linode inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- lists filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- lists_mergeby filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- lldp - adds ``multivalues`` parameter to control behavior when lldpctl outputs an attribute multiple times (https://github.com/ansible-collections/community.general/pull/9657).
+- lldp - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- lmdb_kv lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- lmdb_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- locale_gen - invert the logic to determine ``ubuntu_mode``, making it look first for ``/etc/locale.gen`` (set ``ubuntu_mode`` to ``False``) and only then looking for ``/var/lib/locales/supported.d/`` (set ``ubuntu_mode`` to ``True``) (https://github.com/ansible-collections/community.general/pull/9238, https://github.com/ansible-collections/community.general/issues/9131, https://github.com/ansible-collections/community.general/issues/8487).
+- locale_gen - new return value ``mechanism`` to better express the semantics of the ``ubuntu_mode``, with the possible values being either ``glibc`` (``ubuntu_mode=False``) or ``ubuntu_legacy`` (``ubuntu_mode=True``) (https://github.com/ansible-collections/community.general/pull/9238).
+- log_plays callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- log_plays callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- loganalytics callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- loganalytics callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
+- loganalytics callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- logdna callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- logdna callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- logentries - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- logentries callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- logentries callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- logentries callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- logstash callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- logstash callback plugin - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- logstash_plugin - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/issues/10479, https://github.com/ansible-collections/community.general/pull/10520).
+- lvg - add ``remove_extra_pvs`` parameter to control if ansible should remove physical volumes which are not in the ``pvs`` parameter (https://github.com/ansible-collections/community.general/pull/9698).
+- lxc connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- lxc connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- lxca_cmms - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- lxca_nodes - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- lxd connection plugin - adds ``remote_user`` and ``lxd_become_method`` parameters for allowing a non-root user to connect to an LXD instance (https://github.com/ansible-collections/community.general/pull/9659).
+- lxd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- lxd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- lxd inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- lxd inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- lxd inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- machinectl become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- machinectl become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- macports - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- mail - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- mail callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- mail callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- mail callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- manageiq_alert_profiles - improve handling of parameter requirements (https://github.com/ansible-collections/community.general/pull/9449).
+- manageiq_alerts - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manageiq_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manageiq_policies - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manageiq_policies_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manageiq_tags - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manageiq_tenant - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- manifold lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- manifold lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- matrix - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- mattermost - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- maven_artifact - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- maven_artifact - removed compatibility code for ansible-core < 2.12 (https://github.com/ansible-collections/community.general/pull/10192).
+- memcached cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- memcached cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320).
+- memset_dns_reload - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- memset_zone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- memset_zone_record - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- merge_variables lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- mqtt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- mssql_db - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- mssql_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- nagios - make parameter ``services`` a ``list`` instead of a ``str`` (https://github.com/ansible-collections/community.general/pull/10493).
+- netcup_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- newrelic_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
- nmap inventory plugin - adds ``dns_servers`` option for specifying DNS servers for name resolution. Accepts hostnames or IP addresses in the same format as the ``exclude`` option (https://github.com/ansible-collections/community.general/pull/9849).
+- nmap inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- nmap inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- nmap inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- nmcli - add ``sriov`` parameter that enables support for SR-IOV settings (https://github.com/ansible-collections/community.general/pull/9168).
+- nmcli - add a option ``fail_over_mac`` (https://github.com/ansible-collections/community.general/issues/9570, https://github.com/ansible-collections/community.general/pull/9571).
+- nmcli - add support for Infiniband MAC setting when ``type`` is ``infiniband`` (https://github.com/ansible-collections/community.general/pull/9962).
+- nmcli - adds VRF support with new ``type`` value ``vrf`` and new ``slave_type`` value ``vrf`` as well as new ``table`` parameter (https://github.com/ansible-collections/community.general/pull/9658, https://github.com/ansible-collections/community.general/issues/8014).
+- nmcli - adds ``autoconnect_priority`` and ``autoconnect_retries`` options to support autoconnect logic (https://github.com/ansible-collections/community.general/pull/10134).
+- nmcli - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- nmcli - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10323).
+- nrdp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- nrdp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- nsupdate - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507).
+- null callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- oci_vcn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- one_image_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- one_template - adds ``filter`` option for retrieving templates which are not owned by the user (https://github.com/ansible-collections/community.general/pull/9547, https://github.com/ansible-collections/community.general/issues/9278).
+- one_template - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- one_vm - update allowed values for ``updateconf`` to include new parameters as per the latest OpenNebula API documentation.
+ Added parameters:
+
+ * ``OS``: ``FIRMWARE``;
+ * ``CPU_MODEL``: ``MODEL``, ``FEATURES``;
+ * ``FEATURES``: ``VIRTIO_BLK_QUEUES``, ``VIRTIO_SCSI_QUEUES``, ``IOTHREADS``;
+ * ``GRAPHICS``: ``PORT``, ``COMMAND``;
+ * ``VIDEO``: ``ATS``, ``IOMMU``, ``RESOLUTION``, ``TYPE``, ``VRAM``;
+ * ``RAW``: ``VALIDATE``;
+ * ``BACKUP_CONFIG``: ``FS_FREEZE``, ``KEEP_LAST``, ``BACKUP_VOLATILE``, ``MODE``, ``INCREMENT_MODE``.
+
+ (https://github.com/ansible-collections/community.general/pull/9959).
+- one_vnet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- oneandone_firewall_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- oneandone_load_balancer - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- oneandone_monitoring_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- onepassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- onepassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- onepassword_doc lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- onepassword_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- onepassword_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- onepassword_ssh_key - refactor to move code to lookup class (https://github.com/ansible-collections/community.general/pull/9633).
+- oneview_fc_network_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- online inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- online inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- open_iscsi - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10599).
+- opendj_backendprop - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- opennebula inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- opennebula inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- opennebula inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- opentelemetry callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- opentelemetry callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
+- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9482).
+- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9503).
+- opentelemetry callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- osx_defaults - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- ovh_ip_loadbalancing_backend - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- ovh_monthly_billing - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pacemaker_cluster - add ``state=maintenance`` for managing pacemaker maintenance mode (https://github.com/ansible-collections/community.general/issues/10200, https://github.com/ansible-collections/community.general/pull/10227).
+- pacemaker_cluster - remove unused code (https://github.com/ansible-collections/community.general/pull/9471).
+- pacemaker_cluster - rename ``node`` to ``name`` and add ``node`` alias (https://github.com/ansible-collections/community.general/pull/10227).
+- pacemaker_cluster - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/9471).
+- pacemaker_resource - add maintenance mode support for handling resource creation and deletion (https://github.com/ansible-collections/community.general/issues/10180, https://github.com/ansible-collections/community.general/pull/10194).
+- pacemaker_resource - enhance module by removing duplicative code (https://github.com/ansible-collections/community.general/pull/10227).
+- packet_device - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- pacman_key - support verifying that keys are trusted and not expired (https://github.com/ansible-collections/community.general/issues/9949, https://github.com/ansible-collections/community.general/pull/9950).
+- pagerduty - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- pagerduty - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pagerduty_change - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pagerduty_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pam_limits - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- parted - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- passwordstore lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- pbrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- pbrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- pear - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pear - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10601).
+- pfexec become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- pfexec become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- pickle cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- pingdom - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- pipx - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180).
+- pipx - parameter ``name`` now accepts Python package specifiers (https://github.com/ansible-collections/community.general/issues/7815, https://github.com/ansible-collections/community.general/pull/10031).
+- pipx module_utils - filtering application list by name now happens in the modules (https://github.com/ansible-collections/community.general/pull/10031).
+- pipx_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180).
+- pipx_info - filtering application list by name now happens in the module (https://github.com/ansible-collections/community.general/pull/10031).
+- pkgng - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pmrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- pmrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- pnpm - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- portage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- portage - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10602).
+- pritunl_org - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pritunl_org_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pritunl_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pritunl_user_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- proxmox and proxmox_kvm modules - allow uppercase characters in VM/container tags (https://github.com/ansible-collections/community.general/issues/9895, https://github.com/ansible-collections/community.general/pull/10024).
- proxmox_kvm - add missing audio hardware device handling (https://github.com/ansible-collections/community.general/issues/5192, https://github.com/ansible-collections/community.general/pull/9847).
+- pubnub_blocks - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pulp_repo - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- puppet - improve parameter formatting, no impact to user (https://github.com/ansible-collections/community.general/pull/10014).
+- pushbullet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- pushover - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- python_runner module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- qubes connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- qubes connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- random_mac filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- random_pet lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- redfish module utils - add ``REDFISH_COMMON_ARGUMENT_SPEC``, a corresponding ``redfish`` docs fragment, and support for its ``validate_certs``, ``ca_path``, and ``ciphers`` options (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
+- redfish module utils - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160).
+- redfish_command - add ``PowerFullPowerCycle`` to power command options (https://github.com/ansible-collections/community.general/pull/9729).
+- redfish_command - add ``update_custom_oem_header``, ``update_custom_oem_params``, and ``update_custom_oem_mime_type`` options (https://github.com/ansible-collections/community.general/pull/9123).
+- redfish_command, redfish_config, redfish_info - add ``validate_certs`` and ``ca_path`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
- redfish_config - add command ``SetPowerRestorePolicy`` to set the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9837).
+- redfish_info - add command ``GetAccountServiceConfig`` to get full information about AccountService configuration (https://github.com/ansible-collections/community.general/pull/9403).
- redfish_info - add command ``GetPowerRestorePolicy`` to get the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9824).
+- redfish_utils module utils - remove redundant code (https://github.com/ansible-collections/community.general/pull/9190).
+- redhat_subscription - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- redis cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- redis cache plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- redis cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320).
+- redis lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- redis_data - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- redis_data_incr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- remove_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- replace_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- revbitspss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- reveal_ansible_type filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- rhevm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- riak - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- riak - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10603).
+- rocketchat - fix duplicate JSON conversion for Rocket.Chat < 7.4.0 (https://github.com/ansible-collections/community.general/pull/9965).
- rocketchat - option ``is_pre740`` has been added to control the format of the payload. For Rocket.Chat 7.4.0 or newer, it must be set to ``false`` (https://github.com/ansible-collections/community.general/pull/9882).
+- rocketchat - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- rocketchat - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- rollbar_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- rpm_ostree_pkg - added the options ``apply_live`` (https://github.com/ansible-collections/community.general/pull/9167).
+- rpm_ostree_pkg - added the return value ``needs_reboot`` (https://github.com/ansible-collections/community.general/pull/9167).
+- run0 become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- saltstack connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- saltstack connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- say - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- say callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- say callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- scaleway inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- scaleway inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- scaleway inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- scaleway_* modules, scaleway inventory plugin - update available zones and API URLs (https://github.com/ansible-collections/community.general/issues/10383, https://github.com/ansible-collections/community.general/pull/10424).
+- scaleway_database_backup - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- scaleway_lb - minor simplification in the code (https://github.com/ansible-collections/community.general/pull/9189).
+- selective callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- selective callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- sendgrid - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- sensu_silence - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- sensu_silence - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- sensu_subscription - normalize quotes in the module output (https://github.com/ansible-collections/community.general/pull/10483).
+- sesu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- sesu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- shelvefile lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- shutdown action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- shutdown action plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- shutdown action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318).
+- sl_vm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
- slack callback plugin - add ``http_agent`` option to enable the user to set a custom user agent for slack callback plugin (https://github.com/ansible-collections/community.general/issues/9813, https://github.com/ansible-collections/community.general/pull/9836).
+- slack callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- slack callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- slack callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- snap - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598).
+- snap_alias - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598).
+- solaris_zone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- solaris_zone - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10604).
+- sorcery - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- sorcery - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- splunk callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- splunk callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
+- splunk callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- ssh_config - add ``dynamicforward`` option (https://github.com/ansible-collections/community.general/pull/9192).
+- ssh_config - add ``other_options`` option (https://github.com/ansible-collections/community.general/issues/8053, https://github.com/ansible-collections/community.general/pull/9684).
+- ssh_config - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- stackpath_compute inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- stackpath_compute inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- statusio_maintenance - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- sudosu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- sudosu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319).
+- sumologic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- sumologic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193).
+- svr4pkg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- swdepot - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- swupd - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10605).
+- syslog_json callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- syslogger - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- sysrc - adjustments to the code (https://github.com/ansible-collections/community.general/pull/10417).
+- sysrc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- systemd_creds_decrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
+- systemd_creds_encrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512).
- systemd_info - add wildcard expression support in ``unitname`` option (https://github.com/ansible-collections/community.general/pull/9821).
- systemd_info - extend support to timer units (https://github.com/ansible-collections/community.general/pull/9891).
+- taiga_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- tasks_only callback plugin - add ``result_format`` and ``pretty_results`` options similarly to the default callback (https://github.com/ansible-collections/community.general/pull/10422).
+- terraform - adds the ``no_color`` parameter, which suppresses or allows color codes in stdout from Terraform commands (https://github.com/ansible-collections/community.general/pull/10154).
+- time filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- timestamp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- timestamp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- timezone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579).
+- timezone - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10612).
+- to_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- to_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- tss lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- tss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324).
+- twilio - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- ufw - add support for ``vrrp`` protocol (https://github.com/ansible-collections/community.general/issues/9562, https://github.com/ansible-collections/community.general/pull/9582).
+- unicode_normalize filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- unixy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- unixy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- urpmi - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- urpmi - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10606).
+- utm_aaa_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_ca_host_key_cert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_dns_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_network_interface_address - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_proxy_auth_profile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_proxy_exception - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_proxy_frontend - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- utm_proxy_location - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- version_sort filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585).
+- vertica_configuration - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- vertica_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- vertica_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- virtualbox inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- virtualbox inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
+- virtualbox inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
- vmadm - add new options ``flexible_disk_size`` and ``owner_uuid`` (https://github.com/ansible-collections/community.general/pull/9892).
+- wdc_redfish_command, wdc_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
+- wsl connection plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- xattr - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- xbps - add ``root`` and ``repository`` options to enable bootstrapping new void installations (https://github.com/ansible-collections/community.general/pull/9174).
+- xbps - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- xbps - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10608).
+- xcc_redfish_command - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964).
+- xen_orchestra inventory plugin - add ``use_vm_uuid`` and ``use_host_uuid`` boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names (https://github.com/ansible-collections/community.general/pull/9787).
+- xen_orchestra inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- xen_orchestra inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285).
+- xen_orchestra inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323).
+- xfconf - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226).
+- xfconf - minor adjustments the the code (https://github.com/ansible-collections/community.general/pull/10311).
+- xfconf_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226).
+- xfs_quota - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/10609).
+- xml - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328).
+- xml - support adding value of children when creating with subnodes (https://github.com/ansible-collections/community.general/pull/8437).
+- yaml cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- yaml callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
+- yaml callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321).
+- yarn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- zone connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
+- zone connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322).
+- zypper - add ``quiet`` option (https://github.com/ansible-collections/community.general/pull/9270).
+- zypper - add ``simple_errors`` option (https://github.com/ansible-collections/community.general/pull/9270).
+- zypper - adds ``skip_post_errors`` that allows to skip RPM post-install errors (Zypper return code 107) (https://github.com/ansible-collections/community.general/issues/9972).
+- zypper - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+- zypper_repository - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513).
+
+community.grafana
+~~~~~~~~~~~~~~~~~
+
+- Add argument `tls_servername` for `grafana_datasource`
+- Support `alertmanager` as type for `grafana_datasource`
+- grafana_dashboard - allow creating dashboards in subfolders
+- grafana_team - integrate parameter ``org_id``
+- grafana_team - integrate parameter ``org_name``
community.hrobot
~~~~~~~~~~~~~~~~
- All modules and plugins now have a ``rate_limit_retry_timeout`` option, which allows to configure for how long to wait in case of rate limiting errors. By default, the modules wait indefinitely. Setting the option to ``0`` does not retry (this was the behavior in previous versions), and a positive value sets a number of seconds to wait at most (https://github.com/ansible-collections/community.hrobot/pull/140).
+- Introduced a new action group (module defaults group) ``community.hrobot.api`` that includes all modules that support the new Hetzner API. This is currently limited to a subset of the storage box modules; these currently support both the ``community.hrobot.robot`` and the new ``community.hrobot.api`` action group, and will eventually drop the ``community.hrobot.robot`` action group once the Robot API for storage boxes is removed by Hetzner (https://github.com/ansible-collections/community.hrobot/pull/166, https://github.com/ansible-collections/community.hrobot/pull/167, https://github.com/ansible-collections/community.hrobot/pull/168, https://github.com/ansible-collections/community.hrobot/pull/169).
- boot - it is now possible to specify SSH public keys in ``authorized_keys``. The fingerprint needed by the Robot API will be extracted automatically (https://github.com/ansible-collections/community.hrobot/pull/134).
+- storagebox - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/166).
+- storagebox_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/166).
+- storagebox_set_password - support the new Hetzner API. Note that the new API does not support setting a random password; you must always provide a password when using the new API (https://github.com/ansible-collections/community.hrobot/pull/168).
+- storagebox_snapshot - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
+- storagebox_snapshot_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
+- storagebox_snapshot_plan - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/167).
+- storagebox_snapshot_plan_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/167).
+- storagebox_subaccount - no longer mark ``password_mode`` as ``no_log`` (https://github.com/ansible-collections/community.hrobot/pull/168).
+- storagebox_subaccount - support the new Hetzner API. Note that the new API does not support setting a random password; you must always provide a password when using the new API to create a storagebox (https://github.com/ansible-collections/community.hrobot/pull/168).
+- storagebox_subaccount_info - support the new Hetzner API (https://github.com/ansible-collections/community.hrobot/pull/168).
- v_switch - the module is now part of the ``community.hrobot.robot`` action group, despite already being documented as part of it (https://github.com/ansible-collections/community.hrobot/pull/136).
community.library_inventory_filtering_v1
@@ -6502,18 +1953,30 @@
- Add typing information for the ``inventory_filter`` plugin utils (https://github.com/ansible-collections/community.library_inventory_filtering/pull/22).
+community.libvirt
+~~~~~~~~~~~~~~~~~
+
+- virt - implement basic check mode functionality (https://github.com/ansible-collections/community.libvirt/issue/98)
+- virt - implement the gathering of Dom UUIDs as per FR https://github.com/ansible-collections/community.libvirt/issues/187
+- virt - implement the gathering of Dom interface names and mac addresses as per FR https://github.com/ansible-collections/community.libvirt/issues/189
+- virt - implement the removal of volumes for a dom as per FR https://github.com/ansible-collections/community.libvirt/issues/177
+
community.mysql
~~~~~~~~~~~~~~~
- Integration tests for MariaDB 11.4 have replaced those for 10.5. The previous version is now 10.11.
+- mysql_db - Add support for ``sql_log_bin`` option (https://github.com/ansible-collections/community.mysql/issues/700).
- mysql_db - added ``zstd`` (de)compression support for ``import``/``dump`` states (https://github.com/ansible-collections/community.mysql/issues/696).
- mysql_info - adds the count of tables for each database to the returned values. It is possible to exclude this new field using the ``db_table_count`` exclusion filter. (https://github.com/ansible-collections/community.mysql/pull/691)
- mysql_query - returns the ``execution_time_ms`` list containing execution time per query in milliseconds.
+- mysql_replication - change default value for ``primary_ssl_verify_server_cert`` from False to None. This should not affect existing playbooks (https://github.com/ansible-collections/community.mysql/pull/707).
- mysql_user - add ``locked`` option to lock/unlock users, this is mainly used to have users that will act as definers on stored procedures.
community.okd
~~~~~~~~~~~~~
+- Bump version of ansible-lint to 25.1.2 (https://github.com/openshift/community.okd/pull/255).
+- Bump version of ansible-lint to minimum 24.7.0 (https://github.com/openshift/community.okd/pull/240).
- openshift_auth - fix issue where openshift_auth module sometimes does not delete the auth token. Based on stale PR (https://github.com/openshift/community.okd/pull/194).
community.postgresql
@@ -6529,15 +1992,28 @@
- postgresql_publication - added ``rowfilters`` parameter that adds support for row filtering on PG publications (https://github.com/ansible-collections/community.postgresql/pull/813)
- postgresql_query - returns the `execution_time_ms` list containing execution time per query in milliseconds (https://github.com/ansible-collections/community.postgresql/issues/787).
- postgresql_user - now there is a ``quote_configuration_values`` parameter that allows to turn off quoting for values which when set to ``false`` allows to set ``search_path`` (https://github.com/ansible-collections/community.postgresql/pull/806)
+- postgresql_user - return a PostgreSQL error message when a user cannot be removed.
community.rabbitmq
~~~~~~~~~~~~~~~~~~
+- rabbitmq_policy - add support to policy manipulation through RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/203)
- rabbitmq_policy - adjust the `apply_to` parameter to also accept the new options `classic_queues`, `quorum_queues` and `streams` which are supported since rabbitmq 3.12
+- rabbitmq_vhost - add support to vhost manipulation through RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/171)
+- rabbitmq_vhost - make rabbitmqctl optional when configuring vhosts using the RabbitMQ API (https://github.com/ansible-collections/community.rabbitmq/issues/201)
community.routeros
~~~~~~~~~~~~~~~~~~
+- api_find_and_modify - allow to control whether ``dynamic`` and/or ``builtin`` entries are ignored with the new ``ignore_dynamic`` and ``ignore_builtin`` options (https://github.com/ansible-collections/community.routeros/issues/372, https://github.com/ansible-collections/community.routeros/pull/373).
+- api_info, api modify - add ``remote-log-format``, ``remote-protocol``, and ``event-delimiter`` to ``system logging action`` (https://github.com/ansible-collections/community.routeros/pull/381).
+- api_info, api_modify - add ``disable-link-local-address`` and ``stale-neighbor-timeout`` fields to ``ipv6 settings`` (https://github.com/ansible-collections/community.routeros/pull/380).
+- api_info, api_modify - add ``interface ethernet switch port-isolation`` which is supported since RouterOS 6.43 (https://github.com/ansible-collections/community.routeros/pull/375).
+- api_info, api_modify - add ``mdns-repeat-ifaces`` to ``ip dns`` for RouterOS 7.16 and newer (https://github.com/ansible-collections/community.routeros/pull/358).
+- api_info, api_modify - add ``port-cost-mode`` to ``interface bridge`` which is supported since RouterOS 7.13 (https://github.com/ansible-collections/community.routeros/pull/371).
+- api_info, api_modify - add ``routing bfd configuration``. Officially stabilized BFD support for BGP and OSPF is available since RouterOS 7.11
+ (https://github.com/ansible-collections/community.routeros/pull/375).
+- api_info, api_modify - add ``show-at-cli-login`` property in ``system note`` (https://github.com/ansible-collections/community.routeros/pull/392).
- api_info, api_modify - add missing attribute ``require-message-auth`` for the ``radius`` path which exists since RouterOS version 7.15 (https://github.com/ansible-collections/community.routeros/issues/338, https://github.com/ansible-collections/community.routeros/pull/339).
- api_info, api_modify - add missing fields ``comment``, ``next-pool`` to ``ip pool`` path (https://github.com/ansible-collections/community.routeros/pull/327).
- api_info, api_modify - add support for the ``ip dns forwarders`` path implemented by RouterOS 7.17 and newer (https://github.com/ansible-collections/community.routeros/pull/343).
@@ -6545,19 +2021,38 @@
- api_info, api_modify - add the ``interface 6to4`` path. Used to manage IPv6 tunnels via tunnel-brokers like HE, where native IPv6 is not provided (https://github.com/ansible-collections/community.routeros/pull/342).
- api_info, api_modify - add the ``interface wireless access-list`` and ``interface wireless connect-list`` paths (https://github.com/ansible-collections/community.routeros/issues/284, https://github.com/ansible-collections/community.routeros/pull/340).
- api_info, api_modify - add the ``use-interface-duid`` option for ``ipv6 dhcp-client`` path. This option prevents issues with Fritzbox modems and routers, when using virtual interfaces (like VLANs) may create duplicated records in hosts config, this breaks original "expose-host" function. Also add the ``script``, ``custom-duid`` and ``validate-server-duid`` as backport from 7.15 version update (https://github.com/ansible-collections/community.routeros/pull/341).
+- api_info, api_modify - adjust neighbor limit fields in ``ipv6 settings`` to match RouterOS 7.18 and newer (https://github.com/ansible-collections/community.routeros/pull/380).
- api_info, api_modify - change default for ``/ip/cloud/ddns-enabled`` for RouterOS 7.17 and newer from ``yes`` to ``auto`` (https://github.com/ansible-collections/community.routeros/pull/350).
+- api_info, api_modify - field name change in ``routing bgp connection`` path implemented by RouterOS 7.19 and newer (https://github.com/ansible-collections/community.routeros/pull/360).
+- api_info, api_modify - rename ``is-responder`` property in ``interface wireguard peers`` to ``responder`` for RouterOS 7.17 and newer (https://github.com/ansible-collections/community.routeros/pull/364).
+- api_info, api_modify - set ``passthrough`` default in ``ip firewall mangle`` to ``true`` for RouterOS 7.19 and newer (https://github.com/ansible-collections/community.routeros/pull/382).
+- api_info, api_modify - set default value for ``include`` and ``exclude`` properties in ``system note`` to an empty string (https://github.com/ansible-collections/community.routeros/pull/394).
+- api_info, api_modify - since RouterOS 7.17 VRF is supported for OVPN server. It now supports multiple entries, while ``api_modify`` so far only accepted a single entry. The ``interface ovpn-server server`` path now allows multiple entries on RouterOS 7.17 and newer (https://github.com/ansible-collections/community.routeros/pull/383).
+- api_modify, api_info - support API path ``ip ipsec mode-config`` (https://github.com/ansible-collections/community.routeros/pull/376).
+
+community.sops
+~~~~~~~~~~~~~~
+
+- Now supports specifying SSH private keys for age with the new ``age_ssh_private_keyfile`` option (https://github.com/ansible-collections/community.sops/pull/241).
+- load_vars - expressions can now be lazily evaluated when using ansible-core 2.19 or newer (https://github.com/ansible-collections/community.sops/pull/229).
community.vmware
~~~~~~~~~~~~~~~~
+- module_utils.vmware - Move ``vmware_argument_spec`` to a dedicated file (https://github.com/ansible-collections/community.vmware/pull/2370).
+- module_utils.vmware_rest_client - Move ``vmware_client_argument_spec`` to a dedicated file (https://github.com/ansible-collections/community.vmware/pull/2370).
+- vcenter_extension - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- vcenter_standard_key_provider - Drop unused HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2327).
- vmware.py - Add logic for handling the case where the `datacenter` property is not provided.
- vmware_category - Don't test for vSphere < 7 anymore (https://github.com/ansible-collections/community.vmware/pull/2326).
+- vmware_dvs_portgroup - New option ``network_policy.mac_learning`` to replace ``mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
- vmware_guest - Add new cutomization spec param `domainOU`. (https://github.com/ansible-collections/community.vmware/issues/2275)
- vmware_guest - Drop unused HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2327).
- vmware_guest - Print details about the error message when the returned task result contains (https://github.com/ansible-collections/community.vmware/pull/2301).
- vmware_guest - Speedup network search (https://github.com/ansible-collections/community.vmware/pull/2278).
+- vmware_guest_cross_vc_clone - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- vmware_guest_info - `datacenter` property is now optional as it only required in cases where the VM is not uniquely identified by `name`.
+- vmware_guest_instant_clone - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- vmware_guest_network - Speedup network search (https://github.com/ansible-collections/community.vmware/pull/2277).
- vmware_guest_storage_policy - Drop unnecessary HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2328).
- vmware_guest_tpm - Drop unused HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2327).
@@ -6567,16 +2062,20 @@
- vmware_host_snmp - Drop unnecessary HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2328).
- vmware_migrate_vmk - Drop unnecessary HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2328).
- vmware_migrate_vmk - Inherit from / sub-class PyVmomi (https://github.com/ansible-collections/community.vmware/pull/2324).
+- vmware_object_role_permission - Document setting permissions on vCenter level (https://github.com/ansible-collections/community.vmware/pull/2374).
- vmware_resource_pool - Drop unnecessary HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2328).
- vmware_vc_infraprofile_info - Don't test for vSphere < 7 anymore (https://github.com/ansible-collections/community.vmware/pull/2326).
- vmware_vm_config_option - Drop unused HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2327).
+- vmware_vm_inventory - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- vmware_vm_vss_dvs_migrate - Inherit from / sub-class PyVmomi (https://github.com/ansible-collections/community.vmware/pull/2325).
+- vmware_vsan_cluster - Stop using ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- vmware_vsan_health_info - Drop unused HAS_PYVMOMI (https://github.com/ansible-collections/community.vmware/pull/2327).
community.windows
~~~~~~~~~~~~~~~~~
- Added support for Windows Server 2025
+- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
- This issue fixes installation of requirements as it requires a confirmation when installed as a depedency to PowershellGet. Installing it by itself prevents this confirmation dialog and allows required components to be installed (https://github.com/ansible-collections/community.windows/issues/147).
- win_file_version - Add file_version_raw result for cases where file_version might be empty or in not in the right format.
- win_iis_webapppool - this pull request fixes the portion where building an app pool with the word "value" in it fails unexpectedly. https://github.com/ansible-collections/community.windows/issues/410.
@@ -6585,25 +2084,56 @@
community.zabbix
~~~~~~~~~~~~~~~~
+- Add `zabbix_http_headers` variable to allow specifying custom HTTP headers for Zabbix API calls. This can be useful for authentication or other custom header requirements.
+- Agent Role - Removed Temporary Fix supporting RHEL9
+- Web Role - Added `zabbix_web_custom_php` to allow for addition of customer PHP settings
+- Web Role - Added support for `ssl_prefer_server_ciphers`
+- Web Role - Added support for `zabbix_web_ssl_session_protocols`
+- Web Role - Added support for `zabbix_web_ssl_session_stapling`
+- You can now deploy these roles with inject_facts_as_vars set to false
- added support for Zabbix 7.2 for all modules
+- roles - sane selinux defaults
+- roles/proxy - Fixing the zabbix_proxy_proxyconfigfrequency functionality
+- roles/proxy - optionally creation of proxy_group and adding proxy to group (Zabbix 7.0+)
+- roles/zabbix_agent - Tweaking the windows service
- zabbix_action module - added Add host tags and Remove host tags operations
+- zabbix_action module - properly configure discovery check condition in discovery action depending on information provided in discovery check `value`.
- zabbix_action module fixed SNMP discovery check condition in discovery rule.
- zabbix_agent role - accept several IPs in `zabbix_agent_listenip` variable.
+- zabbix_configuration module - Add this module to import configuration data.
- zabbix_connector module added
- zabbix_discoveryrule - add support for renaming discoveryrules
+- zabbix_group - add propagate parameter
- zabbix_group_events_info - add tag support
+- zabbix_group_info - Add the possibility to retrive all host Group
- zabbix_item - add support for renaming items
+- zabbix_item - added support for item types zabbix_agent, snmp_trap, snmp_agent, ipmi_agent and jmx_agent
- zabbix_itemprototype - add support for renaming itemprototypes
- zabbix_maintenance - Added ability to append host or host groups to existing maintenance.
+- zabbix_mediatype - add Message template for services
- zabbix_mediatype module - fix failure that started to happen since Zabbix 7.0.9
- zabbix_proxy role - fix Zabbix proxy creation/update at Zabbix >= 7.0
- zabbix_proxy role - fix Zabbix proxy creation/update at Zabbix server when PSK used
+- zabbix_proxy role - fix Zabbix proxy with encryptuion registration
- zabbix_regexp_info module added
+- zabbix_server role - facilitate overriding database schemas loaded
+- zabbix_server role - facilitate overriding packages installed
+- zabbix_service - add better idempotency that checks every parameter for change and updates only the changed ones
- zabbix_settings - add support for additional timeout settings
- zabbix_settings - allow setting ``auditlog_mode`` on Zabbix 7.0 or higher. With this setting you can enable or disable audit logging of system actions.
+- zabbix_template_info - Add the possibility to retrive all template Group
+- zabbix_templategroup - add propagate parameter
+- zabbix_token module - Fix status value for zabbix Auth token.
+- zabbix_token module - update the logic for update of Zabbix Token
- zabbix_trigger - add support for renaming triggers
- zabbix_triggerprototype - add support for renaming triggerprototypes
+containers.podman
+~~~~~~~~~~~~~~~~~
+
+- Add another test for volumes
+- Added checks for volume opts
+
dellemc.enterprise_sonic
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -6629,7 +2159,9 @@
~~~~~~~~~~~~~~~~~
- Added Ansible role to support installation and uninstallation of SDT.
+- Added none check for mdm cluster id in mdm_cluster module.
- Info module is enhanced to support the listing of SDTs and NVMe hosts.
+- Updated minimum SDK version to 2.6.1.
f5networks.f5_modules
~~~~~~~~~~~~~~~~~~~~~
@@ -6642,11 +2174,34 @@
- Supported FortiManager 6.2.13, 6.4.15, 7.0.13, 7.2.8, 7.4.5, 7.6.1. Added 1 new module.
- Supported FortiManager 7.2.9, 7.4.6, 7.6.2. Added 3 new modules.
- Supported check diff for some modules except "fmgr_generic". You can use "ansible-playbook -i --check --diff" to check what changes your playbook will make to the FortiManager.
+- Supported new modules in FortiManager 7.4.6, 7.4.7, 7.6.3.
+
+google.cloud
+~~~~~~~~~~~~
+
+- gcp_compute - added GVNIC support to compute instance (https://github.com/ansible-collections/google.cloud/pull/688).
+- gcp_compute - added ``discard_local_ssd`` flag to compute instance (https://github.com/ansible-collections/google.cloud/pull/686).
+- gcp_compute - added hostname support to dynamic inventory (https://github.com/ansible-collections/google.cloud/pull/689).
+- gcp_parameter_manager - added module support for managing parameters and versions (https://github.com/ansible-collections/google.cloud/pull/684).
+- gcp_pubsub_subscription - allows to create GCS subscription
+- gcp_secret_manager - added support for regional secret manager (https://github.com/ansible-collections/google.cloud/pull/685).
+- gcp_storage_bucket - added support for iam_configuration (https://github.com/ansible-collections/google.cloud/pull/693).
+- lookup - added lookup via gcp_parameter_manager (https://github.com/ansible-collections/google.cloud/pull/684).
+
+grafana.grafana
+~~~~~~~~~~~~~~~
+
+- Remove Node modules from Ansible Collection build
hetzner.hcloud
~~~~~~~~~~~~~~
- server - Add `created` state that creates a server but do not start it.
+- server - Allow renaming a server.
+- ssh_key - Log a warning when the provided public key does not match one in the API.
+- ssh_key - When the public key does not match the one in the API, allow recreating the SSH Key in the API using the ``force=true`` argument.
+- volume - Allow renaming a volume.
+- volume_attachment - Add new `volume_attachment` module to manage Volumes attachment.
ibm.storage_virtualize
~~~~~~~~~~~~~~~~~~~~~~
@@ -6658,6 +2213,8 @@
- ibm_sv_manage_truststore_for_replication - Added support for creating truststore for flashsystem grid
- ibm_sv_manage_truststore_for_replication - Added support for enabling various options (syslog, RESTAPI, vasa, ipsec, snmp and email) for existing truststore
- ibm_svc_host - Added support for specifying host location in PBHA, support for FDMI discovery, suppressing offline alert, updating IO groups, and for specifying fcscsi and iscsi protocols during host creation
+- ibm_svc_host.py - Added support for adding and removing preferred location, and IO Groups
+- ibm_svc_hostcluster.py - Added support for adding site
- ibm_svc_info - Added support for flashsystem grid
- ibm_svc_initial_setup - Added support for flashcopy default grain size and SI (Storage Insights) to be able to control partition migration
- ibm_svc_initial_setup - Added support for vdisk protection settings, iscsiauthmethod and improved REST API calls
@@ -6666,6 +2223,7 @@
- ibm_svc_manage_replication - Added support for highly-available snapshots
- ibm_svc_manage_volume - Added support for converting thinclone volume(s) to clone
- ibm_svc_manage_volume - Added support for unmapping hosts, remote-copy and flashcopy during volume deletion
+- ibm_svc_manage_volume - Added support for warning parameter
- ibm_svc_manage_volumegroup - Added support for disaster recovery and converting thinclone volumegroup to clone
- ibm_svc_mdisk - Added support for updating tier
- ibm_svc_mdiskgrp - Improved probe function for storage pools
@@ -6673,8 +2231,18 @@
kubernetes.core
~~~~~~~~~~~~~~~
+- Bump version of ansible-lint to 25.1.2 (https://github.com/ansible-collections/kubernetes.core/pull/919).
- Bump version of ansible-lint to minimum 24.7.0 (https://github.com/ansible-collections/kubernetes.core/pull/765).
+- Module helm_registry_auth do not support idempotency with `helm >= 3.18.0` (https://github.com/ansible-collections/kubernetes.core/pull/946)
+- Module k8s_json_patch - Add support for `hidden_fields` (https://github.com/ansible-collections/kubernetes.core/pull/964).
- Parameter insecure_registry added to helm_template as equivalent of insecure-skip-tls-verify (https://github.com/ansible-collections/kubernetes.core/pull/805).
+- action/k8s_info - update templating mechanism with changes from ``ansible-core 2.19`` (https://github.com/ansible-collections/kubernetes.core/pull/888).
+- helm - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
+- helm - Parameter take_ownership added (https://github.com/ansible-collections/kubernetes.core/pull/957).
+- helm - add reset_then_reuse_values support to helm module (https://github.com/ansible-collections/kubernetes.core/issues/803).
+- helm - add support for ``insecure_skip_tls_verify`` option to helm and helm_repository(https://github.com/ansible-collections/kubernetes.core/issues/694).
+- helm_pull - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
+- helm_template - Parameter plain_http added for working with insecure OCI registries (https://github.com/ansible-collections/kubernetes.core/pull/934).
- k8s - Extend hidden_fields to allow the expression of more complex field types to be hidden (https://github.com/ansible-collections/kubernetes.core/pull/872)
- k8s_drain - Improve error message for pod disruption budget when draining a node (https://github.com/ansible-collections/kubernetes.core/issues/797).
- k8s_info - Extend hidden_fields to allow the expression of more complex field types to be hidden (https://github.com/ansible-collections/kubernetes.core/pull/872)
@@ -6685,12 +2253,16 @@
- Add new `login_role` module to add/remove server roles for logins (https://github.com/lowlydba/lowlydba.sqlserver/pull/293).
- Add new user_role module to manage users' membership to database roles (https://github.com/lowlydba/lowlydba.sqlserver/pull/292).
+- Added support for Ansible 2.19
- Added support for contained Availability Groups using dbatools 2.1.15 (https://github.com/lowlydba/lowlydba.sqlserver/pull/249).
+- Updated the test matrix to include Ansible 2.19 and remove Ansible 2.16
+- agent_job_step - Added ``output_file`` parameter to specify the output file path for SQL Agent job steps (https://github.com/lowlydba/lowlydba.sqlserver/pull/329).
microsoft.ad
~~~~~~~~~~~~
- Added support for Windows Server 2025
+- Set minimum supported Ansible version to 2.16 to align with the versions still supported by Ansible.
- domain - Added ``replication_source_dc`` to specify the domain controller to use as the replication source for the new domain - https://github.com/ansible-collections/microsoft.ad/issues/159
- domain_controller - Added ``replication_source_dc`` to specify the domain controller to use as the replication source for the new domain controller - https://github.com/ansible-collections/microsoft.ad/issues/159
- microsoft.ad.user - Added ``groups.permissions_failure_action`` to control the behaviour when failing to modify the user's groups - (https://github.com/ansible-collections/microsoft.ad/issues/140).
@@ -6701,30 +2273,45 @@
- Multiple modules - Standardize hostname, username, and password parameters to use netapp_hostname, netapp_username, and netapp_password as values.
- Multiple modules - Update examples to use Fully Qualified Collection Name.
- Update dead link in doc_fragments.
+- all modules - defaults to certificate based authentication if `username,password` and `cert_filepath/key_filepath` are set.
- all modules supporting only REST - change in documentation for `use_rest`.
- all modules supporting only REST - updated `extends_documentation_fragment` & argument spec.
- na_ontap_active_directory - return error message when attempting to modify `account_name`.
- na_ontap_bgp_config - REST only support for managing BGP configuration for a node, requires ONTAP 9.6 or later.
+- na_ontap_cifs_acl - added example showing ACL deletion.
- na_ontap_cifs_privileges - REST only support for managing privileges of the local or Active Directory user or group, requires ONTAP 9.10.1 or later.
- na_ontap_cifs_server - added new option `comment` for cifs server, requires ONTAP 9.6 or later.
+- na_ontap_cluster_peer - new options `local_name_for_peer` and `local_name_for_source` added in REST.
- na_ontap_dns - updated documentation for `vserver`.
- na_ontap_flexcache - new option to enable `writeback` added in REST, requires ONTAP 9.12 or later.
- na_ontap_flexcache - new options `relative_size`, `override_encryption`, `atime_scrub`, `cifs_change_notify_enabled`, `global_file_locking_enabled`, `guarantee_type`, `dr_cache` added in REST.
+- na_ontap_ndmp - Added get method to generate and retrieve ndmp user passowrd in REST.
+- na_ontap_nfs - new option `nfsv3_hide_snapdir` added in REST.
- na_ontap_rest_cli - Add POST and DELETE examples.
+- na_ontap_rest_cli - added `next` key to enable API pagination support.
- na_ontap_rest_info - removed example which has option `gather_subset` set to `all` from documentation.
- na_ontap_rest_info - updated `extends_documentation_fragment` & argument spec.
- na_ontap_s3_buckets - added new option `versioning_state`, requires ONTAP 9.11.1 or later.
- na_ontap_s3_buckets - updated `extends_documentation_fragment` & argument spec.
- na_ontap_s3_services - added `is_http_enabled`, `is_https_enabled`, `port` and `secure_port` option for `s3` service, requires ONTAP 9.8 or later.
- na_ontap_s3_users - new option `regenerate_keys` and `delete_keys` added in REST, `delete_keys` requires ONTAP 9.14 or later.
+- na_ontap_security_certificates - updated examples for create server type certificate and install with intermediate certificates.
+- na_ontap_snapmirror - new option `quick_resync` added in REST.
- na_ontap_snapmirror - new option `quiesced_time_out` added to wait for quiesce job to complete.
+- na_ontap_support_config_backup - new option `set_password` added in REST.
- na_ontap_svm - added `allowed` option for `s3` service, requires ONTAP 9.7 or later.
+- na_ontap_svm - new option `storage_limit` added in REST, requires ONTAP 9.13.1 or later.
- na_ontap_svm - updated documentation for `allowed_protocols` & `services`.
+- na_ontap_user - added `totp` option for `application_dicts.second_authentication_method` in REST.
- na_ontap_volume - new option `granular_data` added in REST, requires ONTAP 9.12 or later.
- na_ontap_volume - new option `large_size_enabled` added in REST, requires ONTAP 9.12 or later.
- na_ontap_volume - new option `nas_application_template.cifs_share_name` added in REST, requires ONTAP 9.11 or later.
- na_ontap_volume - new option `nas_application_template.snaplock.*` added in REST, requires ONTAP 9.12 or later.
- na_ontap_volume - new option `nas_application_template.snapshot_locking_enabled` added in REST, requires ONTAP 9.13.1 or later.
+- na_ontap_volume - new option `tiering_object_tags` added in REST.
+- na_ontap_volume - updated documentation for `snapshot_auto_delete`.
+- updated ZAPI deprecation warnings in README & module utilities.
+- updated `README` template, added `CHANGELOG.md` for release notes.
netapp.storagegrid
~~~~~~~~~~~~~~~~~~
@@ -6732,7 +2319,10 @@
- na_sg_grid_account - new option `allow_compliance_mode` and `max_retention_days` added for tenant account, requires storageGRID 11.9 or later.
- na_sg_grid_gateway - new option `enable_tenant_manager`, `enable_grid_manager` and `node_type` added to support management interfaces.
- na_sg_grid_group - new option `read_only` added for grid groups.
+- na_sg_grid_ha_group - added check mode support in the module.
- na_sg_grid_info - LB endpoints and HA group in info module.
+- na_sg_org_container - Enhanced the Consistency setting.
+- na_sg_org_container - new option `capacity_limit` added for bucket, requires storageGRID 11.9 or later.
- na_sg_org_group - new option `read_only` added for tenant groups.
netbox.netbox
@@ -6747,13 +2337,23 @@
- netbox_prefix - Add options scope and scope_type for NetBox 4.2+
- netbox_vm_interface - Add primary_mac_address option for NetBox 4.2+
+ovirt.ovirt
+~~~~~~~~~~~
+
+- Enable and start postfix service so that ovirt-ha-agent logs are not filled with mail notification errors (https://github.com/oVirt/ovirt-ansible-collection/pull/741)
+- Maintenance tasks regarding linting, testing and CI (https://github.com/oVirt/ovirt-ansible-collection/pull/762)
+
purestorage.flasharray
~~~~~~~~~~~~~~~~~~~~~~
- all - Minimum ``py-pure-client`` version increased to 1.57.0 due to release of Realms feature
- purefa_dsrole - Add support for non-system-defined directory service roles with new parameter `name`
+- purefa_endpoint - Converted to REST v2
+- purefa_fleet - Allows FlashBlades to be added to Fusion fleets if FlashArray is Purity//FA 6.8.5 or higher
- purefa_hg - Added support for Fusion
- purefa_host - Added Fusion support
+- purefa_host - Hosts can be created in realms and renamed within the same realm
+- purefa_host - Move function added to allow movement of host to/from realms
- purefa_info - Add ``enabled`` value for network subnets
- purefa_info - Add ``policies` list of dicts to ``filesystem`` subset for each share.
- purefa_info - Add ``time_remaining`` field for non-deleted directory snapshots
@@ -6767,6 +2367,7 @@
- purefa_info - SnaptoNFS support removed from Purity//FA 6.6.0 and higher.
- purefa_info - Update KMIP information collection to use REST v2, exposing full certifcate content
- purefa_info - VNC feature deprecated from Purity//FA 6.8.0.
+- purefa_inventory - Added support for capacity down licensing
- purefa_offload - Add support for S3 Offload ``uri`` and ``auth_region`` parameters
- purefa_pg - Added Fusion support.
- purefa_pgsched - Added support for Fusion.
@@ -6774,18 +2375,47 @@
- purefa_pgsnap - Expose created protection group snapshot data in the module return dict
- purefa_pod_replica - Added Fusion support.
- purefa_pods - Added support for Fusion with ``context`` parameter.
+- purefa_policy - Added support change a specific quota rule by name
- purefa_policy - New policy type of ``password`` added. Currently the only default management policy can be updated
- purefa_smtp - Added support for additional parameters, including encryption mode and email prefixs and email sender name.
- purefa_snap - Added Fusion support.
+- purefa_subnet - Converted to use REST 2
- purefa_subnet - Remove default value for MTU t ostop restting to default on enable/disable of subnet. Creation will still default to 1500 if not provided.
- purefa_timeout - Convert to REST v2
- purefa_user - Added parameter for SSH public keys and API token timeout
- purefa_user - Converted to use REST v2
+- purefa_user - No longer tries to expose API tokens as these are not required in the module
- purefa_user - When changing API token or timout for an existing user, the user role must be provided or it will revert to ``readonly``
- purefa_vg - Added support for Fusion
- purefa_vlan - Convert to REST v2
- purefa_vnc - VNC feature deprecated from Purity//FA 6.8.0.
- purefa_volume - Added ``context`` parameter to support fleet operations
+- purefa_volume - Added support for creating volumes in Realms
+
+purestorage.flashblade
+~~~~~~~~~~~~~~~~~~~~~~
+
+- purefb_ad - Add support for Global Catalog Servers
+- purefb_dns - Added support for multiple DNS configurations.
+- purefb_ds - SMB directory services deprecated from Purity//FB 4.5.2
+- purefb_info - Add support for Active Directory Global Catalog Servers
+- purefb_info - Added snapshot creation date-time and time_remaining, if snapshot is not deleted, to the ``snapshots`` response.
+- purefb_info - Added support for multiple DNS configurations.
+- purefb_policy - Snapshot policies can now have specific filesystems and/or replica links added or deletred from the policy
+- purefb_proxy - Added support to update existing proxy
+- purefb_proxy - Updated to REST v2
+- purefb_s3user - Changed ``key_state`` state to be ``keystate`` as ``key_state`` is reserved.
+- purefb_s3user - Changed ``remove_key`` parameter to ``key_name`` and add new ``state`` of ``key_state`` to allow a specificed key to be enabled/disabled using the new parameter ``enable_key``.
+- purefb_s3user - Updated failure messages for applying policies to an object user account.
+- purefb_subnet - ``prefix`` removed as a required parameter for updating an existing subnet
+
+telekom_mms.icinga_director
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Add API timeout option for all modules (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/282)
+- Add support for IcingaDB in inventory plugin (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/274)
+- Add zone option for icinga_user_group module (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/286)
+- Icinga dependency modules implementation (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/272)
theforeman.foreman
~~~~~~~~~~~~~~~~~~
@@ -6793,22 +2423,31 @@
- Support Kerberos/GSSAPI authentication by passing ``use_gssapi: true`` instead of ``username`` and ``password``.
- Support setting a specific CA file for certificate validation
- activation_keys, content_credentials, content_view_publish, content_views, lifecycle_environments, repositories, sync_plans roles - Allow specifying the organization for each item individually (https://github.com/theforeman/foreman-ansible-modules/issues/1653)
+- content_view - add ``rolling``-flag to create a Rolling Content View
- host, hostgroup, domain, operatingsystem, subnet, organization, location - support setting hidden parameters
+- repository - add ``rhel-10`` to os version filter choices
+- repository - add support for the ``retain_package_versions_count`` parameter
- snapshot - add ``quiesce`` option (https://github.com/theforeman/foreman-ansible-modules/pull/1810)
- templates_import - Support configuring HTTP Proxy behaviour for template import
vmware.vmware
~~~~~~~~~~~~~
+- Fixed ansible-lint errors in examples.
+- Warn the user when more than one host has the same name in the inventory plugins. Throw an error if strict is true
- _module_pyvmomi_base - Make sure to use the folder param when searching for VMs based on other common params in get_vms_using_params
- _vmware - standardize getter method names and documentation
+- add folder_paths_are_absolute option to all modules that support folder paths, allowing users to specify if folder paths are absolute and override the default behavior of intelligently determining if the path is absolute or relative. (https://github.com/ansible-collections/vmware.vmware/issues/202)
- added vm_resource_info module to collect cpu/memory facts about vms
- argument specs - Remove redundant argument specs. Update pyvmomi modules to use new consolidated spec
- clients/_pyvmomi - adds explicit init params instead of using dict
- clients/_rest - adds explicit init params instead of using dict
+- cluster_ha - Add module required_by rules for admission control arguments that are mentioned in the docs (https://github.com/ansible-collections/vmware.vmware/issues/201)
+- cluster_ha - admission_control_failover_level can now always be managed by the user's inputs, and the default value for dedicated_host policy type is the number of dedicated failover hosts (https://github.com/ansible-collections/vmware.vmware/issues/201)
- cluster_ha - migrate the vmware_cluster_ha module from community to here
- cluster_info - Migrate cluster_info module from the community.vmware collection to here
- content_library_item_info - Migrate content_library_item_info module from the vmware.vmware_rest collection to here
+- content_template - Added more options to search for the source VM like uuid and moid. Also made argument validation more accurate
- content_template - Fix bad reference of library variable that was refactored to library_id
- deploy_content_library_ovf - migrate the vmware_content_deploy_ovf_template module from community to here
- deploy_content_library_ovf - update parameters to be consistent with other deploy modules
@@ -6823,24 +2462,64 @@
- esxi_hosts inventory - include moid property in output always
- esxi_maintenance_mode - migrate esxi maintenance module from community
- folder - migrate vmware_folder module from community to here
+- guest_info - Allow user to specify folder path to help select the VM to query
- info - Made vm_name variable required only when state is set to present in content_template module
- local_content_library - migrate the vmware_content_library_manager module from community to here
+- moid_from_path - Add lookup plugins to get an objects MOID (https://github.com/ansible-collections/vmware.vmware/issues/191)
- pyvmomi - update object search by name method to use propertycollector, which speeds up results significantly
- pyvmomi module base - refactor class to use the pyvmomi shared client util class as a base
+- rename private module_utils to drop the redundant vmware prefix
- rest module base - refactor class to use the rest shared client util class as a base
- subscribed_content_library - migrate the vmware_content_library_manager module from community to here
- upload_content_library_ovf - Add module to upload an ovf/ova to a content library
+- vcsa_backup_schedule - Add module to manage the vCenter backup schedule
+- vcsa_backup_schedule_info - Add module to gather info about the vCenter backup schedules
+- vcsa_settings - Add always_update_password parameter to proxy settings, which can be used to control if the password should be updated.
+- vm_advanced_settings - Add module to manage the advanced settings on a VM
+- vm_powerstate - Add better error message when scheduling a power state task in the past
- vm_powerstate - migrate vmware_guest_powerstate module from community to here
+- vm_snapshot - migrate vmware_guest_snapshot module from community to here
- vms - Add inventory host filtering based on jinja statements
- vms - added vms inventory plugin. consolidated shared docs/code with esxi hosts inventory plugin
+- vms inventory - Fixed issue where a user could accidentally not collect a required parameter, config.guestId
- vms inventory - include moid property in output always
vmware.vmware_rest
~~~~~~~~~~~~~~~~~~
- Deprecated modules with redundant functionality in vmware.vmware. The next major release is currently not planned, so no removal date is provided. See https://github.com/ansible-collections/vmware.vmware_rest/issues/589
+- change cloud.common dependency to 4.1 to support anisble 2.19
- info - changed relative links in README.md to absolute links
+vyos.vyos
+~~~~~~~~~
+
+- README.md - Add Communication section with Forum information.
+- vyos_bgp_address_family - Redistribute, network stanza - added support for modifiers (metric, backdoor etc as per T6829)
+- vyos_bgp_global - Added support for `solo` neighbor attribute
+- vyos_config - block get_config call if match is set to "none"
+- vyos_facts - added `network_os_major_version` to facts
+- vyos_firewall_global - Added support for input, output, and forward chains (1.4+)
+- vyos_firewall_global - Added support for log-level in state-policy (1.4+)
+- vyos_firewall_global - with 1.4+, use the the global keyword to define global firewall rules
+- vyos_firewall_interfaces - added support for VIF interfaces
+- vyos_firewall_interfaces - enable support for 1.4 firewall
+- vyos_firewall_interfaces - expanded firewall interface types to match existing types
+- vyos_firewall_rules - Add support for diff mode for rulesets
+- vyos_firewall_rules - Added support for 1.4+ firewall rules
+- vyos_firewall_rules - Fixed comparing of firewall rules
+- vyos_firewall_rules - added support for 1.5+ firewall `match-ipsec-in`, `match-ipsec-out`, `match-none-in`, `match-none-out`
+- vyos_firewall_rules - added support for packet-length-exclude for 1.4+ and the states
+- vyos_l3_interfaces - make l3_interfaces pick up loopback interfaces
+- vyos_lldp_global - address is now addresses, with appropriate coercion for existing address keys
+- vyos_ntp_global - Added ntp options for 1.5+ (interleave, ptp)
+- vyos_ntp_global - Added support for VyOS 1.4+ (chronyd vs ntpd)
+- vyos_ntp_global - Added syntax for allow_client in 1.4+
+- vyos_ospf_interaces - support for 1.4 ospf interfaces
+- vyos_ospf_interfaces - add support for VyOS 1.3- virtual interfaces
+- vyos_ospf_interfaces - add support for VyOS 1.4+, which moved interface configuration from the interfaces to ospf/ospfv3 interfaces configuration
+- vyos_route_maps - add support for as-path-prepend policy option
+
Breaking Changes / Porting Guide
--------------------------------
@@ -6874,12 +2553,65 @@
- templating - The result of the ``range()`` global function cannot be returned from a template- it should always be passed to a filter (e.g., ``random``). Previously, range objects returned from an intermediate template were always converted to a list, which is inconsistent with inline consumption of range objects.
- templating - ``#jinja2:`` overrides in templates with invalid override names or types are now templating errors.
+amazon.aws
+~~~~~~~~~~
+
+- amazon.aws collection - Support for ansible-core < 2.17 has been dropped (https://github.com/ansible-collections/amazon.aws/pull/2601).
+- amazon.aws collection - Support for the ``EC2_ACCESS_KEY`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``access_key`` parameter or ``AWS_ACCESS_KEY_ID`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - Support for the ``EC2_REGION`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``region`` parameter or ``AWS_REGION`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - Support for the ``EC2_SECRET_KEY`` environment variable was deprecated in release ``6.0.0`` and has now been removed. Please use the ``secret_key`` parameter or ``AWS_SECRET_ACCESS_KEY`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - Support for the ``EC2_SECURITY_TOKEN`` and ``AWS_SECURITY_TOKEN`` environment variables were deprecated in release ``6.0.0`` and have now been removed. Please use the ``session_token`` parameter or ``AWS_SESSION_TOKEN`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - Support for the ``EC2_URL`` and ``S3_URL`` environment variables were deprecated in release ``6.0.0`` and have now been removed. Please use the ``endpoint_url`` parameter or ``AWS_URL`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``access_token``, ``aws_security_token`` and ``security_token`` aliases for the ``session_token`` parameter were deprecated in release ``6.0.0`` and have now been removed. Please use the ``session_token`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``boto_profile`` alias for the ``profile`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``profile`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``ec2_access_key`` alias for the ``access_key`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``access_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``ec2_region`` alias for the ``region`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``region`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``ec2_secret_key`` alias for the ``secret_key`` parameter was deprecated in release ``6.0.0`` and has now been removed. Please use the ``secret_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- amazon.aws collection - The ``endpoint``, ``ec2_url`` and ``s3_url`` aliases for the ``endpoint_url`` parameter were deprecated in release ``6.0.0`` and have now been removed. Please use the ``region`` name instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- docs_fragments - The previously deprecated ``amazon.aws.aws_credentials`` docs fragment has been removed please use ``amazon.aws.common.plugins`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- docs_fragments - The previously deprecated ``amazon.aws.aws_region`` docs fragment has been removed please use ``amazon.aws.region.plugins`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- docs_fragments - The previously deprecated ``amazon.aws.aws`` docs fragment has been removed please use ``amazon.aws.common.modules`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- docs_fragments - The previously deprecated ``amazon.aws.ec2`` docs fragment has been removed please use ``amazon.aws.region.modules`` instead (https://github.com/ansible-collections/amazon.aws/pull/2527).
+- ec2_vpc_peering_info - the `result` key has been removed from the return value. `vpc_peering_connections` should be used instead (https://github.com/ansible-collections/amazon.aws/pull/2618).
+- module_utils.botocore - drop deprecated ``boto3`` parameter for ``get_aws_region()`` and ``get_aws_connection_info()``, this parameter has had no effect since release 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2443).
+- module_utils.ec2 - drop deprecated ``boto3`` parameter for ``get_ec2_security_group_ids_from_names()`` and ``get_aws_connection_info()``, this parameter has had no effect since release 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2603).
+- rds_param_group - the redirect has been removed and playbooks should be updated to use rds_instance_param_group (https://github.com/ansible-collections/amazon.aws/pull/2618).
+
ansible.posix
~~~~~~~~~~~~~
- firewalld - Changed the type of forward and masquerade options from str to bool (https://github.com/ansible-collections/ansible.posix/issues/582).
- firewalld - Changed the type of icmp_block_inversion option from str to bool (https://github.com/ansible-collections/ansible.posix/issues/586).
+community.aws
+~~~~~~~~~~~~~
+
+- Support for ``ansible-core<2.17`` has been dropped (https://github.com/ansible-collections/community.aws/pull/2303).
+- The community.aws collection has dropped support for ``botocore<1.31.0`` and ``boto3<1.28.0``. Most modules will continue to work with older versions of the AWS SDK. However, compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/2195).
+- connection/aws_ssm - The connection plugin has been migrated from the ``community.aws`` collection. Playbooks or Inventory using the Fully Qualified Collection Name for this connection plugin should be updated to use ``amazon.aws.aws_ssm``.
+
+community.crypto
+~~~~~~~~~~~~~~~~
+
+- All doc_fragments are now private to the collection and must not be used from other collections or unrelated plugins/modules. Breaking changes in these can happen at any time, even in bugfix releases (https://github.com/ansible-collections/community.crypto/pull/898).
+- All module_utils and plugin_utils are now private to the collection and must not be used from other collections or unrelated plugins/modules. Breaking changes in these can happen at any time, even in bugfix releases (https://github.com/ansible-collections/community.crypto/pull/887).
+- Ignore value of ``select_crypto_backend`` for all modules except acme_* and ..., and always assume the value ``auto``. This ensures that the ``cryptography`` version is always checked (https://github.com/ansible-collections/community.crypto/pull/883).
+- The validation for relative timestamps is now more strict. A string starting with ``+`` or ``-`` must be valid, otherwise validation will fail. In the past such strings were often silently ignored, and in many cases the code which triggered the validation was not able to handle no result (https://github.com/ansible-collections/community.crypto/pull/885).
+- acme.certificates module utils - the ``retrieve_acme_v1_certificate()`` helper function has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
+- get_certificate - the default for ``asn1_base64`` changed from ``false`` to ``true`` (https://github.com/ansible-collections/community.crypto/pull/873).
+- x509_crl - the ``mode`` parameter no longer denotes the update mode, but the CRL file mode. Use ``crl_mode`` instead for the update mode (https://github.com/ansible-collections/community.crypto/pull/873).
+
+community.hashi_vault
+~~~~~~~~~~~~~~~~~~~~~
+
+- ansible-core - support for all end-of-life versions of ``ansible-core`` has been dropped. The collection is tested with ``ansible-core>=2.17`` (https://github.com/ansible-collections/community.hashi_vault/issues/470).
+- python - support for older versions of Python has been dropped. The collection is tested with all supported controller-side versions and a few lower target-side versions depending on the tests (https://github.com/ansible-collections/community.hashi_vault/issues/470).
+
+community.okd
+~~~~~~~~~~~~~
+
+- Remove openshift inventory plugin deprecated in 3.0.0 (https://github.com/openshift/community.okd/pull/252).
+
community.postgresql
~~~~~~~~~~~~~~~~~~~~
@@ -6887,6 +2619,12 @@
- postgresql_pg_hba - regarding #776 'keep_comments_at_rules' has been deprecated and won't do anything, the default is to keep the comments at the rules they are specified with. keep_comments_at_rules will be removed in 5.0.0 (https://github.com/ansible-collections/community.postgresql/pull/778)
- postgresql_user - the ``db`` alias is deprecated and will be removed in the next major release, use the ``login_db`` argument instead.
+community.zabbix
+~~~~~~~~~~~~~~~~
+
+- All Roles - Remove support for Ubuntu 20.04
+- zabbix 6.4 in roles is no longer supported
+
dellemc.enterprise_sonic
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -6895,20 +2633,70 @@
- sonic_route_maps - Change the 'set ip_next_hop' option from a single-line option to a dictionary (https://github.com/ansible-collection/dellemc.enterprise_sonic/pull/421).
- sonic_vlan_mapping - New vlan_mapping resource module. The users of the vlan_mapping resource module with playbooks written for the SONiC 4.1 will need to revise their playbooks based on the new argspec to use those playbooks for SONiC 4.2 and later versions. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/296).
+hetzner.hcloud
+~~~~~~~~~~~~~~
+
+- Drop support for ansible-core 2.15.
+- Drop support for ansible-core 2.16.
+- Drop support for python 3.8.
+- inventory - The default value for the `hostvars_prefix` option is now set to `hcloud_`. Make sure to update all references to host variables provided by the inventory. You may revert this change by setting the `hostvars_prefix` option to `""`.
+- server - The deprecated ``force_upgrade`` argument is removed from the server module. Please use the ``force`` argument instead.
+- volume - Volumes are no longer detached when the server argument is not provided. Please use the ``volume_attachment`` module to manage volume attachments.
+
+kubernetes.core
+~~~~~~~~~~~~~~~
+
+- Remove deprecated ``k8s`` invetory plugin (https://github.com/ansible-collections/kubernetes.core/pull/867).
+- Remove support for ``ansible-core<2.16`` (https://github.com/ansible-collections/kubernetes.core/pull/867).
+
theforeman.foreman
~~~~~~~~~~~~~~~~~~
- Drop support for Ansible 2.9.
- Drop support for Python 2.7 and 3.5.
+vmware.vmware
+~~~~~~~~~~~~~
+
+- drop support for ansible 2.15 since it is EOL https://github.com/ansible-collections/vmware.vmware/issues/103
+- updated minimum pyVmomi version to 8.0.3.0.1 https://github.com/ansible-collections/vmware.vmware/issues/56
+
+vyos.vyos
+~~~~~~~~~
+
+- Removed `vyos_logging`. Use `vyos_logging_global` instead.
+- lldp_global - if "address" is available, merge will cause it to be added, in contrast to the previous behavior where it was replaced. When used in replace mode, it will remove any existing addresses and replace them with the new one.
+- vyos_bgp_address_family - Support for 1.3+ VyOS only
+- vyos_bgp_global - Support for 1.3+ VyOS only
+- vyos_firewall_rules - removed p2p options as they have been removed prior to 1.3 of VyOS
+- vyos_firewall_rules - tcp.flags is now a list with an inversion flag to support 1.4+ firewall rules, but still supports 1.3-
+- vyos_lldp_global - civic_address is no longer a valid key (removed prior to 1.3)
+- vyos_logging_global - For 1.4, `protocol` is an attribute of the syslog host, not the facility
+- vyos_snmp_server - no longer works with versions prior to 1.3
+- vyos_snmp_server - parameter `engine_id` is no longer a `user` or `trap_target` parameter and is now a `snmp_v3` parameter
+- vyos_snmp_server - parameters `encrypted-key` and `plaintext-key` are now `encrypted-password` and `plaintext-password`
+- vyos_user - explicit support for version 1.3+ only
+- vyos_user - removed level (and its alias, role) they were removed in 1.3
+
Deprecated Features
-------------------
+- The ``ibm.qradar`` collection has been deprecated.
+ It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13.
+ See `Collections Removal Process for unmaintained collections `__ for more details (`https://forum.ansible.com/t/44259 `__).
+
Ansible-core
~~~~~~~~~~~~
- CLI - The ``--inventory-file`` option alias is deprecated. Use the ``-i`` or ``--inventory`` option instead.
+- Jinja test plugins - Returning a non-boolean result from a Jinja test plugin is deprecated.
+- Passing a ``warnings` or ``deprecations`` key to ``exit_json`` or ``fail_json`` is deprecated. Use ``AnsibleModule.warn`` or ``AnsibleModule.deprecate`` instead.
- Strategy Plugins - Use of strategy plugins not provided in ``ansible.builtin`` are deprecated and do not carry any backwards compatibility guarantees going forward. A future release will remove the ability to use external strategy plugins. No alternative for third party strategy plugins is currently planned.
+- The ``ShellModule.checksum`` method is now deprecated and will be removed in ansible-core 2.23. Use ``ActionBase._execute_remote_stat()`` instead.
+- The ``ansible.module_utils.common.collections.count()`` function is deprecated and will be removed in ansible-core 2.23. Use ``collections.Counter()`` from the Python standard library instead.
+- YAML parsing - Usage of the YAML 1.1 ``!!omap`` and ``!!pairs`` tags is deprecated. Use standard mappings instead.
+- YAML parsing - Usage of the undocumented ``!vault-encrypted`` YAML tag is deprecated. Use ``!vault`` instead.
+- ``ansible.compat.importlib_resources`` is deprecated and will be removed in ansible-core 2.23. Use ``importlib.resources`` from the Python standard library instead.
- ``ansible.module_utils.compat.datetime`` - The datetime compatibility shims are now deprecated. They are scheduled to be removed in ``ansible-core`` v2.21. This includes ``UTC``, ``utcfromtimestamp()`` and ``utcnow`` importable from said module (https://github.com/ansible/ansible/pull/81874).
- bool filter - Support for coercing unrecognized input values (including None) has been deprecated. Consult the filter documentation for acceptable values, or consider use of the ``truthy`` and ``falsy`` tests.
- cache plugins - The `ansible.plugins.cache.base` Python module is deprecated. Use `ansible.plugins.cache` instead.
@@ -6916,16 +2704,30 @@
- callback plugins - The v1 callback API (callback methods not prefixed with `v2_`) is deprecated. Use `v2_` prefixed methods instead.
- conditionals - Conditionals using Jinja templating delimiters (e.g., ``{{``, ``{%``) should be rewritten as expressions without delimiters, unless the entire conditional value is a single template that resolves to a trusted string expression. This is useful for dynamic indirection of conditional expressions, but is limited to trusted literal string expressions.
- config - The ``ACTION_WARNINGS`` config has no effect. It previously disabled command warnings, which have since been removed.
+- config - The ``DEFAULT_ALLOW_UNSAFE_LOOKUPS`` configuration option is deprecated and no longer has any effect. Ansible templating no longer encounters situations where use of lookup plugins is considered "unsafe".
- config - The ``DEFAULT_JINJA2_NATIVE`` option has no effect. Jinja2 native mode is now the default and only option.
- config - The ``DEFAULT_NULL_REPRESENTATION`` option has no effect. Null values are no longer automatically converted to another value during templating of single variable references.
+- config - The ``DEFAULT_UNDEFINED_VAR_BEHAVIOR`` configuration option is deprecated and no longer has any effect. Attempting to use an undefined variable where undefined values are unexpected is now always an error. This behavior was enabled by default in previous versions, and disabling it yielded inconsistent results.
+- config - The ``STRING_TYPE_FILTERS`` configuration option is deprecated and no longer has any effect. Since the template engine now always preserves native types, there is no longer a risk of unintended conversion from strings to native types.
+- config - Using the ``DEFAULT_JINJA2_EXTENSIONS`` configuration option to enable Jinja2 extensions is deprecated. Previously, custom Jinja extensions were disabled by default, as they can destabilize the Ansible templating environment. Templates should only make use of filter, test and lookup plugins.
+- config - Using the ``DEFAULT_MANAGED_STR`` configuration option to customize the value of the ``ansible_managed`` variable is deprecated. The ``ansible_managed`` variable can now be set the same as any other variable.
- display - The ``Display.get_deprecation_message`` method has been deprecated. Call ``Display.deprecated`` to display a deprecation message, or call it with ``removed=True`` to raise an ``AnsibleError``.
- file loading - Loading text files with ``DataLoader`` containing data that cannot be decoded under the expected encoding is deprecated. In most cases the encoding must be UTF-8, although some plugins allow choosing a different encoding. Previously, invalid data was silently wrapped in Unicode surrogate escape sequences, often resulting in later errors or other data corruption.
- first_found lookup - Splitting of file paths on ``,;:`` is deprecated. Pass a list of paths instead. The ``split`` method on strings can be used to split variables into a list as needed.
- interpreter discovery - The ``auto_legacy`` and ``auto_legacy_silent`` options for ``INTERPRETER_PYTHON`` are deprecated. Use ``auto`` or ``auto_silent`` options instead, as they have the same effect.
+- inventory plugins - Setting invalid Ansible variable names in inventory plugins is deprecated.
- oneline callback - The ``oneline`` callback and its associated ad-hoc CLI args (``-o``, ``--one-line``) are deprecated.
- paramiko - The paramiko connection plugin has been deprecated with planned removal in 2.21.
+- playbook - The ``timedout.frame`` task result value (injected when a task timeout occurs) is deprecated. Include ``error`` in the ``DISPLAY_TRACEBACK`` config value to capture a full Python traceback for timed out actions.
+- playbook syntax - Specifying the task ``args`` keyword without a value is deprecated.
+- playbook syntax - Using ``key=value`` args and the task ``args`` keyword on the same task is deprecated.
+- playbook syntax - Using a mapping with the ``action`` keyword is deprecated. (https://github.com/ansible/ansible/issues/84101)
- playbook variables - The ``play_hosts`` variable has been deprecated, use ``ansible_play_batch`` instead.
- plugin error handling - The ``AnsibleError`` constructor arg ``suppress_extended_error`` is deprecated. Using ``suppress_extended_error=True`` has the same effect as ``show_content=False``.
+- plugins - Accessing plugins with ``_``-prefixed filenames without the ``_`` prefix is deprecated.
+- public API - The ``ansible.errors.AnsibleFilterTypeError`` exception type has been deprecated. Use ``AnsibleTypeError`` instead.
+- public API - The ``ansible.errors._AnsibleActionDone`` exception type has been deprecated. Action plugins should return a task result dictionary in success cases instead of raising.
+- public API - The ``ansible.module_utils.common.json.json_dump`` function is deprecated. Call Python stdlib ``json.dumps`` instead, with ``cls`` set to an Ansible profile encoder type from ``ansible.module_utils.common.json.get_encoder``.
- template lookup - The jinja2_native option is no longer used in the Ansible Core code base. Jinja2 native mode is now the default and only option.
- templating - Support for enabling Jinja2 extensions (not plugins) has been deprecated.
- templating - The ``disable_lookups`` option has no effect, since plugins must be updated to apply trust before any templating can be performed.
@@ -6953,13 +2755,70 @@
- ios_vlans - deprecate mtu, please use ios_interfaces to configure mtu to the interface where vlans is applied.
+cisco.nxos
+~~~~~~~~~~
+
+- nxos_hsrp - deprecate nxos.nxos.nxos_hsrp in favor of nxos.nxos.nxos_hsrp_interfaces.
+- nxos_vrf_interface - deprecate nxos.nxos.nxos_vrf_interface in favor of nxos.nxos.nxos_vrf_interfaces.
+
+community.aws
+~~~~~~~~~~~~~
+
+- community.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.8 by this collection has been deprecated and will removed in release 10.0.0 (https://github.com/ansible-collections/community.aws/pull/2195).
+
community.crypto
~~~~~~~~~~~~~~~~
- Support for ansible-core 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16 is deprecated, and will be removed in the next major release (community.crypto 3.0.0). Some modules might still work with some of these versions afterwards, but we will no longer keep compatibility code that was needed to support them. Note that this means that support for all Python versions before 3.7 will be dropped, also on the target side (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
- Support for cryptography < 3.4 is deprecated, and will be removed in the next major release (community.crypto 3.0.0). Some modules might still work with older versions of cryptography, but we will no longer keep compatibility code that was needed to support them (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
+- acme_certificate - deprecate the ``agreement`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
+- acme_certificate - the option ``modify_account``'s default value ``true`` has been deprecated. It will change to ``false`` in community.crypto 4.0.0. We recommend to set the option to an explicit value to avoid deprecation warnings, and to prefer setting it to ``false`` already now. Better use the ``community.crypto.acme_account`` module instead (https://github.com/ansible-collections/community.crypto/issues/924).
+- openssl_pkcs12 - deprecate the ``maciter_size`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
- openssl_pkcs12 - the PyOpenSSL based backend is deprecated and will be removed from community.crypto 3.0.0. From that point on you need cryptography 3.0 or newer to use this module (https://github.com/ansible-collections/community.crypto/issues/667, https://github.com/ansible-collections/community.crypto/pull/831).
+community.general
+~~~~~~~~~~~~~~~~~
+
+- MH module utils - attribute ``debug`` definition in subclasses of MH is now deprecated, as that name will become a delegation to ``AnsibleModule`` in community.general 12.0.0, and any such attribute will be overridden by that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577).
+- The proxmox content (modules and plugins) is being moved to the `new collection community.proxmox `__. In community.general 11.0.0, these modules and plugins will be replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10109).
+- atomic_container - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- atomic_host - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- atomic_image - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- bearychat - module is deprecated and will be removed in community.general 12.0.0 (https://github.com/ansible-collections/community.general/issues/10514).
+- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
+- cpanm - deprecate ``mode=compatibility``, ``mode=new`` should be used instead (https://github.com/ansible-collections/community.general/pull/10434).
+- facter - module is deprecated and will be removed in community.general 12.0.0, use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451).
+- github_repo - deprecate ``force_defaults=true`` (https://github.com/ansible-collections/community.general/pull/10435).
+- locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238).
+- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
+- opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172).
+- pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227).
+- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
+- profitbricks - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_datacenter - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_nic - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_volume - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_volume_attachments - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- pure module utils - the module utils is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
+- purestorage doc fragments - the doc fragment is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
+- redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` (https://github.com/ansible-collections/community.general/pull/9190).
+- rocketchat - the default value for ``is_pre740``, currently ``true``, is deprecated and will change to ``false`` in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490).
+- sensu_check - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_client - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_handler - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_silence - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_subscription - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443).
+- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
+- yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456).
+- yaml callback plugin - the YAML callback plugin was deprecated for removal in community.general 13.0.0. Since it needs to use ansible-core internals since ansible-core 2.19 that are changing a lot, we will remove this plugin already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213).
+
+community.hashi_vault
+~~~~~~~~~~~~~~~~~~~~~
+
+- ansible-core - support for several ``ansible-core`` versions will be dropped in ``v7.0.0``. The collection will focus on current supported versions of ``ansible-core`` going forward and more agressively drop end-of-life or soon-to-be EOL versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
+- python - support for several ``python`` versions will be dropped in ``v7.0.0``. The collection will focus on ``python`` versions that are supported by the active versions of ``ansible-core`` on the controller side at a minimum, and some subset of target versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
+
community.hrobot
~~~~~~~~~~~~~~~~
@@ -6968,6 +2827,8 @@
community.postgresql
~~~~~~~~~~~~~~~~~~~~
+- postgresql modules - the ``port`` alias is deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_port`` argument instead.
+- postgresql modules = the ``login``, ``unix_socket`` and ``host`` aliases are deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_user``, ``login_unix_socket`` and ``login_host`` arguments instead.
- postgresql_copy - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_db - the ``rename`` choice of the state option is deprecated and will be removed in version 5.0.0, use the ``postgresql_query`` module instead.
- postgresql_ext - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
@@ -6982,6 +2843,7 @@
- postgresql_script - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_sequence - the ``rename_to`` option is deprecated and will be removed in version 5.0.0, use the ``postgresql_query`` module instead.
- postgresql_sequence - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
+- postgresql_set - the module has been deprecated and will be removed in ``community.postgresql 5.0.0``. Please use the ``community.postgresql.postgresql_alter_system`` module instead (https://github.com/ansible-collections/community.postgresql/issues/823).
- postgresql_set - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_slot - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_subscription - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
@@ -6994,6 +2856,7 @@
community.vmware
~~~~~~~~~~~~~~~~
+- module_utils.vmware - Deprecate ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- module_utils.vmware - host_version_at_least is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2303).
- plugin_utils.inventory - this plugin util is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2304).
- plugins.httpapi - this is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2306).
@@ -7009,30 +2872,78 @@
- vmware_content_deploy_ovf_template - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_deploy_template - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_library_manager - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2345).
+- vmware_dvs_portgroup - ``mac_learning`` is deprecated in favour of ``network_policy.mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
+- vmware_guest_powerstate - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2398).
- vmware_host - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2337).
- vmware_host_inventory - the inventory plugin is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
- vmware_maintenancemode - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2293).
- vmware_rest_client - get_folder_by_name is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware_vm_inventory - the inventory plugin is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
+community.windows
+~~~~~~~~~~~~~~~~~
+
+- win_audit_policy_system - Deprecated module and will be redirected to ``ansible.windows.win_audit_policy_system``. Use ``ansible.windows.win_audit_policy_system`` instead as the redirection will be removed in 4.0.0
+- win_audit_rule - Deprecated module and will be redirected to ``ansible.windows.win_audit_rule``. Use ``ansible.windows.win_audit_rule`` instead as the redirection will be removed in 4.0.0
+- win_auto_logon - Deprecated module and will be redirected to ``ansible.windows.win_auto_logon``. Use ``ansible.windows.win_auto_logon`` instead as the redirection will be removed in 4.0.0
+- win_certificate_info - Deprecated module and will be redirected to ``ansible.windows.win_certificate_info``. Use ``ansible.windows.win_certificate_info`` instead as the redirection will be removed in 4.0.0
+- win_computer_description - Deprecated module and will be redirected to ``ansible.windows.win_computer_description``. Use ``ansible.windows.win_computer_description`` instead as the redirection will be removed in 4.0.0
+- win_credential - Deprecated module and will be redirected to ``ansible.windows.win_credential``. Use ``ansible.windows.win_credential`` instead as the redirection will be removed in 4.0.0
+- win_dhcp_lease - Deprecated module and will be redirected to ``ansible.windows.win_dhcp_lease``. Use ``ansible.windows.win_dhcp_lease`` instead as the redirection will be removed in 4.0.0
+- win_dns_record - Deprecated module and will be redirected to ``ansible.windows.win_dns_record``. Use ``ansible.windows.win_dns_record`` instead as the redirection will be removed in 4.0.0
+- win_dns_zone - Deprecated module and will be redirected to ``ansible.windows.win_dns_zone``. Use ``ansible.windows.win_dns_zone`` instead as the redirection will be removed in 4.0.0
+- win_eventlog - Deprecated module and will be redirected to ``ansible.windows.win_eventlog``. Use ``ansible.windows.win_eventlog`` instead as the redirection will be removed in 4.0.0
+- win_feature_info - Deprecated module and will be redirected to ``ansible.windows.win_feature_info``. Use ``ansible.windows.win_feature_info`` instead as the redirection will be removed in 4.0.0
+- win_file_compression - Deprecated module and will be redirected to ``ansible.windows.win_file_compression``. Use ``ansible.windows.win_file_compression`` instead as the redirection will be removed in 4.0.0
+- win_firewall - Deprecated module and will be redirected to ``ansible.windows.win_firewall``. Use ``ansible.windows.win_firewall`` instead as the redirection will be removed in 4.0.0
+- win_hosts - Deprecated module and will be redirected to ``ansible.windows.win_hosts``. Use ``ansible.windows.win_hosts`` instead as the redirection will be removed in 4.0.0
+- win_hotfix - Deprecated module and will be redirected to ``ansible.windows.win_hotfix``. Use ``ansible.windows.win_hotfix`` instead as the redirection will be removed in 4.0.0
+- win_http_proxy - Deprecated module and will be redirected to ``ansible.windows.win_http_proxy``. Use ``ansible.windows.win_http_proxy`` instead as the redirection will be removed in 4.0.0
+- win_iis_virtualdirectory - Deprecated module, use ``microsoft.iis.virtual_directory`` instead as the module will be removed in 4.0.0
+- win_iis_webapplication - Deprecated module, use ``microsoft.iis.web_application`` instead instead as the module will be removed in 4.0.0
+- win_iis_webapppool - Deprecated module, use ``microsoft.iis.web_app_pool`` instead instead as the module will be removed in 4.0.0
+- win_iis_webbinding - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
+- win_iis_website - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
+- win_inet_proxy - Deprecated module and will be redirected to ``ansible.windows.win_inet_proxy``. Use ``ansible.windows.win_inet_proxy`` instead as the redirection will be removed in 4.0.0
+- win_listen_ports_facts - Deprecated module and will be redirected to ``ansible.windows.win_listen_ports_facts``. Use ``ansible.windows.win_listen_ports_facts`` instead as the redirection will be removed in 4.0.0
+- win_mapped_drive - Deprecated module and will be redirected to ``ansible.windows.win_mapped_drive``. Use ``ansible.windows.win_mapped_drive`` instead as the redirection will be removed in 4.0.0
+- win_product_facts - Deprecated module and will be redirected to ``ansible.windows.win_product_facts``. Use ``ansible.windows.win_product_facts`` instead as the redirection will be removed in 4.0.0
+- win_region - Deprecated module and will be redirected to ``ansible.windows.win_region``. Use ``ansible.windows.win_region`` instead as the redirection will be removed in 4.0.0
+- win_route - Deprecated module and will be redirected to ``ansible.windows.win_route``. Use ``ansible.windows.win_route`` instead as the redirection will be removed in 4.0.0
+- win_timezone - Deprecated module and will be redirected to ``ansible.windows.win_timezone``. Use ``ansible.windows.win_timezone`` instead as the redirection will be removed in 4.0.0
+- win_user_profile - Deprecated module and will be redirected to ``ansible.windows.win_user_profile``. Use ``ansible.windows.win_user_profile`` instead as the redirection will be removed in 4.0.0
+
+community.zabbix
+~~~~~~~~~~~~~~~~
+
+- Web Role - Depricated `zabbix_web_SSLSessionCacheTimeout` for `zabbix_web_ssl_session_cache_timeout`
+- Web Role - Depricated `zabbix_web_SSLSessionCache` for `zabbix_web_ssl_session_cache`
+
vmware.vmware_rest
~~~~~~~~~~~~~~~~~~
- content_library_item_info - the module has been deprecated and will be removed in vmware.vmware_rest 5.0.0
+- lookup plugins - Deprecate all lookup plugins in favor of vmware.vmware.moid_from_path (https://github.com/ansible-collections/vmware.vmware_rest/pull/608)
+
+vyos.vyos
+~~~~~~~~~
+
+- vyos_bgp_global - no_ipv4_unicast - deprecated for use with VyOS 1.4+, use `ipv4_unicast` instead
+- vyos_firewall_interfaces - deprecated for use with VyOS 1.4+, firewalls are no longer connected directly to interfaces. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow, interface, or zone.
+- vyos_lldp_global - `address` is deprecated, use `addresses` instead. To be removed in 7.0.0.
+- vyos_logging_global - `protocol` is deprecated for 1.4 and later, use `facility` instead. To be removed in next major version where supprot for 1.3 is removed
Removed Features (previously deprecated)
----------------------------------------
+- The ``cisco.ise`` collection was considered unmaintained and has been removed from Ansible 12 (`https://forum.ansible.com/t/43367 `__).
+ Users can still install this collection with ``ansible-galaxy collection install cisco.ise``.
- The collection ``ibm.spectrum_virtualize`` has been completely removed from Ansible.
It has been renamed to ``ibm.storage_virtualize``.
The collection will be completely removed from Ansible eventually.
Please update your FQCNs from ``ibm.spectrum_virtualize`` to ``ibm.storage_virtualize``.
- The deprecated ``cisco.asa`` collection has been removed (`https://forum.ansible.com/t/38960 `__).
- The deprecated ``community.network`` collection has been removed (`https://forum.ansible.com/t/8030 `__).
-- The google.cloud collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements.
- The collection has \ `unresolved sanity test failures `__.
- See `Collections Removal Process for collections not satisfying the collection requirements `__ for more details (`https://forum.ansible.com/t/8609 `__).
- Users can still install this collection with ``ansible-galaxy collection install google.cloud``.
- The sensu.sensu_go collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements.
The collection has \ `unresolved sanity test failures `__.
See `Collections Removal Process for collections not satisfying the collection requirements `__ for more details (`https://forum.ansible.com/t/8380 `__).
@@ -7055,6 +2966,15 @@
- skippy - Remove skippy pluglin as it is no longer supported(https://github.com/ansible-collections/ansible.posix/issues/350).
+ansible.windows
+~~~~~~~~~~~~~~~
+
+- win_domain - Removed deprecated module, use ``microsoft.ad.domain`` instead
+- win_domain_controller - Removed deprecated module, use ``microsoft.ad.domain_controller`` instead
+- win_domain_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
+- win_feature - Removed deprecated return value ``restart_needed`` in ``feature_result``, use ``reboot_required`` instead
+- win_updates - Removed deprecated return value ``filtered_reason``, use ``filtered_reasons`` instead
+
cisco.nxos
~~~~~~~~~~
@@ -7065,6 +2985,83 @@
- nxos_snmp_location
- nxos_snmp_user
+community.crypto
+~~~~~~~~~~~~~~~~
+
+- All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust's Public Certificates Business to Sectigo; see `the announcement with key dates `__ and `the migration brief for customers `__ for details. Since this process will be completed in 2025, we decided to remove all Entrust content from community.general 3.0.0 (https://github.com/ansible-collections/community.crypto/issues/895, https://github.com/ansible-collections/community.crypto/pull/901).
+- The collection no longer supports cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878, https://github.com/ansible-collections/community.crypto/pull/882).
+- acme.acme module utils - the ``get_default_argspec()`` function has been removed. Use ``create_default_argspec()`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme.backends module utils - the methods ``get_ordered_csr_identifiers()`` and ``get_cert_information()`` of ``CryptoBackend`` now must be implemented (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme.documentation docs fragment - the ``documentation`` docs fragment has been removed. Use both the ``basic`` and ``account`` docs fragments in ``acme`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme_* modules - support for ACME v1 has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
+- community.crypto no longer supports Ansible 2.9, ansible-base 2.10, and ansible-core versions 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16. While content from this collection might still work with some older versions of ansible-core, it will not work with any Python version before 3.7 (https://github.com/ansible-collections/community.crypto/pull/870).
+- crypto.basic module utils - remove ``CRYPTOGRAPHY_HAS_*`` flags. All tested features are supported since cryptography 3.0 (https://github.com/ansible-collections/community.crypto/pull/878).
+- crypto.cryptography_support module utils - remove ``cryptography_serial_number_of_cert()`` helper function (https://github.com/ansible-collections/community.crypto/pull/878).
+- crypto.module_backends.common module utils - this module utils has been removed. Use the ``argspec`` module utils instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- crypto.support module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
+- ecs_certificate - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
+- ecs_domain - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
+- execution environment dependencies - remove PyOpenSSL dependency (https://github.com/ansible-collections/community.crypto/pull/874).
+- openssl_csr_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+- openssl_pkcs12 - support for the ``pyopenssl`` backend has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
+- openssl_privatekey_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+- time module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
+- x509_certificate - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
+- x509_certificate_pipe - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
+- x509_certificate_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+
+community.general
+~~~~~~~~~~~~~~~~~
+
+- Dropped support for ansible-core 2.15. The collection now requires ansible-core 2.16 or newer. This means that on the controller, Python 3.10+ is required. On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192).
+- The Proxmox content (modules and plugins) has been moved to the `new collection community.proxmox `__. Since community.general 11.0.0, these modules and plugins have been replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``, or by installing a new enough version of the Ansible community package. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10110).
+- apt_rpm - the ``present`` and ``installed`` states are no longer equivalent to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126).
+- clc_* modules and doc fragment - the modules were removed since CenturyLink Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126).
+- django_manage - the ``ack_venv_creation_deprecation`` option has been removed. It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126).
+- git_config - it is no longer allowed to use ``state=present`` with no value to read the config value. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
+- git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
+- hipchat - the module was removed since the hipchat service has been discontinued and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126).
+- manifold lookup plugin - the plugin was removed since the company was acquired in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.mixins.deps module utils - this module utils has been removed. Use the ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` module utils and no longer from the removed ``mh.mixins.vars`` module utils (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` from ``ModuleHelper`` have been removed. We suggest to remove them from your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126).
+- module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
+- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
+- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
+- profitbrick* modules - the modules were removed since the supporting library is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126).
+- redfish_utils module utils - the ``_init_session`` method has been removed (https://github.com/ansible-collections/community.general/pull/10126).
+- stackpath_compute inventory plugin - the plugin was removed since the company and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126).
+
+community.libvirt
+~~~~~~~~~~~~~~~~~
+
+- virt_volume - PoolConnection class has been removed
+- virt_volume - the 'deleted' state has been removed as its definition was not entirely accurate, and the 'wipe' boolean option is added to 'state/absent' and 'command/delete'.
+- virt_volume - undocumented but unused FLAGS have been removed.
+- virt_volume - undocumented but unused/non-functional functions (get_status, get_status2, get_state, get_uuid, build) have been removed.
+
+community.postgresql
+~~~~~~~~~~~~~~~~~~~~
+
+- postgresql_info - the db alias has been removed in ``community.postgresql 4.0.0``. Please use the ``login_db`` option instead (https://github.com/ansible-collections/community.postgresql/issues/801).
+- postgresql_lang - the module has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_ext`` module instead (https://github.com/ansible-collections/community.postgresql/issues/561).
+- postgresql_privs - the ``password`` argument has been removed in ``community.postgresql 4.0.0``. Use the ``login_password`` argument instead (https://github.com/ansible-collections/community.postgresql/issues/408).
+- postgresql_user - the ``priv`` argument has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/493).
+
+community.windows
+~~~~~~~~~~~~~~~~~
+
+- win_domain_computer - Removed deprecated module, use ``microsoft.ad.computer`` instead
+- win_domain_group - Removed deprecated module, use ``microsoft.ad.group`` instead
+- win_domain_group_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
+- win_domain_object_info - Removed deprecated module, use ``microsoft.ad.object_info`` instead
+- win_domain_ou - Removed deprecated module, use ``microsoft.ad.ou`` instead
+- win_domain_user - Removed deprecated module, use ``microsoft.ad.user`` instead
+- win_lineinfile - Removed deprecated return value ``backup``, use ``backup_file`` instead
+- win_xml - Removed deprecated, and undocumented, return value ``backup``, use ``backup_file`` instead
+
junipernetworks.junos
~~~~~~~~~~~~~~~~~~~~~
@@ -7072,6 +3069,11 @@
- This release removes all deprecated plugins that have reached their end-of-life.
- junos_scp
+vmware.vmware
+~~~~~~~~~~~~~
+
+- vm_list_group_by_clusters - Tombstone module in favor of vmware.vmware.vm_list_group_by_clusters_info
+
Security Fixes
--------------
@@ -7089,6 +3091,12 @@
- Validate API tokens before passing them to Ansible, to ensure that a badly formed one (i.e., one with newlines) is not accidentally logged.
+community.general
+~~~~~~~~~~~~~~~~~
+
+- keycloak_authentication - API calls did not properly set the ``priority`` during update resulting in incorrectly sorted authentication flows. This apparently only affects Keycloak 25 or newer (https://github.com/ansible-collections/community.general/pull/9263).
+- keycloak_client - Sanitize ``saml.encryption.private.key`` so it does not show in the logs (https://github.com/ansible-collections/community.general/pull/9621).
+
Bugfixes
--------
@@ -7096,7 +3104,9 @@
~~~~~~~~~~~~
- Ansible will now also warn when reserved keywords are set via a module (set_fact, include_vars, etc).
+- Ansible will now ensure predictable permissions on remote artifacts, until now it only ensured executable and relied on system masks for the rest.
- Ansible.Basic - Fix ``required_if`` check when the option value to check is unset or set to null.
+- Core Jinja test plugins - Builtin test plugins now always return ``bool`` to avoid spurious deprecation warnings for some malformed inputs.
- Correctly return ``False`` when using the ``filter`` and ``test`` Jinja tests on plugin names which are not filters or tests, respectively. (resolves issue https://github.com/ansible/ansible/issues/82084)
- Do not run implicit ``flush_handlers`` meta tasks when the whole play is excluded from the run due to tags specified.
- Errors now preserve stacked error messages even when YAML is involved.
@@ -7104,11 +3114,14 @@
- Fix disabling SSL verification when installing collections and roles from git repositories. If ``--ignore-certs`` isn't provided, the value for the ``GALAXY_IGNORE_CERTS`` configuration option will be used (https://github.com/ansible/ansible/issues/83326).
- Fix ipv6 pattern bug in lib/ansible/parsing/utils/addresses.py (https://github.com/ansible/ansible/issues/84237)
- Fix returning 'unreachable' for the overall task result. This prevents false positives when a looped task has unignored unreachable items (https://github.com/ansible/ansible/issues/84019).
+- Fix templating ``tags`` on plays and roles. (https://github.com/ansible/ansible/issues/69903)
- Implicit ``meta: flush_handlers`` tasks now have a parent block to prevent potential tracebacks when calling methods like ``get_play()`` on them internally.
- Improve performance on large inventories by reducing the number of implicit meta tasks.
- Jinja plugins - Errors raised will always be derived from ``AnsibleTemplatePluginError``.
- Optimize the way tasks from within ``include_tasks``/``include_role`` are inserted into the play.
+- Remove use of `required` parameter in `get_bin_path` which has been deprecated.
- Time out waiting on become is an unreachable error (https://github.com/ansible/ansible/issues/84468)
+- Update automatic role argument spec validation to not use deprecated syntax (https://github.com/ansible/ansible/issues/85399).
- Use consistent multiprocessing context for action write locks
- Use the requested error message in the ansible.module_utils.facts.timeout timeout function instead of hardcoding one.
- Windows - add support for running on system where WDAC is in audit mode with ``Dynamic Code Security`` enabled.
@@ -7118,46 +3131,85 @@
- action plugins - Action plugins that raise unhandled exceptions no longer terminate playbook loops. Previously, exceptions raised by an action plugin caused abnormal loop termination and loss of loop iteration results.
- ansible-config - format galaxy server configs while dumping in JSON format (https://github.com/ansible/ansible/issues/84840).
- ansible-doc - If none of the files in files exists, path will be undefined and a direct reference will throw an UnboundLocalError (https://github.com/ansible/ansible/pull/84464).
+- ansible-doc - fix indentation for first line of descriptions of suboptions and sub-return values (https://github.com/ansible/ansible/pull/84690).
+- ansible-doc - fix line wrapping for first line of description of options and return values (https://github.com/ansible/ansible/pull/84690).
+- ansible-doc will no longer ignore docs for modules without an extension (https://github.com/ansible/ansible/issues/85279).
- ansible-galaxy - Small adjustments to URL building for ``download_url`` and relative redirects.
- ansible-pull change detection will now work independently of callback or result format settings.
+- ansible-test - Always exclude the ``tests/output/`` directory from a collection's code coverage. (https://github.com/ansible/ansible/issues/84244)
+- ansible-test - Disabled the ``bad-super-call`` pylint rule due to false positives.
- ansible-test - Enable the ``sys.unraisablehook`` work-around for the ``pylint`` sanity test on Python 3.11. Previously the work-around was only enabled for Python 3.12 and later. However, the same issue has been discovered on Python 3.11.
- ansible-test - Ensure CA certificates are installed on managed FreeBSD instances.
+- ansible-test - Fix Python relative import resolution from ``__init__.py`` files when using change detection.
+- ansible-test - Fix incorrect handling of options with optional args (e.g. ``--color``), when followed by other options which are omitted during arg filtering (e.g. ``--docker``). Previously it was possible for non-option arguments to be incorrectly omitted in these cases. (https://github.com/ansible/ansible/issues/85173)
- ansible-test - Fix support for PowerShell module_util imports with the ``-Optional`` flag.
- ansible-test - Fix support for detecting PowerShell modules importing module utils with the newer ``#AnsibleRequires`` format.
- ansible-test - Fix traceback that occurs after an interactive command fails.
- ansible-test - Fix up coverage reporting to properly translate the temporary path of integration test modules to the expected static test module path.
- ansible-test - Fixed traceback when handling certain YAML errors in the ``yamllint`` sanity test.
+- ansible-test - Improve type inference for pylint deprecated checks to accommodate some type annotations.
+- ansible-test - Limit package install retries during managed remote instance bootstrapping.
- ansible-test - Managed macOS instances now use the ``sudo_chdir`` option for the ``sudo`` become plugin to avoid permission errors when dropping privileges.
+- ansible-test - Updated the ``pylint`` sanity test to skip some deprecation validation checks when all arguments are dynamic.
+- ansible-test - Use a consistent coverage config for all collection testing.
- ansible-vault will now correctly handle `--prompt`, previously it would issue an error about stdin if no 2nd argument was passed
- ansible_uptime_second - added ansible_uptime_seconds fact support for AIX (https://github.com/ansible/ansible/pull/84321).
- apt_key module - prevent tests from running when apt-key was removed
+- argspec validation - The ``str`` argspec type treats ``None`` values as empty string for better consistency with pre-2.19 templating conversions.
+- async_status module - The ``started`` and ``finished`` return values are now ``True`` or ``False`` instead of ``1`` or ``0``.
- base.yml - deprecated libvirt_lxc_noseclabel config.
- build - Pin ``wheel`` in ``pyproject.toml`` to ensure compatibility with supported ``setuptools`` versions.
+- callback plugins - A more descriptive error is now raised if the stdout callback plugin cannot be loaded.
+- callback plugins - Callback plugins that do not extend ``ansible.plugins.callback.CallbackBase`` will fail to load with a warning. If the plugin is used as the stdout callback plugin, this will also be a fatal error.
+- callback plugins - Removed unused methods - runner_on_no_hosts, playbook_on_setup, playbook_on_import_for_host, playbook_on_not_import_for_host, v2_playbook_on_cleanup_task_start, v2_playbook_on_import_for_host, v2_playbook_on_not_import_for_host.
+- callback plugins - The stdout callback plugin is no longer called twice if it is also in the list of additional callback plugins.
+- conditionals - When displaying a broken conditional error or deprecation warning, the origin of the non-boolean result is included (if available), and the raw result is omitted.
+- config - Preserve or apply Origin tag to values returned by config.
+- config - Prevented fatal errors when ``MODULE_IGNORE_EXTS`` configuration was set.
+- config - Templating failures on config defaults now issue a warning. Previously, failures silently returned an unrendered and untrusted template to the caller.
+- config - ``ensure_type`` correctly propagates trust and other tags on returned values.
+- config - ``ensure_type`` now converts mappings to ``dict`` when requested, instead of returning the mapping.
+- config - ``ensure_type`` now converts sequences to ``list`` when requested, instead of returning the sequence.
+- config - ``ensure_type`` now correctly errors when ``pathlist`` or ``pathspec`` types encounter non-string list items.
+- config - ``ensure_type`` now reports an error when ``bytes`` are provided for any known ``value_type``. Previously, the behavior was undefined, but often resulted in an unhandled exception or incorrect return type.
+- config - ``ensure_type`` with expected type ``int`` now properly converts ``True`` and ``False`` values to ``int``. Previously, these values were silently returned unmodified.
- config - various fixes to config lookup plugin (https://github.com/ansible/ansible/pull/84398).
+- constructed inventory - Use the ``default_value`` or ``trailing_separator`` in a ``keyed_groups`` entry if the expression result of ``key`` is ``None`` and not just an empty string.
+- convert_bool.boolean API conversion function - Unhashable values passed to ``boolean`` behave like other non-boolean convertible values, returning False or raising ``TypeError`` depending on the value of ``strict``. Previously, unhashable values always raised ``ValueError`` due to an invalid set membership check.
- copy - refactor copy module for simplicity.
- copy action now prevents user from setting internal options.
- debconf - set empty password values (https://github.com/ansible/ansible/issues/83214).
- debug - hide loop vars in debug var display (https://github.com/ansible/ansible/issues/65856).
- default callback - Error context is now shown for failing tasks that use the ``debug`` action.
+- display - Fix hang caused by early post-fork writers to stdout/stderr (e.g., pydevd) encountering an unreleased fork lock.
- display - The ``Display.deprecated`` method once again properly handles the ``removed=True`` argument (https://github.com/ansible/ansible/issues/82358).
- distro - add support for Linux Mint Debian Edition (LMDE) (https://github.com/ansible/ansible/issues/84934).
- distro - detect Debian as os_family for LMDE 6 (https://github.com/ansible/ansible/issues/84934).
- dnf5 - Handle forwarded exceptions from dnf5-5.2.13 where a generic ``RuntimeError`` was previously raised
+- dnf5 - avoid generating excessive transaction entries in the dnf5 history (https://github.com/ansible/ansible/issues/85046)
- dnf5 - fix ``is_installed`` check for packages that are not installed but listed as provided by an installed package (https://github.com/ansible/ansible/issues/84578)
- dnf5 - fix installing a package using ``state=latest`` when a binary of the same name as the package is already installed (https://github.com/ansible/ansible/issues/84259)
- dnf5 - fix traceback when ``enable_plugins``/``disable_plugins`` is used on ``python3-libdnf5`` versions that do not support this functionality
+- dnf5 - handle all libdnf5 specific exceptions (https://github.com/ansible/ansible/issues/84634)
- dnf5 - libdnf5 - use ``conf.pkg_gpgcheck`` instead of deprecated ``conf.gpgcheck`` which is used only as a fallback
- dnf5 - matching on a binary can be achieved only by specifying a full path (https://github.com/ansible/ansible/issues/84334)
+- dnf5 - when ``bugfix`` and/or ``security`` is specified, skip packages that do not have any such updates, even for new versions of libdnf5 where this functionality changed and it is considered failure
+- error handling - Error details and tracebacks from connection and built-in action exceptions are preserved. Previously, much of the detail was lost or mixed into the error message.
- facts - gather pagesize and calculate respective values depending upon architecture (https://github.com/ansible/ansible/issues/84773).
- facts - skip if distribution file path is directory, instead of raising error (https://github.com/ansible/ansible/issues/84006).
+- failed_when - When using ``failed_when`` to suppress an error, the ``exception`` key in the result is renamed to ``failed_when_suppressed_exception``. This prevents the error from being displayed by callbacks after being suppressed. (https://github.com/ansible/ansible/issues/85505)
- find - skip ENOENT error code while recursively enumerating files. find module will now be tolerant to race conditions that remove files or directories from the target it is currently inspecting. (https://github.com/ansible/ansible/issues/84873).
- first_found lookup - Corrected return value documentation to reflect None (not empty string) for no files found.
+- from_yaml_all filter - `None` and empty string inputs now always return an empty list. Previously, `None` was returned in Jinja native mode and empty list in classic mode.
- gather_facts action now defaults to `ansible.legacy.setup` if `smart` was set, no network OS was found and no other alias for `setup` was present.
- gather_facts action will now issues errors and warnings as appropriate if a network OS is detected but no facts modules are defined for it.
- gather_facts action, will now add setup when 'smart' appears with other modules in the FACTS_MODULES setting (#84750).
+- get_url - add a check to recognize incomplete data transfers.
- get_url - add support for BSD-style checksum digest file (https://github.com/ansible/ansible/issues/84476).
- get_url - fix honoring ``filename`` from the ``content-disposition`` header even when the type is ``inline`` (https://github.com/ansible/ansible/issues/83690)
- host_group_vars - fixed defining the 'key' variable if the get_vars method is called with cache=False (https://github.com/ansible/ansible/issues/84384)
+- import_tasks - fix templating parent include arguments.
+- include_tasks - fix templating options when used as a handler (https://github.com/ansible/ansible/pull/85015).
- include_vars - fix including previously undefined hash variables with hash_behaviour merge (https://github.com/ansible/ansible/issues/84295).
- iptables - Allows the wait parameter to be used with iptables chain creation (https://github.com/ansible/ansible/issues/84490)
- linear strategy - fix executing ``end_role`` meta tasks for each host, instead of handling these as implicit run_once tasks (https://github.com/ansible/ansible/issues/84660).
@@ -7172,11 +3224,16 @@
- local connection plugin - Fixed long timeout/hang for ``become`` plugins that repeat their prompt on failure (e.g., ``sudo``, some ``su`` implementations).
- local connection plugin - Fixed silent ignore of ``become`` failures and loss of task output when data arrived concurrently on stdout and stderr during ``become`` operation validation.
- local connection plugin - Fixed task output header truncation when post-become data arrived before ``become`` operation validation had completed.
+- local connection plugin - The command-line used to create subprocesses is now always ``str`` to avoid issues with debuggers and profilers.
- lookup plugins - The ``terms`` arg to the ``run`` method is now always a list. Previously, there were cases where a non-list could be received.
- module arg templating - When using a templated raw task arg and a templated ``args`` keyword, args are now merged. Previously use of templated raw task args silently ignored all values from the templated ``args`` keyword.
- module defaults - Module defaults are no longer templated unless they are used by a task that does not override them. Previously, all module defaults for all modules were templated for every task.
- module respawn - limit to supported Python versions
- package_facts module when using 'auto' will return the first package manager found that provides an output, instead of just the first one, as this can be foreign and not have any packages.
+- password lookup - fix acquiring the lock when human-readable FileExistsError error message is not English.
+- plugin loader - A warning is now emitted for any plugin which fails to load due to a missing base class.
+- plugin loader - Apply template trust to strings loaded from plugin configuration definitions and doc fragments.
+- plugins config, get_option_and_origin now correctly displays the value and origin of the option.
- psrp - Improve stderr parsing when running raw commands that emit error records or stderr lines.
- regex_search filter - Corrected return value documentation to reflect None (not empty string) for no match.
- respawn - use copy of env variables to update existing PYTHONPATH value (https://github.com/ansible/ansible/issues/84954).
@@ -7186,13 +3243,27 @@
- ssh - Improve the logic for parsing CLIXML data in stderr when working with Windows host. This fixes issues when the raw stderr contains invalid UTF-8 byte sequences and improves embedded CLIXML sequences.
- ssh - Raise exception when sshpass returns error code (https://github.com/ansible/ansible/issues/58133).
- ssh - connection options were incorrectly templated during ``reset_connection`` tasks (https://github.com/ansible/ansible/pull/84238).
+- ssh agent - Fixed several potential startup hangs for badly-behaved or overloaded ssh agents.
+- ssh connection plugin - Allow only one password prompt attempt when utilizing ``SSH_ASKPASS`` (https://github.com/ansible/ansible/issues/85359)
- stability - Fixed silent process failure on unhandled IOError/OSError under ``linear`` strategy.
- su become plugin - Ensure generated regex from ``prompt_l10n`` config values is properly escaped.
- su become plugin - Ensure that password prompts are correctly detected in the presence of leading output. Previously, this case resulted in a timeout or hang.
- su become plugin - Ensure that trailing colon is expected on all ``prompt_l10n`` config values.
- sudo become plugin - The `sudo_chdir` config option allows the current directory to be set to the specified value before executing sudo to avoid permission errors when dropping privileges.
- sunos - remove hard coding of virtinfo command in facts gathering code (https://github.com/ansible/ansible/pull/84357).
+- task timeout - Specifying a negative task timeout now results in an error.
+- template action - Template files where the entire file's output renders as ``None`` are no longer emitted as the string "None", but instead render to an empty file as in previous releases.
+- template lookup - Skip finalization on the internal templating operation to allow markers to be returned and handled by, e.g. the ``default`` filter. Previously, finalization tripped markers, causing an exception to end processing of the current template pipeline. (https://github.com/ansible/ansible/issues/85674)
+- templating - Avoid tripping markers within Jinja generated code. (https://github.com/ansible/ansible/issues/85674)
+- templating - Ensure filter plugin result processing occurs under the correct call context. (https://github.com/ansible/ansible/issues/85585)
+- templating - Fix slicing of tuples in templating (https://github.com/ansible/ansible/issues/85606).
+- templating - Fixed cases where template expression blocks halted prematurely when a Jinja macro invocation returned an undefined value.
+- templating - Jinja macros returned from a template expression can now be called from another template expression.
+- templating - Multi-node template results coerce embedded ``None`` nodes to empty string (instead of rendering literal ``None`` to the output).
+- templating - Undefined marker values sourced from the Jinja ``getattr->getitem`` fallback are now accessed correctly, raising AnsibleUndefinedVariable for user plugins that do not understand markers. Previously, these values were erroneously returned to user plugin code that had not opted in to marker acceptance.
- to_yaml/to_nice_yaml filters - Eliminated possibility of keyword arg collisions with internally-set defaults.
+- tqm - use display.error_as_warning instead of display.warning_as_error.
+- tqm - use display.error_as_warning instead of self.warning.
- unarchive - Clamp timestamps from beyond y2038 to representible values when unpacking zip files on platforms that use 32-bit time_t (e.g. Debian i386).
- uri - Form location correctly when the server returns a relative redirect (https://github.com/ansible/ansible/issues/84540)
- uri - Handle HTTP exceptions raised while reading the content (https://github.com/ansible/ansible/issues/83794).
@@ -7203,6 +3274,7 @@
- user - Use higher precedence HOME_MODE as UMASK for path provided (https://github.com/ansible/ansible/pull/84482).
- user action will now require O(force) to overwrite the public part of an ssh key when generating ssh keys, as was already the case for the private part.
- user module now avoids changing ownership of files symlinked in provided home dir skeleton
+- variables - Added Jinja scalar singletons (``true``, ``false``, ``none``) to invalid Ansible variable name detection. Previously, variables with these names could be assigned without error, but could not be resolved.
- vars lookup - The ``default`` substitution only applies when trying to look up a variable which is not defined. If the variable is defined, but templates to an undefined value, the ``default`` substitution will not apply. Use the ``default`` filter to coerce those values instead.
- wait_for_connection - a warning was displayed if any hosts used a local connection (https://github.com/ansible/ansible/issues/84419)
@@ -7211,28 +3283,38 @@
- cloudformation - Fix bug where termination protection is not updated when create_changeset=true is used for stack updates (https://github.com/ansible-collections/amazon.aws/pull/2391).
- ec2_instance - Fix issue where EC2 instance module failed to apply security groups when both ``network`` and ``vpc_subnet_id`` were specified, caused by passing ``None`` to discover_security_groups() (https://github.com/ansible-collections/amazon.aws/pull/2488).
+- ec2_instance - corrected typo for InsufficientInstanceCapacity. Fix now will retry Ec2 creation when InsufficientInstanceCapacity error occurs (https://github.com/ansible-collections/amazon.aws/issues/1038).
- ec2_security_group - Fix the diff mode issue when creating a security group containing a rule with a managed prefix list (https://github.com/ansible-collections/amazon.aws/issues/2373).
- ec2_vpc_nacl_info - Fix failure when listing NetworkACLs and no ACLs are found (https://github.com/ansible-collections/amazon.aws/issues/2425).
- ec2_vpc_net - handle ipv6_cidr ``false`` and no Ipv6CidrBlockAssociationSet in vpc (https://github.com/ansible-collections/amazon.aws/pull/2374).
- elbv2 - Fix load balancer listener comparison when DefaultActions contain any action other than forward (https://github.com/ansible-collections/amazon.aws/issues/2377).
- iam_access_key - add missing requirements checks (https://github.com/ansible-collections/amazon.aws/pull/2465).
+- iam_user_info - Actually call GetUser when only user name is supplied instead of listing and filtering from all users (https://github.com/ansible-collections/amazon.aws/pull/2567).
+- iam_user_info - Actually filter users by path prefix when one is provided (https://github.com/ansible-collections/amazon.aws/pull/2567).
- lambda - Remove non UTF-8 data (contents of Lambda ZIP file) from the module output to avoid Ansible error (https://github.com/ansible-collections/amazon.aws/issues/2386).
- lookup/aws_account_attribute - plugin should return a list when ``wantlist=True`` (https://github.com/ansible-collections/amazon.aws/pull/2552).
- module_utils.botocore - fixed type aliasing (https://github.com/ansible-collections/amazon.aws/pull/2497).
- module_utils/ec2 - catch error code ``InvalidElasticIpID.NotFound`` on function ``create_nat_gateway()``, sometimes the ``allocate_address`` API calls will return the ID for a new elastic IP resource before it can be consistently referenced (https://github.com/ansible-collections/amazon.aws/issues/1872).
- plugin_utils.botocore - fixed type aliasing (https://github.com/ansible-collections/amazon.aws/pull/2497).
- rds_cluster - Fix issue occurring when updating RDS cluster domain (https://github.com/ansible-collections/amazon.aws/issues/2390).
+- route53_info - removes jijna delimiters from example using when (https://github.com/ansible-collections/amazon.aws/issues/2594).
- s3_bucket - Do not use default region as location constraint when creating bucket on ceph cluster (https://github.com/ansible-collections/amazon.aws/issues/2420).
+- s3_bucket - bucket ACLs now consistently returned (https://github.com/ansible-collections/amazon.aws/pull/2478).
+- s3_bucket - fixed idempotency when setting bucket ACLs (https://github.com/ansible-collections/amazon.aws/pull/2478).
ansible.netcommon
~~~~~~~~~~~~~~~~~
+- (#633) Fixed typo in ansible.netcommon.telnet parameter crlf (was clrf by mistake)
+- Improved error handling in DirectExecutionModule._record_module_result method for better compatibility with core<=2.18
- libssh connection plugin - stop using long-deprecated and now removed internal field from ansible-core's base connection plugin class (https://github.com/ansible-collections/ansible.netcommon/issues/522, https://github.com/ansible-collections/ansible.netcommon/issues/690, https://github.com/ansible-collections/ansible.netcommon/pull/691).
+- netconf - Adds check for netconf session_close RPC happens only if connection is alive.
ansible.posix
~~~~~~~~~~~~~
- acl - Fixed to set ACLs on paths mounted with NFS version 4 correctly (https://github.com/ansible-collections/ansible.posix/issues/240).
+- ansible.posix.cgroup_perf_recap - fixes json module load path (https://github.com/ansible-collections/ansible.posix/issues/630).
- mount - Handle ``boot`` option on Linux, NetBSD and OpenBSD correctly (https://github.com/ansible-collections/ansible.posix/issues/364).
- mount - If a comment is appended to a fstab entry, state present creates a double-entry (https://github.com/ansible-collections/ansible.posix/issues/595).
@@ -7241,19 +3323,59 @@
- ansible.windows.win_powershell - Add extra checks to avoid ``GetType`` error when converting the output object - ttps://github.com/ansible-collections/ansible.windows/issues/708
- setup - Add better detection for VMWare base virtualization platforms - https://github.com/ansible-collections/ansible.windows/issues/753
+- win_copy - report correct information about symlinks in action plugin.
+- win_find - allow users case sensitive match the filename (https://github.com/ansible-collections/ansible.windows/issues/473).
- win_group_membership - Fix bug when input ``members`` contained duplicate members that were not already present in the group - https://github.com/ansible-collections/ansible.windows/issues/736
- win_package - Support check mode with local file path sources
+- win_package - fail to remove package when no product id is provided with path as an URL (https://github.com/ansible-collections/ansible.windows/issues/667).
- win_powershell - Ensure ``$Ansible.Result = @()`` as an empty array is returned as an empty list and not null - https://github.com/ansible-collections/ansible.windows/issues/686
+- win_powershell - Handle failure on output conversion when the output object uses a custom adapter set that fails to enumerate the method members. This is seen when using the output from ``Get-WmiObject`` - https://github.com/ansible-collections/ansible.windows/issues/767
+- win_regedit - Handle decimal values with no decimal values which may be the result of a Jinja2 template
+- win_service - Fix crash when attempting to create a service with the ``--check`` flag.
+- win_template - Added support for Ansible 2.19 and the introduction of the data tagging feature.
- win_updates - Only set the Access control sections on the temporary directory created by the module. This avoids the error when the ``SeSecurityPrivilege`` privilege isn't present.
arista.eos
~~~~~~~~~~
+- Add unit and integration tests to verify the change
+- Fix regex in route_map module to support match community with or without exact-match
+- Fix route map community handling to include missing community_attributes level in the dictionary
- Fixed an issue in the `compare_configs` method where unnecessary negate commands were generated for ACL entries already present in both `have` and `want` configurations.
+- Fixed idempotency regarding logging port in differing versions of EOS
+- Fixed idempotency when using `replaced` state on host with multiple ACLs present.
+- Fixed parsing of relative route-map metric adjustments in when extracting settings from device output.
- Improved validation logic for ACL sequence numbers and content matching to ensure idempotency.
- Prevented redundant configuration updates for Access Control Lists.
+- Support colon-delimited format in BGP community strings
+- Update route_maps to correctly handle ipv6 next-hop address
+- Update the ACL module to support using protocol names for source port
+- arista.eos.eos_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes
- fix facts gathering for ebgp-multihop attribute.
+check_point.mgmt
+~~~~~~~~~~~~~~~~
+
+- Added required management version to the documentation for all collection modules.
+- module_utils/checkpoint - Prevent redundant logout call when there is no authentication header 'X-chkp-sid'.
+
+cisco.aci
+~~~~~~~~~
+
+- Fix API call and index error for non-existing configExportP in aci_config_snapshot.
+- Fix aci_rest module to only add annotation when the value is a dictionary
+- Fix payload to define the correct vPC member side in aci_l3out_logical_interface_vpc_member (#663)
+- Fix subclass issue in aci_domain_to_vlan_pool to fix deletion of binding (#695)
+- Fix the aci_access_port_block_to_access_port module to query a specific object with the object name.
+- Fix to read the last_as from the module params in aci_action_rule_set_as_path.
+- Fix type of subnet_control in aci_bd_subnet from string to list of strings.
+- Modify interface_configs requirement using required_if dependency for aci_bulk_static_binding_to_epg
+
+cisco.dnac
+~~~~~~~~~~
+
+- Fixed get in sites_telemetry_settings module
+
cisco.ios
~~~~~~~~~
@@ -7267,47 +3389,73 @@
- Improve documentation to provide clarity on the "shutdown" variable.
- Improve unit tests to align with the changes made.
- Made improvements to ensure VLAN facts are gathered properly, both for specific configurations and general VLAN settings.
+- cisco.ios.ios_acls - Added default acls to not get updated/removed in any state.
+- cisco.ios.ios_hsrp_interfaces - Fix module operation around the preempt attributes, also addressed issues around command ordering.
+- cisco.ios.ios_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes.
+- cisco.ios.ios_l3_interfaces - Fixed Helper Address command support for l3 interface.
+- cisco.ios.ios_ospfv2 - Fix ospf admin distance parameter and fix other distance specific attributes to be optional.
+- cisco.ios.ios_vlans - Fixed errors during VLAN overrides where primary VLANs have private VLAN associations referencing non-existent or higher VLAN IDs, ensuring smoother private VLAN handling and preventing module failures.
+- ios_acls - Fix issue where commands were not being parsed correctly and incorrect commands were being generated.
- ios_acls - Fixed issue where cisco.ios.ios_acls module failed to process IPv6 ACL remarks, causing unsupported parameter errors.
+- ios_bgp_address_family - Refined state handling for `replaced` and `overridden` modes and enhanced address-family parsing to accurately differentiate between types such as unicast, multicast, and others.
+- ios_bgp_address_family - fix configuration of neighbor's as-override split-horizon.
- ios_logging_global - Fixed issue where cisco.ios.logging_global module was not showing idempotent behaviour when trap was set to informational.
- ios_route_maps - Fix removal of ACLs in replaced state to properly remove unspecified ACLs while leaving specified ones intact.
- ios_route_maps - Fix removal of ACLs logic in replaced state to properly remove unspecified ACLs while leaving specified ones intact.
- ios_route_maps - Fixes an issue where 'no description value' is an invalid command on the latest devices.
+- ios_static_routes - Add missing interface names in parser
- ios_vlans - Defaut mtu would be captured (1500) and no configuration for mtu is allowed via ios_vlans module.
- ios_vlans - Fixed an issue in the `cisco.ios.ios_vlans` module on Cisco Catalyst 9000 switches where using state:purged generated an incorrect command syntax (`no vlan configuration ` instead of `no vlan `).
- ios_vlans - Resolved a failure in the `cisco.ios.ios_vlans` module when using state:deleted, where the module incorrectly attempted to remove VLANs using `no mtu `, causing an invalid input error. The fix ensures that the module does not generate `no mtu` commands during VLAN deletion, aligning with the correct VLAN removal behavior on Catalyst 9000 switches.
+- ios_vrf_address_family - Added support for parsing the `stitching` attribute under route targets when gathering facts. Enhanced handling of `import_config` and `export` and renamed them to `imports` and `exports` to consistently represent them as lists of dictionaries during fact collection.
+- ios_vrf_address_family - fixed an issue where the module failed to gather `mdt` configuration options.
cisco.iosxr
~~~~~~~~~~~
- Fixes a bug to allow connections to IOS XRd with cliconf.
- Fixes idempotency for static routes with encap interfaces
-
-cisco.ise
-~~~~~~~~~
-
-- network_device - Fix mask validation to handle None values in NetworkDeviceIPList
-- personas_promote_primary - fix timeout issue.
+- Fixes route map fact gathering to correctly gather facts with a elif condition.
+- cisco.iosxr.iosxr_interfaces - Improved handling of the `enabled` state to prevent incorrect `shutdown` or `no shutdown` commands during configuration changes.
+- iosxr_route_map - Fixes route-policy attribute facts gathering.
+- iosxr_route_maps - Fix issue where wrong commands were being generated for several attributes.
cisco.meraki
~~~~~~~~~~~~
+- Added validation for `radiusServerAttemptsLimit` with choices `[1, 2, 3, 4, 5]`.
+- Added validation for `radiusServerTimeout` with a range of valid values `[1-10]`.
- Ansible utils requirements updated.
- Change alias 'message' to 'message_rule' due is a reserved ansible word in meraki_mx_intrusion_prevention module.
- Changes at compare equality function.
+- Fixed parameter handling for `update_by_id_params` in cisco.meraki.networks_wireless_ssids to correctly map the following parameters - `perClientBandwidthLimitDown` - `perClientBandwidthLimitUp` - `perSsidBandwidthLimitDown` - `perSsidBandwidthLimitUp` - `defaultVlanId` - `radiusAccountingInterimInterval` - `radiusGuestVlanId` - `vlanId` - `radiusServerAttemptsLimit` - `radiusServerTimeout`
- Issue fixes for workflow-ansible-lint.
- Old playbook tests removed.
- README fixes.
- Unable to create Syslog Server Object. Action module manually fixing.
+- cisco.meraki.devices_cellular_sims - fix idempotency error.
+- cisco.meraki.devices_switch_ports - fix get_object_by_name method.
- cisco.meraki.devices_switch_ports idempotency error fixed.
+- cisco.meraki.devices_wireless_radio_settings changed compare equality method to use `meraki_compare_equality`
- cisco.meraki.networks_appliance_firewall_l3_firewall_rules fails with "Unexpected failure during module execution 'rules' - specific 'rules' extraction has been removed.
+- cisco.meraki.networks_appliance_firewall_l7_firewall_rules - fix idempotency error.
- cisco.meraki.networks_appliance_traffic_shaping_rules Always Pushes Configuration Even When Unchanged.
+- cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth - fix idempotency error.
- cisco.meraki.networks_appliance_vlans_settings fails with "msg" "Object does not exists, plugin only has update" - specific 'vlansEnabled' extraction has been removed.
- cisco.meraki.networks_clients_info - incorrect API endpoint, fixing info module.
- cisco.meraki.networks_devices_claim failed with error unexpected keyword argument 'add_atomically' - bad naming solved.
- cisco.meraki.networks_switch_stacks delete stack not working, fixing path parameters.
+- cisco.meraki.networks_wireless_ssids refactor parameter handling to avoid None values
- cisco.meraki.organizations_login_security module update organization security settings.
- runtime updated requires_ansible from 2.14.0 to '>=2.15.0'.
+cisco.mso
+~~~~~~~~~
+
+- Fix API endpoint to query local and remote users in ND4.0
+- Fix query results for bulk query to display correct static_paths in mso_schema_site_anp_epg_staticport module
+- Fix replace operation for bulk present without force replace in mso_schema_site_anp_epg_staticport module
+
cisco.nxos
~~~~~~~~~~
@@ -7316,12 +3464,19 @@
- Fixes mixed usage of f-string and format string in action plugin for consistency.
- Fixes nxos_user purge deleting non-local users,ensuring only local users are removed.
- [bgp_templates] - fix the show commands used to ensure task does not fail if BGP is not enabled on the device.
+- cisco.nxos.nxos_vrf_global - Added support for rd attribute for nxos_vrf_global module.
- lag_interfaces - Fix bug where lag interfaces was not erroring on command failure. (https://github.com/ansible-collections/cisco.nxos/pull/923)
+- nxos_acls - Fix issue where Not sufficient TCAM bank error not being captured by error regex.
- nxos_facts - Fixes an issue in nxos_facts where IPv6 addresses within VRF contexts were not being collected in `net_all_ipv6_addresses`.
- nxos_l2_interfaces - Fixed handling of 'none' value in allowed_vlans to properly set trunk VLAN none
- nxos_user - fixes wrong command being generated for purge function
- nxos_vpc - fixes failure due to kickstart_ver_str not being present
+cloudscale_ch.cloud
+~~~~~~~~~~~~~~~~~~~
+
+- floating_ip - Fix sanity tests.
+
community.aws
~~~~~~~~~~~~~
@@ -7331,25 +3486,43 @@
community.crypto
~~~~~~~~~~~~~~~~
+- Improve error message when loading a private key fails due to correct private key files or wrong passwords. Also include the original cryptography error since it likely contains more helpful information (https://github.com/ansible-collections/community.crypto/issues/936, https://github.com/ansible-collections/community.crypto/pull/939).
+- acme_* modules - also retry on HTTP responses 502 Bad Gateway and 504 Gateway Timeout. The latter is needed for ZeroSSL, which seems to have a lot of 504s (https://github.com/ansible-collections/community.crypto/issues/945, https://github.com/ansible-collections/community.crypto/pull/947).
+- acme_* modules - increase the maximum amount of retries from 10 to 20 to accomodate ZeroSSL's buggy implementation (https://github.com/ansible-collections/community.crypto/pull/949).
+- acme_account - make work with CAs that do not accept any account request without External Account Binding data (https://github.com/ansible-collections/community.crypto/issues/918, https://github.com/ansible-collections/community.crypto/pull/919).
- crypto_info - when running the module on Fedora 41 with ``cryptography`` installed from the package repository, the module crashed apparently due to some elliptic curves being removed from libssl against which cryptography is running, which cryptography did not expect (https://github.com/ansible-collections/community.crypto/pull/834).
+- luks_device - mark parameter ``passphrase_encoding`` as ``no_log=False`` to avoid confusing warning (https://github.com/ansible-collections/community.crypto/pull/867).
+- luks_device - removing a specific keyslot with ``remove_keyslot`` caused the module to hang while cryptsetup was waiting for a passphrase from stdin, while the module did not supply one. Since a keyslot is not necessary, do not provide one (https://github.com/ansible-collections/community.crypto/issues/864, https://github.com/ansible-collections/community.crypto/pull/868).
+- openssl_csr and openssl_csr_pipe - the idempotency check for ``key_usage`` resulted in a crash if ``Key Agreement``/``keyAgreement`` was not set (https://github.com/ansible-collections/community.crypto/issues/934, https://github.com/ansible-collections/community.crypto/pull/935).
+- openssl_csr, openssl_csr_pipe - avoid accessing internal members of cryptography's ``KeyUsage`` extension object (https://github.com/ansible-collections/community.crypto/pull/910).
community.dns
~~~~~~~~~~~~~
+- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.dns/pull/280).
- Fix various issues and potential bugs pointed out by linters (https://github.com/ansible-collections/community.dns/pull/242, https://github.com/ansible-collections/community.dns/pull/243).
- Update Public Suffix List.
+- hetzner_dns_records inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.dns/pull/266).
+- hosttech_dns_records inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.dns/pull/266).
+- lookup and lookup_as_dict lookup plugins - removed type ``ALL``, which never worked (https://github.com/ansible-collections/community.dns/issues/264, https://github.com/ansible-collections/community.dns/pull/265).
+- nameserver_record_info - removed type ``ALL``, which never worked (https://github.com/ansible-collections/community.dns/issues/278, https://github.com/ansible-collections/community.dns/pull/279).
+- various DNS lookup plugins and modules - improve handling of invalid nameserver IPs/names (https://github.com/ansible-collections/community.dns/issues/282, https://github.com/ansible-collections/community.dns/pull/284).
community.docker
~~~~~~~~~~~~~~~~
- Fix label sanitization code to avoid crashes in case of errors (https://github.com/ansible-collections/community.docker/issues/1028, https://github.com/ansible-collections/community.docker/pull/1029).
+- docker_compose_v2 - adjust to new dry-run build events in Docker Compose 2.39.0+ (https://github.com/ansible-collections/community.docker/pull/1101).
- docker_compose_v2 - fix version check for ``assume_yes`` (https://github.com/ansible-collections/community.docker/pull/1054).
+- docker_compose_v2 - handle a (potentially unintentional) breaking change in Docker Compose 2.37.0. Note that ``ContainerName`` is no longer part of the return value (https://github.com/ansible-collections/community.docker/issues/1082, https://github.com/ansible-collections/community.docker/pull/1083).
- docker_compose_v2 - rename flag for ``assume_yes`` parameter for ``docker compose up`` to ``-y`` (https://github.com/ansible-collections/community.docker/pull/1054).
- docker_compose_v2 - use ``--yes`` instead of ``-y`` from Docker Compose 2.34.0 on (https://github.com/ansible-collections/community.docker/pull/1060).
- docker_compose_v2 - when using Compose 2.31.0 or newer, revert to the old behavior that image rebuilds, for example if ``rebuild=always``, only result in ``changed`` if a container has been restarted (https://github.com/ansible-collections/community.docker/issues/1005, https://github.com/ansible-collections/community.docker/issues/pull/1011).
- docker_compose_v2_exec, docker_compose_v2_run - fix missing ``--env`` flag while assembling env arguments (https://github.com/ansible-collections/community.docker/pull/992).
- docker_compose_v2_run - the module has a conflict between the type of parameter it expects and the one it tries to sanitize. Fix removes the label sanitization step because they are already validated by the parameter definition (https://github.com/ansible-collections/community.docker/pull/1034).
+- docker_container - fix idempotency if ``command=[]`` and ``command_handling=correct`` (https://github.com/ansible-collections/community.docker/issues/1080, https://github.com/ansible-collections/community.docker/pull/1085).
- docker_host_info - ensure that the module always returns ``can_talk_to_docker``, and that it provides the correct value even if ``api_version`` is specified (https://github.com/ansible-collections/community.docker/issues/993, https://github.com/ansible-collections/community.docker/pull/995).
+- docker_image, docker_image_push - work around a bug in Docker 28.3.3 that prevents pushing without authentication to a registry (https://github.com/ansible-collections/community.docker/pull/1110).
- docker_image_build - work around bug resp. very unexpected behavior in Docker buildx that overwrites all image names in ``--output`` parameters if ``--tag`` is provided, which the module did by default in the past. The module now only supplies ``--tag`` if ``outputs`` is empty. If ``outputs`` has entries, it will add an additional entry with ``type=image`` if no entry of ``type=image`` contains the image name specified by the ``name`` and ``tag`` options (https://github.com/ansible-collections/community.docker/issues/1001, https://github.com/ansible-collections/community.docker/pull/1006).
- docker_network - added waiting while container actually disconnect from Swarm network (https://github.com/ansible-collections/community.docker/pull/999).
- docker_network - containers are only reconnected to a network if they really exist (https://github.com/ansible-collections/community.docker/pull/999).
@@ -7360,14 +3533,137 @@
community.general
~~~~~~~~~~~~~~~~~
+- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.general/pull/10687).
+- apache2_mod_proxy - make compatible with Python 3 (https://github.com/ansible-collections/community.general/pull/9762).
+- apache2_mod_proxy - passing the cluster's page as referer for the member's pages. This makes the module actually work again for halfway modern Apache versions. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 (https://github.com/ansible-collections/community.general/pull/9762).
+- apache2_module - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
+- apache2_module - check the ``cgi`` module restrictions only during activation (https://github.com/ansible-collections/community.general/pull/10423).
+- apk - fix check for empty/whitespace-only package names (https://github.com/ansible-collections/community.general/pull/10532).
+- apk - handle empty name strings properly (https://github.com/ansible-collections/community.general/issues/10441, https://github.com/ansible-collections/community.general/pull/10442).
+- capabilities - using invalid path (symlink/directory/...) returned unrelated and incoherent error messages (https://github.com/ansible-collections/community.general/issues/5649, https://github.com/ansible-collections/community.general/pull/10455).
+- cloudflare_dns - fix crash when deleting a DNS record or when updating a record with ``solo=true`` (https://github.com/ansible-collections/community.general/issues/9652, https://github.com/ansible-collections/community.general/pull/9649).
- cloudlare_dns - handle exhausted response stream in case of HTTP errors to show nice error message to the user (https://github.com/ansible-collections/community.general/issues/9782, https://github.com/ansible-collections/community.general/pull/9818).
+- cobbler_system - fix bug with Cobbler >= 3.4.0 caused by giving more than 2 positional arguments to ``CobblerXMLRPCInterface.get_system_handle()`` (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145).
+- cobbler_system - update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145, https://github.com/ansible-collections/community.general/pull/10178).
+- composer - fix broken command lines (https://github.com/ansible-collections/community.general/issues/10662, https://github.com/ansible-collections/community.general/pull/10669).
+- cronvar - fix crash on missing ``cron_file`` parent directories (https://github.com/ansible-collections/community.general/issues/10460, https://github.com/ansible-collections/community.general/pull/10461).
+- cronvar - handle empty strings on ``value`` properly (https://github.com/ansible-collections/community.general/issues/10439, https://github.com/ansible-collections/community.general/pull/10445).
+- dependent look plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
+- dependent lookup plugin - avoid deprecated ansible-core 2.19 functionality (https://github.com/ansible-collections/community.general/pull/10359).
+- dig lookup plugin - correctly handle ``NoNameserver`` exception (https://github.com/ansible-collections/community.general/pull/9363, https://github.com/ansible-collections/community.general/issues/9362).
+- diy callback plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
+- dnf_config_manager - fix hanging when prompting to import GPG keys (https://github.com/ansible-collections/community.general/pull/9124, https://github.com/ansible-collections/community.general/issues/8830).
+- dnf_config_manager - forces locale to ``C`` before module starts. If the locale was set to non-English, the output of the ``dnf config-manager`` could not be parsed (https://github.com/ansible-collections/community.general/pull/9157, https://github.com/ansible-collections/community.general/issues/9046).
- dnf_versionlock - add support for dnf5 (https://github.com/ansible-collections/community.general/issues/9556).
+- doas become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/issues/9977, https://github.com/ansible-collections/community.general/pull/10537).
+- elasticsearch_plugin - fix ``ERROR: D is not a recognized option`` issue when configuring proxy settings (https://github.com/ansible-collections/community.general/pull/9774, https://github.com/ansible-collections/community.general/issues/9773).
+- flatpak - force the locale language to ``C`` when running the flatpak command (https://github.com/ansible-collections/community.general/pull/9187, https://github.com/ansible-collections/community.general/issues/8883).
+- gio_mime - fix command line when determining version of ``gio`` (https://github.com/ansible-collections/community.general/pull/9171, https://github.com/ansible-collections/community.general/issues/9158).
+- github_deploy_key - check that key really exists on 422Â to avoid masking other errors (https://github.com/ansible-collections/community.general/issues/6718, https://github.com/ansible-collections/community.general/pull/10011).
+- github_key - in check mode, a faulty call to ```datetime.strftime(...)``` was being made which generated an exception (https://github.com/ansible-collections/community.general/issues/9185).
+- github_release - support multiple types of GitHub tokens; no longer failing when ``ghs_`` token type is provided (https://github.com/ansible-collections/community.general/issues/10338, https://github.com/ansible-collections/community.general/pull/10339).
+- gitlab_group_access_token, gitlab_project_access_token - fix handling of group and project access tokens for changes in GitLab 17.10 (https://github.com/ansible-collections/community.general/pull/10196).
+- hashids and unicode_normalize filter plugins - avoid deprecated ``AnsibleFilterTypeError`` on ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/9992).
+- homebrew - emit a useful error message if ``brew info`` reports a package tap is ``null`` (https://github.com/ansible-collections/community.general/pull/10013, https://github.com/ansible-collections/community.general/issues/10012).
- homebrew - fix crash when package names include tap (https://github.com/ansible-collections/community.general/issues/9777, https://github.com/ansible-collections/community.general/pull/9803).
+- homebrew - fix incorrect handling of aliased homebrew modules when the alias is requested (https://github.com/ansible-collections/community.general/pull/9255, https://github.com/ansible-collections/community.general/issues/9240).
+- homebrew - fix incorrect handling of homebrew modules when a tap is requested (https://github.com/ansible-collections/community.general/pull/9546, https://github.com/ansible-collections/community.general/issues/9533).
+- homebrew - make package name parsing more resilient (https://github.com/ansible-collections/community.general/pull/9665, https://github.com/ansible-collections/community.general/issues/9641).
+- homebrew_cask - allow ``+`` symbol in Homebrew cask name validation regex (https://github.com/ansible-collections/community.general/pull/9128).
- homebrew_cask - handle unusual brew version strings (https://github.com/ansible-collections/community.general/issues/8432, https://github.com/ansible-collections/community.general/pull/9881).
+- htpasswd - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
+- htpasswd - report changes when file permissions are adjusted (https://github.com/ansible-collections/community.general/issues/9485, https://github.com/ansible-collections/community.general/pull/9490).
+- icinga2 inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271).
+- incus connection plugin - fix error handling to return more useful Ansible errors to the user (https://github.com/ansible-collections/community.general/issues/10344, https://github.com/ansible-collections/community.general/pull/10349).
+- iocage inventory plugin - the plugin parses the IP4 tab of the jails list and put the elements into the new variable ``iocage_ip4_dict``. In multiple interface format the variable ``iocage_ip4`` keeps the comma-separated list of IP4 (https://github.com/ansible-collections/community.general/issues/9538).
+- ipa_host - module revoked existing host certificates even if ``user_certificate`` was not given (https://github.com/ansible-collections/community.general/pull/9694).
+- irc - pass hostname to ``wrap_socket()`` if ``use_tls=true`` and ``validate_certs=true`` (https://github.com/ansible-collections/community.general/issues/10472, https://github.com/ansible-collections/community.general/pull/10491).
+- java_cert - the module no longer fails if the optional parameters ``pkcs12_alias`` and ``cert_alias`` are not provided (https://github.com/ansible-collections/community.general/pull/9970).
+- jenkins_plugin - install latest compatible version instead of latest (https://github.com/ansible-collections/community.general/issues/854, https://github.com/ansible-collections/community.general/pull/10346).
+- jenkins_plugin - separate Jenkins and external URL credentials (https://github.com/ansible-collections/community.general/issues/4419, https://github.com/ansible-collections/community.general/pull/10346).
+- json_query filter plugin - make compatible with lazy evaluation list and dictionary types of ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10539).
+- kdeconfig - allow option values beginning with a dash (https://github.com/ansible-collections/community.general/issues/10127, https://github.com/ansible-collections/community.general/pull/10128).
+- keycloak - update more than 10 sub-groups (https://github.com/ansible-collections/community.general/issues/9690, https://github.com/ansible-collections/community.general/pull/9692).
+- keycloak module utils - replaces missing return in get_role_composites method which caused it to return None instead of composite roles (https://github.com/ansible-collections/community.general/issues/9678, https://github.com/ansible-collections/community.general/pull/9691).
+- keycloak_authentication - fix authentification config duplication for Keycloak < 26.2.0 (https://github.com/ansible-collections/community.general/pull/9987).
+- keycloak_client - fix and improve existing tests. The module showed a diff without actual changes, solved by improving the ``normalise_cr()`` function (https://github.com/ansible-collections/community.general/pull/9644).
+- keycloak_client - fix diff by removing code that turns the attributes dict which contains additional settings into a list (https://github.com/ansible-collections/community.general/pull/9077).
+- keycloak_client - fix the idempotency regression by normalizing the Keycloak response for ``after_client`` (https://github.com/ansible-collections/community.general/issues/9905, https://github.com/ansible-collections/community.general/pull/9976).
+- keycloak_client - in check mode, detect whether the lists in before client (for example redirect URI list) contain items that the lists in the desired client do not contain (https://github.com/ansible-collections/community.general/pull/9739).
+- keycloak_clientscope - fix diff and ``end_state`` by removing the code that turns the attributes dict, which contains additional config items, into a list (https://github.com/ansible-collections/community.general/pull/9082).
+- keycloak_clientscope_type - sort the default and optional clientscope lists to improve the diff (https://github.com/ansible-collections/community.general/pull/9202).
+- keycloak_user_rolemapping - fix ``--diff`` mode (https://github.com/ansible-collections/community.general/issues/10067, https://github.com/ansible-collections/community.general/pull/10075).
+- linode inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271).
+- listen_port_facts - avoid crash when required commands are missing (https://github.com/ansible-collections/community.general/issues/10457, https://github.com/ansible-collections/community.general/pull/10458).
+- lldp - fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf (https://github.com/ansible-collections/community.general/pull/9657).
+- logstash callback plugin - remove reference to Python 2 library (https://github.com/ansible-collections/community.general/pull/10345).
+- lvm_pv - properly detect SCSI or NVMe devices to rescan (https://github.com/ansible-collections/community.general/issues/10444, https://github.com/ansible-collections/community.general/pull/10596).
+- machinectl become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/pull/10537).
+- merge_variables lookup plugin - avoid deprecated functionality from ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10566).
- nmcli - enable changing only the order of DNS servers or search suffixes (https://github.com/ansible-collections/community.general/issues/8724, https://github.com/ansible-collections/community.general/pull/9880).
+- onepassword_doc lookup plugin - ensure that 1Password Connect support also works for this plugin (https://github.com/ansible-collections/community.general/pull/9625).
+- pacemaker_resource - fix ``resource_type`` parameter formatting (https://github.com/ansible-collections/community.general/issues/10426, https://github.com/ansible-collections/community.general/pull/10663).
+- passwordstore lookup plugin - fix subkey creation even when ``create=false`` (https://github.com/ansible-collections/community.general/issues/9105, https://github.com/ansible-collections/community.general/pull/9106).
+- pickle cache plugin - avoid extra JSON serialization with ansible-core >= 2.19 (https://github.com/ansible-collections/community.general/pull/10136).
+- pids - prevent error when an empty string is provided for ``name`` (https://github.com/ansible-collections/community.general/issues/10672, https://github.com/ansible-collections/community.general/pull/10688).
+- pipx - honor option ``global`` when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/9623).
- proxmox - add missing key selection of ``'status'`` key to ``get_lxc_status`` (https://github.com/ansible-collections/community.general/issues/9696, https://github.com/ansible-collections/community.general/pull/9809).
+- proxmox - fix crash in module when the used on an existing LXC container with ``state=present`` and ``force=true`` (https://github.com/ansible-collections/community.proxmox/pull/91, https://github.com/ansible-collections/community.general/pull/10155).
+- proxmox inventory plugin - fix ``ansible_host`` staying empty for certain Proxmox nodes (https://github.com/ansible-collections/community.general/issues/5906, https://github.com/ansible-collections/community.general/pull/9952).
+- proxmox_disk - fail gracefully if ``storage`` is required but not provided by the user (https://github.com/ansible-collections/community.general/issues/9941, https://github.com/ansible-collections/community.general/pull/9963).
- proxmox_vm_info - the module no longer expects that the key ``template`` exists in a dictionary returned by Proxmox (https://github.com/ansible-collections/community.general/issues/9875, https://github.com/ansible-collections/community.general/pull/9910).
+- qubes connection plugin - fix the printing of debug information (https://github.com/ansible-collections/community.general/pull/9334).
+- redfish_utils module utils - Fix ``VerifyBiosAttributes`` command on multi system resource nodes (https://github.com/ansible-collections/community.general/pull/9234).
+- redfish_utils module utils - remove undocumented default applytime (https://github.com/ansible-collections/community.general/pull/9114).
+- redhat_subscription - do not try to unsubscribe (i.e. remove subscriptions)
+ when unregistering a system: newer versions of subscription-manager, as
+ available in EL 10 and Fedora 41+, do not support entitlements anymore, and
+ thus unsubscribing will fail
+ (https://github.com/ansible-collections/community.general/pull/9578).
+- redhat_subscription - use the "enable_content" option (when available) when
+ registering using D-Bus, to ensure that subscription-manager enables the
+ content on registration; this is particular important on EL 10+ and Fedora
+ 41+
+ (https://github.com/ansible-collections/community.general/pull/9778).
+- reveal_ansible_type filter plugin and ansible_type test plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833).
+- rundeck_acl_policy - ensure that project ACLs are sent to the correct endpoint (https://github.com/ansible-collections/community.general/pull/10097).
+- slack - fail if Slack API response is not OK with error message (https://github.com/ansible-collections/community.general/pull/9198).
- sudoers - display stdout and stderr raised while failed validation (https://github.com/ansible-collections/community.general/issues/9674, https://github.com/ansible-collections/community.general/pull/9871).
+- syspatch - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
+- sysrc - fixes parsing with multi-line variables (https://github.com/ansible-collections/community.general/issues/10394, https://github.com/ansible-collections/community.general/pull/10417).
+- sysrc - no longer always reporting ``changed=true`` when ``state=absent``. This fixes the method ``exists()`` (https://github.com/ansible-collections/community.general/issues/10004, https://github.com/ansible-collections/community.general/pull/10005).
+- sysrc - split the output of ``sysrc -e -a`` on the first ``=`` only (https://github.com/ansible-collections/community.general/issues/10120, https://github.com/ansible-collections/community.general/pull/10121).
+- sysupgrade - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
+- wsl connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead (https://github.com/ansible-collections/community.general/issues/10515, https://github.com/ansible-collections/community.general/pull/10531).
+- xml - ensure file descriptor is closed (https://github.com/ansible-collections/community.general/pull/9695).
+- yaml callback plugin - adjust to latest changes in ansible-core devel (https://github.com/ansible-collections/community.general/pull/10212).
+- yaml callback plugin - use ansible-core internals to avoid breakage with Data Tagging (https://github.com/ansible-collections/community.general/pull/9833).
+- yaml callback plugin - when using ansible-core 2.19.0b2 or newer, uses a new utility provided by ansible-core. This allows us to remove all hacks and vendored code that was part of the plugin for ansible-core versions with Data Tagging so far (https://github.com/ansible-collections/community.general/pull/10242).
+- zfs - fix handling of multi-line values of user-defined ZFS properties (https://github.com/ansible-collections/community.general/pull/6264).
+- zfs_facts - parameter ``type`` now accepts multple values as documented (https://github.com/ansible-collections/community.general/issues/5909, https://github.com/ansible-collections/community.general/pull/9697).
+- zypper_repository - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
+- zypper_repository - make compatible with Python 3.12+ (https://github.com/ansible-collections/community.general/issues/10222, https://github.com/ansible-collections/community.general/pull/10223).
+- zypper_repository - use ``metalink`` attribute to identify repositories without ```` element (https://github.com/ansible-collections/community.general/issues/10224, https://github.com/ansible-collections/community.general/pull/10225).
+
+community.grafana
+~~~~~~~~~~~~~~~~~
+
+- Fix parsing of grafana version for pre-releases and security releases
+- Remove field `apiVersion` from return of current `grafana_datasource` for working diff
+- grafana_dashboard - add uid to payload
+- grafana_dashboard - fix change detection for dashboards in folders
+- test: replace more deprecated `TestCase.assertEquals` to support Python 3.12
+
+community.hashi_vault
+~~~~~~~~~~~~~~~~~~~~~
+
+- connection_options - the ``validate_certs`` option had no effect if the ``retries`` option was set. Fix now also sets the parameter correctly in the retry request session (https://github.com/ansible-collections/community.hashi_vault/issues/461).
+
+community.hrobot
+~~~~~~~~~~~~~~~~
+
+- robot inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.hrobot/pull/165).
+- storagebox - make sure that changes of boolean parameters are sent correctly to the Robot service (https://github.com/ansible-collections/community.hrobot/issues/160, https://github.com/ansible-collections/community.hrobot/pull/161).
community.library_inventory_filtering_v1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -7379,16 +3675,24 @@
~~~~~~~~~~~~~~~~~
- libvirt_lxc - add configuration for libvirt_lxc_noseclabel.
+- virt_volume - create_from was non-functional, and is now folded into create (added clone_source parameter). Fixes
+- virt_volume - info, facts, download, upload commands have been removed as they were not functional (and not tested).
+- virt_volume - wipe command now works (and is also a boolean option for 'state/absent' and 'command/delete').
community.mysql
~~~~~~~~~~~~~~~
- mysql_db - fix dump and import to find MariaDB binaries (mariadb and mariadb-dump) when MariaDB 11+ is used and symbolic links to MySQL binaries are absent.
+- mysql_info - fix a crash (ERROR 1141, There is no such grant defined for user 'PUBLIC' on host '%') when using the ``users_info`` filter with a PUBLIC role present in MariaDB 10.11+. Do note that the fix doesn't change the fact that the module won't return the privileges from the PUBLIC role in the users privileges list. It can't do that because you have to login as the particular user and use `SHOW GRANTS FOR CURRENT_USER`. We considered using an aggregation with the `SHOW GRANTS FOR PUBLIC` command. However, this approach would make copying users from one server to another transform the privileges inherited from the role as if they were direct privileges on the user.
+- mysql_query - fix a Python 2 compatibility issue caused by the addition of ``execution_time_ms`` in version 3.12 (see https://github.com/ansible-collections/community.mysql/issues/716).
+- mysql_replication - fixed an issue where setting ``primary_ssl_verify_server_cert`` to false had no effect (https://github.com/ansible-collections/community.mysql/issues/689).
+- mysql_user - fix a crash (unable to parse the MySQL grant string: SET DEFAULT ROLE `somerole` FOR `someuser`@`%`) when using the ``mysql_user`` module with a DEFAULT role present in MariaDB. The DEFAULT role is now ignored by the parser (https://github.com/ansible-collections/community.mysql/issues/710).
- mysql_user,mysql_role - The sql_mode ANSI_QUOTES affects how the modules mysql_user and mysql_role compare the existing privileges with the configured privileges, as well as decide whether double quotes or backticks should be used in the GRANT statements. Pointing out in issue 671, the modules mysql_user and mysql_role allow users to enable/disable ANSI_QUOTES in session variable (within a DB session, the session variable always overwrites the global one). But due to the issue, the modules do not check for ANSI_MODE in the session variable, instead, they only check in the GLOBAL one.That behavior is not only limiting the users' flexibility, but also not allowing users to explicitly disable ANSI_MODE to work around such bugs like https://bugs.mysql.com/bug.php?id=115953. (https://github.com/ansible-collections/community.mysql/issues/671)
community.postgresql
~~~~~~~~~~~~~~~~~~~~
+- postgresql_alter_system - fix failure when max_val contains a huge number written in scientific notation (https://github.com/ansible-collections/community.postgresql/issues/853).
- postgresql_info - fix failure when a default database is used (neither ``db`` nor ``login_db`` are specified) (https://github.com/ansible-collections/community.postgresql/issues/794).
- postgresql_info - fix issue when gathering information fails if user doesn't have access to all databases (https://github.com/ansible-collections/community.postgresql/pull/788).
- postgresql_info - fix module failure when the ``db`` parameter is used instead of ``login_db`` (https://github.com/ansible-collections/community.postgresql/issues/794).
@@ -7399,54 +3703,118 @@
- postgresql_pg_hba - fixes #777 the module will ignore the 'address' and 'netmask' options again when the contype is 'local' (https://github.com/ansible-collections/community.postgresql/pull/779)
- postgresql_pg_hba - improves parsing of quoted strings and escaped newlines (https://github.com/ansible-collections/community.postgresql/pull/761)
- postgresql_privs - fix the error occurring when trying to grant a function execution and set the schema to not-specified (https://github.com/ansible-collections/community.postgresql/pull/783).
+- postgresql_schema - change reported in check_mode was negated. Now it reports a change when removing an existing schema (https://github.com/ansible-collections/community.postgresql/pull/858)
- postgresql_table - consider schema name when checking for table (https://github.com/ansible-collections/community.postgresql/issues/817). Table names are only unique within a schema. This allows using the same table name in multiple schemas.
- postgresql_user - doesn't take password_encryption into account when checking if a password should be updated (https://github.com/ansible-collections/community.postgresql/issues/688).
community.rabbitmq
~~~~~~~~~~~~~~~~~~
+- rabbitmq_binding - fix idempotency when arguments and/or routing_key are given (https://github.com/ansible-collections/community.rabbitmq/pull/191)
- rabbitmq_publish - fix support for publishing headers as a part of a message (https://github.com/ansible-collections/community.rabbitmq/pull/182)
+- rabbitmq_user - URL encode the `vhost` and `user` fields to allow for input with '/' characters. (https://github.com/ansible-collections/community.rabbitmq/issues/205)
+- rabbitmq_vhost - Fail module if the requests library is missing. This maintains the same behavior across all the modules.
+- setup_rabbitmq - incorrect SSL library was selected for install on Ubuntu Noble. Fix now installs the correct version on newer Ubuntu versions. (https://github.com/ansible-collections/community.rabbitmq/issues/199)
community.routeros
~~~~~~~~~~~~~~~~~~
+- api_facts - also report interfaces that are inferred only by reference by IP addresses.
+ RouterOS's APIs have IPv4 and IPv6 addresses point at interfaces by their name, which can
+ change over time and in-between API calls, such that interfaces may have been enumerated
+ under another name, or not at all (for example when removed). Such interfaces are now reported
+ under their new or temporary name and with a synthetic ``type`` property set to differentiate
+ the more likely and positively confirmed removal case (with ``type: "ansible:unknown"``) from
+ the unlikely and probably transient naming mismatch (with ``type: "ansible:mismatch"``).
+ Previously, the api_facts module would have crashed with a ``KeyError`` exception
+ (https://github.com/ansible-collections/community.routeros/pull/391).
- api_info, api_modify - fields ``log`` and ``log-prefix`` in paths ``ip firewall filter``, ``ip firewall mangle``, ``ip firewall nat``, ``ip firewall raw`` now have the correct default values (https://github.com/ansible-collections/community.routeros/pull/324).
- api_info, api_modify - remove the primary key ``action`` from the ``interface wifi provisioning`` path, since RouterOS also allows to create completely duplicate entries (https://github.com/ansible-collections/community.routeros/issues/344, https://github.com/ansible-collections/community.routeros/pull/345).
+- facts and api_facts modules - prevent deprecation warnings when used with ansible-core 2.19 (https://github.com/ansible-collections/community.routeros/pull/384).
+- routeros terminal plugin - fix ``terminal_stdout_re`` pattern to handle long system identities when connecting to RouterOS through SSH (https://github.com/ansible-collections/community.routeros/pull/386).
community.sops
~~~~~~~~~~~~~~
+- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.sops/pull/260).
+- all modules and plugins - the default of ``enable_local_keyservice`` changed from ``false`` to ``true``, and explicitly setting it to ``false`` now passes ``--enable-local-keyservice=false``. SOPS' default has always been ``true``, and when setting this option to ``true`` so far it resulted in passing ``--enable-local-keyservice``, which is equivalent to ``--enable-local-keyservice=true`` and had no effect. This means that from now on, setting ``enable_local_keyservice`` explicitly to ``false`` has an effect. If ``enable_local_keyservice`` was not set before, or was set to ``true``, nothing will change (https://github.com/ansible-collections/community.sops/issues/261, https://github.com/ansible-collections/community.sops/pull/262).
- install role - ``sops_install_on_localhost=false`` was not working properly if the role was running on more than one host due to a bug in ansible-core (https://github.com/ansible-collections/community.sops/issues/223, https://github.com/ansible-collections/community.sops/pull/224).
+- install role - avoid deprecated parameter value for the ``ansible.builtin.uri`` module (https://github.com/ansible-collections/community.sops/pull/255).
- install role - when used with Debian on ARM architecture, the architecture name is now correctly translated from ``aarch64`` to ``arm64`` (https://github.com/ansible-collections/community.sops/issues/220, https://github.com/ansible-collections/community.sops/pull/221).
- load_vars - make evaluation compatible with Data Tagging in upcoming ansible-core release (https://github.com/ansible-collections/community.sops/pull/225).
community.vmware
~~~~~~~~~~~~~~~~
+- Fix issues with pyvmomi 9.0.0.0 (https://github.com/ansible-collections/community.vmware/issues/2414).
- vm_device_helper - Fix 'invalid configuration for device' error caused by missing fileoperation parameter. (https://github.com/ansible-collections/community.vmware/pull/2009).
+- vm_device_helper - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
+- vmware_deploy_ovf - Fix detection of HTTP range support in `WebHandle` to support HTTP/2 endpoints like Nexus that do not return `accept-ranges` header (https://github.com/ansible-collections/community.vmware/pull/2399).
+- vmware_dvs_portgroup - Fix idempotency issue with ``mac_learning`` (https://github.com/ansible-collections/community.vmware/issues/1873).
- vmware_guest - Fix errors occuring during hardware version upgrade not being reported. (https://github.com/ansible-collections/community.vmware/pull/2010).
- vmware_guest - Fix vmware_guest always reporting change when using dvswitch. (https://github.com/ansible-collections/community.vmware/pull/2000).
- vmware_guest - setting vApp properties on virtual machines without vApp options raised an AttributeError. Fix now gracefully handles a `None` value for vApp options when retrieving current vApp properties (https://github.com/ansible-collections/community.vmware/pull/2220).
+- vmware_guest_controller - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
+- vmware_guest_disk - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
+- vmware_guest_file_operation - Fix to use custom port provided to the module (https://github.com/ansible-collections/community.vmware/pull/2397).
- vmware_guest_tools_upgrade - Account for all possible tools status (https://github.com/ansible-collections/community.vmware/issues/2237).
+- vmware_host_inventory - New option ``enable_backward_compatability`` that can be set to ``false`` to work with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
- vmware_object_role_permission - The module ignores changing ``recursive`` (https://github.com/ansible-collections/community.vmware/pull/2350).
+- vmware_target_canonical_info - Fix an issue with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
+- vmware_vm_config_option - change to use 'disk_ctl_device_type' defined in 'device_helper' and add 'support_cpu_hotadd', 'support_memory_hotadd', 'support_for_create' in output. (https://github.com/ansible-collections/community.vmware/pull/2428)
+- vmware_vm_inventory - New option ``enable_backward_compatability`` that can be set to ``false`` to work with ansible-core 2.19 (https://github.com/ansible-collections/community.vmware/pull/2391).
+- vmware_vmotion - Fix issue with same resource pool name on different clusters (https://github.com/ansible-collections/community.vmware/issues/1719).
+
+community.windows
+~~~~~~~~~~~~~~~~~
+
+- win_format - fix crash when using path parameter without force option (https://github.com/ansible-collections/community.windows/pull/615).
+- win_rabbitmq_plugin - removed redundant quotes that caused failures when specifying ``rabbitmq_bin_path`` (https://github.com/ansible-collections/community.windows/issues/635).
+- win_scoop - Fix issue when scoop is installed at a path with spaces like ``C:\Program Files`` - https://github.com/ansible-collections/community.windows/issues/614
+- win_toast - fix title and message in the notification.
community.zabbix
~~~~~~~~~~~~~~~~
- Java Gateway Role - Temporary work around to solve failure on RHEL9.
+- Token Module - Fixed integration with Zabbix 7.4
+- host module - Fixed idempotentcy related to changes in tag order.
+- maintenace module - Fixed idempotentcy related to changes in tag order.
+- roles/zabbix_agent - Reading existing PSK files failed on Windows
+- roles/zabbix_agent - UserParameterDir get wrong value if var zabbix_agent_userparamaterdir is set
+- roles/zabbix_repo - debian architectures should map better for i386 and armhf
+- roles/zabbix_repo - debian/ubuntu arm64 repo url fixed for zabbix 7.2
- zabbix inventory plugin - do not require ``login_user`` and ``login_password`` to be present when ``auth_token`` is provided (https://github.com/ansible-collections/community.zabbix/pull/1439).
- zabbix_agent Role - Add Zabbix 7.0 LTS in supported versions for windows.
+- zabbix_agent Role - Add _zabbix_agent_pluginsocket variable to override /tmp/agent.plugin.sock
- zabbix_agent Role - Added ability to set the monitored_by and proxy_group values.
- zabbix_agent Role - Set become parameter explicitly to false for API tasks to run without sudo on the local computer.
+- zabbix_service - fix propagation_value and propagation_rule parameters
+- zabbix_template_info module - Dump YAML formatted template data without date in Zabbix 7.0 or higher.
+- zabbix_web role - fix /etc/zabbix/web/zabbix.conf.php file mode.
containers.podman
~~~~~~~~~~~~~~~~~
+- Document that sdnotify can be set to healthy
- Don't pull image when state is absent or pull=never (#889)
+- Fix CI for podman_image_info
+- Fix None values in LogOpt in Quadlet
+- Fix conditions in CI jobs
+- Fix idempotency for any podman secret driver
- Fix idempotency for containers with env vars containing MAX_SIZE (#893)
+- Fix idempotency for systemd keyword
- Fix list tags failure in podman_search (#875)
- Fix podman_container_copy examples (#882)
+- Fix setuptools
+- Handle image arguments in podman_container
+- Remove docker protocol when inspecting image
+- Set custom tmpfs idempotency
+- Use usedforsecurity for hashlib.sha256 only in python version >=3.9
+- correctly quote labels and environment variables for quadlets
+- doc - podman_secret - fix indentation error in example
- docs(podman_container) - improve comments on network property (#878)
+- fix(podman_image) - correct intendation on 'loop' keyword
dellemc.enterprise_sonic
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -7474,23 +3842,34 @@
- Internal defect fixes were done for the following modules - ``idrac_network_attributes``, ``idrac_certificates``, ``idrac_redfish_storage_controller``, ``idrac_boot_order`` and ``idrac_firmware``
- Resolved the issue in ``idrac_redfish_storage_volume`` module where it returns 404 error on job creation when enabling encryption for virtual drives. (https://github.com/dell/dellemc-openmanage-ansible-modules/issues /713)
- idrac_certificates - (Issue 737) - Fixed SSL CSR generation for 4096 key size.
+- idrac_system_info - (Issue 812) - idrac_system_info fails on iDRAC10.
+
+dellemc.powerflex
+~~~~~~~~~~~~~~~~~
+
+- snapshot_policy - Renamed snapshotAccessMode and secureSnapshots to snapshot_access_mode and secure_snapshots respectively.
f5networks.f5_modules
~~~~~~~~~~~~~~~~~~~~~
+- added github actions
- bigip_firewall_address_list to support both cidr and route domain
- bigip_monitor_external - external monitor user-defined variables not reflected for non-common partition
- bigip_profile_server_ssl - Fixed bug - create server SSL profile if SSL key is passphrase protected
- bigip_profile_server_ssl to support parent's [None, "", "None"] profiles
- bigip_snmp_community - Allow v3 usernames that begin with a number or contains any special characters.
+- bigip_virtual_server fix module crash issue
+- fixed automation hub import log issues
fortinet.fortimanager
~~~~~~~~~~~~~~~~~~~~~
+- Added "gather_facts" to all example playbooks.
- Changed all input argument name in ansible built-in documentation to the underscore format. E.g., changed "var-name" to "var_name".
- Changed parameter type of some parameters.
- Changed the default playbook examples for each module to pass ansible-lint.
- Corrected mainkey of some modules.
+- Fixed a BUG that occurred when username/password and access token were used at the same time.
- Fixed a bug where rc_failed and rc_succeeded did not work.
- Improved code logic, reduced redundant requests for system information.
- Modified built-in document to support sanity tests in ansible-core 2.18.0. No functionality changed.
@@ -7503,17 +3882,39 @@
- Github Issue
- Mantis Issue
+google.cloud
+~~~~~~~~~~~~
+
+- ansible - 2.17 is now the minimum version supported
+- ansible - 3.11 is now the minimum Python version
+- ansible-test - fixed sanity tests
+- ansible-test - integration tests are now run against 2.17 and 2.18
+- gcp_bigquery_table - fixed nested schema definitions (https://github.com/ansible-collections/google.cloud/issues/637).
+- gcp_bigquery_table - properly handle BigQuery table clustering fields
+- gcp_compute - fixed get_project_disks to process all responses (https://github.com/ansible-collections/google.cloud/pull/677).
+- gcp_pubsub_subscription - fixed improper subscription uprade PATCH request
+- gcp_secret_manager - cleaned up error responses (https://github.com/ansible-collections/google.cloud/pull/690).
+- gcp_serviceusage_service - updated documentation (https://github.com/ansible-collections/google.cloud/pull/691).
+- run integration test with Ansible 2.16 to match `requires_ansible` version
+- updated README to match required format (https://github.com/ansible-collections/google.cloud/pull/682).
+
hetzner.hcloud
~~~~~~~~~~~~~~
+- All returned resource IDs are now integers instead of strings.
- hcloud_load_balancer_service - Improve unknown certificate id or name error.
- hcloud_server - Only rebuild existing servers, skip rebuild if the server was just created.
+- server - The ``placement_group`` argument now correctly handles placement group IDs during updates.
+- volume_attachment - Add ``hcloud_volume_attachment`` alias to ``volume_attachment`` module.
+- volume_attachment - Add ``volume_attachment`` module to action group ``all``.
ibm.storage_virtualize
~~~~~~~~~~~~~~~~~~~~~~
- ibm_svc_manage_flashcopy - Added support for creating flashcopy with existing target volume
- ibm_svc_manage_replication - Added checks for mutually-exclusive parameters and policing for updating remote-copy relationship
+- ibm_svc_ssh - Added fix for nginx timeout
+- ibm_svc_utils - Added fix for nginx timeout
infoblox.nios_modules
~~~~~~~~~~~~~~~~~~~~~
@@ -7521,6 +3922,11 @@
- For Host IPv6, the mac parameter has been renamed to duid.
- Refined Host record return fields to ensure use_nextserver and nextserver are only included for IPv4, as these fields are not applicable to IPv6.
+junipernetworks.junos
+~~~~~~~~~~~~~~~~~~~~~
+
+- Fixes interface_type parameter in the proccesses block.
+
kubernetes.core
~~~~~~~~~~~~~~~
@@ -7530,6 +3936,8 @@
- k8s_drain - Fix k8s_drain runs into a timeout when evicting a pod which is part of a stateful set (https://github.com/ansible-collections/kubernetes.core/issues/792).
- kubeconfig option should not appear in module invocation log (https://github.com/ansible-collections/kubernetes.core/issues/782).
- kustomize - kustomize plugin fails with deprecation warnings (https://github.com/ansible-collections/kubernetes.core/issues/639).
+- module_utils/k8s/service - fix issue when trying to delete resource using `delete_options` and `check_mode=true` (https://github.com/ansible-collections/kubernetes.core/issues/892).
+- module_utils/k8s/service - hide fields first before creating diffs (https://github.com/ansible-collections/kubernetes.core/pull/915).
- waiter - Fix waiting for daemonset when desired number of pods is 0. (https://github.com/ansible-collections/kubernetes.core/pull/756).
lowlydba.sqlserver
@@ -7538,18 +3946,41 @@
- Fix error that occurred when creating a login with `skip_password_reset` as true. (https://github.com/lowlydba/lowlydba.sqlserver/pull/287)
- Fix error when creating an agent job schedule with `enabled` as true. (https://github.com/lowlydba/lowlydba.sqlserver/pull/288)
+microsoft.ad
+~~~~~~~~~~~~
+
+- ldap inventory - Fix up support for Ansible 2.19.
+- microsoft.ad.ldap - Ensure the encrypted LAPS value is marked as unsafe to stop unexpected templating of the raw JSON result value - https://github.com/ansible-collections/microsoft.ad/issues/194
+- microsoft.ad.object_info - Correctly return multivalued attributes with one entry as array with on item (instead of returning a string) - https://github.com/ansible-collections/microsoft.ad/issues/199
+
netapp.ontap
~~~~~~~~~~~~
+- Corrected typo in email address from `ng-ansibleteam@netapp.com` to `ng-ansible-team@netapp.com` across Ansible collection.
- Resolved Ansible lint issues.
- all modules supporting REST - avoid duplicate calls to api/cluster to get ONTAP version.
- na_ontap_aggregate - fix issue with 'raid_type' change in REST.
- na_ontap_broadcast_domain - fix issue with port modification in REST.
+- na_ontap_cg_snapshot - fixed issue with CG not being found with given volumes in REST.
+- na_ontap_ems_config - fix issue with support check mode when proxy_password is not set in REST.
+- na_ontap_firmware_upgrade - fixed typo in example.
- na_ontap_flexcache - fix typo error in the query 'origins.cluster.name' in REST.
- na_ontap_kerberos_interface - updated example in module documentation.
+- na_ontap_ndmp - fix idempotency issue and added example for ndmp user generate password in REST.
- na_ontap_qtree - fix timeout issue with qtree delete in REST.
+- na_ontap_quotas - changed examples in documentation for `type`.
- na_ontap_rest_info - rectified subset name to `cluster/firmware/history`.
+- na_ontap_snapmirror - fix delete snapmirror timeout issue by retrying in REST.
- na_ontap_snapshot_policy - fix issue with 'retention_period' in REST.
+- na_ontap_software_update - Updated documentation for `https`.
+- na_ontap_user - fixed issue with idempotency while creating a user account in REST.
+- na_ontap_user_role - fix issue with modifying privileges in REST.
+- na_ontap_volume - fixed indentation in example.
+
+netapp.storagegrid
+~~~~~~~~~~~~~~~~~~
+
+- na_sg_org_user - fix where existing users with no groups attached were not getting any groups added.
netbox.netbox
~~~~~~~~~~~~~
@@ -7559,6 +3990,13 @@
- fix call /api/status/ instead /api/status in nb_inventory plugin. (https://github.com/netbox-community/ansible_modules/issues/1335).
- netbox_ip_address - Fixed the problem preventing assignment of an IP address to a network interface
+ovirt.ovirt
+~~~~~~~~~~~
+
+- ovirt_disk - fix documentation for lun_id parameter (https://github.com/oVirt/ovirt-ansible-collection/pull/740)
+- ovirt_proxied_check - fix documentation string (https://github.com/oVirt/ovirt-ansible-collection/pull/761)
+- roles - Fix ansible-test errors change include to include_tasks (https://github.com/oVirt/ovirt-ansible-collection/pull/733).
+
purestorage.flasharray
~~~~~~~~~~~~~~~~~~~~~~
@@ -7566,6 +4004,7 @@
- purefa_audits - Fix issue when ``start`` parameter not supplied
- purefa_dirsnap - Fixed issues with ``keep_for`` setting and issues related to recovery of deleted snapshots
- purefa_ds - Fixed issue with trying to create a pre-existing system-defined role
+- purefa_ds - Fixed issue with updaing a LDAP configuration fails with a list error.
- purefa_dsrole - Fixed bug in role creation.
- purefa_dsrole - Fixed bug with DS role having no group or group base cannot be updated
- purefa_eradication - Fix incorrect timer settings
@@ -7582,16 +4021,19 @@
- purefa_pgsnap - Fixed issue with overwrite failing
- purefa_pod - Allow pd to be deleted with contents if ``delete_contents`` specified
- purefa_pod - Errored out when setting failover preference for pod
+- purefa_proxy - Fixed issue with incorrect string comparison
- purefa_ra - Fixed duration check logic
- purefa_sessions - Correctly report sessions with no start or end time
- purefa_smtp - Fixed SMTP deletion issue
- purefa_snmp - Fix issues with deleting SNMP entries
- purefa_snmp_agent - Fix issues with deleting v3 agent
- purefa_vg - Fixed idempotency issue when clearing volume group QoS settings
+- purefa_vg - Fixed issue where VG QoS updates were being ignored
- purefa_vg - Fixed issue with creating non-QoS volume groups
- purefa_vlan - Allow LACP bonds to be subnet interfaces
- purefa_volume - Added error message to warn about moving protected volume
- purefa_volume - Errors out when pgroup and add_to_pgs used incorrectly
+- purefa_volume - Fixed issue for error on volume delete w/o eradicate
- purefa_volume - Fixed issue of unable to move volume from pod to vgroup
- purefa_volume - Fixes issue of moving protected volume into volume group
@@ -7599,9 +4041,13 @@
~~~~~~~~~~~~~~~~~~~~~~
- purefb_bucket - Fixed issue with idempotency reported when ``hard_limit`` not provided.
+- purefb_bucket - Resolved issue with removing bucket quota
- purefb_info - Fixed ``AttributeError`` for ``snapshot`` subset when snapshot had been created manually, rather than using a snapshot policy
+- purefb_info - Fixed issue after SMD Directory Services no longer avaible from REST 2.16
- purefb_info - Fixed issue with admin token creation time and bucket policies
+- purefb_policy - Fixed creation of snapshot policies with assigned filesystems and/or replica links
- purefb_policy - Fixed syntax error is account name.
+- purefb_s3acc - Fixed issue with public access config settings not being correctly for an account
- purefb_smtp - Fix errors that occurred after adding support for smtp encrpytion and using the module on older FlashBlades.
- purefb_snap - Fixed issue where ``target`` incorrectly required for a regular snapshot
@@ -7609,38 +4055,106 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Add Icinga notification template imports (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/267)
+- Bug: dependency apply module raises error when using a variable for parent host or service (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/276)
+- Extend checks in diff as a workaround for type confusion with the Director API (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/278)
+- add 'groups' parameter to task 'icinga_user.yml' (https://github.com/telekom-mms/ansible-collection-icinga-director/pull/284)
theforeman.foreman
~~~~~~~~~~~~~~~~~~
+- activation_key - ensure LCE and CV are always sent together when updating one of them
- callback plugin - fix another exception when serializing secrets (https://github.com/theforeman/foreman-ansible-modules/pull/1819)
+- content_upload - lower chunk size to 1MB to avoid generating too big requests (https://github.com/theforeman/foreman-ansible-modules/issues/1862)
+- host - ensure LCE and CV are always sent together when updating one of them
+- hostgroup - fix idempotency of hostgroup module when assigning Ansible roles to a hostgroup with a parent hostgroup (https://github.com/theforeman/foreman-ansible-modules/issues/1865)
- inventory - Drop fallback to Host API when Reports API fails, as this leads to possibly wrong data being used
vmware.vmware
~~~~~~~~~~~~~
+- Make integration tests compatible with ansible-core 2.19 (https://github.com/ansible-collections/vmware.vmware/issues/194)
- client utils - Fixed error message when required library could not be imported
+- cluster_drs - Fix error when non-string advanced settings are applied (https://github.com/ansible-collections/vmware.vmware/issues/190)
+- cluster_ha - Fix error when non-string advanced settings are applied (https://github.com/ansible-collections/vmware.vmware/issues/190)
+- cluster_ha - Fix exception when cluster ha module checks for differences with VM monitoring configs
+- cluster_ha - fix typo that causes PDL response mode 'restart' to throw an error
- content_library_item_info - Library name and ID are ignored if item ID is provided so updated docs and arg parse rules to reflect this
+- content_template - Fix error when creating template from VM and not specifying certain non-critical placement options
+- content_template - Replace non-existent method used when handling api errors
+- deploy_* - Fix issue where datastore was expected even though it is optional
+- deploy_content_library_ovf - fix error when deploying from a datastore cluster by simplifying the ds selection process
+- fix method to lookup datastore clusters by name or moid https://github.com/ansible-collections/vmware.vmware/issues/152
- folder - replaced non-existent 'storage' type with 'datastore' type
+- inventory plugins - fix issue where cache did not work (https://github.com/ansible-collections/vmware.vmware/issues/175)
- module_deploy_vm_base - fix attribute error when deploying to a resource pool
+- pyvmomi - Replace deprecated JSON encoder with new one from pyvmomi package (https://github.com/vmware/pyvmomi/blob/e6cc09f32593d263b9ea0b611596a2c505786c6b/CHANGELOG.md?plain=1#L72)
+- tests/integration/vmware_folder_template_from_vm - Fix tests for 2.19
+- vcsa_settings - Fix bug where proxy settings cannot be disabled, even if enabled is set to false. (https://github.com/ansible-collections/vmware.vmware/issues/207)
+- vm_snapshot - Make sure snapshot output is always included if state is present
- vms inventory - fix handling of VMs within VApps
vmware.vmware_rest
~~~~~~~~~~~~~~~~~~
+- Allow cloud.common 5.0.0 and later again (https://github.com/ansible-collections/vmware.vmware_rest/pull/614).
- lookup plugins - Fixed issue where datacenter search filter was never properly set
- module_utils - fixed return value for vmware.vmware_rest.vcenter_vm_guest_filesystem_directories module
- vcenter_ovf_libraryitem - Update documentation to mention the metadata cannot be updated via conventional means. Added example showing workaround (https://github.com/ansible-collections/vmware.vmware_rest/issues/385)
+vyos.vyos
+~~~~~~~~~
+
+- vyos_config - Fix change detection for recent Vyos versions
+- vyos_firewall_global - Fix removing last member of a firewall group.
+- vyos_firewall_global - Fixed ipv6 route-redirects and tests
+- vyos_firewall_global - Fixed parsing of global-options (1.4+)
+- vyos_firewall_global - Fixed state-policy deletion (partial and full)
+- vyos_firewall_global - fixed behavior for stanzas processing by facts in 1.4+ (e.g. present/absent stanza vs enable/disable)
+- vyos_firewall_global - fixed the facts parsers to include state-policies, redirect
+- vyos_firewall_rules - Allow deleting of firewall description.
+- vyos_firewall_rules - Fix limit parameter processing
+- vyos_firewall_rules - fixed behavior for log, disable attributes
+- vyos_firewall_rules - fixed behavior for override and replaced states
+- vyos_interfaces - fixed bug where 'replace' would delete an active disable and not reinstate it
+- vyos_interfaces - fixed over-zealous handling of disable, which could catch other interface items that are disabled.
+- vyos_l3_interfaces - fix delete in interfaces to remove vif completely if in affected interface
+- vyos_l3_interfaces - fix override in interfaces to remove vif completely if not present in new config
+- vyos_l3_interfaces - fix replace in interfaces to remove vif completely if not present in new config
+- vyos_logging_global - Fixed v1.3 and before when `protocol` and `level` were set for the same host
+- vyos_ospf_interfaces - fixed get_config to cater for unordered command lists in 1.4+
+- vyos_ospfv2 - passive-interface processing for 1.3- and 1.4+
+- vyos_ospfv3 - added support for adding interfaces to areas
+- vyos_static routes - fixed the facts, argspecs, config to include interface-routes
+- vyos_user - fix handling of `full-name` in parser and module
+
Known Issues
------------
+community.general
+~~~~~~~~~~~~~~~~~
+
+- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
+
+community.hrobot
+~~~~~~~~~~~~~~~~
+
+- storagebox* modules - the Hetzner Robot API for storage boxes is `deprecated and will be sunset on July 30, 2025 `__. The modules are currently not compatible with the new API. We will try to adjust them until then, but usage and return values might change slightly due to differences in the APIs.
+ For the new API, an API token needs to be registered and provided as ``hetzner_token`` (https://github.com/ansible-collections/community.hrobot/pull/166).
+
+community.libvirt
+~~~~~~~~~~~~~~~~~
+
+- virt_volume - check_mode is disabled. It was not fully supported in the previous code either ('state/present', 'command/create' did not support it).
+
dellemc.openmanage
~~~~~~~~~~~~~~~~~~
+- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
+- idrac_diagnostics - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
+- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
purestorage.flasharray
~~~~~~~~~~~~~~~~~~~~~~
@@ -7648,19 +4162,52 @@
- All Fusion fleet members will be assumed to be at the same Purity//FA version level as the array connected to by Ansible.
- FlashArray//CBS is not currently supported as a member of a Fusion fleet
+vmware.vmware_rest
+~~~~~~~~~~~~~~~~~~
+
+- The lookup plugins use ``cloud.common``, but this collection does not support ansible-core 2.19 or higher (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+
+vyos.vyos
+~~~~~~~~~
+
+- existing code for 1.3 facility protocol and facility level are not compatible, only one will be set and level is the priority.
+
New Plugins
-----------
+Callback
+~~~~~~~~
+
+- community.general.print_task - Prints playbook task snippet to job output.
+- community.general.tasks_only - Only show tasks.
+
+Connection
+~~~~~~~~~~
+
+- community.general.wsl - Run tasks in WSL distribution using wsl.exe CLI via SSH.
+
Filter
~~~~~~
- community.dns.reverse_pointer - Convert an IP address into a DNS name for reverse lookup.
+- community.general.accumulate - Produce a list of accumulated sums of the input list contents.
+- community.general.json_diff - Create a JSON patch by comparing two JSON files.
+- community.general.json_patch - Apply a JSON-Patch (RFC 6902) operation to an object.
+- community.general.json_patch_recipe - Apply JSON-Patch (RFC 6902) operations to an object.
+- community.general.to_prettytable - Format a list of dictionaries as an ASCII table.
- microsoft.ad.split_dn - Splits an LDAP DistinguishedName.
+Inventory
+~~~~~~~~~
+
+- community.general.iocage - iocage inventory source.
+
Lookup
~~~~~~
- community.dns.reverse_lookup - Reverse-look up IP addresses.
+- community.general.binary_file - Read binary file and return it Base64 encoded.
+- community.general.onepassword_ssh_key - Fetch SSH keys stored in 1Password.
- infoblox.nios_modules.nios_next_vlan_id - Return the next available VLAN ID
New Modules
@@ -7710,6 +4257,31 @@
- check_point.mgmt.cp_mgmt_user_template - Manages user-template objects on Checkpoint over Web Services API
- check_point.mgmt.cp_mgmt_user_template_facts - Get user-template objects facts on Checkpoint over Web Services API
+cisco.aci
+~~~~~~~~~
+
+- cisco.aci.aci_interface_policy_port_channel_member - Manage Port Channel Member interface policies (lacp:IfPol)
+- cisco.aci.aci_l4l7_concrete_device - Manage L4-L7 Concrete Devices (vns:CDev)
+- cisco.aci.aci_l4l7_concrete_interface - Manage L4-L7 Concrete Interfaces (vns:CIf)
+- cisco.aci.aci_l4l7_concrete_interface_attachment - Manage L4-L7 Concrete Interface Attachment (vns:RsCIfAttN)
+- cisco.aci.aci_l4l7_device - Manage L4-L7 Devices (vns:LDevVip)
+- cisco.aci.aci_l4l7_device_selection_interface_context - Manage L4-L7 Device Selection Policy Logical Interface Contexts (vns:LIfCtx)
+- cisco.aci.aci_l4l7_device_selection_policy - Manage L4-L7 Device Selection Policies (vns:LDevCtx)
+- cisco.aci.aci_l4l7_logical_interface - Manage L4-L7 Logical Interface (vns:LIf)
+- cisco.aci.aci_l4l7_policy_based_redirect - Manage L4-L7 Policy Based Redirection Policies (vns:SvcRedirectPol)
+- cisco.aci.aci_l4l7_policy_based_redirect_destination - Manage L4-L7 Policy Based Redirect Destinations (vns:RedirectDest and vns:L1L2RedirectDest)
+- cisco.aci.aci_l4l7_redirect_health_group - Manage L4-L7 Redirect Health Groups (vns:RedirectHealthGroup)
+- cisco.aci.aci_l4l7_service_graph_template - Manage L4-L7 Service Graph Templates (vns:AbsGraph)
+- cisco.aci.aci_l4l7_service_graph_template_connection - Manage L4-L7 Service Graph Template Abs Connections (vns:AbsConnection)
+- cisco.aci.aci_l4l7_service_graph_template_connection_to_connector - Manage L4-L7 Service Graph Template Connections between function nodes and terminal nodes (vns:RsAbsConnectionConns)
+- cisco.aci.aci_l4l7_service_graph_template_functional_connection - Manage L4-L7 Service Graph Templates Functional Connections (vns:AbsFuncConn)
+- cisco.aci.aci_l4l7_service_graph_template_node - Manage L4-L7 Service Graph Templates Nodes (vns:AbsNode)
+- cisco.aci.aci_l4l7_service_graph_template_term_node - Manage L4-L7 SGT Term Nodes (vns:AbsTermNodeCon, vns:AbsTermNodeProv and vns:AbsTermConn)
+- cisco.aci.aci_node_mgmt_epg_to_contract - Bind Node Management EPGs to Contracts (fv:RsCons, fv:RsProv, fv:RsProtBy, fv:RsConsIf and mgmt:RsOoBProv)
+- cisco.aci.aci_oob_contract - Manage Out-of-Band (OOB) Contract resources (vz:OOBBrCP)
+- cisco.aci.aci_vmm_enhanced_lag_policy - Manage Enhanced LACP Policy for Virtual Machine Manager (VMM) in Cisco ACI (lacp:EnhancedLagPol)
+- cisco.aci.aci_vrf_fallback_route_group - Manage VRF Fallback Route Groups (fv:FBRGroup, fv:FBRoute, and fv:FBRMember)
+
cisco.ios
~~~~~~~~~
@@ -7720,11 +4292,34 @@
- cisco.iosxr.iosxr_vrf_interfaces - Resource module to configure VRF interfaces.
+cisco.mso
+~~~~~~~~~
+
+- cisco.mso.ndo_fabric_span_session - Manage Fabric SPAN Sessions on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_fabric_span_session_source - Manage Fabric SPAN Sessions Source on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_fabric_span_session_source_filter - Manage Fabric SPAN Sessions Source Filter on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_l3out_bgp_peer - Manage L3Out BGP Peer on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_l3out_node_static_route - Manage L3Out Node Static Routes on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_l3out_node_static_route_next_hop - Manage L3Out Node Static Route Next Hops on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_l3out_routed_interface - Manage L3Out Routed Interfaces on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_l3out_routed_sub_interface - Manage L3Out Routed Sub-Interfaces on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_pod_profile - Manage Pod Profiles on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_pod_settings - Manage Pod Settings on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_qos_class_policy - Manage QoS Class Policies on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_schema_template_contract_service_chain - Manage the Schema Template Contract Service Chaining workflow on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_service_device_cluster - Manage Service Device Clusters on Cisco Nexus Dashboard Orchestrator (NDO).
+- cisco.mso.ndo_tenant_span_session - Manage Tenant SPAN Sessions on Cisco Nexus Dashboard Orchestrator (NDO).
+
cisco.nxos
~~~~~~~~~~
- cisco.nxos.nxos_vrf_address_family - Resource module to configure VRF address family definitions.
+cloudscale_ch.cloud
+~~~~~~~~~~~~~~~~~~~
+
+- cloudscale_ch.cloud.volume_snapshot - Manage volume snapshots on the cloudscale.ch IaaS service
+
community.crypto
~~~~~~~~~~~~~~~~
@@ -7733,6 +4328,12 @@
- community.crypto.acme_certificate_order_info - Obtain information for an ACME v2 order.
- community.crypto.acme_certificate_order_validate - Validate authorizations of an ACME v2 order.
+community.dns
+~~~~~~~~~~~~~
+
+- community.dns.adguardhome_rewrite - Add, update or delete DNS rewrite rules from AdGuardHome.
+- community.dns.adguardhome_rewrite_info - Retrieve DNS rewrite rules from AdGuardHome.
+
community.docker
~~~~~~~~~~~~~~~~
@@ -7741,7 +4342,19 @@
community.general
~~~~~~~~~~~~~~~~~
+- community.general.android_sdk - Manages Android SDK packages.
+- community.general.decompress - Decompresses compressed files.
+- community.general.jenkins_credential - Manage Jenkins credentials and domains via API.
+- community.general.ldap_inc - Use the Modify-Increment LDAP V3 feature to increment an attribute value.
+- community.general.lvm_pv - Manage LVM Physical Volumes.
+- community.general.lvm_pv_move_data - Move data between LVM Physical Volumes (PVs).
+- community.general.pacemaker_info - Gather information about Pacemaker cluster.
- community.general.pacemaker_resource - Manage pacemaker resources.
+- community.general.systemd_creds_decrypt - C(systemd)'s C(systemd-creds decrypt) plugin.
+- community.general.systemd_creds_encrypt - C(systemd)'s C(systemd-creds encrypt) plugin.
+- community.general.systemd_info - Gather C(systemd) unit info.
+- community.general.xdg_mime - Set default handler for MIME types, for applications using XDG tools.
+- community.general.zpool - Manage ZFS zpools.
community.hrobot
~~~~~~~~~~~~~~~~
@@ -7750,8 +4363,18 @@
- community.hrobot.storagebox - Modify a storage box's basic configuration.
- community.hrobot.storagebox_info - Query information on one or more storage boxes.
- community.hrobot.storagebox_set_password - (Re)set the password for a storage box.
+- community.hrobot.storagebox_snapshot - Create, update, or delete a snapshot of a storage box.
+- community.hrobot.storagebox_snapshot_info - Query the snapshots for a storage box.
- community.hrobot.storagebox_snapshot_plan - Modify a storage box's snapshot plans.
- community.hrobot.storagebox_snapshot_plan_info - Query the snapshot plans for a storage box.
+- community.hrobot.storagebox_subaccount - Create, update, or delete a subaccount for a storage box.
+- community.hrobot.storagebox_subaccount_info - Query the subaccounts for a storage box.
+
+community.libvirt
+~~~~~~~~~~~~~~~~~
+
+- community.libvirt.virt_install - Provision new virtual machines using virt-install tool
+- community.libvirt.virt_volume - Manage libvirt volumes inside a storage pool
community.postgresql
~~~~~~~~~~~~~~~~~~~~
@@ -7769,6 +4392,11 @@
- community.zabbix.zabbix_connector - Create/Delete/Update Zabbix connectors
- community.zabbix.zabbix_regexp_info - Retrieve Zabbix regular expression
+containers.podman
+~~~~~~~~~~~~~~~~~
+
+- containers.podman.podman_system_info - Get podman system information from host machine
+
dellemc.enterprise_sonic
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -7783,10 +4411,35 @@
fortinet.fortimanager
~~~~~~~~~~~~~~~~~~~~~
+- fortinet.fortimanager.fmgr_dlp_exactdatamatch - Configure exact-data-match template used by DLP scan.
+- fortinet.fortimanager.fmgr_dlp_exactdatamatch_columns - DLP exact-data-match column types.
+- fortinet.fortimanager.fmgr_dlp_label - Configure labels used by DLP blocking.
+- fortinet.fortimanager.fmgr_dlp_label_entries - DLP label entries.
+- fortinet.fortimanager.fmgr_extensioncontroller_extendervap - FortiExtender wifi vap configuration.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension - Configure Internet Services Extension.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry - Disable entries in the Internet Service database.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_ip6range - IPv6 ranges in the disable entry.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_iprange - IPv4 ranges in the disable entry.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_disableentry_portrange - Port ranges in the disable entry.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_entry - Entries added to the Internet Service extension database.
+- fortinet.fortimanager.fmgr_firewall_internetserviceextension_entry_portrange - Port ranges in the custom entry.
+- fortinet.fortimanager.fmgr_fmupdate_fgdsetting - Cli fmupdate fgd setting
+- fortinet.fortimanager.fmgr_fmupdate_fgdsetting_serveroverride - Cli fmupdate fgd setting server override
- fortinet.fortimanager.fmgr_gtp_ieallowlist - IE allow list.
- fortinet.fortimanager.fmgr_gtp_ieallowlist_entries - Entries of allow list for unknown or out-of-state IEs.
+- fortinet.fortimanager.fmgr_gtp_rattimeoutprofile - RAT timeout profile
+- fortinet.fortimanager.fmgr_icap_servergroup - Configure an ICAP server group consisting of multiple forward servers.
+- fortinet.fortimanager.fmgr_icap_servergroup_serverlist - Add ICAP servers to a list to form a server group.
- fortinet.fortimanager.fmgr_pkg_videofilter_youtubekey - Configure YouTube API keys.
+- fortinet.fortimanager.fmgr_system_log_deviceselector - Accept/reject devices matching specified filter types.
+- fortinet.fortimanager.fmgr_telemetrycontroller_agentprofile - Configure FortiTelemetry agent profiles.
+- fortinet.fortimanager.fmgr_telemetrycontroller_application_predefine - Configure FortiTelemetry predefined applications.
+- fortinet.fortimanager.fmgr_telemetrycontroller_profile - Configure FortiTelemetry profiles.
+- fortinet.fortimanager.fmgr_telemetrycontroller_profile_application - Configure applications.
+- fortinet.fortimanager.fmgr_telemetrycontroller_profile_application_sla - Service level agreement
- fortinet.fortimanager.fmgr_ums_setting - Ums setting
+- fortinet.fortimanager.fmgr_user_scim - Configure SCIM client entries.
+- fortinet.fortimanager.fmgr_wireless_vap_ip6prefixlist - Wireless controller vap ip6 prefix list
ibm.storage_virtualize
~~~~~~~~~~~~~~~~~~~~~~
@@ -7813,17 +4466,34 @@
netapp.ontap
~~~~~~~~~~~~
+- netapp.ontap.na_ontap_autoupdate_support - NetApp ONTAP enable auto update status.
- netapp.ontap.na_ontap_bgp_config - NetApp ONTAP network BGP configuration
- netapp.ontap.na_ontap_cifs_privileges - NetApp ONTAP CIFS privileges
+- netapp.ontap.na_ontap_mav_approval_group - NetApp ONTAP multi-admin verification (MAV) approval group
+- netapp.ontap.na_ontap_mav_config - NetApp ONTAP multi-admin verification (MAV) global setting
+- netapp.ontap.na_ontap_mav_rule - NetApp ONTAP multi-admin verification (MAV) rule
+- netapp.ontap.na_ontap_storage_unit - NetApp ONTAP ASA r2 storage unit
+- netapp.ontap.na_ontap_storage_unit_snapshot - NetApp ONTAP ASA r2 storage unit snapshot
+- netapp.ontap.na_ontap_support_config_backup - NetApp ONTAP support configuration backup
netapp.storagegrid
~~~~~~~~~~~~~~~~~~
+- netapp.storagegrid.na_sg_grid_alert_receiver - NetApp StorageGRID manage alert receiver.
+- netapp.storagegrid.na_sg_grid_audit_destination - Configure audit log destinations on StorageGRID.
+- netapp.storagegrid.na_sg_grid_autosupport - Configure autosupport on StorageGRID.
+- netapp.storagegrid.na_sg_grid_domain_name - Configure endpoint domain name on StorageGRID.
- netapp.storagegrid.na_sg_grid_ec_profile - Manage EC profiles on StorageGRID.
+- netapp.storagegrid.na_sg_grid_hotfix - Apply hotfixes on StorageGRID.
- netapp.storagegrid.na_sg_grid_ilm_policy - Manage ILM policies on StorageGRID.
- netapp.storagegrid.na_sg_grid_ilm_policy_tag - Manage ILM policy tags on StorageGRID.
- netapp.storagegrid.na_sg_grid_ilm_pool - Manage ILM pools on StorageGRID.
- netapp.storagegrid.na_sg_grid_ilm_rule - Manage ILM rules on StorageGRID.
+- netapp.storagegrid.na_sg_grid_proxy_settings - NetApp StorageGRID manage proxy settings for the grid.
+- netapp.storagegrid.na_sg_grid_snmp - Configure SNMP agent on StorageGRID.
+- netapp.storagegrid.na_sg_grid_tenant - NetApp StorageGRID manage tenant accounts.
+- netapp.storagegrid.na_sg_grid_vlan_interface - Configure VLAN interface on StorageGRID.
+- netapp.storagegrid.na_sg_org_bucket - Manage buckets on StorageGRID.
netbox.netbox
~~~~~~~~~~~~~
@@ -7836,33 +4506,40 @@
- purestorage.flasharray.purefa_fleet - Manage Fusion Fleet
- purestorage.flasharray.purefa_realm - Manage realms on Pure Storage FlashArrays
+purestorage.flashblade
+~~~~~~~~~~~~~~~~~~~~~~
+
+- purestorage.flashblade.purefb_bucket_access - Manage FlashBlade bucket access policies
+- purestorage.flashblade.purefb_fleet - Manage Fusion Fleet
+- purestorage.flashblade.purefb_server - Manage FlashBlade servers
+
+telekom_mms.icinga_director
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- telekom_mms.icinga_director.icinga_dependency_apply - Manage dependency apply rules in Icinga2
+
+theforeman.foreman
+~~~~~~~~~~~~~~~~~~
+
+- theforeman.foreman.flatpak_remote - Manage Flatpak Remotes
+- theforeman.foreman.flatpak_remote_repository_mirror - Mirror a Flatpak Remote Repository
+- theforeman.foreman.flatpak_remote_scan - Scan a Flatpak Remote
+
Unchanged Collections
---------------------
-- ansible.utils (still version 5.1.2)
- awx.awx (still version 24.6.1)
- chocolatey.chocolatey (still version 1.5.3)
-- cisco.aci (still version 2.10.1)
-- cisco.intersight (still version 2.0.20)
-- cisco.mso (still version 2.9.0)
-- cloud.common (still version 4.0.0)
- community.digitalocean (still version 1.27.0)
-- community.grafana (still version 2.1.0)
-- community.hashi_vault (still version 6.2.0)
- community.proxysql (still version 1.6.0)
- community.sap_libs (still version 1.4.2)
-- dellemc.unity (still version 2.0.0)
- ibm.qradar (still version 4.0.0)
- ieisystem.inmanage (still version 3.0.0)
-- infinidat.infinibox (still version 1.4.5)
- inspur.ispim (still version 2.2.3)
- kaytus.ksmanage (still version 2.0.0)
-- kubevirt.core (still version 2.1.0)
- netapp.cloudmanager (still version 21.24.0)
- netapp_eseries.santricity (still version 1.4.1)
- ngine_io.cloudstack (still version 2.5.0)
-- ovirt.ovirt (still version 3.2.0)
- splunk.es (still version 4.0.0)
- vultr.cloud (still version 1.13.0)
-- vyos.vyos (still version 5.0.0)
- wti.remote (still version 1.0.10)
diff -Nru ansible-12.0.0~b5+dfsg/PKG-INFO ansible-12.0.0+dfsg/PKG-INFO
--- ansible-12.0.0~b5+dfsg/PKG-INFO 2025-08-26 19:33:11.509733700 +0000
+++ ansible-12.0.0+dfsg/PKG-INFO 2025-09-09 13:45:33.820777200 +0000
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: ansible
-Version: 12.0.0b5
+Version: 12.0.0
Summary: Radically simple IT automation
Home-page: https://ansible.com/
Author: Ansible, Inc.
diff -Nru ansible-12.0.0~b5+dfsg/ansible.egg-info/PKG-INFO ansible-12.0.0+dfsg/ansible.egg-info/PKG-INFO
--- ansible-12.0.0~b5+dfsg/ansible.egg-info/PKG-INFO 2025-08-26 19:32:47.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible.egg-info/PKG-INFO 2025-09-09 13:45:10.000000000 +0000
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: ansible
-Version: 12.0.0b5
+Version: 12.0.0
Summary: Radically simple IT automation
Home-page: https://ansible.com/
Author: Ansible, Inc.
diff -Nru ansible-12.0.0~b5+dfsg/ansible.egg-info/SOURCES.txt ansible-12.0.0+dfsg/ansible.egg-info/SOURCES.txt
--- ansible-12.0.0~b5+dfsg/ansible.egg-info/SOURCES.txt 2025-08-26 19:32:59.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible.egg-info/SOURCES.txt 2025-09-09 13:45:22.000000000 +0000
@@ -1167,6 +1167,8 @@
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py
@@ -1255,11 +1257,15 @@
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractiongroups.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractiongroups_info.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordatacollectionrules.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordatacollectionrules_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py
+./ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py
./ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py
@@ -7122,31 +7128,6 @@
./ansible_collections/cisco/ucs/plugins/modules/ucs_vnic_template.py
./ansible_collections/cisco/ucs/plugins/modules/ucs_vsans.py
./ansible_collections/cisco/ucs/plugins/modules/ucs_wwn_pool.py
-./ansible_collections/cloud/common/CHANGELOG.rst
-./ansible_collections/cloud/common/CI.md
-./ansible_collections/cloud/common/FILES.json
-./ansible_collections/cloud/common/LICENSE
-./ansible_collections/cloud/common/MANIFEST.json
-./ansible_collections/cloud/common/README.md
-./ansible_collections/cloud/common/bindep.txt
-./ansible_collections/cloud/common/pytest.ini
-./ansible_collections/cloud/common/requirements.txt
-./ansible_collections/cloud/common/test-requirements.txt
-./ansible_collections/cloud/common/tox.ini
-./ansible_collections/cloud/common/changelogs/changelog.yaml
-./ansible_collections/cloud/common/changelogs/config.yaml
-./ansible_collections/cloud/common/changelogs/fragments/.keep
-./ansible_collections/cloud/common/meta/runtime.yml
-./ansible_collections/cloud/common/plugins/lookup/turbo_demo.py
-./ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py
-./ansible_collections/cloud/common/plugins/module_utils/turbo/common.py
-./ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py
-./ansible_collections/cloud/common/plugins/module_utils/turbo/module.py
-./ansible_collections/cloud/common/plugins/module_utils/turbo/server.py
-./ansible_collections/cloud/common/plugins/modules/turbo_demo.py
-./ansible_collections/cloud/common/plugins/modules/turbo_fail.py
-./ansible_collections/cloud/common/plugins/modules/turbo_import.py
-./ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py
./ansible_collections/cloudscale_ch/cloud/CHANGELOG.rst
./ansible_collections/cloudscale_ch/cloud/CONTRIBUTING.md
./ansible_collections/cloudscale_ch/cloud/COPYING
@@ -18053,6 +18034,15 @@
./ansible_collections/netbox/netbox/changelogs/changelog.yaml
./ansible_collections/netbox/netbox/changelogs/config.yaml
./ansible_collections/netbox/netbox/changelogs/fragments/.gitkeep
+./ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml
+./ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml
./ansible_collections/netbox/netbox/hacking/black.sh
./ansible_collections/netbox/netbox/hacking/build.sh
./ansible_collections/netbox/netbox/hacking/local-test.sh
@@ -19789,6 +19779,7 @@
./ansible_collections/vmware/vmware_rest/modules.yaml
./ansible_collections/vmware/vmware_rest/requirements.txt
./ansible_collections/vmware/vmware_rest/test-requirements.txt
+./ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml
./ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml
./ansible_collections/vmware/vmware_rest/changelogs/config.yaml
./ansible_collections/vmware/vmware_rest/changelogs/fragments/.keep
@@ -24594,6 +24585,8 @@
ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py
@@ -24682,11 +24675,15 @@
ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractiongroups.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractiongroups_info.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordatacollectionrules.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordatacollectionrules_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py
+ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py
ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py
@@ -34766,62 +34763,6 @@
ansible_collections/cisco/ucs/plugins/modules/ucs_vsans.py
ansible_collections/cisco/ucs/plugins/modules/ucs_wwn_pool.py
ansible_collections/cisco/ucs/tests/config.yml
-ansible_collections/cloud/common/.ansible-lint
-ansible_collections/cloud/common/CHANGELOG.rst
-ansible_collections/cloud/common/CI.md
-ansible_collections/cloud/common/FILES.json
-ansible_collections/cloud/common/LICENSE
-ansible_collections/cloud/common/MANIFEST.json
-ansible_collections/cloud/common/README.md
-ansible_collections/cloud/common/bindep.txt
-ansible_collections/cloud/common/pytest.ini
-ansible_collections/cloud/common/requirements.txt
-ansible_collections/cloud/common/test-requirements.txt
-ansible_collections/cloud/common/tox.ini
-ansible_collections/cloud/common/.github/patchback.yml
-ansible_collections/cloud/common/.github/workflows/changelog.yaml
-ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml
-ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml
-ansible_collections/cloud/common/.github/workflows/integration-tests.yaml
-ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml
-ansible_collections/cloud/common/.github/workflows/linters.yaml
-ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml
-ansible_collections/cloud/common/.github/workflows/unit-tests.yaml
-ansible_collections/cloud/common/changelogs/changelog.yaml
-ansible_collections/cloud/common/changelogs/config.yaml
-ansible_collections/cloud/common/changelogs/fragments/.keep
-ansible_collections/cloud/common/meta/runtime.yml
-ansible_collections/cloud/common/plugins/lookup/turbo_demo.py
-ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py
-ansible_collections/cloud/common/plugins/module_utils/turbo/common.py
-ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py
-ansible_collections/cloud/common/plugins/module_utils/turbo/module.py
-ansible_collections/cloud/common/plugins/module_utils/turbo/server.py
-ansible_collections/cloud/common/plugins/modules/turbo_demo.py
-ansible_collections/cloud/common/plugins/modules/turbo_fail.py
-ansible_collections/cloud/common/plugins/modules/turbo_import.py
-ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py
-ansible_collections/cloud/common/tests/config.yml
-ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml
-ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml
-ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml
-ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh
-ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt
-ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt
-ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt
-ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt
-ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt
-ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt
-ansible_collections/cloud/common/tests/unit/requirements.txt
-ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py
-ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py
-ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py
ansible_collections/cloudscale_ch/cloud/.gitignore
ansible_collections/cloudscale_ch/cloud/CHANGELOG.rst
ansible_collections/cloudscale_ch/cloud/CONTRIBUTING.md
@@ -58136,6 +58077,15 @@
ansible_collections/netbox/netbox/changelogs/changelog.yaml
ansible_collections/netbox/netbox/changelogs/config.yaml
ansible_collections/netbox/netbox/changelogs/fragments/.gitkeep
+ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml
+ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml
+ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml
+ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml
+ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml
+ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml
+ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml
+ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml
+ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml
ansible_collections/netbox/netbox/docs/Makefile
ansible_collections/netbox/netbox/docs/conf.py
ansible_collections/netbox/netbox/docs/index.rst
@@ -58459,9 +58409,35 @@
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/files/test-inventory-plurals.yml
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/files/test-inventory.json
ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/files/test-inventory.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json
+ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml
ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.0/tasks/main.yml
ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.1/tasks/main.yml
ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.2/tasks/main.yml
+ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml
ansible_collections/netbox/netbox/tests/integration/targets/v4.0/tasks/main.yml
ansible_collections/netbox/netbox/tests/integration/targets/v4.0/tasks/netbox_aggregate.yml
ansible_collections/netbox/netbox/tests/integration/targets/v4.0/tasks/netbox_asn.yml
@@ -58724,9 +58700,98 @@
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_wireless_lan.yml
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_wireless_lan_group.yml
ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_wireless_link.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml
+ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml
ansible_collections/netbox/netbox/tests/netbox-docker/v4.0/docker-compose.override.yml
ansible_collections/netbox/netbox/tests/netbox-docker/v4.1/docker-compose.override.yml
ansible_collections/netbox/netbox/tests/netbox-docker/v4.2/docker-compose.override.yml
+ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml
ansible_collections/netbox/netbox/tests/unit/inventory/__init__.py
ansible_collections/netbox/netbox/tests/unit/inventory/test_nb_inventory.py
ansible_collections/netbox/netbox/tests/unit/inventory/test_data/data.json
@@ -61298,6 +61363,7 @@
ansible_collections/vmware/vmware_rest/.github/workflows/linters.yaml
ansible_collections/vmware/vmware_rest/.github/workflows/patchback.yml
ansible_collections/vmware/vmware_rest/.github/workflows/sanity-tests.yaml
+ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml
ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml
ansible_collections/vmware/vmware_rest/changelogs/config.yaml
ansible_collections/vmware/vmware_rest/changelogs/fragments/.keep
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/ansible_community.py ansible-12.0.0+dfsg/ansible_collections/ansible_community.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/ansible_community.py 2025-08-26 19:32:21.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/ansible_community.py 2025-09-09 13:44:47.000000000 +0000
@@ -15,7 +15,7 @@
parser.add_argument(
'--version',
action='version',
- version='Ansible community version 12.0.0b5',
+ version='Ansible community version 12.0.0',
help="show the version of the Ansible community package",
)
parser.parse_args()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/ansible_release.py ansible-12.0.0+dfsg/ansible_collections/ansible_release.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/ansible_release.py 2025-08-26 19:32:21.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/ansible_release.py 2025-09-09 13:44:47.000000000 +0000
@@ -3,4 +3,4 @@
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
-ansible_version = '12.0.0b5'
\ No newline at end of file
+ansible_version = '12.0.0'
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/CHANGELOG.md ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/CHANGELOG.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/CHANGELOG.md 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/CHANGELOG.md 2025-08-29 02:51:39.000000000 +0000
@@ -1,4 +1,35 @@
# Change Log
+## v3.8.0 (2025-08-29)
+
+### NEW MODULES
+ - azure_rm_monitormetricalerts.py: ([#1952](https://github.com/ansible-collections/azure/pull/2016))
+ - azure_rm_monitormetricalerts_info.py: ([#1952](https://github.com/ansible-collections/azure/pull/2016))
+ - azure_rm_monitoractivitylogalerts.py: ([#1971](https://github.com/ansible-collections/azure/pull/1971))
+ - azure_rm_monitoractivitylogalerts_info.py: ([#1971](https://github.com/ansible-collections/azure/pull/1971))
+ - azure_rm_dedicatedhost.py: ([#1955](https://github.com/ansible-collections/azure/pull/1955))
+ - azure_rm_dedicatedhost_info.py: ([#1955](https://github.com/ansible-collections/azure/pull/1955))
+
+### FEATURE ENHANCEMENT
+ - plugins/module_utils/azure_rm_common.py:
+ - Set monitor management client for metric alert ([#1952](https://github.com/ansible-collections/azure/pull/2016))
+ - Set monitor management client for activity log alert ([#1971](https://github.com/ansible-collections/azure/pull/1971))
+ - Delete import get cli profile ([#2030](https://github.com/ansible-collections/azure/pull/2030))
+ - Get 'subscription_id' when configuring the authentication parameter ([#2033](https://github.com/ansible-collections/azure/pull/2033))
+ - Replacement will send raw.githubusercontent.com request method ([#2039](https://github.com/ansible-collections/azure/pull/2039))
+ - plugins/module_utils/azure_rm_common_ext.py: Enhance default_compare ([1971](https://github.com/ansible-collections/azure/pull/1971))
+ - azure_rm_aks.py: Add support addon's wqazureKeyvaultSecretsProvider ([#2026](https://github.com/ansible-collections/azure/pull/2026))
+ - README.md: Update readme.md per https://access.redhat.com/articles/7068606 ([#2029](https://github.com/ansible-collections/azure/pull/2029))
+ - azure_rm_azurefirewall.py: Add supportr 'destination_fqdns' ([#2031](https://github.com/ansible-collections/azure/pull/2031))
+ - azure_rm_azurefirewall_info.py: Support return 'destination_fqdns' ([#2031](https://github.com/ansible-collections/azure/pull/2031))
+ - requirements.txt: Update azure-cli-core to v2.75.0 ([#2032](https://github.com/ansible-collections/azure/pull/2032))
+ - tests/utils/ado/ado.sh: Specify the ansible-lint version to v25.8.1 ([#2038](https://github.com/ansible-collections/azure/pull/2038))
+
+### BUG FIXING
+ - azure_rm_keyvaultcertificate.py: Convert the certificate data of type bytearray to base64 ([#1996](https://github.com/ansible-collections/azure/pull/1996))
+ - azure_rm_galleryimageversion.py: Fix the keyword input error when assigning values to a dictionary ([#2037](https://github.com/ansible-collections/azure/pull/2037))
+ - azure_rm_publicipaddress.py: Keep the check mode consistent with the print output ([#2043](https://github.com/ansible-collections/azure/pull/2043))
+
+
## v3.7.0 (2025-07-29)
### NEW MODULES
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/FILES.json ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/FILES.json 2025-07-29 02:43:36.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/FILES.json 2025-08-29 02:51:40.000000000 +0000
@@ -11,7 +11,7 @@
"name": "CHANGELOG.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6e832d177e1dd636ce224c035e938d69ce1506cc3ca586f577dc0f52397ca656",
+ "chksum_sha256": "b2eb1698174d5e67cf4f346ac41d34bb899c07561ee8f73c38d3ff2791115170",
"format": 1
},
{
@@ -25,7 +25,7 @@
"name": "pr-pipelines.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "535c992d850b0fa90f3635e2f41e1a8f549b1b977e312c02a5fa7194b5014361",
+ "chksum_sha256": "bef102f89dc70ee9c6e73c459050892b093866d378c925fee81133df5ea05a39",
"format": 1
},
{
@@ -137,7 +137,7 @@
"name": "meta/runtime.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "034b129b1e34faadd44017194c2bc80907aeb24a22efa991c9b4ad62de5edc27",
+ "chksum_sha256": "231d9e7b3398289cc9a55dccd251a92398aedd776effa9e8cd23c9efeb8203db",
"format": 1
},
{
@@ -242,7 +242,7 @@
"name": "plugins/modules/azure_rm_azurefirewall_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c0c5832150dbe6fc7675980c7107ca532191e9c8b1b6885456bb3c954c45aaab",
+ "chksum_sha256": "756fbe516de3c15bd7415f246af1e27a9f2bf8a4f0c35230ce4121fce4b6efde",
"format": 1
},
{
@@ -613,7 +613,7 @@
"name": "plugins/modules/azure_rm_publicipaddress.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d8521d6cdd1320c5384bb1065171d61074c6f2f457c1ef6823f35411220f4d08",
+ "chksum_sha256": "3c9858d421923ddf0cd88cb50311d55be4ec5b976f04d9236f6c1607d26afad3",
"format": 1
},
{
@@ -823,7 +823,7 @@
"name": "plugins/modules/azure_rm_keyvaultcertificate.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0b5266419ed98c5964bc0b283374dc89bc6664b98c2cc319f128a5df339e5a45",
+ "chksum_sha256": "c378eead6975958c7ec6790d0ad9b26bc7d79d6f6e4c12abfe85391249faa881",
"format": 1
},
{
@@ -855,6 +855,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_dedicatedhost.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b30e0bc98bfdaa5cf9978e8921194785cd64055a02a503c8cc6848990a9a7f99",
+ "format": 1
+ },
+ {
"name": "plugins/modules/azure_rm_applicationsecuritygroup.py",
"ftype": "file",
"chksum_type": "sha256",
@@ -890,6 +897,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_monitoractivitylogalerts_info.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6248e7856a339500fa7b5991b390f16fe4d18f54a68256bb89d816226e496b65",
+ "format": 1
+ },
+ {
"name": "plugins/modules/azure_rm_keyvaultsecuritydomain.py",
"ftype": "file",
"chksum_type": "sha256",
@@ -1159,7 +1173,7 @@
"name": "plugins/modules/azure_rm_azurefirewall.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b4ca4d0d3c53b3b1cae912d609f7c50ad64e60ef826de3ea07ba2976a625f8dd",
+ "chksum_sha256": "4471be4edb8b54424ef7f2c61986690785bee8dd9b3869512897aa3238182eb6",
"format": 1
},
{
@@ -1170,6 +1184,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_dedicatedhost_info.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "43d3ed5f40633b474811b7abb3b761d6c10af5f0605195e37b0690703aebaeac",
+ "format": 1
+ },
+ {
"name": "plugins/modules/azure_rm_monitordatacollectionrules_info.py",
"ftype": "file",
"chksum_type": "sha256",
@@ -1523,7 +1544,7 @@
"name": "plugins/modules/azure_rm_aks.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3cca7af1d947fcb607d78356d0aa6b66dc5eb0115ecb163cc0e5080e0114cbf3",
+ "chksum_sha256": "a4fa2de074dba1b45cd4a9885d52c4d874da3f5f5d282e462de36486c2503b2a",
"format": 1
},
{
@@ -1541,6 +1562,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_monitoractivitylogalerts.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4c96d5b5ef0d0e3735be33750e1d67094f43efc33dfc81e89eb30f99028c1b15",
+ "format": 1
+ },
+ {
"name": "plugins/modules/azure_rm_monitoractiongroups_info.py",
"ftype": "file",
"chksum_type": "sha256",
@@ -1768,7 +1796,7 @@
"name": "plugins/modules/azure_rm_keyvaultcertificate_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f9c4817db94179ed6626a546c4de4783c700d8a251186fe704325d11c4703ad0",
+ "chksum_sha256": "7d07f285937e918760ee6218928f749686c0d0253db91bceef8b2288e9f102a3",
"format": 1
},
{
@@ -2174,7 +2202,7 @@
"name": "plugins/modules/azure_rm_galleryimageversion.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2eedc8c963850d23486bfd9d477b5f04211a01af06ea3c4fca66a854267c2fc8",
+ "chksum_sha256": "d8081677b6820a15305bc9503073a481b7c02c45f292b1a92d356fdcfd2ca273",
"format": 1
},
{
@@ -2192,6 +2220,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_monitormetricalerts_info.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fa047b3e8ee7eb13b062c1fd2d10247d2bbc4d004038049dfef762079751ebe9",
+ "format": 1
+ },
+ {
"name": "plugins/modules/azure_rm_applicationfirewallpolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
@@ -2850,6 +2885,13 @@
"format": 1
},
{
+ "name": "plugins/modules/azure_rm_monitormetricalerts.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0482274e3f3a7cdc21064522f4b4e8b8e0ef94c1526068e2141cd7eea4c13c81",
+ "format": 1
+ },
+ {
"name": "plugins/module_utils",
"ftype": "dir",
"chksum_type": null,
@@ -2860,7 +2902,7 @@
"name": "plugins/module_utils/azure_rm_common_ext.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c3bd0ff336444b4757934512887ed7ba3e770be75c61f0c077ab9e4537797d3b",
+ "chksum_sha256": "121cb712aa55fd7c2a3b2bd0713b34f355e4ed6a1f7751fe7c7dd746d008c3ba",
"format": 1
},
{
@@ -2874,7 +2916,7 @@
"name": "plugins/module_utils/azure_rm_common.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8a12b0a44c46336fb20f09db4dc67202f64a7779c21c8b1d47fea62024acc2f0",
+ "chksum_sha256": "3da54000990d81d5cfe59b22165fa14eea47e7c7d430107a99491ac49eff5924",
"format": 1
},
{
@@ -2979,7 +3021,7 @@
"name": "requirements.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "22ff09982e2745a311f16e415bd54eba5e08378ff3c18817ea26c1f5a95cbc5e",
+ "chksum_sha256": "9eb15c0ea474d06cee20ca82a8bbca07d13dfc8750fc8e3fa58b18b4d3f640c2",
"format": 1
},
{
@@ -3000,7 +3042,7 @@
"name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "87a5561553c0a82c5e803e54efec0e782fb88db976fa2fd8553a1f2c9d40ecb1",
+ "chksum_sha256": "6640f71627081a9546431865b91c55f2179a026b1afc04b90059a0878fb1bc86",
"format": 1
},
{
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/MANIFEST.json 2025-07-29 02:43:36.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/MANIFEST.json 2025-08-29 02:51:40.000000000 +0000
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "azure",
"name": "azcollection",
- "version": "3.7.0",
+ "version": "3.8.0",
"authors": [
"Microsoft "
],
@@ -31,7 +31,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a15ed41969d0d55c3e0852de735d12ff1f517ff5ea2dfa46da3671031796f450",
+ "chksum_sha256": "4ac4f20bae8aae329afe31d1ca99f84a0ad263c22fcacda856b408984d9285d5",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/README.md ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/README.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/README.md 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/README.md 2025-08-29 02:51:39.000000000 +0000
@@ -3,61 +3,57 @@
[](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
[](LICENSE)
-This collection provides a series of Ansible modules and plugins for interacting with the [Azure](https://azure.microsoft.com).
-
-Documentation of individual modules is [available in the Ansible docs site](https://docs.ansible.com/ansible/latest/collections/azure/azcollection/index.html#plugins-in-azure-azcollection)
-
-## Included content
+## Description
-See the complete list of collection content in the [Plugin Index](https://docs.ansible.com/ansible/latest/collections/azure/azcollection/index.html#plugins-in-azure-azcollection).
-
-## Communication
-
-* Join the Ansible forum:
- * [Get Help](https://forum.ansible.com/c/help/6): get help or help others. Please use appropriate tags, for example `cloud`.
- * [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts.
- * [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events.
+This collection provides a series of Ansible modules and plugins for interacting with the [Azure](https://azure.microsoft.com).
-* The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes.
+Documentation of individual modules is [available at the Ansible Galaxy](https://galaxy.ansible.com/ui/repo/published/azure/azcollection/docs/)
-For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
+## Requirements
+- Python version >= 3.10
+- Ansible version >= 2.16
## Installation
-It is recommended to run ansible in [Virtualenv](https://virtualenv.pypa.io/en/latest/)
+Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
-## Requirements
-
-- ansible version >= 2.16
+```
+ansible-galaxy collection install azure.azcollection
+```
-To install Azure collection hosted in Galaxy:
+You can also include it in a requirements.yml file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:
-```bash
-ansible-galaxy collection install azure.azcollection
+```yaml
+collections:
+ - name: azure.azcollection
```
-Install dependencies required by the collection (adjust path to collection if necessary):
+To upgrade the collection to the latest available version, run the following command:
-```bash
-pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt
+```
+ansible-galaxy collection install azure.azcollection --upgrade
```
-Or, if you can't use pip, e.g. when you are on Ubuntu/Debian:
+You can also install a specific version of the collection. Use the following syntax to install version 1.0.0:
-```bash
-pipx runpip ansible install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt
```
+ansible-galaxy collection install azure.azcollection==1.0.0
+```
+
+See [using Ansible collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.
-To upgrade to the latest version of Azure collection:
+---
+
+After the collection is installed, please install the dependencies required by the collection (adjust path to collection if necessary):
```bash
-ansible-galaxy collection install azure.azcollection --force
+pip install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt
```
-## Usage
+## Use Cases
-### Playbooks
+### Playbook
To use a module from Azure collection, please reference the full namespace, collection name, and modules name that you want to use:
@@ -87,11 +83,11 @@
account_type: Standard_LRS
```
-### Roles
+### Role
For existing Ansible roles, please also reference the full namespace, collection name, and modules name which used in tasks instead of just modules name.
-### Plugins
+### Plugin
To use a plugin from Azure collection, please reference the full namespace, collection name, and plugins name that you want to use:
@@ -103,6 +99,10 @@
auth_source: auto
```
+## Testing
+
+Test cases can be found under folder `tests`.
+
## Contributing
There are many ways in which you can participate in the project, for example:
@@ -112,11 +112,28 @@
- Review the documentation and make pull requests for anything from typos to new content
- If you are interested in fixing issues and contributing directly to the code base, please see the [CONTRIBUTING](https://github.com/ansible-collections/azure/blob/dev/CONTRIBUTING.md) document
-## Release notes
+## Support
+
+* Join the Ansible forum:
+ * [Get Help](https://forum.ansible.com/c/help/6): get help or help others. Please use appropriate tags, for example `cloud`.
+ * [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts.
+ * [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events.
+* The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes.
+
+For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
+
+## Release Notes and Roadmap
See the [Changelog](https://github.com/ansible-collections/azure/blob/dev/CHANGELOG.md)
-## License
+
+## Related Information
+
+* [Ansible Official Documentation](https://docs.ansible.com/): A comprehensive Ansible user guide.
+* [azure.azcolleciton Documentation](https://docs.ansible.com/ansible/latest/collections/azure/azcollection/index.html): Detailed information about the collection.
+* [Azure Documentation](https://learn.microsoft.com/en-us/azure)
+
+## License Information
GNU General Public License v3.0
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/meta/runtime.yml ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/meta/runtime.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/meta/runtime.yml 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/meta/runtime.yml 2025-08-29 02:51:39.000000000 +0000
@@ -163,11 +163,15 @@
- azure.azcollection.azure_rm_mariadbserver_info
- azure.azcollection.azure_rm_monitoractiongroups
- azure.azcollection.azure_rm_monitoractiongroups_info
+ - azure.azcollection.azure_rm_monitoractivitylogalerts
+ - azure.azcollection.azure_rm_monitoractivitylogalerts_info
- azure.azcollection.azure_rm_monitordatacollectionrules
- azure.azcollection.azure_rm_monitordatacollectionrules_info
- azure.azcollection.azure_rm_monitordiagnosticsetting
- azure.azcollection.azure_rm_monitordiagnosticsetting_info
- azure.azcollection.azure_rm_monitorlogprofile
+ - azure.azcollection.azure_rm_monitormetricalerts
+ - azure.azcollection.azure_rm_monitormetricalerts_info
- azure.azcollection.azure_rm_multiplemanageddisks
- azure.azcollection.azure_rm_mysqlconfiguration
- azure.azcollection.azure_rm_mysqlconfiguration_info
@@ -376,3 +380,5 @@
- azure.azcollection.azure_rm_afdrules_info
- azure.azcollection.azure_rm_tags
- azure.azcollection.azure_rm_tags_info
+ - azure.azcollection.azure_rm_dedicatedhost
+ - azure.azcollection.azure_rm_dedicatedhost_info
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py 2025-08-29 02:51:39.000000000 +0000
@@ -240,7 +240,6 @@
try:
from enum import Enum
from azure.mgmt.core.tools import parse_resource_id, resource_id, is_valid_resource_id
- from azure.cli.core import cloud as azure_cloud
from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.network import models as NetworkModels
from azure.mgmt.resource.resources import ResourceManagementClient
@@ -304,6 +303,7 @@
from hashlib import sha256
from hmac import HMAC
from time import time
+import subprocess
try:
from urllib import (urlencode, quote_plus)
@@ -312,8 +312,7 @@
try:
from azure.cli.core.util import CLIError
- from azure.common.credentials import get_cli_profile
- from azure.common.cloud import get_cli_active_cloud
+ from azure.cli.core import cloud as azure_cloud
except ImportError:
HAS_AZURE_CLI_CORE = False
HAS_AZURE_CLI_CORE_EXC = None
@@ -465,6 +464,8 @@
self._monitor_diagnostic_settings_client = None
self._monitor_data_collection_rules_client = None
self._monitor_management_client_action_groups = None
+ self._monitor_management_client_activity_log_alerts = None
+ self._monitor_management_client_metric_alerts = None
self._resource = None
self._log_analytics_client = None
self._servicebus_client = None
@@ -1409,6 +1410,15 @@
return self._monitor_management_client_action_groups
@property
+ def monitor_management_client_activity_log_alerts(self):
+ self.log('Getting monitor client for diagnostic_settings')
+ if not self._monitor_management_client_activity_log_alerts:
+ self._monitor_management_client_activity_log_alerts = self.get_mgmt_svc_client(MonitorManagementClient,
+ base_url=self._cloud_environment.endpoints.resource_manager,
+ api_version='2020-10-01')
+ return self._monitor_management_client_activity_log_alerts
+
+ @property
def monitor_management_client_data_collection_rules(self):
self.log('Getting monitor client for diagnostic_settings')
if not self._monitor_data_collection_rules_client:
@@ -1418,6 +1428,15 @@
return self._monitor_data_collection_rules_client
@property
+ def monitor_management_client_metric_alerts(self):
+ self.log('Getting monitor client for diagnostic_settings')
+ if not self._monitor_management_client_metric_alerts:
+ self._monitor_management_client_metric_alerts = self.get_mgmt_svc_client(MonitorManagementClient,
+ base_url=self._cloud_environment.endpoints.resource_manager,
+ api_version='2018-03-01')
+ return self._monitor_management_client_metric_alerts
+
+ @property
def log_analytics_client(self):
self.log('Getting log analytics client')
if not self._log_analytics_client:
@@ -1648,10 +1667,10 @@
except Exception as e:
self.fail("cloud_environment {0} could not be resolved: {1}".format(raw_cloud_env, e.message), exception=traceback.format_exc())
- if self.credentials.get('subscription_id', None) is None and self.credentials.get('credentials') is None:
+ if self.credentials.get('subscription_id', None) is None and not self.is_ad_resource:
self.fail("Credentials did not include a subscription_id value.")
self.log("setting subscription_id")
- self.subscription_id = self.credentials['subscription_id']
+ self.subscription_id = self.credentials.get('subscription_id')
# get authentication authority
# for adfs, user could pass in authority or not.
@@ -1739,11 +1758,11 @@
except Exception:
pass
- if credentials.get('subscription_id'):
+ if credentials.get('subscription_id') is None and not self.is_ad_resource:
+ return None
+ else:
return credentials
- return None
-
def _get_msi_credentials(self, subscription_id=None, client_id=None, _cloud_environment=None, **kwargs):
# Get object `cloud_environment` from string `_cloud_environment`
cloud_environment = None
@@ -1784,24 +1803,30 @@
'auth_source': 'msi'
}
- def _get_azure_cli_credentials(self, subscription_id=None, resource=None):
- if self.is_ad_resource:
- resource = 'https://graph.windows.net/'
+ def _get_azure_cli_credentials(self, subscription_id=None):
subscription_id = subscription_id or self._get_env('subscription_id')
+ if not subscription_id:
+ try:
+ cmd = ["az", "account", "show", "--query", "id"]
+ subscription_id = subprocess.run(cmd, capture_output=True, text=True, check=True).stdout.strip().strip('"')
+ except Exception as ec:
+ raise CLIError("Obtain the az login's subscription occurred exception as {0}".format(ec))
+
try:
- profile = get_cli_profile()
- except Exception as exc:
- self.fail("Failed to load CLI profile {0}.".format(str(exc)))
+ cmd = ["az", "cloud", "show", "--query", "name"]
+ cloud_name = subprocess.run(cmd, capture_output=True, text=True, check=True).stdout.strip().strip('"')
+ all_clouds = [x[1] for x in inspect.getmembers(azure_cloud) if isinstance(x[1], azure_cloud.Cloud)]
+ matched_clouds = [x for x in all_clouds if x.name == cloud_name]
+ except Exception as ec:
+ raise CLIError("Obtain the az login's active cloud occurred exception as {0}".format(ec))
- cred, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=subscription_id)
- cloud_environment = get_cli_active_cloud()
+ if len(matched_clouds) != 1:
+ raise CLIError("Obtain the active cloud failed, There is no or multiple matching clouds")
- az_cli = AzureCliCredential()
cli_credentials = {
- 'credentials': az_cli if self.is_ad_resource else cred,
+ 'credentials': AzureCliCredential(),
'subscription_id': subscription_id,
- 'cloud_environment': cloud_environment
+ 'cloud_environment': matched_clouds[0],
}
return cli_credentials
@@ -1814,11 +1839,11 @@
credentials = self._get_profile(env_credentials['profile'])
return credentials
- if env_credentials.get('subscription_id') is not None:
+ if env_credentials.get('subscription_id') is None and not self.is_ad_resource:
+ return None
+ else:
return env_credentials
- return None
-
def _get_credentials(self, auth_source=None, **params):
# Get authentication credentials.
self.log('Getting credentials')
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py 2025-08-29 02:51:39.000000000 +0000
@@ -262,9 +262,14 @@
elif 'name' in old[0] and 'name' in new[0]:
key = 'name'
else:
- key = next(iter(old[0]))
- new = sorted(new, key=lambda x: x.get(key, None))
- old = sorted(old, key=lambda x: x.get(key, None))
+ try:
+ key = next(iter(old[0]))
+ new = sorted(new, key=lambda x: x.get(key, None))
+ old = sorted(old, key=lambda x: x.get(key, None))
+ except TypeError:
+ for i in range(len(new)):
+ if not self.default_compare(modifiers, new[i], old[i], path + '/*', result):
+ comparison_result = False
else:
new = sorted(new)
old = sorted(old)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py 2025-08-29 02:51:39.000000000 +0000
@@ -432,7 +432,7 @@
addon:
description:
- Profile of managed cluster add-on.
- - Key can be C(http_application_routing), C(monitoring), C(virtual_node).
+ - Key can be C(http_application_routing), C(monitoring), C(virtual_node) and C(azure_keyvault_secrets_provider).
- Value must be a dict contains a bool variable C(enabled).
type: dict
suboptions:
@@ -448,6 +448,19 @@
- Whether the solution enabled.
type: bool
default: true
+ azure_keyvault_secrets_provider:
+ description:
+ - Whether to enable the Azure Key Vault provider in an AKS cluster.
+ type: dict
+ version_added: "3.7.0"
+ aliases:
+ - azureKeyvaultSecretsProvider
+ suboptions:
+ enabled:
+ description:
+ - Enabled or disabled the Azure Key Vault provider in the AKS cluster.
+ type: bool
+ default: true
monitoring:
description:
- It gives you performance visibility by collecting memory and processor metrics from controllers, nodes,
@@ -785,6 +798,11 @@
returned: always
type: dict
example:
+ addon:
+ azure_keyvault_secrets_provider: { "enabled": true }
+ http_application_routing: { "enabled": false }
+ monitoring: null
+ virtual_node: null
agent_pool_profiles:
- count: 1
dns_prefix: Null
@@ -1031,14 +1049,18 @@
configs = values.get('config') or {}
for item in configs.keys():
addon_spec[item] = dict(type='str', aliases=[configs[item]], required=True)
- spec[key] = dict(type='dict', options=addon_spec, aliases=[values['name']])
+ if key == 'azure_keyvault_secrets_provider':
+ spec[key] = dict(type='dict', no_log=True, options=addon_spec, aliases=[values['name']])
+ else:
+ spec[key] = dict(type='dict', options=addon_spec, aliases=[values['name']])
return spec
ADDONS = {
'http_application_routing': dict(name='httpApplicationRouting'),
'monitoring': dict(name='omsagent', config={'log_analytics_workspace_resource_id': 'logAnalyticsWorkspaceResourceID'}),
- 'virtual_node': dict(name='aciConnector', config={'subnet_resource_id': 'SubnetName'})
+ 'virtual_node': dict(name='aciConnector', config={'subnet_resource_id': 'SubnetName'}),
+ 'azure_keyvault_secrets_provider': dict(name='azureKeyvaultSecretsProvider')
}
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py 2025-08-29 02:51:39.000000000 +0000
@@ -210,6 +210,11 @@
- List of destination ports.
type: list
elements: str
+ destination_fqdns:
+ description:
+ - List of destination FQDNS.
+ type: list
+ elements: str
name:
description:
- Gets name of the resource that is unique within a resource group.
@@ -299,6 +304,7 @@
network_rule_collections:
- priority: 112
action: deny
+ name: netrulecoll
rules:
- name: L4-traffic
description: Block traffic based on source IPs and ports
@@ -312,7 +318,17 @@
destination_ports:
- 443-444
- '8443'
- name: netrulecoll
+ - name: L4-traffic-destination_fqdns
+ description: Block traffic based on source IPs and ports to amazon
+ protocols:
+ - tcp
+ source_addresses:
+ - 10.2.4.12-10.2.4.255
+ destination_fqdns:
+ - 'www.test.com'
+ destination_ports:
+ - 443-444
+ - '8443'
ip_configurations:
- subnet: >-
/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
@@ -482,6 +498,7 @@
rules=dict(
type='list',
elements='dict',
+ mutually_exclusive=[('destination_fqdns', 'destination_addresses')],
options=dict(
name=dict(
type='str'
@@ -501,6 +518,10 @@
type='list',
elements='str',
),
+ destination_fqdns=dict(
+ type='list',
+ elements='str',
+ ),
destination_ports=dict(
type='list',
elements='str',
@@ -547,7 +568,7 @@
self.to_do = Actions.NoAction
self.query_parameters = {}
- self.query_parameters['api-version'] = '2018-11-01'
+ self.query_parameters['api-version'] = '2024-01-01'
self.header_parameters = {}
self.header_parameters['Content-Type'] = 'application/json; charset=utf-8'
@@ -649,6 +670,8 @@
net_value['sourceAddresses'] = value.get('source_addresses')
if value.get('destination_addresses') is not None:
net_value['destinationAddresses'] = value.get('destination_addresses')
+ if value.get('destination_fqdns') is not None:
+ net_value['destinationFqdns'] = value.get('destination_fqdns')
if value.get('destination_ports') is not None:
net_value['destinationPorts'] = value.get('destination_ports')
if value.get('protocols') is not None:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py 2025-08-29 02:51:39.000000000 +0000
@@ -81,18 +81,173 @@
returned: always
type: str
sample: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ application_rule_collections:
+ description:
+ - Collection of application rule collections used by Azure Firewall.
+ type: list
+ returned: always
+ sample: [
+ {
+ "etag": "25b7fca4-c909-4913-8799-6cdb7da2e298",
+ "id": "/subscriptions/xxx-xxx1/resourceGroups/myResourceGroup/providers/
+ Microsoft.Network/azureFirewalls/myFirewall/applicationRuleCollections/apprulecoll",
+ "name": "apprulecoll",
+ "properties": {
+ "action": {
+ "type": "Deny"
+ },
+ "priority": 110,
+ "provisioningState": "Failed",
+ "rules": [
+ {
+ "actions": [],
+ "description": "Deny inbound rule",
+ "direction": "Inbound",
+ "fqdnTags": [],
+ "name": "rule1",
+ "priority": 0,
+ "protocols": [
+ {
+ "port": 443,
+ "protocolType": "Https"
+ }
+ ],
+ "sourceAddresses": [
+ "216.58.216.164",
+ "10.0.0.0/25"
+ ],
+ "sourceIpGroups": [],
+ "targetFqdns": [
+ "www.test.com"
+ ]
+ }
+ ]
+ },
+ "type": "Microsoft.Network/azureFirewalls/applicationRuleCollections"
+ }
+ ]
nat_rule_collections:
description:
- Collection of NAT rule collections used by Azure Firewall.
type: list
+ returned: always
+ sample: [
+ {
+ "etag": '3759e8b1-cdf7-44f4-a643-3a75e2b67877',
+ "id": "/subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/
+ azureFirewalls/myFirewall/natRuleCollections/natrulecoll",
+ "name": "natrulecoll",
+ "properties": {
+ "action": {
+ "type": "Dnat"
+ },
+ "priority": 112,
+ "provisioningState": "Failed",
+ "rules": [
+ {
+ "description": "D-NAT all outbound web traffic for inspection",
+ "destinationAddresses": [
+ "20.169.156.124"
+ ],
+ "destinationPorts": [
+ "443"
+ ],
+ "name": "DNAT-HTTPS-traffic",
+ "protocols": [
+ "TCP"
+ ],
+ "sourceAddresses": [
+ "*"
+ ],
+ "translatedAddress": "1.2.3.5",
+ "translatedPort": "8443"
+ }
+ ]
+ },
+ "type": "Microsoft.Network/azureFirewalls/natRuleCollections"
+ }
+ ]
network_rule_collections:
description:
- Collection of network rule collections used by Azure Firewall.
type: list
+ returned: always
+ sample: [
+ {
+ "etag": "3759e8b1-cdf7-44f4-a643-3a75e2b67877",
+ "id": "/subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/
+ azureFirewalls/myFirewall/networkRuleCollections/netrulecoll",
+ "name": "netrulecoll",
+ "properties": {
+ "action": {
+ "type": "Deny"
+ },
+ "priority": 112,
+ "provisioningState": "Failed",
+ "rules": [
+ {
+ "description": "Block traffic based on source IPs and ports",
+ "destinationAddresses": [
+ "*"
+ ],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "name": "L4-traffic",
+ "protocols": [
+ "TCP"
+ ],
+ "sourceAddresses": [
+ "192.168.1.1-192.168.1.12",
+ "10.1.4.12-10.1.4.255"
+ ]
+ },
+ {
+ "description": "Block traffic based on source IPs and ports to amazon",
+ "destinationAddresses": [],
+ "destinationPorts": [
+ "443-444",
+ "8443"
+ ],
+ "name": "L4-traffic-with_FQDN",
+ "protocols": [
+ "TCP"
+ ],
+ "sourceAddresses": [
+ "10.2.4.12-10.2.4.255"
+ ]
+ }
+ ]
+ },
+ "type": "Microsoft.Network/azureFirewalls/networkRuleCollections"
+ }
+ ]
ip_configurations:
description:
- IP configuration of the Azure Firewall resource.
type: list
+ returned: always
+ sample: [
+ {
+ "etag": "3759e8b1-cdf7-44f4-a643-3a75e2b67877",
+ "id": "/subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/azureFirewalls/myFirewall/i
+ azureFirewallIpConfigurations/azureFirewallIpConfiguration",
+ "name": "azureFirewallIpConfiguration",
+ "properties": {
+ "privateIPAllocationMethod": "Dynamic",
+ "provisioningState": "Succeeded",
+ "publicIPAddress": {
+ "id": "/subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIpAddress"
+ },
+ "subnet": {
+ "id": "/subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/
+ virtualNetworks/myVirtualNetwork/subnets/AzureFirewallSubnet"
+ }
+ },
+ "type": "Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations"
+ }
+ ]
provisioning_state:
description:
- The current state of the gallery.
@@ -127,7 +282,7 @@
self.status_code = [200]
self.query_parameters = {}
- self.query_parameters['api-version'] = '2018-11-01'
+ self.query_parameters['api-version'] = '2024-01-01'
self.header_parameters = {}
self.header_parameters['Content-Type'] = 'application/json; charset=utf-8'
@@ -255,6 +410,7 @@
if isinstance(item.get('properties'), dict):
d['nat_rule_collections'] = item.get('properties').get('natRuleCollections')
d['network_rule_collections'] = item.get('properties').get('networkRuleCollections')
+ d['application_rule_collections'] = item.get('properties').get('applicationRuleCollections')
d['ip_configurations'] = item.get('properties').get('ipConfigurations')
d['provisioning_state'] = item.get('properties').get('provisioningState')
return d
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,397 @@
+#!/usr/bin/python
+#
+# 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: azure_rm_dedicatedhost
+
+version_added: "3.8.0"
+
+short_description: Create, delete and update a dedicated host
+
+description:
+ - Creates, deletes, and updates a dedicated host.
+
+options:
+ resource_group:
+ description:
+ - Name of resource group.
+ required: true
+ type: str
+ host_group_name:
+ description:
+ - The name of the host group.
+ type: str
+ required: true
+ name:
+ description:
+ - The name of the dedicated host.
+ required: true
+ type: str
+ location:
+ description:
+ - Valid Azure location for dedicated host. Defaults to location of resource group.
+ type: str
+ platform_fault_domain:
+ description:
+ - Fault domain of the dedicated host within a dedicated host group.
+ type: int
+ choices:
+ - 0
+ sku:
+ description:
+ - SKU of the dedicated host for Hardware Generation and VM family.
+ - Only C(name) is required to be set
+ type: dict
+ suboptions:
+ name:
+ description:
+ - The sku name.
+ type: str
+ auto_replace_on_failure:
+ description:
+ - Specifies whether the dedicated host should be replaced automatically in case of a failure.
+ - The value is defaulted to C(true) when not provided.
+ default: true
+ type: bool
+ license_type:
+ description:
+ - Specifies the software license type that will be applied to the VMs deployed on the dedicated host.
+ type: str
+ choices:
+ - 'None'
+ - 'Windows_Server_Hybrid'
+ - 'Windows_Server_Perpetual'
+ is_restart:
+ description:
+ - Wether to restart the dedicated host.
+ type: bool
+ default: false
+ state:
+ description:
+ - Assert the state of the host group. Use C(present) to create or update and C(absent) to delete.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
+
+extends_documentation_fragment:
+ - azure.azcollection.azure
+ - azure.azcollection.azure_tags
+
+author:
+ - magodo (@magodo)
+ - xuzhang3 (@xuzhang3)
+ - Fred Sun (@Fred-sun)
+'''
+
+EXAMPLES = '''
+- name: Create a dedicated host
+ azure_rm_dedicatedhost:
+ resource_group: myAzureResourceGroup
+ name: mydedicatedhost
+ location: eastus
+ platform_fault_domain: 1
+ sku:
+ name: DSv3-Type1
+ state: present
+
+- name: Delete a dedicated host
+ azure_rm_dedicatedhost:
+ resource_group: myAzureResourceGroup
+ host_group_name: myhostgroup
+ name: mydedicatedhost
+ state: absent
+'''
+
+RETURN = '''
+state:
+ description:
+ - Gets a list of dedicated host.
+ returned: always
+ type: complex
+ contains:
+ host_group_name:
+ description:
+ - The name of the host group.
+ type: str
+ returned: always
+ sample: myDedicatedHostGroup
+ resource_group:
+ description:
+ - The name of the resource group.
+ type: str
+ returned: always
+ sample: myResourceGroup
+ name:
+ description:
+ - The dedicate hsot name.
+ type: str
+ returned: always
+ sample: myHost
+ id:
+ description:
+ - The dedicate host ID.
+ type: str
+ returned: always
+ sample: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup/hosts/myHost"
+ location:
+ description:
+ - Resource location.
+ type: str
+ returned: always
+ sample: eastus
+ tags:
+ description:
+ - Resource tags.
+ type: dict
+ returned: always
+ sample: {'key1': 'value1'}
+ sku:
+ description:
+ - SKU of the dedicated host for Hardware Generation and VM family.
+ type: dict
+ returned: always
+ sample: {'name': 'DSv3-Type4'}
+ auto_replace_on_failure:
+ description:
+ - Specifies whether the dedicated host should be replaced automatically in case of a failure.
+ type: bool
+ returned: always
+ sample: true
+ license_type:
+ description:
+ - Specifies the software license type that will be applied to the VMs deployed on the dedicated host.
+ type: str
+ returned: always
+ sample: Windows_Server_Hybrid
+ provisioning_state:
+ description:
+ - The provisioning state, which only appears in the response.
+ type: str
+ returned: always
+ sample: Succeeded
+ platform_fault_domain:
+ description:
+ - Fault domain of the dedicated host within a dedicated host.
+ type: str
+ returned: always
+ sample: 1
+ virtual_machines:
+ description:
+ - A list of references to all virtual machines in the Dedicated Host.
+ type: str
+ returned: always
+ sample: [{"id": "/subscriptions/subId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm1"}]
+'''
+
+from ansible.module_utils.basic import _load_params
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, \
+ normalize_location_name
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError
+ from azure.core.polling import LROPoller
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+
+class AzureRMDedicatedHost(AzureRMModuleBase):
+
+ def __init__(self):
+
+ _load_params()
+ # define user inputs from playbook
+ self.module_arg_spec = dict(
+ resource_group=dict(type='str', required=True),
+ host_group_name=dict(type='str', required=True),
+ name=dict(type='str', required=True),
+ location=dict(type='str'),
+ sku=dict(
+ type='dict',
+ options=dict(
+ name=dict(type='str')
+ )
+ ),
+ platform_fault_domain=dict(type='int', choices=[0]),
+ auto_replace_on_failure=dict(type='bool', default=True),
+ license_type=dict(type='str', choices=['None', 'Windows_Server_Hybrid', 'Windows_Server_Perpetual']),
+ state=dict(choices=['present', 'absent'], default='present', type='str'),
+ is_restart=dict(type='bool', default=False)
+ )
+
+ self.results = dict(
+ changed=False,
+ state=dict()
+ )
+
+ self.resource_group = None
+ self.host_group_name = None
+ self.name = None
+ self.state = None
+ self.location = None
+ self.tags = None
+ self.sku = None
+ self.platform_fault_domain = None
+ self.auto_replace_on_failure = None
+ self.license_type = None
+ self.is_restart = None
+
+ super(AzureRMDedicatedHost, self).__init__(self.module_arg_spec,
+ supports_tags=True,
+ supports_check_mode=True)
+
+ def exec_module(self, **kwargs):
+ for key in list(self.module_arg_spec.keys()) + ['tags']:
+ setattr(self, key, kwargs[key])
+
+ changed = False
+
+ # retrieve resource group to make sure it exists
+ resource_group = self.get_resource_group(self.resource_group)
+ if not self.location:
+ # Set default location
+ self.location = resource_group.location
+
+ self.location = normalize_location_name(self.location)
+ results = self.get_resource()
+
+ if results is not None:
+ if self.state == 'present':
+ update_tags, self.tags = self.update_tags(results['tags'])
+ if update_tags:
+ changed = True
+ elif self.auto_replace_on_failure is not None and bool(self.auto_replace_on_failure) != bool(results['auto_replace_on_failure']):
+ changed = True
+ elif self.platform_fault_domain and self.platform_fault_domain != results['platform_fault_domain']:
+ changed = True
+ elif self.sku and self.sku['name'] != results['sku']['name']:
+ changed = True
+ elif self.license_type and self.license_type != results['license_type']:
+ changed = True
+ if not self.check_mode and changed:
+ results = self.update_dedicatedhost()
+ else:
+ changed = True
+ if not self.check_mode:
+ results = self.delete_dedicatedhost()
+ else:
+ if self.state == 'present':
+ changed = True
+ if not self.check_mode:
+ results = self.create_dedicatedhost()
+ else:
+ self.log("The dedecated host not exist")
+ changed = False
+
+ if results is not None and self.is_restart:
+ self.log("Restart the dedicated host. The operation will complete successfully once the dedicated host has restarted and is running.")
+ changed = True
+ if not self.check_mode:
+ self.restart_dedicatedhost()
+
+ self.results['changed'] = changed
+ self.results['state'] = results
+ return self.results
+
+ def get_resource(self):
+ self.log('Get host facts for {0}'.format(self.name))
+ # get specific host group
+ try:
+ response = self.compute_client.dedicated_hosts.get(self.resource_group, self.host_group_name, self.name)
+ except ResourceNotFoundError:
+ return None
+
+ return self.host_to_dict(response)
+
+ def create_dedicatedhost(self):
+ try:
+ # create the dedicated host
+ response = self.compute_client.dedicated_hosts.begin_create_or_update(resource_group_name=self.resource_group,
+ host_group_name=self.host_group_name,
+ host_name=self.name,
+ parameters=dict(location=self.location,
+ sku=self.sku,
+ tags=self.tags,
+ platform_fault_domain=self.platform_fault_domain,
+ auto_replace_on_failure=self.auto_replace_on_failure,
+ license_type=self.license_type))
+ if isinstance(response, LROPoller):
+ return self.host_to_dict(self.get_poller_result(response))
+ except Exception as exc:
+ self.fail("Error creating or updating host {0} - {1}".format(self.name, str(exc)))
+
+ def update_dedicatedhost(self):
+ try:
+ # update the dedicated host
+ response = self.compute_client.dedicated_hosts.begin_update(resource_group_name=self.resource_group,
+ host_group_name=self.host_group_name,
+ host_name=self.name,
+ parameters=dict(sku=self.sku,
+ tags=self.tags,
+ platform_fault_domain=self.platform_fault_domain,
+ auto_replace_on_failure=self.auto_replace_on_failure,
+ license_type=self.license_type))
+ if isinstance(response, LROPoller):
+ return self.host_to_dict(self.get_poller_result(response))
+ except Exception as exc:
+ self.fail("Error creating or updating host {0} - {1}".format(self.name, str(exc)))
+
+ def restart_dedicatedhost(self):
+ try:
+ # restart the dedicate host
+ response = self.compute_client.dedicated_hosts.begin_restart(resource_group_name=self.resource_group,
+ host_group_name=self.host_group_name,
+ host_name=self.name)
+ if isinstance(response, LROPoller):
+ return self.get_poller_result(response)
+ except Exception as exc:
+ self.fail("Error restarting host {0} - {1}".format(self.name, str(exc)))
+
+ def delete_dedicatedhost(self):
+ try:
+ # delete the dedicated host
+ response = self.compute_client.dedicated_hosts.begin_delete(resource_group_name=self.resource_group,
+ host_group_name=self.host_group_name,
+ host_name=self.name)
+ if isinstance(response, LROPoller):
+ return self.get_poller_result(response)
+
+ except Exception as exc:
+ self.fail("Error deleting host {0} - {1}".format(self.name, str(exc)))
+
+ def host_to_dict(self, host):
+ result = dict(
+ resource_group=self.resource_group,
+ host_group_name=self.host_group_name,
+ id=host.id,
+ name=host.name,
+ location=host.location,
+ tags=host.tags,
+ sku=dict(),
+ auto_replace_on_failure=host.auto_replace_on_failure,
+ license_type=host.license_type,
+ provisioning_state=host.provisioning_state,
+ platform_fault_domain=host.platform_fault_domain,
+ virtual_machines=[]
+ )
+ if host.virtual_machines:
+ result['virtual_machines'] = [dict(id=item.id) for item in host.virtual_machines]
+
+ if host.sku:
+ result['sku']['name'] = host.sku.name
+ return result
+
+
+def main():
+ AzureRMDedicatedHost()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dedicatedhost_info.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,251 @@
+#!/usr/bin/python
+#
+# 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: azure_rm_dedicatedhost_info
+
+version_added: "3.8.0"
+
+short_description: Retrieves information abount dedicated host
+
+description:
+ - Retrieves information about a dedicated host.
+ - Lists all of the dedicated hosts in the specified dedicated host group.
+
+options:
+ resource_group:
+ description:
+ - Name of the resource group.
+ type: str
+ required: True
+ host_group_name:
+ description:
+ - The name of the dedicated host group.
+ type: str
+ required: True
+ name:
+ description:
+ - Name of the dedicate host.
+ type: str
+ tags:
+ description:
+ - Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
+ type: list
+ elements: str
+
+extends_documentation_fragment:
+ - azure.azcollection.azure
+
+author:
+ - magodo (@magodo)
+ - xuzhang3 (@xuzhang3)
+ - Fred Sun (@Fred-sun)
+'''
+
+EXAMPLES = '''
+- name: List facts for one dedicate host
+ azure_rm_dedicatedhost_info:
+ resource_group: myAzureResourceGroup
+ host_group_name: myhostgroup
+
+- name: Get facts for dedicate host
+ azure_rm_dedicatedhost_info:
+ resource_group: myAzureResourceGroup
+ host_group_name: myhostgroup
+ name: mydedicatehost
+'''
+
+RETURN = '''
+dedicate_hosts:
+ description:
+ - Gets a list of dedicated host.
+ returned: always
+ type: complex
+ contains:
+ host_group_name:
+ description:
+ - The name of the host group.
+ type: str
+ returned: always
+ sample: myDedicatedHostGroup
+ resource_group:
+ description:
+ - The name of the resource group.
+ type: str
+ returned: always
+ sample: myResourceGroup
+ name:
+ description:
+ - The dedicate hsot name.
+ type: str
+ returned: always
+ sample: myHost
+ id:
+ description:
+ - The dedicate host ID.
+ type: str
+ returned: always
+ sample: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup/hosts/myHost"
+ location:
+ description:
+ - Resource location.
+ type: str
+ returned: always
+ sample: eastus
+ tags:
+ description:
+ - Resource tags.
+ type: dict
+ returned: always
+ sample: {'key1': 'value1'}
+ sku:
+ description:
+ - SKU of the dedicated host for Hardware Generation and VM family.
+ type: dict
+ returned: always
+ sample: {'name': 'DSv3-Type4'}
+ auto_replace_on_failure:
+ description:
+ - Specifies whether the dedicated host should be replaced automatically in case of a failure.
+ type: bool
+ returned: always
+ sample: true
+ license_type:
+ description:
+ - Specifies the software license type that will be applied to the VMs deployed on the dedicated host.
+ type: str
+ returned: always
+ sample: None
+ provisioning_state:
+ description:
+ - The provisioning state, which only appears in the response.
+ type: str
+ returned: always
+ sample: Succeeded
+ platform_fault_domain:
+ description:
+ - Fault domain of the dedicated host within a dedicated host group.
+ type: str
+ returned: always
+ sample: 1
+ virtual_machines:
+ description:
+ - A list of references to all virtual machines in the Dedicated Host.
+ type: str
+ returned: always
+ sample: [{"id": "/subscriptions/subId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm1"}]
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError
+except Exception:
+ # This is handled in azure_rm_common
+ pass
+
+AZURE_OBJECT_CLASS = 'DedicateHostInfo'
+
+
+class AzureRMDedicateHostInfo(AzureRMModuleBase):
+
+ def __init__(self):
+
+ # define user inputs into argument
+ self.module_arg_spec = dict(
+ name=dict(type='str'),
+ host_group_name=dict(type='str', required=True),
+ resource_group=dict(type='str', required=True),
+ tags=dict(type='list', elements='str')
+ )
+
+ # store the results of the module operation
+ self.results = dict(
+ changed=False
+ )
+
+ self.name = None
+ self.resource_group = None
+ self.host_group_name = None
+ self.tags = None
+
+ super(AzureRMDedicateHostInfo, self).__init__(self.module_arg_spec, supports_check_mode=True, supports_tags=False, facts_module=True)
+
+ def exec_module(self, **kwargs):
+
+ for key in self.module_arg_spec:
+ setattr(self, key, kwargs[key])
+
+ results = []
+ if self.name is not None:
+ # if there is a host name provided, return facts about that dedicated host
+ results = self.get_item()
+ else:
+ # all the host listed in specific host group
+ results = self.list_by_host_group()
+
+ self.results['dedicated_hosts'] = [self.host_to_dict(item) for item in results] if results else []
+
+ return self.results
+
+ def get_item(self):
+ self.log('Get host facts for {0}'.format(self.name))
+ results = []
+ # get specific host group
+ try:
+ item = self.compute_client.dedicated_hosts.get(self.resource_group, self.host_group_name, self.name)
+ except ResourceNotFoundError:
+ return []
+
+ # serialize result
+ if item and self.has_tags(item.tags, self.tags):
+ results = [item]
+ return results
+
+ def list_by_host_group(self):
+ self.log('List all host for host group - {0}'.format(self.host_group_name))
+ try:
+ response = self.compute_client.dedicated_hosts.list_by_host_group(self.resource_group, self.host_group_name)
+ except Exception:
+ return []
+
+ results = []
+ for item in response:
+ if self.has_tags(item.tags, self.tags):
+ results.append(item)
+ return results
+
+ def host_to_dict(self, host):
+ result = dict(
+ resource_group=self.resource_group,
+ host_group_name=self.host_group_name,
+ id=host.id,
+ name=host.name,
+ location=host.location,
+ tags=host.tags,
+ sku=dict(),
+ auto_replace_on_failure=host.auto_replace_on_failure,
+ license_type=host.license_type,
+ provisioning_state=host.provisioning_state,
+ platform_fault_domain=host.platform_fault_domain,
+ virtual_machines=[]
+ )
+ if host.virtual_machines:
+ result['virtual_machines'] = [dict(id=item.id) for item in host.virtual_machines]
+
+ if host.sku:
+ result['sku']['name'] = host.sku.name
+ return result
+
+
+def main():
+ AzureRMDedicateHostInfo()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py 2025-08-29 02:51:39.000000000 +0000
@@ -617,7 +617,7 @@
'/providers/Microsoft.Storage' +
'/storageAccounts/' +
storage_account)
- self.body['storage_profile']['os_diskImage']['source']['uri'] = kwargs[key]['os_disk']['source'].get('uri')
+ self.body['storage_profile']['os_disk_image']['source']['uri'] = kwargs[key]['os_disk']['source'].get('uri')
else:
self.fail("The os_disk.source parameters config errors")
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate.py 2025-08-29 02:51:39.000000000 +0000
@@ -278,7 +278,7 @@
- CER contents of the X509 certificate.
type: str
returned: always
- sample: "bytearray(b'0.....................x16')"
+ sample: "MIID*****************0pRjXE"
name:
description:
- The name of the certificate.
@@ -553,7 +553,7 @@
def certificatebundle_to_dict(certificate):
response = dict(policy=dict(), properties=dict(), cert_data=None)
if certificate.cer is not None:
- response['cert_data'] = str(certificate.cer)
+ response['cert_data'] = base64.b64encode(certificate.cer).decode('utf-8')
response['name'] = certificate.name
if certificate.policy is not None:
response['policy']['issuer_name'] = certificate.policy._issuer_name
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate_info.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate_info.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultcertificate_info.py 2025-08-29 02:51:39.000000000 +0000
@@ -85,7 +85,7 @@
- CER contents of the X509 certificate.
type: str
returned: always
- sample: "bytearray(b'0......................x16')"
+ sample: "MIID*****************0pRjXE"
name:
description:
- The name of the certificate.
@@ -360,7 +360,7 @@
def certificatebundle_to_dict(certificate):
response = dict(policy=dict(), properties=dict(), cert_data=None)
if certificate.cer is not None:
- response['cert_data'] = str(certificate.cer)
+ response['cert_data'] = base64.b64encode(certificate.cer).decode('utf-8')
response['name'] = certificate.name
if certificate.policy is not None:
response['policy']['issuer_name'] = certificate.policy._issuer_name
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,514 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2025 Klaas Demter (@Klaas-)
+#
+# 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: azure_rm_monitoractivitylogalerts
+version_added: "3.7.0"
+short_description: Create, update and delete Activity Log Alerts.
+description:
+ - Create, update and delete Activity Log Alerts.
+ - >-
+ U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.aio.operations.activitylogalertsoperations?view=azure-python#azure-mgmt-monitor-v2020-10-01-aio-operations-activitylogalertsoperations-create-or-update)
+ - U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.activitylogalertresource?view=azure-python)
+
+options:
+ name:
+ description:
+ - The name of the activity log alert you're creating, updating or deleting.
+ required: true
+ type: str
+ resource_group:
+ description:
+ - The name of the resource group
+ required: true
+ type: str
+ location:
+ description:
+ - Location of the activity log alert.
+ - Should be optional, but is not optional on creation.
+ - U(https://github.com/Azure/azure-rest-api-specs/issues/35342)
+ - Activity log alerts are usually 'Global'. On creation module will default to 'Global' if unspecified.
+ required: false
+ type: str
+ scopes:
+ description:
+ - A list of resource IDs that will be used as prefixes.
+ - The alert will only apply to Activity Log events with resource IDs that fall under one of these prefixes.
+ - This list must include at least one item for creation.
+ type: list
+ elements: str
+ condition:
+ description:
+ - The condition that will cause this alert to activate.
+ - >-
+ U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.alertruleallofcondition?view=azure-python)
+ type: dict
+ suboptions:
+ all_of:
+ description:
+ - The list of Activity Log Alert rule conditions.
+ - >-
+ U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.alertruleanyoforleafcondition?view=azure-python)
+ type: list
+ elements: dict
+ suboptions:
+ field:
+ description:
+ - The name of the Activity Log event's field that this condition will examine.
+ - The possible values for this field are (case-insensitive) resourceId, category, caller, level,
+ operationName, resourceGroup, resourceProvider, status, subStatus, resourceType
+ or anything beginning with properties.
+ type: str
+ equals:
+ description:
+ - The value of the events field will be compared to this value (case-insensitive) to determine if the condition is met.
+ type: str
+ contains_any:
+ description:
+ - The value of the events field will be compared to the values in this
+ array (case-insensitive) to determine if the condition is met.
+ type: list
+ elements: str
+ any_of:
+ description:
+ - An Activity Log Alert rule condition that is met when at least one of its member leaf conditions are met.
+ - >-
+ U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.alertruleleafcondition?view=azure-python)
+ type: list
+ elements: dict
+ suboptions:
+ field:
+ description:
+ - The name of the Activity Log events field that this condition will examine. The possible values for this field are
+ (case-insensitive) resourceId, category, caller, level, operationName, resourceGroup, resourceProvider,
+ status, subStatus, resourceType, or anything beginning with properties.
+ type: str
+ equals:
+ description:
+ - The value of the event's field will be compared to this value (case-insensitive) to determine if the condition is met.
+ type: str
+ contains_any:
+ description:
+ - The value of the event's field will be compared to the values in this array
+ (case-insensitive) to determine if the condition is met.
+ type: list
+ elements: str
+ actions:
+ description:
+ - The actions that will activate when the condition is met.
+ - U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.actionlist?view=azure-python)
+ type: dict
+ suboptions:
+ action_groups:
+ description:
+ - The list of the Action Groups.
+ - U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.actiongroup?view=azure-python)
+ type: list
+ elements: dict
+ suboptions:
+ action_group_id:
+ description:
+ - The resource ID of the Action Group.
+ - Must be set when setting an action group.
+ type: str
+ webhook_properties:
+ description:
+ - the dictionary of custom properties to include with the post operation. These data are appended to the webhook payload.
+ type: dict
+ enabled:
+ description:
+ - Indicates whether this activity log alert is enabled.
+ - If an activity log alert is not enabled, then none of its receivers will receive communications.
+ - Server side default false -- should be true.
+ - U(https://github.com/Azure/azure-rest-api-specs/issues/35343)
+ type: bool
+ description:
+ description:
+ - A description of this Activity Log Alert rule.
+ type: str
+ state:
+ description:
+ - State of the activity log alert.
+ - Use C(present) for creating/updating a activity log alert.
+ - Use C(absent) for deleting a activity log alert.
+ default: present
+ type: str
+ choices:
+ - present
+ - absent
+extends_documentation_fragment:
+ - azure.azcollection.azure
+ - azure.azcollection.azure_tags
+
+author:
+ - Klaas Demter (@Klaas-)
+'''
+
+EXAMPLES = '''
+- name: Add a activity log alert
+ azure.azcollection.azure_rm_monitoractivitylogalerts:
+ state: present
+ resource_group: resource_group_name
+ location: global
+ name: activity_log_alert_resource_health_example
+ scopes:
+ - /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name
+ condition:
+ all_of:
+ - equals: ResourceHealth
+ field: category
+ - any_of:
+ - equals: Unknown
+ field: properties.currentHealthStatus
+ - equals: Unavailable
+ field: properties.currentHealthStatus
+ - equals: Degraded
+ field: properties.currentHealthStatus
+ - any_of:
+ - equals: Unknown
+ field: properties.previousHealthStatus
+ - equals: Unavailable
+ field: properties.previousHealthStatus
+ - equals: Degraded
+ field: properties.previousHealthStatus
+ - equals: Available
+ field: properties.previousHealthStatus
+ - any_of:
+ - equals: PlatformInitiated
+ field: properties.cause
+ actions:
+ action_groups:
+ - action_group_id: \
+/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/microsoft.insights/actionGroups/action_group_name
+
+- name: Add tag to existing activity log alert
+ azure.azcollection.azure_rm_monitoractivitylogalerts:
+ state: present
+ name: activity_log_alert_name
+ resource_group: resource_group_name
+ append_tags: true
+ tags:
+ ThisIsAnAddedExampleTag: ExampleValue
+
+- name: Delete a activity log alert
+ azure.azcollection.azure_rm_monitoractivitylogalerts:
+ state: absent
+ name: activity_log_alert_name
+ resource_group: resource_group_name
+'''
+
+RETURN = '''
+activitylogalert:
+ description:
+ - Details of the activity log alert
+ - Is null on state==absent (activity log alert does not exist or will be deleted)
+ - Assumes you make legal changes in check mode
+ type: dict
+ returned: always
+ sample: {
+ "actions": {
+ "action_groups": [
+ {
+ "action_group_id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/microsoft.insights/actionGroups/action_group_name"
+ }
+ ]
+ },
+ "condition": {
+ "all_of": [
+ {
+ "equals": "ResourceHealth",
+ "field": "category"
+ },
+ {
+ "any_of": [
+ {
+ "equals": "Unknown",
+ "field": "properties.currentHealthStatus"
+ },
+ {
+ "equals": "Unavailable",
+ "field": "properties.currentHealthStatus"
+ },
+ {
+ "equals": "Degraded",
+ "field": "properties.currentHealthStatus"
+ }
+ ]
+ },
+ {
+ "any_of": [
+ {
+ "equals": "Unknown",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Unavailable",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Degraded",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Available",
+ "field": "properties.previousHealthStatus"
+ }
+ ]
+ },
+ {
+ "any_of": [
+ {
+ "equals": "PlatformInitiated",
+ "field": "properties.cause"
+ }
+ ]
+ }
+ ]
+ },
+ "enabled": false,
+ "id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.Insights/activityLogAlerts/activity_log_alert_name",
+ "location": "global",
+ "name": "activity_log_alert_name",
+ "scopes": [
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name"
+ ],
+ "tags": {},
+ "type": "Microsoft.Insights/ActivityLogAlerts"
+ }
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
+
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError
+
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+AZURE_OBJECT_CLASS = 'ActivityLogAlert'
+
+any_of_all_of_condition_spec = dict(
+ field=dict(type='str'),
+ equals=dict(type='str'),
+ contains_any=dict(type='list', elements='str')
+)
+
+all_of_condition_spec = dict(
+ field=dict(type='str'),
+ equals=dict(type='str'),
+ contains_any=dict(type='list', elements='str'),
+ any_of=dict(type='list', elements='dict', options=any_of_all_of_condition_spec)
+)
+condition_spec = dict(
+ all_of=dict(type='list', elements='dict', options=all_of_condition_spec)
+)
+
+action_groups_actions_spec = dict(
+ action_group_id=dict(type='str'),
+ webhook_properties=dict(type='dict')
+)
+
+actions_spec = dict(
+ action_groups=dict(type='list', elements='dict', options=action_groups_actions_spec)
+)
+
+
+class AzureRMMonitorActivityLogAlert(AzureRMModuleBaseExt):
+ """Information class for an Azure RM Activity Log Alerts"""
+
+ def __init__(self):
+ # https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.activitylogalertresource?view=azure-python
+ self.module_arg_spec = dict(
+ name=dict(type='str', required=True),
+ resource_group=dict(type='str', required=True),
+ location=dict(type='str'),
+ scopes=dict(type='list', elements='str'),
+ condition=dict(type='dict', options=condition_spec),
+ actions=dict(type='dict', options=actions_spec),
+ enabled=dict(type='bool'),
+ description=dict(type='str'),
+ state=dict(type='str', choices=['present', 'absent'], default='present')
+ )
+
+ self.name = None
+ self.resource_group = None
+ self.location = None
+ self.tags = None
+ self.scopes = None
+ self.condition = None
+ self.actions = None
+ self.enabled = None
+ self.description = None
+ self.state = None
+ self.log_path = None
+ self.log_mode = None
+
+ self.results = dict(
+ changed=False,
+ activitylogalert=dict(),
+ diff=dict(
+ before=None,
+ after=None
+ )
+ )
+
+ super(AzureRMMonitorActivityLogAlert, self).__init__(derived_arg_spec=self.module_arg_spec,
+ supports_check_mode=True,
+ supports_tags=True)
+
+ def exec_module(self, **kwargs):
+ """Main module execution method"""
+
+ for key in list(self.module_arg_spec.keys()) + ['tags']:
+ if hasattr(self, key):
+ setattr(self, key, kwargs[key])
+
+ # Defaults for variables
+ result = None
+ result_compare = dict(compare=[])
+ before_dict = None
+
+ # Get current activity log alert if it exists
+ before_dict = self.get_activity_log_alert()
+
+ # Create dict from input, without None values
+ # hhttps://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.activitylogalertresource?view=azure-python
+ activity_log_alert_template = {
+ "location": self.location,
+ "scopes": self.scopes,
+ "condition": self.condition,
+ "actions": self.actions,
+ "enabled": self.enabled,
+ "description": self.description
+ }
+ # Filter out all None values
+ activity_log_alert_input = {key: value for key, value in activity_log_alert_template.items() if value is not None}
+
+ # Create/Update if state==present
+ if self.state == 'present':
+ if before_dict is None:
+ # activity log alert does not exist, create
+ # On creation default to location of resource group unless otherwise noted in input variables
+ if not self.location:
+ activity_log_alert_input['location'] = 'Global'
+ # On creation input == what we send to api
+ activity_log_alert_update = activity_log_alert_input
+ # Needs to be extended by tags if set
+ if self.tags:
+ activity_log_alert_update['tags'] = self.tags
+ self.results['changed'] = True
+ if self.check_mode:
+ # Check mode, skipping actual creation
+ pass
+ else:
+ create_response = self.create_or_update(activity_log_alert_update)
+ else:
+ # activity log alert already exists, updating it
+ # Dict for update is the union of existing object overwritten by input data
+ activity_log_alert_update = before_dict | activity_log_alert_input
+
+ # Enhanced with tags (special behaviour because of append_tags possibility)
+ update_tags, update_tags_content = self.update_tags(before_dict.get('tags'))
+ # Check if we need to update the activity log alert
+ if update_tags or not self.default_compare({}, activity_log_alert_update, before_dict, '', result_compare):
+ activity_log_alert_update['tags'] = update_tags_content
+ # Need to create/update the activity log alert; changed -> True
+ self.results['changed'] = True
+ if self.check_mode:
+ # Check mode, skipping actual creation
+ pass
+ else:
+ create_response = self.create_or_update(activity_log_alert_update)
+
+ if self.check_mode or not self.results['changed']:
+ # When object was not updated or when running in check mode
+ # assume activity_log_alert_update is resulting object
+ result = activity_log_alert_update
+ else:
+ # otherwise take resulting new object from response of create call
+ result = create_response
+
+ # Delete activity log alert if state is absent and it exists
+ # if it doesn't exist, it's already absent
+ elif self.state == 'absent' and before_dict is not None:
+ self.results['changed'] = True
+ if self.check_mode:
+ # do not delete in check mode
+ pass
+ else:
+ self.delete()
+
+ self.results['diff']['before'] = before_dict
+ self.results['diff']['after'] = result
+ self.results['activitylogalert'] = result
+
+ return self.results
+
+ def get_activity_log_alert(self):
+ '''
+ Gets the properties of the specified activity log alert.
+
+ :return: List of Activity Log Alerts
+ '''
+ self.log("Checking if activity log alert {0} in resource group {1} is present".format(self.name,
+ self.resource_group))
+
+ result = None
+ response = None
+
+ try:
+ response = self.monitor_management_client_activity_log_alerts.activity_log_alerts.get(activity_log_alert_name=self.name,
+ resource_group_name=self.resource_group)
+ except ResourceNotFoundError as ex:
+ self.log("Could not find activity log alert {0} in resource group {1}".format(self.name, self.resource_group))
+ if response:
+ result = self.serialize_obj(response, AZURE_OBJECT_CLASS)
+
+ return result
+
+ def create_or_update(self, activity_log_alert_update):
+ result = None
+ response = None
+ activity_log_alerts = self.monitor_management_client_activity_log_alerts.activity_log_alerts
+ try:
+ response = activity_log_alerts.create_or_update(resource_group_name=self.resource_group,
+ activity_log_alert_name=self.name,
+ activity_log_alert_rule=activity_log_alert_update,
+ logging_enable=False)
+ except Exception as ex:
+ self.fail("Error creating or update activity log alert {0} in resource group {1}: {2}".format(self.name, self.resource_group, str(ex)))
+
+ if response:
+ result = self.serialize_obj(response, AZURE_OBJECT_CLASS)
+
+ return result
+
+ def delete(self):
+ response = None
+ try:
+ response = self.monitor_management_client_activity_log_alerts.activity_log_alerts.delete(resource_group_name=self.resource_group,
+ activity_log_alert_name=self.name)
+ except Exception as ex:
+ self.fail("Error deleting activity log alert {0} in resource group {1}: {2}".format(self.name, self.resource_group, str(ex)))
+
+ return response
+
+
+def main():
+ """Main execution"""
+ AzureRMMonitorActivityLogAlert()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitoractivitylogalerts_info.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,258 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2025 Klaas Demter (@Klaas-)
+#
+# 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: azure_rm_monitoractivitylogalerts_info
+version_added: "3.7.0"
+short_description: Get Activity log alerts
+description:
+ - Get Activity log alerts
+
+options:
+ name:
+ description:
+ - The name of the activity log alert you're trying to get details about.
+ type: str
+ resource_group:
+ description:
+ - The name of the resource group in which the activity log alert is (if you use name)
+ - The name of the resource group where you want to list Activity log alerts (if you don't use name)
+ type: str
+extends_documentation_fragment:
+ - azure.azcollection.azure
+
+author:
+ - Klaas Demter (@Klaas-)
+'''
+
+EXAMPLES = '''
+- name: Get activity log alert details
+ azure.azcollection.azure_rm_monitoractivitylogalerts_info:
+ name: activity_log_alert_name
+ resource_group: resource_group_name
+
+- name: Get all Activity log alerts in specific resource group
+ azure.azcollection.azure_rm_monitoractivitylogalerts_info:
+ resource_group: resource_group_name
+
+- name: Get all Activity log alerts in the current subscription
+ azure.azcollection.azure_rm_monitoractivitylogalerts_info:
+'''
+
+RETURN = '''
+activitylogalerts:
+ description:
+ - List of Activity log alerts
+ - Can be empty if listing Activity log alerts
+ type: list
+ returned: always
+ sample: [
+ {
+ "actions": {
+ "action_groups": [
+ {
+ "action_group_id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.Insights/actionGroups/action_group_name",
+ "webhook_properties": {}
+ }
+ ]
+ },
+ "condition": {
+ "all_of": [
+ {
+ "equals": "ResourceHealth",
+ "field": "category"
+ },
+ {
+ "any_of": [
+ {
+ "equals": "Unknown",
+ "field": "properties.currentHealthStatus"
+ },
+ {
+ "equals": "Unavailable",
+ "field": "properties.currentHealthStatus"
+ },
+ {
+ "equals": "Degraded",
+ "field": "properties.currentHealthStatus"
+ }
+ ]
+ },
+ {
+ "any_of": [
+ {
+ "equals": "Unknown",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Unavailable",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Degraded",
+ "field": "properties.previousHealthStatus"
+ },
+ {
+ "equals": "Available",
+ "field": "properties.previousHealthStatus"
+ }
+ ]
+ },
+ {
+ "any_of": [
+ {
+ "equals": "PlatformInitiated",
+ "field": "properties.cause"
+ }
+ ]
+ }
+ ]
+ },
+ "description": "Good description of the alert",
+ "enabled": true,
+ "id": \
+"/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.Insights/activityLogAlerts/activity_log_alert_name",
+ "location": "global",
+ "name": "activity_log_alert_name",
+ "scopes": [
+ "/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name"
+ ],
+ "tags": {},
+ "type": "Microsoft.Insights/ActivityLogAlerts"
+ }
+ ]
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError, HttpResponseError
+
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+AZURE_OBJECT_CLASS = 'activitylogalerts'
+
+
+class AzureRMactivitylogalertsInfo(AzureRMModuleBase):
+ """Information class for an Azure RM Activity log alerts"""
+
+ def __init__(self):
+ self.module_arg_spec = dict(
+ name=dict(type='str', required=False),
+ resource_group=dict(type='str', required=False),
+ )
+
+ self.required_by = {
+ 'name': 'resource_group'
+ }
+
+ self.name = None
+ self.resource_group = None
+ self.log_path = None
+ self.log_mode = None
+
+ self.results = dict(
+ changed=False,
+ activitylogalerts=[]
+ )
+
+ super(AzureRMactivitylogalertsInfo, self).__init__(derived_arg_spec=self.module_arg_spec,
+ supports_check_mode=True,
+ supports_tags=False,
+ facts_module=True,
+ required_by=self.required_by)
+
+ def exec_module(self, **kwargs):
+ """Main module execution method"""
+
+ for key in self.module_arg_spec:
+ setattr(self, key, kwargs[key])
+
+ if self.name:
+ result = self.get_activity_log_alert()
+ else:
+ result = self.list_activity_log_alerts()
+
+ self.results['activitylogalerts'] = result
+
+ return self.results
+
+ def get_activity_log_alert(self):
+ '''
+ Gets the properties of the specified activity log alert.
+
+ :return: List of Activity log alerts
+ '''
+ self.log("Checking if activity log alert {0} in resource group {1} is present".format(self.name,
+ self.resource_group))
+
+ result = []
+ activity_log_alert = None
+
+ try:
+ activity_log_alert = self.monitor_management_client_activity_log_alerts.activity_log_alerts.get(activity_log_alert_name=self.name,
+ resource_group_name=self.resource_group)
+ except ResourceNotFoundError as ex:
+ self.log("Could not find activity log alert {0} in resource group {1}".format(self.name, self.resource_group))
+ return []
+ except HttpResponseError as ex:
+ if ex.error.code == 'InvalidSubscriptionId':
+ self.log("Could not find subscription id")
+ return []
+ else:
+ raise Exception(ex)
+ if activity_log_alert:
+ result = [self.serialize_obj(activity_log_alert, AZURE_OBJECT_CLASS)]
+
+ return result
+
+ def list_activity_log_alerts(self):
+ '''
+ Gets the properties of the specified Activity log alerts in resource group or subscription.
+
+ :return: List of Activity log alerts
+ '''
+
+ result = []
+ activity_log_alerts = None
+
+ if self.resource_group:
+ self.log("Checking if the Activity log alerts in resource group {0} are present".format(self.resource_group))
+ activity_log_alerts_mgmt_client = self.monitor_management_client_activity_log_alerts.activity_log_alerts
+ activity_log_alerts = activity_log_alerts_mgmt_client.list_by_resource_group(resource_group_name=self.resource_group)
+ else:
+ self.log("Checking if the Activity log alerts are present in subscription")
+ activity_log_alerts = self.monitor_management_client_activity_log_alerts.activity_log_alerts.list_by_subscription_id()
+ if activity_log_alerts:
+ # it seems the exception is thrown when iterating through activity_log_alerts, not when setting activity_log_alerts
+ try:
+ for item in activity_log_alerts:
+ result.append(self.serialize_obj(item, AZURE_OBJECT_CLASS))
+ except ResourceNotFoundError as ex:
+ self.log("Could not find resource group {0}".format(self.resource_group))
+ except HttpResponseError as ex:
+ if ex.error.code == 'InvalidSubscriptionId':
+ self.log("Could not find subscription id")
+ else:
+ raise Exception(ex)
+
+ return result
+
+
+def main():
+ """Main execution"""
+ AzureRMactivitylogalertsInfo()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,490 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2025 Klaas Demter (@Klaas-)
+#
+# 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: azure_rm_monitormetricalerts
+version_added: "3.7.0"
+short_description: Create, update and delete metric alerts.
+description:
+ - Create, update and delete metric alerts.
+ - >-
+ U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2018_03_01.operations.metricalertsoperations?view=azure-python#azure-mgmt-monitor-v2018-03-01-operations-metricalertsoperations-create-or-update)
+ - U(https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2018_03_01.models.metricalertresource?view=azure-python)
+options:
+ name:
+ description:
+ - The name of the metric alert you're creating, updateing or deleting.
+ required: true
+ type: str
+ resource_group:
+ description:
+ - The name of the resource group.
+ required: true
+ type: str
+ location:
+ description:
+ - Location of the metric alert.
+ - Metric alerts are usually 'Global'.
+ - If unspecified will default to 'Global' on creation.
+ required: false
+ type: str
+ description:
+ description:
+ - A description of this metric alert rule.
+ type: str
+ severity:
+ description:
+ - Severity 1-4 of the alert.
+ - Required on creation.
+ type: int
+ enabled:
+ description:
+ - Indicates whether this metric alert is enabled.
+ - If an metric alert is not enabled, then none of its receivers will receive communications.
+ - Required on creation.
+ type: bool
+ scopes:
+ description:
+ - A list of resource IDs that will be used as prefixes.
+ - The alert will only apply to Metric events with resource IDs that fall under one of these prefixes.
+ - This list must include at least one item for creation.
+ type: list
+ elements: str
+ evaluation_frequency:
+ description:
+ - How often the metric alert is evaluated represented in ISO 8601 duration format.
+ - U(https://en.wikipedia.org/wiki/ISO_8601#Durations)
+ - Required for creation.
+ type: str
+ window_size:
+ description:
+ - The period of time (in ISO 8601 duration format) that is used to monitor alert activity based on the threshold.
+ - U(https://en.wikipedia.org/wiki/ISO_8601#Durations)
+ - Required for creation.
+ type: str
+ target_resource_type:
+ description:
+ - The resource type of the target resource(s) on which the alert is created/updated.
+ - Mandatory (for creation) if the scope contains a subscription, resource group, or more than one resource.
+ type: str
+ target_resource_region:
+ description:
+ - The region of the target resource(s) on which the alert is created/updated.
+ - Mandatory (for creation) if the scope contains a subscription, resource group, or more than one resource.
+ type: str
+ criteria:
+ description:
+ - Defines the specific alert criteria information.
+ - Required for creation.
+ type: dict
+ suboptions:
+ extra_keys:
+ description:
+ - U(https://learn.microsoft.com/en-us/rest/api/monitor/metric-alerts/create-or-update?view=rest-monitor-2018-03-01&tabs=HTTP#request-body)
+ - extra keys depends on the odata_type
+ type: dict
+ odata_type:
+ description:
+ - Specifies the type of the alert criteria.
+ - Required on creation.
+ type: str
+ choices:
+ - Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria
+ - Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria
+ - Microsoft.Azure.Monitor.WebtestLocationAvailabilityCriteria
+ auto_mitigate:
+ description:
+ - the flag that indicates whether the alert should be auto resolved or not. The default is true.
+ type: bool
+ actions:
+ description:
+ - The actions that will activate when the condition is met.
+ - U(https://learn.microsoft.com/en-us/rest/api/monitor/metric-alerts/create-or-update?view=rest-monitor-2018-03-01&tabs=HTTP#metricalertaction)
+ type: list
+ elements: dict
+ suboptions:
+ action_group_id:
+ description:
+ - The resource ID of the Action Group.
+ - Must be set when setting an action group.
+ type: str
+ webhook_properties:
+ description:
+ - The dictionary of custom properties to include with the post operation. These data are appended to the webhook payload.
+ type: dict
+ state:
+ description:
+ - State of the metric alert
+ - Use C(present) for creating/updating a metric alert.
+ - Use C(absent) for deleting a metric alert.
+ default: present
+ type: str
+ choices:
+ - present
+ - absent
+extends_documentation_fragment:
+ - azure.azcollection.azure
+ - azure.azcollection.azure_tags
+
+author:
+ - Klaas Demter (@Klaas-)
+'''
+
+EXAMPLES = '''
+- name: Add a metric alert
+ azure.azcollection.azure_rm_monitormetricalerts:
+ state: present
+ resource_group: resource_group_name
+ location: Global
+ name: metric_alert_name
+ actions:
+ - action_group_id: \
+/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/microsoft.insights/actionGroups/action_group_name
+ auto_mitigate: true
+ criteria:
+ all_of:
+ - criterion_type: StaticThresholdCriterion
+ dimensions:
+ - name: dataSourceURL
+ operator: Include
+ values:
+ - '*'
+ - name: healthStatus
+ operator: Exclude
+ values:
+ - Healthy
+ metric_name: BackupHealthEvent
+ metric_namespace: Microsoft.RecoveryServices/vaults
+ name: Metric1
+ operator: GreaterThan
+ skip_metric_validation: false
+ threshold: 0.0
+ time_aggregation: Count
+ odata_type: Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria
+ description: Alert on Backup Health Events
+ enabled: true
+ evaluation_frequency: PT1H
+ scopes:
+ - /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.RecoveryServices/vaults/recovery_vault_name
+ severity: 3
+ tags:
+ TestTag1: TestValue1
+ target_resource_type: Microsoft.RecoveryServices/vaults
+ window_size: P1D
+
+- name: Add tag to existing metric alert
+ azure.azcollection.azure_rm_monitormetricalerts:
+ state: present
+ name: metric_alert_name
+ resource_group: resource_group_name
+ append_tags: true
+ tags:
+ ThisIsAnAddedExampleTag: ExampleValue
+
+- name: Delete a metric alert
+ azure.azcollection.azure_rm_monitormetricalerts:
+ state: absent
+ name: metric_alert_name
+ resource_group: resource_group_name
+'''
+
+RETURN = '''
+metricalert:
+ description:
+ - Details of the metric alert
+ - Is null on state==absent (metric alert does not exist or will be deleted)
+ - Assumes you make legal changes in check mode
+ type: dict
+ returned: always
+ sample: {
+ "actions": [
+ {
+ "action_group_id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/microsoft.insights/actionGroups/action_group_name"
+ }
+ ],
+ "auto_mitigate": true,
+ "criteria": {
+ "all_of": [
+ {
+ "criterion_type": "StaticThresholdCriterion",
+ "dimensions": [
+ {
+ "name": "dataSourceURL",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ },
+ {
+ "name": "healthStatus",
+ "operator": "Exclude",
+ "values": [
+ "Healthy"
+ ]
+ }
+ ],
+ "metric_name": "BackupHealthEvent",
+ "metric_namespace": "Microsoft.RecoveryServices/vaults",
+ "name": "Metric1",
+ "operator": "GreaterThan",
+ "skip_metric_validation": false,
+ "threshold": 0.0,
+ "time_aggregation": "Count"
+ }
+ ],
+ "odata_type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria"
+ },
+ "description": "Alert on Backup Health Events",
+ "enabled": true,
+ "evaluation_frequency": "PT1H",
+ "id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.Insights/metricAlerts/metric_alert_name",
+ "location": "Global",
+ "name": "metric_alert_name",
+ "scopes": [
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.RecoveryServices/vaults/recovery_vault_name"
+ ],
+ "severity": 3,
+ "tags": {
+ "TestTag1": "TestValue1"
+ },
+ "target_resource_type": "Microsoft.RecoveryServices/vaults",
+ "type": "Microsoft.Insights/metricAlerts",
+ "window_size": "P1D"
+ }
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError
+
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+AZURE_OBJECT_CLASS = 'MetricAlert'
+
+actions_spec = dict(
+ action_group_id=dict(type='str'),
+ webhook_properties=dict(type='dict')
+)
+
+
+class AzureRMMonitorMetricAlert(AzureRMModuleBaseExt):
+ """Information class for an Azure RM metric alerts"""
+
+ def __init__(self):
+ # https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2020_10_01.models.MetricAlertresource?view=azure-python
+ self.module_arg_spec = dict(
+ name=dict(type='str', required=True),
+ resource_group=dict(type='str', required=True),
+ location=dict(type='str'),
+ description=dict(type='str'),
+ severity=dict(type='int'),
+ enabled=dict(type='bool'),
+ scopes=dict(type='list', elements='str'),
+ evaluation_frequency=dict(type='str'),
+ window_size=dict(type='str'),
+ target_resource_type=dict(type='str'),
+ target_resource_region=dict(type='str'),
+ # https://github.com/ansible/ansible/issues/74001
+ # Can't properly define criteria in arg spec
+ criteria=dict(type='dict'),
+ auto_mitigate=dict(type='bool'),
+ actions=dict(type='list', elements='dict', options=actions_spec),
+ state=dict(type='str', choices=['present', 'absent'], default='present')
+ )
+
+ self.name = None
+ self.resource_group = None
+ self.location = None
+ self.tags = None
+ self.description = None
+ self.severity = None
+ self.enabled = None
+ self.scopes = None
+ self.evaluation_frequency = None
+ self.window_size = None
+ self.target_resource_type = None
+ self.target_resource_region = None
+ self.criteria = None
+ self.auto_mitigate = None
+ self.actions = None
+ self.state = None
+ self.log_path = None
+ self.log_mode = None
+
+ self.results = dict(
+ changed=False,
+ metricalert=dict(),
+ diff=dict(
+ before=None,
+ after=None
+ )
+ )
+
+ super(AzureRMMonitorMetricAlert, self).__init__(derived_arg_spec=self.module_arg_spec,
+ supports_check_mode=True,
+ supports_tags=True)
+
+ def exec_module(self, **kwargs):
+ """Main module execution method"""
+
+ for key in list(self.module_arg_spec.keys()) + ['tags']:
+ if hasattr(self, key):
+ setattr(self, key, kwargs[key])
+
+ # Defaults for variables
+ result = None
+ result_compare = dict(compare=[])
+ before_dict = None
+
+ # Get current metric alert if it exists
+ before_dict = self.get_metric_alert()
+
+ # Create dict from input, without None values
+ # https://learn.microsoft.com/en-us/python/api/azure-mgmt-monitor/azure.mgmt.monitor.v2018_03_01.models.metricalertresource?view=azure-python
+ # tags seperately because of update_tags behavior
+ metric_alert_template = {
+ "location": self.location,
+ "description": self.description,
+ "severity": self.severity,
+ "enabled": self.enabled,
+ "scopes": self.scopes,
+ "evaluation_frequency": self.evaluation_frequency,
+ "window_size": self.window_size,
+ "target_resource_type": self.target_resource_type,
+ "target_resource_region": self.target_resource_region,
+ "criteria": self.criteria,
+ "auto_mitigate": self.auto_mitigate,
+ "actions": self.actions
+ }
+ # Filter out all None values
+ metric_alert_input = {key: value for key, value in metric_alert_template.items() if value is not None}
+
+ # Create/Update if state==present
+ if self.state == 'present':
+ if before_dict is None:
+ # metric alert does not exist, create
+ # On creation default to 'Global' unless otherwise noted in input variables
+ if not self.location:
+ metric_alert_input['location'] = 'Global'
+ # On creation input == what we send to api
+ metric_alert_update = metric_alert_input
+ # Needs to be extended by tags if set
+ if self.tags:
+ metric_alert_update['tags'] = self.tags
+ self.results['changed'] = True
+ if self.check_mode:
+ # Check mode, skipping actual creation
+ pass
+ else:
+ create_response = self.create_or_update(metric_alert_update)
+ else:
+ # metric alert already exists, updating it
+ # Dict for update is the union of existing object overwritten by input data
+ metric_alert_update = before_dict | metric_alert_input
+
+ # Enhanced with tags (special behaviour because of append_tags possibility)
+ update_tags, update_tags_content = self.update_tags(before_dict.get('tags'))
+ # Check if we need to update the metric alert
+ if update_tags or not self.default_compare({}, metric_alert_update, before_dict, '', result_compare):
+ metric_alert_update['tags'] = update_tags_content
+ # Need to create/update the metric alert; changed -> True
+ self.results['changed'] = True
+ if self.check_mode:
+ # Check mode, skipping actual creation
+ pass
+ else:
+ create_response = self.create_or_update(metric_alert_update)
+
+ if self.check_mode or not self.results['changed']:
+ # When object was not updated or when running in check mode
+ # assume metric_alert_update is resulting object
+ result = metric_alert_update
+ else:
+ # otherwise take resulting new object from response of create call
+ result = create_response
+
+ # Delete metric alert if state is absent and it exists
+ # if it doesn't exist, it's already absent
+ elif self.state == 'absent' and before_dict is not None:
+ self.results['changed'] = True
+ if self.check_mode:
+ # do not delete in check mode
+ pass
+ else:
+ self.delete()
+
+ self.results['diff']['before'] = before_dict
+ self.results['diff']['after'] = result
+ self.results['metricalert'] = result
+
+ return self.results
+
+ def get_metric_alert(self):
+ '''
+ Gets the properties of the specified metric alert.
+
+ :return: List of metric alerts
+ '''
+ self.log("Checking if metric alert {0} in resource group {1} is present".format(self.name,
+ self.resource_group))
+
+ result = None
+ response = None
+
+ try:
+ response = self.monitor_management_client_metric_alerts.metric_alerts.get(rule_name=self.name,
+ resource_group_name=self.resource_group)
+ except ResourceNotFoundError as ex:
+ self.log("Could not find metric alert {0} in resource group {1}".format(self.name, self.resource_group))
+ if response:
+ result = self.serialize_obj(response, AZURE_OBJECT_CLASS)
+
+ return result
+
+ def create_or_update(self, metric_alert_update):
+ result = None
+ response = None
+ metric_alerts = self.monitor_management_client_metric_alerts.metric_alerts
+ try:
+ response = metric_alerts.create_or_update(resource_group_name=self.resource_group,
+ rule_name=self.name,
+ parameters=metric_alert_update,
+ logging_enable=False)
+ except Exception as ex:
+ self.fail("Error creating or update metric alert {0} in resource group {1}: {2}".format(self.name, self.resource_group, str(ex)))
+
+ if response:
+ result = self.serialize_obj(response, AZURE_OBJECT_CLASS)
+
+ return result
+
+ def delete(self):
+ response = None
+ try:
+ response = self.monitor_management_client_metric_alerts.metric_alerts.delete(resource_group_name=self.resource_group,
+ rule_name=self.name)
+ except Exception as ex:
+ self.fail("Error deleting metric alert {0} in resource group {1}: {2}".format(self.name, self.resource_group, str(ex)))
+
+ return response
+
+
+def main():
+ """Main execution"""
+ AzureRMMonitorMetricAlert()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitormetricalerts_info.py 2025-08-29 02:51:39.000000000 +0000
@@ -0,0 +1,241 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2025 Klaas Demter (@Klaas-)
+#
+# 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: azure_rm_monitormetricalerts_info
+version_added: "3.7.0"
+short_description: Get metric alerts
+description:
+ - Get metric alerts
+
+options:
+ name:
+ description:
+ - The name of the metric alert you're trying to get details about.
+ type: str
+ resource_group:
+ description:
+ - The name of the resource group in which the metric alert is (if you use name)
+ - The name of the resource group where you want to list metric alerts (if you don't use name)
+ type: str
+extends_documentation_fragment:
+ - azure.azcollection.azure
+
+author:
+ - Klaas Demter (@Klaas-)
+'''
+
+EXAMPLES = '''
+- name: Get metric alert details
+ azure.azcollection.azure_rm_monitormetricalerts_info:
+ name: metric_alert_name
+ resource_group: resource_group_name
+
+- name: Get all metric alerts in specific resource group
+ azure.azcollection.azure_rm_monitormetricalerts_info:
+ resource_group: resource_group_name
+
+- name: Get all metric alerts in the current subscription
+ azure.azcollection.azure_rm_monitormetricalerts_info:
+'''
+
+RETURN = '''
+metricalerts:
+ description:
+ - List of metric alerts
+ - Can be empty if listing metric alerts or metric alert does not exist
+ type: list
+ returned: always
+ sample: [
+ {
+ "actions": [
+ {
+ "action_group_id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/microsoft.insights/actionGroups/action_group_name"
+ }
+ ],
+ "auto_mitigate": true,
+ "criteria": {
+ "all_of": [
+ {
+ "criterion_type": "StaticThresholdCriterion",
+ "dimensions": [
+ {
+ "name": "dataSourceURL",
+ "operator": "Include",
+ "values": [
+ "*"
+ ]
+ },
+ {
+ "name": "healthStatus",
+ "operator": "Exclude",
+ "values": [
+ "Healthy"
+ ]
+ }
+ ],
+ "metric_name": "BackupHealthEvent",
+ "metric_namespace": "Microsoft.RecoveryServices/vaults",
+ "name": "Metric1",
+ "operator": "GreaterThan",
+ "skip_metric_validation": false,
+ "threshold": 0.0,
+ "time_aggregation": "Count"
+ }
+ ],
+ "odata_type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria"
+ },
+ "description": "Alert on Backup Health Events",
+ "enabled": true,
+ "evaluation_frequency": "PT1H",
+ "id": \
+"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.Insights/metricAlerts/metric_alert",
+ "location": "Global",
+ "name": "Monitoring-e-app-name-Backup_Health",
+ "scopes": [
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resource_group_name/providers/Microsoft.RecoveryServices/vaults/recovery_vault_name"
+ ],
+ "severity": 3,
+ "tags": {
+ "TestTag1": "TestValue1"
+ },
+ "target_resource_type": "Microsoft.RecoveryServices/vaults",
+ "type": "Microsoft.Insights/metricAlerts",
+ "window_size": "P1D"
+ }
+ ]
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError, HttpResponseError
+
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+AZURE_OBJECT_CLASS = 'metricalerts'
+
+
+class AzureRMmetricalertsInfo(AzureRMModuleBase):
+ """Information class for an Azure RM metric alerts"""
+
+ def __init__(self):
+ self.module_arg_spec = dict(
+ name=dict(type='str', required=False),
+ resource_group=dict(type='str', required=False),
+ )
+
+ self.required_by = {
+ 'name': 'resource_group'
+ }
+
+ self.name = None
+ self.resource_group = None
+ self.log_path = None
+ self.log_mode = None
+
+ self.results = dict(
+ changed=False,
+ metricalerts=[]
+ )
+
+ super(AzureRMmetricalertsInfo, self).__init__(derived_arg_spec=self.module_arg_spec,
+ supports_check_mode=True,
+ supports_tags=False,
+ facts_module=True,
+ required_by=self.required_by)
+
+ def exec_module(self, **kwargs):
+ """Main module execution method"""
+
+ for key in self.module_arg_spec:
+ setattr(self, key, kwargs[key])
+
+ if self.name:
+ result = self.get_metric_alert()
+ else:
+ result = self.list_metric_alerts()
+
+ self.results['metricalerts'] = result
+
+ return self.results
+
+ def get_metric_alert(self):
+ '''
+ Gets the properties of the specified metric alert.
+
+ :return: List of metric alerts
+ '''
+ self.log("Checking if metric alert {0} in resource group {1} is present".format(self.name,
+ self.resource_group))
+
+ result = []
+ metric_alert = None
+
+ try:
+ metric_alert = self.monitor_management_client_metric_alerts.metric_alerts.get(rule_name=self.name,
+ resource_group_name=self.resource_group)
+ except ResourceNotFoundError as ex:
+ self.log("Could not find metric alert {0} in resource group {1}".format(self.name, self.resource_group))
+ return []
+ except HttpResponseError as ex:
+ if ex.error.code == 'InvalidSubscriptionId':
+ self.log("Could not find subscription id")
+ return []
+ else:
+ raise Exception(ex)
+ if metric_alert:
+ result = [self.serialize_obj(metric_alert, AZURE_OBJECT_CLASS)]
+
+ return result
+
+ def list_metric_alerts(self):
+ '''
+ Gets the properties of the specified metric alerts in resource group or subscription.
+
+ :return: List of metric alerts
+ '''
+
+ result = []
+ metric_alerts = None
+
+ if self.resource_group:
+ self.log("Checking if the metric alerts in resource group {0} are present".format(self.resource_group))
+ metric_alerts_mgmt_client = self.monitor_management_client_metric_alerts.metric_alerts
+ metric_alerts = metric_alerts_mgmt_client.list_by_resource_group(resource_group_name=self.resource_group)
+ else:
+ self.log("Checking if the metric alerts are present in subscription")
+ metric_alerts = self.monitor_management_client_metric_alerts.metric_alerts.list_by_subscription()
+ if metric_alerts:
+ # it seems the exception is thrown when iterating through metric_alerts, not when setting metric_alerts
+ try:
+ for item in metric_alerts:
+ result.append(self.serialize_obj(item, AZURE_OBJECT_CLASS))
+ except ResourceNotFoundError as ex:
+ self.log("Could not find resource group {0}".format(self.resource_group))
+ except HttpResponseError as ex:
+ if ex.error.code == 'InvalidSubscriptionId':
+ self.log("Could not find subscription id")
+ else:
+ raise Exception(ex)
+
+ return result
+
+
+def main():
+ """Main execution"""
+ AzureRMmetricalertsInfo()
+
+
+if __name__ == '__main__':
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py 2025-08-29 02:51:39.000000000 +0000
@@ -411,7 +411,7 @@
self.results['changed'] = changed
if self.check_mode:
- return results
+ return dict(state=results)
if changed:
if self.state == 'present':
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/pr-pipelines.yml ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/pr-pipelines.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/pr-pipelines.yml 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/pr-pipelines.yml 2025-08-29 02:51:39.000000000 +0000
@@ -78,9 +78,11 @@
- "azure_rm_managementgroup"
- "azure_rm_mariadbserver"
- "azure_rm_monitoractiongroups"
+ - "azure_rm_monitoractivitylogalerts"
- "azure_rm_monitordatacollectionrules"
- "azure_rm_monitordiagnosticsetting"
- "azure_rm_monitorlogprofile"
+ - "azure_rm_monitormetricalerts"
- "azure_rm_multiplemanageddisks"
- "azure_rm_mysqlserver"
- "azure_rm_mysqlflexibleserver"
@@ -166,6 +168,9 @@
- "azure_rm_afdruleset"
- "azure_rm_afdrules"
- "azure_rm_tags"
+ - "azure_rm_dedicatedhost"
+ - "inventory_azure"
+ - "setup_azure"
trigger: none
pr:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/requirements.txt ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/requirements.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/azure/azcollection/requirements.txt 2025-07-29 02:43:35.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/azure/azcollection/requirements.txt 2025-08-29 02:51:39.000000000 +0000
@@ -2,7 +2,7 @@
requests[security]
xmltodict
msgraph-sdk==1.6.0
-azure-cli-core==2.74.0
+azure-cli-core==2.75.0
azure-common==1.1.28
azure-identity==1.19.0
azure-mgmt-authorization==4.0.0
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.ansible-lint ansible-12.0.0+dfsg/ansible_collections/cloud/common/.ansible-lint
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.ansible-lint 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.ansible-lint 1970-01-01 00:00:00.000000000 +0000
@@ -1,9 +0,0 @@
----
-profile: production
-
-exclude_paths:
- - .ansible/
- - tests/integration
- - tests/sanity
- - .github
- - changelogs/changelog.yaml
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/patchback.yml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/patchback.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/patchback.yml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/patchback.yml 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
----
-backport_branch_prefix: patchback/backports/
-backport_label_prefix: backport-
-target_branch_prefix: stable-
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/changelog.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/changelog.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,21 +0,0 @@
----
-name: Changelog
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-on:
- pull_request:
- types:
- - opened
- - reopened
- - labeled
- - unlabeled
- - synchronize
- branches:
- - main
- - stable-*
-
-jobs:
- changelog:
- uses: ansible-network/github_actions/.github/workflows/changelog.yml@main
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/galaxy-import.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
----
-name: galaxy-import
-concurrency:
- group: ${{ github.head_ref }}
- cancel-in-progress: true
-
-on:
- pull_request:
- branches:
- - main
- - stable-*
-
-jobs:
- galaxy_importer:
- uses: ansible-network/github_actions/.github/workflows/galaxy_importer.yml@main
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests-kubernetes-core.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,162 +0,0 @@
----
-name: Integration tests (kubernetes.core)
-on:
- pull_request:
- branches:
- - main
- - stable-*
-
-jobs:
- splitter:
- env:
- source_dir: "./source"
- runs-on: ubuntu-latest
- outputs:
- test_targets: ${{ steps.splitter.outputs.test_targets }}
- test_targets_json: ${{ steps.splitter.outputs.test_targets_json }}
- test_jobs: ${{ steps.splitter.outputs.test_jobs }}
- steps:
- - name: Checkout the collection repository
- uses: actions/checkout@v3
- with:
- repository: ansible-collections/kubernetes.core
- ref: main
- path: ${{ env.source_dir }}
- fetch-depth: "0"
-
- - name: Split all Kubernetes targets into Job
- id: splitter
- uses: ansible-network/github_actions/.github/actions/ansible_test_splitter@main
- with:
- collections_to_test: ${{ env.source_dir }}
- total_jobs: 8
- env:
- ANSIBLE_TEST_ALL_THE_TARGETS: "true"
-
- - name: Display splitter output
- run: |
- echo "test_targets=${{ steps.splitter.outputs.test_targets }}"
- echo "test_targets_json=${{ steps.splitter.outputs.test_targets_json }}"
- echo "test_jobs=${{ steps.splitter.outputs.test_jobs }}"
- shell: bash
- integration:
- runs-on: ubuntu-latest
- timeout-minutes: 60
- needs:
- - splitter
- if: ${{ needs.splitter.outputs.test_targets != '' }}
- env:
- source: "./cloud_common"
- ansible_posix: "./ansible_posix"
- kubernetes_core: "./kubernetes_core"
- community_general: "./community_general"
- strategy:
- fail-fast: false
- matrix:
- ansible-version:
- - milestone
- - stable-2.17
- python-version:
- - "3.12"
- - "3.11"
- - "3.10"
- workflow-id: ${{ fromJson(needs.splitter.outputs.test_jobs) }}
- exclude:
- - ansible-version: milestone
- python-version: 3.10
- name: "integration-${{ matrix.python-version }}-${{ matrix.ansible-version }}-${{ matrix.workflow-id }}"
- steps:
- - name: Read target
- id: read-targets
- run: |
- import json, os
- with open(os.environ.get('GITHUB_OUTPUT'), "a", encoding="utf-8") as fh:
- fh.write(f'ansible_test_targets={json.loads(os.environ.get("ALL_TEST_TARGETS")).get(os.environ.get("WORKFLOW_ID"))}\n')
- shell: python
- env:
- ALL_TEST_TARGETS: ${{ needs.splitter.outputs.test_targets_json }}
- WORKFLOW_ID: ${{ matrix.workflow-id }}
-
- - name: Display ansible test targets
- run: |
- echo "ansible_test_targets -> ${{ steps.read-targets.outputs.ansible_test_targets }}"
- shell: bash
-
- - name: Checkout cloud.common repository
- uses: actions/checkout@v3
- with:
- path: ${{ env.source }}
- ref: ${{ github.event.pull_request.head.sha }}
-
- - name: checkout ansible-collections/kubernetes.core
- uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
- with:
- repository: ansible-collections/kubernetes.core
- path: ${{ env.kubernetes_core }}
- ref: main
-
- - name: checkout ansible-collections/ansible.posix
- uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
- with:
- repository: ansible-collections/ansible.posix
- path: ${{ env.ansible_posix }}
- ref: main
-
- - name: checkout ansible-collections/community.general
- uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
- with:
- repository: ansible-collections/community.general
- path: ${{ env.community_general }}
- ref: main
-
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
-
- # install ansible
- - name: Install ansible-core (${{ matrix.ansible-version }})
- run: >-
- python3 -m pip install
- https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz
- --disable-pip-version-check
- shell: bash
-
- - name: Build and install kubernetes.core collection
- id: install-kubernetes-core
- uses: ansible-network/github_actions/.github/actions/build_install_collection@main
- with:
- install_python_dependencies: true
- source_path: ${{ env.kubernetes_core }}
-
- - name: install cloud.common collection
- uses: ansible-network/github_actions/.github/actions/build_install_collection@main
- with:
- install_python_dependencies: true
- source_path: ${{ env.source }}
-
- - name: install ansible.posix collection
- uses: ansible-network/github_actions/.github/actions/build_install_collection@main
- with:
- install_python_dependencies: true
- source_path: ${{ env.ansible_posix }}
-
- - name: Build and install community.general collection
- uses: ansible-network/github_actions/.github/actions/build_install_collection@main
- with:
- # community.general has no requirements.txt
- install_python_dependencies: false
- source_path: ${{ env.community_general }}
-
- - name: Create kubernetes cluster
- uses: helm/kind-action@v1.4.0
-
- - name: Run integration tests
- uses: ansible-network/github_actions/.github/actions/ansible_test_integration@main
- with:
- collection_path: ${{ steps.install-kubernetes-core.outputs.collection_path }}
- python_version: ${{ matrix.python-version }}
- ansible_version: ${{ matrix.ansible-version }}
- ansible_test_targets: ${{ steps.read-targets.outputs.ansible_test_targets }}
- ansible_test_environment: |
- ENABLE_TURBO_MODE=true
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/integration-tests.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,61 +0,0 @@
----
-name: Integration tests (cloud.common)
-on:
- pull_request:
- branches:
- - main
- - stable-*
-
-jobs:
- integration:
- runs-on: ubuntu-latest
- timeout-minutes: 60
- env:
- source: "./cloud_common"
- strategy:
- fail-fast: false
- matrix:
- ansible-version:
- - stable-2.18
- - stable-2.17
- python-version:
- - "3.12"
- - "3.11"
- - "3.10"
- exclude:
- - ansible-version: stable-2.18
- python-version: 3.10
- name: "integration-${{ matrix.python-version }}-${{ matrix.ansible-version }}"
- steps:
- - name: Checkout cloud.common repository
- uses: actions/checkout@v3
- with:
- path: ${{ env.source }}
- ref: ${{ github.event.pull_request.head.sha }}
-
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
-
- # install ansible
- - name: Install ansible-core (${{ matrix.ansible-version }})
- run: >-
- python3 -m pip install
- https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz
- --disable-pip-version-check
- shell: bash
-
- - name: install cloud.common collection
- id: install-cloud-common
- uses: ansible-network/github_actions/.github/actions/build_install_collection@main
- with:
- install_python_dependencies: true
- source_path: ${{ env.source }}
-
- - name: Run integration tests
- uses: ansible-network/github_actions/.github/actions/ansible_test_integration@main
- with:
- collection_path: ${{ steps.install-cloud-common.outputs.collection_path }}
- python_version: ${{ matrix.python-version }}
- ansible_version: ${{ matrix.ansible-version }}
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/label-new-issues.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,18 +0,0 @@
----
-name: label new issues
-on:
- issues:
- types:
- - opened
- - reopened
-
-jobs:
- add_label:
- runs-on: ubuntu-latest
- permissions:
- contents: write
- issues: write
- steps:
- - uses: actions-ecosystem/action-add-labels@v1
- with:
- labels: needs_triage
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/linters.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/linters.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/linters.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/linters.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
----
-name: Linters
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-on:
- pull_request:
- branches:
- - main
- - stable-*
- tags:
- - "*"
-
-jobs:
- linters:
- uses: ansible-network/github_actions/.github/workflows/tox-linters.yml@main
-
- ansible-lint:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: run-ansible-lint
- uses: ansible/ansible-lint@v25.1.2
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/sanity-tests.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
----
-name: Sanity tests
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-on:
- pull_request:
- branches:
- - main
- - stable-*
-
-jobs:
- sanity:
- uses: ansible-network/github_actions/.github/workflows/sanity.yml@main
- with:
- matrix_exclude: >-
- [
- {
- "ansible-version": "devel"
- },
- {
- "ansible-version": "milestone"
- },
- {
- "ansible-version": "stable-2.19"
- },
- {
- "ansible-version": "stable-2.18",
- "python-version": "3.10"
- },
- {
- "ansible-version": "stable-2.17",
- "python-version": "3.13"
- },
- {
- "ansible-version": "stable-2.16",
- "python-version": "3.12"
- },
- {
- "ansible-version": "stable-2.16",
- "python-version": "3.13"
- },
- {
- "ansible-version": "stable-2.15",
- "python-version": "3.12"
- },
- {
- "ansible-version": "stable-2.15",
- "python-version": "3.13"
- }
- ]
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/unit-tests.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/unit-tests.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/.github/workflows/unit-tests.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/.github/workflows/unit-tests.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
----
-name: Unit tests
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-on:
- pull_request:
- branches:
- - main
- - stable-*
-
-jobs:
- unit-source:
- uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main
- with:
- matrix_exclude: >-
- [
- {
- "ansible-version": "devel"
- },
- {
- "ansible-version": "milestone"
- },
- {
- "ansible-version": "stable-2.19"
- },
- {
- "ansible-version": "stable-2.18",
- "python-version": "3.10"
- },
- {
- "ansible-version": "stable-2.17",
- "python-version": "3.13"
- },
- {
- "ansible-version": "stable-2.16",
- "python-version": "3.12"
- },
- {
- "ansible-version": "stable-2.16",
- "python-version": "3.13"
- },
- {
- "ansible-version": "stable-2.15",
- "python-version": "3.12"
- },
- {
- "ansible-version": "stable-2.15",
- "python-version": "3.13"
- }
- ]
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/CHANGELOG.rst ansible-12.0.0+dfsg/ansible_collections/cloud/common/CHANGELOG.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/CHANGELOG.rst 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/CHANGELOG.rst 1970-01-01 00:00:00.000000000 +0000
@@ -1,227 +0,0 @@
-==========================
-cloud.common Release Notes
-==========================
-
-.. contents:: Topics
-
-v5.0.0
-======
-
-Release Summary
----------------
-
-This release drops support for ``ansible-core>=2.19`` and bumps version of ansible-lint to minimum ``24.7.0``.
-
-Minor Changes
--------------
-
-- Bump version of ansible-lint to minimum 24.7.0 (https://github.com/ansible-collections/cloud.common/pull/159).
-
-Breaking Changes / Porting Guide
---------------------------------
-
-- Remove support for ansible versions greater than ``2.19`` (https://github.com/ansible-collections/cloud.common/pull/183).
-
-v4.2.0
-======
-
-Release Summary
----------------
-
-This release updates how the async loop is created to support python 3.12+.
-
-Minor Changes
--------------
-
-- plugins/module_utils/turbo/server - Update how the async loop is created to support python 3.12+ (https://github.com/ansible-collections/cloud.common/pull/169).
-
-v4.1.0
-======
-
-Release Summary
----------------
-
-This release adds support for ``ansible-core`` 2.19 and bumps the ``ansible-lint`` version to 25.1.2
-
-Minor Changes
--------------
-
-- Bump version of ``ansible-lint`` to minimum 25.1.2
-- module_utils/turbo/module - Add support for 2.19 by returning a JSON-compatible ``arg`` object instead of a ``dict`` if possible (https://github.com/ansible-collections/cloud.common/pull/167).
-- module_utils/turbo/server - Add support for 2.19 by making ``FakeStdin`` implement the ``IOBase`` abstract base class (https://github.com/ansible-collections/cloud.common/pull/167).
-
-v4.0.0
-======
-
-Release Summary
----------------
-
-This major release includes a bugfix for Ansible turbo mode and drops support for ``ansible-core < 2.15``.
-
-Breaking Changes / Porting Guide
---------------------------------
-
-- cloud.common collection - Support for ansible-core < 2.15 has been dropped (https://github.com/ansible-collections/cloud.common/pull/145/files).
-
-Bugfixes
---------
-
-- module_utils/turbo/server - Ensure all import statements in run_as_lookup_plugin() are in a try/except block (https://github.com/ansible-collections/cloud.common/pull/143).
-
-v3.0.0
-======
-
-Release Summary
----------------
-
-This major release drops support for ansible-core versions lower than 2.14 and Python versions lower than 3.9.
-
-Breaking Changes / Porting Guide
---------------------------------
-
-- Bump minimum Python supported version to 3.9.
-- Remove support for ansible-core < 2.14.
-
-v2.1.4
-======
-
-Release Summary
----------------
-
-This release includes several bugfixes for lookup plugins.
-
-Bugfixes
---------
-
-- Ensure result is always defined in lookup plugins (https://github.com/ansible-collections/cloud.common/pull/116/files).
-- Fix lookup modules failing on Ansible 2.15 (https://github.com/ansible-collections/cloud.common/pull/130).
-
-v2.1.3
-======
-
-Minor Changes
--------------
-
-- sanity - fix sanity errors (https://github.com/ansible-collections/cloud.common/issues/106)
-- units - ensure tests/units follow the Ansible-defined unit tests structure (https://github.com/ansible-collections/cloud.common/issues/89)
-
-Bugfixes
---------
-
-- module_utils/turbo/server - import needed library into the right place (https://github.com/ansible-collections/cloud.common/pull/120)
-
-v2.1.2
-======
-
-Bugfixes
---------
-
-- Ensure we don't shutdown the server when we've still got some ongoing tasks (https://github.com/ansible-collections/cloud.common/pull/109).
-
-v2.1.1
-======
-
-Minor Changes
--------------
-
-- Move the content of README_ansible_turbo.module.rst in the main README.md to get visibility on Ansible Galaxy.
-
-Bugfixes
---------
-
-- fix parameters with aliases not being passed through (https://github.com/ansible-collections/cloud.common/issues/91).
-- fix turbo mode loading incorrect module (https://github.com/ansible-collections/cloud.common/pull/102).
-- turbo - Ensure we don't call the module with duplicated aliased parameters.
-
-v2.1.0
-======
-
-Minor Changes
--------------
-
-- Cosmetic changes in the documentation for the inclusion in the Ansible collection.
-- turbo - Extend the unit-test coverage.
-- turbo - Use a BSD license for the module_utils and plugin_utils files.
-- turbo - add support for coroutine for lookup plugins (https://github.com/ansible-collections/cloud.common/pull/75).
-
-v2.0.4
-======
-
-Major Changes
--------------
-
-- turbo - enable turbo mode for lookup plugins
-
-Bugfixes
---------
-
-- add exception handler to main async loop (https://github.com/ansible-collections/cloud.common/pull/67).
-- pass current task's environment through to execution (https://github.com/ansible-collections/cloud.common/pull/69).
-- turbo - AnsibleTurboModule was missing some _ansible_facts variable like _diff, _ansible_tmpdir. (https://github.com/ansible-collections/cloud.common/issues/65)
-- turbo - honor the ``remote_tmp`` configuration key.
-
-v2.0.3
-======
-
-Bugfixes
---------
-
-- Introduces a fix for the future Python 3.10 (#53)
-- turbo - make sure socket doesn't close prematurely, preventing issues with large amounts of data passed as module parameters (https://github.com/ansible-collections/cloud.common/issues/61)
-
-v2.0.2
-======
-
-Bugfixes
---------
-
-- Introduces a fix for the future Python 3.10 (#53)
-- fail_json method should honor kwargs now when running embedded in server.
-
-v2.0.1
-======
-
-Bugfixes
---------
-
-- The profiler is now properly initialized.
-- Use the argument_spec values to determine which option should actually be used.
-- fix exception messages containing extra single quotes (https://github.com/ansible-collections/cloud.common/pull/46).
-
-v2.0.0
-======
-
-Minor Changes
--------------
-
-- The ``EmbeddedModuleFailure`` and ``EmbeddedModuleUnexpectedFailure`` exceptions now handle the ``__repr__`` and ``__str__`` method. This means Python is able to print a meaningful output.
-- The modules must now set the ``collection_name`` of the ``AnsibleTurboModule`` class. The content of this attribute is used to build the path of the UNIX socket.
-- When the background service is started in a console without the ``--daemon`` flag, it now prints information what it runs.
-- ``argument_spec`` is now evaluated server-side.
-- fail_json now accept and collect extra named arguments.
-- raise an exception if the output of module execution cannot be parsed.
-- the ``turbo_demo`` module now return the value of counter.
-- the user get an error now an error if a module don't raise ``exit_json()`` or ``fail_json()``.
-
-Bugfixes
---------
-
-- the debug mode now work as expected. The ``_ansible_*`` variables are properly passed to the module.
-
-v1.1.0
-======
-
-Minor Changes
--------------
-
-- ansible_module.turbo - the cache is now associated with the collection, if two collections use a cache, two background services will be started.
-
-Bugfixes
---------
-
-- Ensure the background service starts properly on MacOS (https://github.com/ansible-collections/cloud.common/pull/16)
-- do not silently skip parameters when the value is ``False``
-
-v1.0.2
-======
-
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/CI.md ansible-12.0.0+dfsg/ansible_collections/cloud/common/CI.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/CI.md 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/CI.md 1970-01-01 00:00:00.000000000 +0000
@@ -1,12 +0,0 @@
-# CI
-
-## cloud.common Collection
-
-GitHub Actions are used to run the Continuous Integration for ansible-collections/cloud.common collection. The workflows used for the CI can be found [here](https://github.com/ansible-collections/cloud.common/tree/main/.github/workflows). These workflows include jobs to run the unit tests, sanity tests, linters and changelog check. The following table lists the python and ansible versions against which these jobs are run.
-
-| Jobs | Description | Python Versions | Ansible Versions |
-| ------ |-------| ------ | -----------|
-| changelog |Checks for the presence of Changelog fragments | 3.9 | devel |
-| Linters | Runs `black` and `flake8` on plugins and tests | 3.9 | devel |
-| Unit tests | Executes the unit test cases | 3.6, 3.7, 3.9, 3.10 | Stable-2.9 (py 3.6, 3.7), Stable-2.12+ (py 3.8+)|
-| Sanity | Runs ansible sanity checks | 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 | Stable-2.9 (3.6, 3.7), Stable-2.12, 2.13, 2.14 (not on py 3.11), Stable-2.15+ (not on 3.8) |
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/FILES.json ansible-12.0.0+dfsg/ansible_collections/cloud/common/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/FILES.json 2025-06-25 12:56:55.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/FILES.json 1970-01-01 00:00:00.000000000 +0000
@@ -1,572 +0,0 @@
-{
- "files": [
- {
- "name": ".",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": ".github",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": ".github/workflows",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": ".github/workflows/changelog.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d79e90d491c634f11cb0c90b343a543544c5d0069b66ff973db4cf9dfd1a69ae",
- "format": 1
- },
- {
- "name": ".github/workflows/galaxy-import.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cfdc3943bfd350aafb21a8302e00f258be92e7e8814a0d38d6b2e2509fa7424d",
- "format": 1
- },
- {
- "name": ".github/workflows/integration-tests-kubernetes-core.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a2ef2ebd4bef0d68d3fad353ffe991ca591007733cd1cc31af24251432caebd4",
- "format": 1
- },
- {
- "name": ".github/workflows/integration-tests.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1551c6dfd8191daae3a88b6769a22ea1fe7c40dee0311502751afc31d451aae5",
- "format": 1
- },
- {
- "name": ".github/workflows/label-new-issues.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "74d5941a19d69e734d823533c03efcbe0976064ee60f66fe4b9946e5db6efc7c",
- "format": 1
- },
- {
- "name": ".github/workflows/linters.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6cab34ec88ef8f37758612d18cfafb3fe9169e861f81c558dad214c41f112b2f",
- "format": 1
- },
- {
- "name": ".github/workflows/sanity-tests.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3ba6d27d4f214f8f54031e80fd817e68c4068dd19e1be99d700dba80bd1d85de",
- "format": 1
- },
- {
- "name": ".github/workflows/unit-tests.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1edc690c53836c1fba05f770e57254f351566f61945b3a6c8b0527f3c96b4c73",
- "format": 1
- },
- {
- "name": ".github/patchback.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ed69f87ea46171cb574fb77dc74fdbd7a269d4cad8d5ba6494d64d99842ef8e4",
- "format": 1
- },
- {
- "name": "changelogs",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "changelogs/fragments",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "changelogs/fragments/.keep",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "changelogs/changelog.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a63753eec78f01ba2c74663aa1cb0259b945e7cf09e4d1ef0284b7bf337daf0d",
- "format": 1
- },
- {
- "name": "changelogs/config.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2308bb8bfb8dc1b7092ff7f8c200741cbc09ed16d5826e0c4e03b3eaff1bba1e",
- "format": 1
- },
- {
- "name": "meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "meta/runtime.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4183fd0a7ae1135e5e8c028ac3fc67b70dd6607d08b15c2766c046d159fcb680",
- "format": 1
- },
- {
- "name": "plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/lookup",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/lookup/turbo_demo.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0aab0a3a5b2f39be78c9b3be466c42637b75a6c6a7da8483b6765a6891cedb6d",
- "format": 1
- },
- {
- "name": "plugins/module_utils",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo/common.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8341ffad8a1d4dd96c3584646f0d38eec7c47caa678eca4a582b1e4938391c59",
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo/exceptions.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "10e897e6a947d1d9971b1a0e10694caeba7f6c52af69e5e8d7f32d4648362185",
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo/module.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "efd204f5049edce360e547f70ddb49b56131bfb455bc1a18f9123afb3b0ec0b9",
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo/server.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "bd9c35352c14a7bf1389ea4a9e5567e202c6b030ff767451b80dd3df87f6ec93",
- "format": 1
- },
- {
- "name": "plugins/module_utils/turbo_demo.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7401a0c8d754a4f09267b95ba7a898b77c2b5b2422341966d83ec81fe406e1bb",
- "format": 1
- },
- {
- "name": "plugins/modules",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/modules/turbo_demo.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8c9439d9544ca0b74e0800c257f3472f59e85f65f0fd55a2b0d8c8ee82e674fd",
- "format": 1
- },
- {
- "name": "plugins/modules/turbo_fail.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5d3fa60223660cb593204aea0dd000698e7f529f95b4122d39347749ab869001",
- "format": 1
- },
- {
- "name": "plugins/modules/turbo_import.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a68d01cddbbe3254294930452900cc648ce1cdc0d75d6fde1f57f718e0d8e8ac",
- "format": 1
- },
- {
- "name": "plugins/plugin_utils",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/plugin_utils/turbo",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "plugins/plugin_utils/turbo/lookup.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b3d083533f54f550238857bbbe39d655a9474d1e996553dc7049e0c3584afd54",
- "format": 1
- },
- {
- "name": "tests",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_fail",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_fail/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_fail/tasks/main.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2ed77ad416a544c74f1109f5fbb190de18ffb324cd10659d529f88d816a49bd5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_lookup",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_lookup/playbook.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "9d726f50446ac7219b0d1a9343dee16fd9a39f81292f1735ba711a7b82740046",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_lookup/runme.sh",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "74c081ba1aa13beb5aa8e4a29a60967eeaa5fdaff101ca722614e45c7d2d24c0",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode/tasks/main.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b4b6c68ae9c6513cc6a7c9020a981d74f6e025ee6fa62be484db39b628defdef",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode/playbook.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "80493725349cabb96ef26aaf52c9da3f3eafae1977a85cbeac4e272e3868e69d",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode/runme.sh",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "16f894cf82c43e1a5a569d3f80c8f3a6db2bd27aa29144be3c1f992c1d771d2a",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode_parallel_exec",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode_parallel_exec/inventory",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ecae869ac5b55848215776b0da1fc1b5e659116c008e3c0091f2d7917f2d22db",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode_parallel_exec/inventory.ini",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "eaced176116b8507451abb52bba0a66d758f51dd58baa604898d9efba55a2ae4",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "24ec2e1a61f7adadd8852ac5ade8767cdfa4e221825e4d06b43cc00a17335ecd",
- "format": 1
- },
- {
- "name": "tests/integration/targets/turbo_mode_parallel_exec/runme.sh",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "be5f3355edca42c56a12320aa6f643ee639bc9e6cc11864ee21926a37e709842",
- "format": 1
- },
- {
- "name": "tests/sanity",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.14.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.15.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.16.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.17.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.18.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/sanity/ignore-2.19.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ade72ead3ea9bfa27bc079c9f4f9dddc8fc29e3e5ae5cabb2e2e7666317485e",
- "format": 1
- },
- {
- "name": "tests/unit",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/unit/plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/unit/plugins/module_utils",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/unit/plugins/module_utils/turbo",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/unit/plugins/module_utils/turbo/conftest.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "997a8268b74ac7460a1e39daeb7b2f978524fc07d70993d156292448a7cdf121",
- "format": 1
- },
- {
- "name": "tests/unit/plugins/module_utils/turbo/test_module.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "71d9e821cc3ef362106ae1b4f0da9e56865d9c65d4c139d99b741ada68cab51d",
- "format": 1
- },
- {
- "name": "tests/unit/plugins/module_utils/turbo/test_turbo_module.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "35b6bd477697316e5c38b3f8ecf5d19ef0b61de4ab8f09d9da473744b800b29f",
- "format": 1
- },
- {
- "name": "tests/unit/requirements.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4956e1dbd41900d08246d8d019954340c669abe02f1f2680f435c63a1534d5a6",
- "format": 1
- },
- {
- "name": "tests/config.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8bbb85dbed589969d508c46298ad61fdedee8fad8ffc34599f6acf75b968b75d",
- "format": 1
- },
- {
- "name": ".ansible-lint",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0b858e3e7ad00cd18ded0568dd8f22eb0b94c5aabb1888c4bf1583d91d1df629",
- "format": 1
- },
- {
- "name": "CHANGELOG.rst",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "82262a728af443e5f4db249ff82e247dc36fb5593648cd1efc6a742b17c7a7fc",
- "format": 1
- },
- {
- "name": "CI.md",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "40940b39299fdd0a70df5280291ed4612c95fa635f1b51d4ba22ca0653b5fabe",
- "format": 1
- },
- {
- "name": "LICENSE",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986",
- "format": 1
- },
- {
- "name": "README.md",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "032cc89fb97e53b926be02ac0812ba727877410c2b147dacb7ad5ac49941bc29",
- "format": 1
- },
- {
- "name": "bindep.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "pytest.ini",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d2fc2c077aecb43b8d72cfd2d85f6a508309938c5b7cf596661fe0aeb39cb4f6",
- "format": 1
- },
- {
- "name": "requirements.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "format": 1
- },
- {
- "name": "test-requirements.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cd90d58c7b3416cc0feb7f54e21680fd09f2fc5727f392006b834beb7459caf5",
- "format": 1
- },
- {
- "name": "tox.ini",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ff9067a4b379b1d44c8f44c158276563c1e752495d9689c319e3e158143fbce0",
- "format": 1
- }
- ],
- "format": 1
-}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/LICENSE ansible-12.0.0+dfsg/ansible_collections/cloud/common/LICENSE
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/LICENSE 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/LICENSE 1970-01-01 00:00:00.000000000 +0000
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program 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.
-
- This program 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 this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/cloud/common/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/MANIFEST.json 2025-06-25 12:56:55.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/MANIFEST.json 1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-{
- "collection_info": {
- "namespace": "cloud",
- "name": "common",
- "version": "5.0.0",
- "authors": [
- "Ansible (https://github.com/ansible)"
- ],
- "readme": "README.md",
- "tags": [
- "cloud",
- "virtualization"
- ],
- "description": "Set of common files for the cloud collections",
- "license": [],
- "license_file": "LICENSE",
- "dependencies": {},
- "repository": "https://github.com/ansible-collections/cloud.common",
- "documentation": null,
- "homepage": "https://github.com/ansible-collections/cloud.common",
- "issues": "https://github.com/ansible-collections/cloud.common/issues"
- },
- "file_manifest_file": {
- "name": "FILES.json",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5732d71c1ec855ff44f29a43252aa2ef506b7863e62a03d76ffb9e361b1b6ad4",
- "format": 1
- },
- "format": 1
-}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/README.md ansible-12.0.0+dfsg/ansible_collections/cloud/common/README.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/README.md 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/README.md 1970-01-01 00:00:00.000000000 +0000
@@ -1,218 +0,0 @@
-# cloud.common collection
-
-This collection is a library for the cloud modules.
-
-## Description:
-
-cloud.common is the home of the following component:
-
-- ansible_turbo.module: a cache sharing solution to to enhance the performance and efficiency of your cloud automation tasks. Users can achieve significant performance improvements in their cloud automation workflows by using this module.
-
-More content may be included later.
-
-## Communication
-
-* Join the Ansible forum:
- * [Get Help](https://forum.ansible.com/c/help/6): get help or help others.
- * [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts.
- * [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events.
-
-* The Ansible [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes.
-
-For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
-
-## Requirements
-
-- ansible_turbo.module requires Python 3.9 and Ansible version greater than 2.15.0 and lower than 2.19.
-
-## Ansible Turbo Module
-
-### Current situation
-
-The traditional execution flow of an Ansible module includes
-the following steps:
-
-- Upload of a ZIP archive with the module and its dependencies
-- Execution of the module, which is just a Python script
-- Ansible collects the results once the script is finished
-
-These steps happen for each task of a playbook, and on every host.
-
-Most of the time, the execution of a module is fast enough for
-the user. However, sometime the module requires an important
-amount of time, just to initialize itself. This is a common
-situation with the API based modules. A classic initialization
-involves the following steps:
-
-- Load a Python library to access the remote resource (via SDK)
-- Open a client
- - Load a bunch of Python modules.
- - Request a new TCP connection.
- - Create a session.
- - Authenticate the client.
-
-All these steps are time consuming and the same operations
-will be running again and again.
-
-For instance, here:
-
-- `import openstack`: takes 0.569s
-- `client = openstack.connect()`: takes 0.065s
-- `client.authorize()`: takes 1.360s
-
-These numbers are from test ran against VexxHost public cloud.
-
-In this case, it's a 2s-ish overhead per task. If the playbook
-comes with 10 tasks, the execution time cannot go below 20s.
-
-### How Ansible Turbo Module improve the situation
-
-`AnsibleTurboModule` is actually a class that inherites from
-the standard `AnsibleModule` class that your modules probably
-already use.
-The big difference is that when an module starts, it also spawns
-a little Python daemon. If a daemon already exists, it will just
-reuse it.
-All the module logic is run inside this Python daemon. This means:
-
-- Python modules are actually loaded one time
-- Ansible module can reuse an existing authenticated session.
-
-### How can I enable `AnsibleTurboModule`?
-
-If you are a collection maintainer and want to enable `AnsibleTurboModule`, you can
-follow these steps.
-Your module should inherit from `AnsibleTurboModule`, instead of `AnsibleModule`.
-
-```python
-
- from ansible_module.turbo.module import AnsibleTurboModule as AnsibleModule
-
-```
-
-You can also use the `functools.lru_cache()` decorator to ask Python to cache
-the result of an operation, like a network session creation.
-
-Finally, if some of the dependeded libraries are large, it may be nice
-to defer your module imports, and do the loading AFTER the
-`AnsibleTurboModule` instance creation.
-
-### The background service
-
-The daemon kills itself after 15s, and communication are done through an Unix socket. It runs in one single process and uses `asyncio` internally. Consequently you can use the `async` keyword in your Ansible module. This will be handy if you interact with a lot of remote systems at the same time.
-
-### Security impact
-
-`ansible_module.turbo` open an Unix socket to interact with the background service. We use this service to open the connection toward the different target systems. This is similar to what SSH does with the sockets.
-
-### Things to note:
-
-- All the modules can access the same cache. Soon an isolation will be done at the collection level (https://github.com/ansible-collections/cloud.common/pull/17)
-- A task can loaded a different version of a library and impact the next tasks.
-- If the same user runs two `ansible-playbook` at the same time, they will have access to the same cache.
-
-When a module stores a session in a cache, it's a good idea to use a hash of the authentication information to identify the session.
-
-You may want to isolate your Ansible environemt in a container, in this case you can consider https://github.com/ansible/ansible-builder
-
-### Error handling
-
-`ansible_module.turbo` uses exception to communicate a result back to the module.
-
-- `EmbeddedModuleFailure` is raised when `json_fail()` is called.
-- `EmbeddedModuleSuccess` is raised in case of success and return the result to the origin module processthe origin.
-
-These exceptions are defined in `ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions`.
-You can raise `EmbeddedModuleFailure` exception yourself, for instance from a module in `module_utils`.
-
-Be careful with the catch all exception (`except Exception:`). Not only they are bad practice, but also may interface with this mechanism.
-
-### Troubleshooting
-
-You may want to manually start the server. This can be done with the following command:
-
-.. code-block:: shell
-
- PYTHONPATH=$HOME/.ansible/collections python -m ansible_collections.cloud.common.plugins.module_utils.turbo.server --socket-path $HOME/.ansible/tmp/turbo_mode.foo.bar.socket
-
-Replace `foo.bar` with the name of the collection.
-
-You can use the `--help` argument to get a list of the optional parameters.
-
-## Use Case
-
-The Ansible module is slightly different while using AnsibleTurboModule.
-Here are some examples with OpenStack and VMware.
-
-These examples use `functools.lru_cache` that is the Python core since 3.3.
-`lru_cache()` decorator will managed the cache. It uses the function parameters
-as unicity criteria.
-
-- Integration with OpenStack Collection: https://github.com/goneri/ansible-collections-openstack/commit/53ce9860bb84eeab49a46f7a30e3c9588d53e367
-- Integration with VMware Collection: https://github.com/goneri/vmware/commit/d1c02b93cbf899fde3a4665e6bcb4d7531f683a3
-- Integration with Kubernetes Collection: https://github.com/ansible-collections/kubernetes.core/pull/68
-
-## Related Information
-
-
-
-### Demo
-
-In this demo, we run one playbook that do several `os_keypair` calls. For the first time, we run the regular Ansible module. The second time, we run the same playbook, but with the modified version.
-
-[](https://asciinema.org/a/329481)
-
-### More information
-
-- [Ansible Collection overview](https://github.com/ansible-collections/overview)
-- [Ansible User guide](https://docs.ansible.com/ansible/latest/user_guide/index.html)
-- [Ansible Developer guide](https://docs.ansible.com/ansible/latest/dev_guide/index.html)
-- [Ansible Collections Checklist](https://github.com/ansible-collections/overview/blob/master/collection_requirements.rst)
-- [The Bullhorn (the Ansible Contributor newsletter)](https://us19.campaign-archive.com/home/?u=56d874e027110e35dea0e03c1&id=d6635f5420)
-- [Changes impacting Contributors](https://github.com/ansible-collections/overview/issues/45)
-
-## Testing
-
-This collection is tested using GitHub Actions. To know more about CI, refer to [CI.md](https://github.com/ansible-collections/cloud.common/blob/stable-5/CI.md).
-
-## Versioning
-
-This collection follows [Semantic Versioning](https://semver.org/). More details on versioning can be found [in the Ansible docs](https://docs.ansible.com/ansible/latest/dev_guide/developing_collections.html#collection-versions).
-
-## Releasing
-
-We plan to regularly release new minor or bugfix versions once new features or bugfixes have been implemented.
-
-Releasing happens by tagging the `main` branch.
-
-## Contributing to this collection
-
-We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the [Cloud.Common collection repository](https://github.com/ansible-collections/cloud.common).
-
-## Support
-
-For the latest supported versions, refer to the release notes below.
-
-If you encounter issues or have questions, you can submit a support request through the following channels:
- - GitHub Issues: Report bugs, request features, or ask questions by opening an issue in the [GitHub repository](https://github.com/ansible-collections/cloud.common/).
- - Ansible Community: Engage with the Ansible community on the Ansible Project Mailing List or [Ansible Forum](https://forum.ansible.com/g/AWS).
-
-## Release notes
-
-See [CHANGELOG.rst](https://github.com/ansible-collections/cloud.common/blob/stable-5/CHANGELOG.rst).
-
-## Code of Conduct
-
-We follow [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) in all our interactions within this project.
-
-If you encounter abusive behavior violating the [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html), please refer to the [policy violations](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html#policy-violations) section of the Code of Conduct for information on how to raise a complaint.
-
-## License Information
-
-
-
-GNU General Public License v3.0 or later.
-
-See [LICENSE](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text.
-
-The files in plugins/module_utils and plugins/plugin_utils directories are also licensed with a BSD license.
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/changelogs/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/changelogs/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/changelogs/changelog.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/changelogs/changelog.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,226 +0,0 @@
-ancestor: null
-releases:
- 1.0.2:
- release_date: '2020-10-06'
- 1.1.0:
- changes:
- bugfixes:
- - Ensure the background service starts properly on MacOS (https://github.com/ansible-collections/cloud.common/pull/16)
- - do not silently skip parameters when the value is ``False``
- minor_changes:
- - ansible_module.turbo - the cache is now associated with the collection, if
- two collections use a cache, two background services will be started.
- fragments:
- - dont_ignore_parameters_when_val_is_False.yaml
- - macos_fix.yaml
- - one_cache_per_collection.yaml
- release_date: '2020-10-23'
- 2.0.0:
- changes:
- bugfixes:
- - the debug mode now work as expected. The ``_ansible_*`` variables are properly
- passed to the module.
- minor_changes:
- - The ``EmbeddedModuleFailure`` and ``EmbeddedModuleUnexpectedFailure`` exceptions
- now handle the ``__repr__`` and ``__str__`` method. This means Python is able
- to print a meaningful output.
- - The modules must now set the ``collection_name`` of the ``AnsibleTurboModule``
- class. The content of this attribute is used to build the path of the UNIX
- socket.
- - When the background service is started in a console without the ``--daemon``
- flag, it now prints information what it runs.
- - '``argument_spec`` is now evaluated server-side.'
- - fail_json now accept and collect extra named arguments.
- - raise an exception if the output of module execution cannot be parsed.
- - the ``turbo_demo`` module now return the value of counter.
- - the user get an error now an error if a module don't raise ``exit_json()``
- or ``fail_json()``.
- fragments:
- - Set-the-_ansible_-variables_13334.yaml
- - argument_spec_server_side.yaml
- - exception_returns_a_printable_content.yaml
- - fail_json_accept_extra_kwargs.yaml
- - fork_mode_print_information_about_the_module.yaml
- - get_the_collection_name_from_an_attribute.yaml
- - improve-the-demo-module_5397.yaml
- - raise-an-error-if-exit_json-or-fail_json-not-called_13453.yaml
- - raise_exception_if_output_parsing_fails.yaml
- release_date: '2021-04-20'
- 2.0.1:
- changes:
- bugfixes:
- - The profiler is now properly initialized.
- - Use the argument_spec values to determine which option should actually be
- used.
- - fix exception messages containing extra single quotes (https://github.com/ansible-collections/cloud.common/pull/46).
- fragments:
- - 46-fix-error-message-string.yaml
- - actually_enable_the_profiler.yaml
- - filter_argument_with_argument_spec.yaml
- release_date: '2021-04-22'
- 2.0.2:
- changes:
- bugfixes:
- - Introduces a fix for the future Python 3.10 (#53)
- - fail_json method should honor kwargs now when running embedded in server.
- fragments:
- - modulefailure_fix_result.yaml
- - py3.10-fix.yaml
- release_date: '2021-06-02'
- 2.0.3:
- changes:
- bugfixes:
- - Introduces a fix for the future Python 3.10 (#53)
- - turbo - make sure socket doesn't close prematurely, preventing issues with
- large amounts of data passed as module parameters (https://github.com/ansible-collections/cloud.common/issues/61)
- fragments:
- - py3.10-fix.yaml
- - socket-closure-fix.yaml
- release_date: '2021-06-22'
- 2.0.4:
- changes:
- bugfixes:
- - add exception handler to main async loop (https://github.com/ansible-collections/cloud.common/pull/67).
- - pass current task's environment through to execution (https://github.com/ansible-collections/cloud.common/pull/69).
- - turbo - AnsibleTurboModule was missing some _ansible_facts variable like _diff,
- _ansible_tmpdir. (https://github.com/ansible-collections/cloud.common/issues/65)
- - turbo - honor the ``remote_tmp`` configuration key.
- major_changes:
- - turbo - enable turbo mode for lookup plugins
- fragments:
- - 67-add-exception-handler.yaml
- - 69-pass-envvar.yaml
- - Respect_the_remote_tmp_setting.yaml
- - reading-common-variable.yaml
- - turbo-for-lookup-plugin.yaml
- release_date: '2021-07-29'
- 2.1.0:
- changes:
- minor_changes:
- - Cosmetic changes in the documentation for the inclusion in the Ansible collection.
- - turbo - Extend the unit-test coverage.
- - turbo - Use a BSD license for the module_utils and plugin_utils files.
- - turbo - add support for coroutine for lookup plugins (https://github.com/ansible-collections/cloud.common/pull/75).
- fragments:
- - 0-copy_ignore_txt.yml
- - 75-lookup-add-support-for-coroutine.yaml
- - cosmetic_changes.yaml
- release_date: '2021-10-07'
- 2.1.1:
- changes:
- bugfixes:
- - fix parameters with aliases not being passed through (https://github.com/ansible-collections/cloud.common/issues/91).
- - fix turbo mode loading incorrect module (https://github.com/ansible-collections/cloud.common/pull/102).
- - turbo - Ensure we don't call the module with duplicated aliased parameters.
- minor_changes:
- - Move the content of README_ansible_turbo.module.rst in the main README.md
- to get visibility on Ansible Galaxy.
- fragments:
- - 0-ignore.yml
- - 102-fix-incorrect-module-loading.yaml
- - 92-fix-params-with-aliases.yml
- - remove_README_ansible_turbo.module.rst.yaml
- - remove_aliased_parameters.yaml
- release_date: '2022-04-11'
- 2.1.2:
- changes:
- bugfixes:
- - Ensure we don't shutdown the server when we've still got some ongoing tasks
- (https://github.com/ansible-collections/cloud.common/pull/109).
- fragments:
- - graceful_shutdown.yaml
- release_date: '2022-06-23'
- 2.1.3:
- changes:
- bugfixes:
- - module_utils/turbo/server - import needed library into the right place (https://github.com/ansible-collections/cloud.common/pull/120)
- minor_changes:
- - sanity - fix sanity errors (https://github.com/ansible-collections/cloud.common/issues/106)
- - units - ensure tests/units follow the Ansible-defined unit tests structure
- (https://github.com/ansible-collections/cloud.common/issues/89)
- fragments:
- - improvements.yml
- - pin_black_version.yml
- - update_booleans.yml
- release_date: '2023-03-15'
- 2.1.4:
- changes:
- bugfixes:
- - Ensure result is always defined in lookup plugins (https://github.com/ansible-collections/cloud.common/pull/116/files).
- - Fix lookup modules failing on Ansible 2.15 (https://github.com/ansible-collections/cloud.common/pull/130).
- release_summary: This release includes several bugfixes for lookup plugins.
- fragments:
- - 130-fix-ansible-2.15.yml
- - 20230726-lookup.yml
- - gh-workflow.yaml
- - release_summary.yml
- - update_ansible_version.yml
- release_date: '2023-08-14'
- 3.0.0:
- changes:
- breaking_changes:
- - Bump minimum Python supported version to 3.9.
- - Remove support for ansible-core < 2.14.
- release_summary: This major release drops support for ansible-core versions
- lower than 2.14 and Python versions lower than 3.9.
- fragments:
- - 20231114-ansible-version.yml
- - organize_github_actions.yaml
- - release_summary.yml
- release_date: '2023-11-16'
- 4.0.0:
- changes:
- breaking_changes:
- - cloud.common collection - Support for ansible-core < 2.15 has been dropped
- (https://github.com/ansible-collections/cloud.common/pull/145/files).
- bugfixes:
- - module_utils/turbo/server - Ensure all import statements in run_as_lookup_plugin()
- are in a try/except block (https://github.com/ansible-collections/cloud.common/pull/143).
- release_summary: This major release includes a bugfix for Ansible turbo mode
- and drops support for ``ansible-core < 2.15``.
- fragments:
- - 20240103-module_utils-turbo-server-import-fix.yaml.yaml
- - increase_ansible_core_version.yml
- - release_summary.yml
- release_date: '2024-05-24'
- 4.1.0:
- changes:
- minor_changes:
- - Bump version of ansible-lint to minimum 25.1.2
- - module_utils/turbo/module - Add support for 2.19 by returning a json compatible
- arg obj instead of a dict if possible (https://github.com/ansible-collections/cloud.common/pull/167).
- - module_utils/turbo/server - Add support for 2.19 by making FakeStdin implement
- the IOBase ABC (https://github.com/ansible-collections/cloud.common/pull/167).
- release_summary: This release adds support to ansible-core 2.19 and bumps the
- ansible-lint version to 25.1.2
- fragments:
- - 160-add-ansible-2.19-support.yml
- - 170-update-ansible-lint-version.yml
- - 4.1.0.yml
- release_date: '2025-05-15'
- 4.2.0:
- changes:
- minor_changes:
- - plugins/module_utils/turbo/server - Update how the async loop is created to
- support python 3.12+ (https://github.com/ansible-collections/cloud.common/pull/169).
- release_summary: This release updates how the async loop is created to support
- python 3.12+.
- fragments:
- - 168-python-312-async-support.yml
- - 4.2.0.yml
- release_date: '2025-06-02'
- 5.0.0:
- changes:
- breaking_changes:
- - Remove support for ansible versions greater than ``2.19`` (https://github.com/ansible-collections/cloud.common/pull/183).
- minor_changes:
- - Bump version of ansible-lint to minimum 24.7.0 (https://github.com/ansible-collections/cloud.common/pull/159).
- release_summary: This release drops support for ``ansible-core>=2.19`` and bumps
- version of ansible-lint to minimum ``24.7.0``.
- fragments:
- - 0-readme.yml
- - 159-bump-ansible-lint-version.yml
- - 183-update-supported-ansible-versions.yml
- - readme_template_update.yml
- - release_summary.yml
- release_date: '2025-06-24'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/changelogs/config.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/changelogs/config.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/changelogs/config.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/changelogs/config.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-changelog_filename_template: ../CHANGELOG.rst
-changelog_filename_version_depth: 0
-changes_file: changelog.yaml
-changes_format: combined
-keep_fragments: false
-mention_ancestor: true
-new_plugins_after_name: removed_features
-notesdir: fragments
-prelude_section_name: release_summary
-prelude_section_title: Release Summary
-sections:
- - - major_changes
- - Major Changes
- - - minor_changes
- - Minor Changes
- - - breaking_changes
- - Breaking Changes / Porting Guide
- - - deprecated_features
- - Deprecated Features
- - - removed_features
- - Removed Features (previously deprecated)
- - - security_fixes
- - Security Fixes
- - - bugfixes
- - Bugfixes
- - - known_issues
- - Known Issues
-title: cloud.common
-trivial_section_name: trivial
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/meta/runtime.yml ansible-12.0.0+dfsg/ansible_collections/cloud/common/meta/runtime.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/meta/runtime.yml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/meta/runtime.yml 1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
----
-requires_ansible: '>=2.15.0,<2.19'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,69 +0,0 @@
-# Copyright: (c) 2021, Aubin Bikouo (@abikouo)
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-DOCUMENTATION = r"""
-name: turbo_demo
-author:
- - Aubin Bikouo (@abikouo)
-
-short_description: A demo for lookup plugins on cloud.common
-description:
- - return the parent process of the running process
-options:
- playbook_vars:
- description: list of playbook variables to add in the output.
- type: list
- elements: str
-"""
-
-EXAMPLES = r"""
-"""
-
-RETURN = r"""
-"""
-
-
-import os
-import sys
-import traceback
-
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
-
-
-def counter():
- counter.i += 1
- return counter.i
-
-
-# NOTE: workaround to avoid a warning with ansible-doc
-if True: # pylint: disable=using-constant-test
- counter.i = 0
-
-
-async def execute(terms, variables, playbook_vars):
- result = []
- result.append(f"running from pid: {os.getpid()}")
- if playbook_vars is not None:
- result += [
- variables["vars"].get(x) for x in playbook_vars if x in variables["vars"]
- ]
- if terms:
- result += terms
-
- for id, stack in list(sys._current_frames().items()):
- for fname, line_id, name, line in traceback.extract_stack(stack):
- if fname == __file__:
- continue
-
- result.append(f"turbo_demo_counter: {counter()}")
- return result
-
-
-class LookupModule(LookupBase):
- async def _run(self, terms, variables=None, playbook_vars=None):
- result = await execute(terms, variables, playbook_vars)
- return result
-
- run = _run if not hasattr(LookupBase, "run_on_daemon") else LookupBase.run_on_daemon
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/common.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/common.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/common.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/common.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,123 +0,0 @@
-# Copyright (c) 2021 Red Hat
-#
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-import json
-import os
-import pickle
-import socket
-import subprocess
-import sys
-import time
-from contextlib import contextmanager
-
-from .exceptions import EmbeddedModuleUnexpectedFailure
-
-
-class AnsibleTurboSocket:
- def __init__(self, socket_path, ttl=None, plugin="module"):
- self._socket_path = socket_path
- self._ttl = ttl
- self._plugin = plugin
- self._socket = None
-
- def bind(self):
- running = False
- self._socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- for attempt in range(100, -1, -1):
- try:
- self._socket.connect(self._socket_path)
- return True
- except (ConnectionRefusedError, FileNotFoundError):
- if not running:
- running = self.start_server()
- if attempt == 0:
- raise
- time.sleep(0.01)
-
- def start_server(self):
- env = os.environ
- parameters = [
- "--fork",
- "--socket-path",
- self._socket_path,
- ]
-
- if self._ttl:
- parameters += ["--ttl", str(self._ttl)]
-
- command = [sys.executable]
- if self._plugin == "module":
- ansiblez_path = sys.path[0]
- env.update({"PYTHONPATH": ansiblez_path})
- command += [
- "-m",
- "ansible_collections.cloud.common.plugins.module_utils.turbo.server",
- ]
- else:
- parent_dir = os.path.dirname(__file__)
- server_path = os.path.join(parent_dir, "server.py")
- command += [server_path]
- p = subprocess.Popen(
- command + parameters,
- env=env,
- close_fds=True,
- )
- p.communicate()
- return p.pid
-
- def communicate(self, data, wait_sleep=0.01):
- encoded_data = pickle.dumps((self._plugin, data))
- self._socket.sendall(encoded_data)
- self._socket.shutdown(socket.SHUT_WR)
- raw_answer = b""
- while True:
- b = self._socket.recv((1024 * 1024))
- if not b:
- break
- raw_answer += b
- time.sleep(wait_sleep)
- try:
- result = json.loads(raw_answer.decode())
- return result
- except json.decoder.JSONDecodeError:
- raise EmbeddedModuleUnexpectedFailure(
- f"Cannot decode plugin answer: {raw_answer}"
- )
-
- def close(self):
- if self._socket:
- self._socket.close()
-
-
-@contextmanager
-def connect(socket_path, ttl=None, plugin="module"):
- turbo_socket = AnsibleTurboSocket(socket_path=socket_path, ttl=ttl, plugin=plugin)
- try:
- turbo_socket.bind()
- yield turbo_socket
- finally:
- turbo_socket.close()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/exceptions.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,65 +0,0 @@
-# Copyright (c) 2021 Red Hat
-#
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-
-class EmbeddedModuleFailure(Exception):
- def __init__(self, msg, **kwargs):
- self._message = msg
- self._kwargs = kwargs
-
- def get_message(self):
- return self._message
-
- @property
- def kwargs(self):
- return self._kwargs
-
- def __repr__(self):
- return repr(self.get_message())
-
- def __str__(self):
- return str(self.get_message())
-
-
-class EmbeddedModuleUnexpectedFailure(Exception):
- def __init__(self, msg):
- self._message = msg
-
- def get_message(self):
- return self._message
-
- def __repr__(self):
- return repr(self.get_message())
-
- def __str__(self):
- return str(self.get_message())
-
-
-class EmbeddedModuleSuccess(Exception):
- def __init__(self, **kwargs):
- self.kwargs = kwargs
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/module.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/module.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/module.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/module.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,179 +0,0 @@
-# Copyright (c) 2021 Red Hat
-#
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-import json
-import os
-import os.path
-import sys
-import tempfile
-
-import ansible.module_utils.basic
-import ansible_collections.cloud.common.plugins.module_utils.turbo.common
-
-from .exceptions import EmbeddedModuleFailure, EmbeddedModuleSuccess
-
-if False: # pylint: disable=using-constant-test
- from .server import please_include_me
-
- # This is a trick to be sure server.py is embedded in the Ansiblez
- # zip archive.🥷
- please_include_me
-
-
-def get_collection_name_from_path():
- module_path = ansible.module_utils.basic.get_module_path()
-
- ansiblez = module_path.split("/")[-3]
- if ansiblez.startswith("ansible_") and ansiblez.endswith(".zip"):
- return ".".join(ansiblez[8:].split(".")[:2])
-
-
-def expand_argument_specs_aliases(argument_spec):
- """Returns a dict of accepted argument that includes the aliases"""
- expanded_argument_specs = {}
- for k, v in argument_spec.items():
- for alias in [k] + v.get("aliases", []):
- expanded_argument_specs[alias] = v
- return expanded_argument_specs
-
-
-def prepare_args(argument_specs, params):
- """Take argument_spec and the user params and prepare the final argument structure."""
-
- def _keep_value(v, argument_specs, key, subkey=None):
- if v is None: # cannot be a valide parameter
- return False
- if key not in argument_specs: # should never happen
- return
- if not subkey: # level 1 parameter
- return v != argument_specs[key].get("default")
- elif subkey not in argument_specs[key]: # Freeform
- return True
- elif isinstance(argument_specs[key][subkey], dict):
- return v != argument_specs[key][subkey].get("default")
- else: # should never happen
- return True
-
- def _is_an_alias(k):
- aliases = argument_specs[k].get("aliases")
- return aliases and k in aliases
-
- new_params = {}
- for k, v in params.items():
- if not _keep_value(v, argument_specs, k):
- continue
-
- if _is_an_alias(k):
- continue
-
- if isinstance(v, dict):
- new_params[k] = {
- i: j for i, j in v.items() if _keep_value(j, argument_specs, k, i)
- }
- else:
- new_params[k] = v
-
- args = {"ANSIBLE_MODULE_ARGS": new_params}
- try:
- from ansible.module_utils.common import json as _common_json
-
- encoder = _common_json.get_module_encoder(
- "legacy", _common_json.Direction.CONTROLLER_TO_MODULE
- )
- args = json.dumps(args, cls=encoder).encode()
- except AttributeError:
- # pre ansible-core 2.19, get_module_encoder does not exist
- pass
-
- return args
-
-
-class AnsibleTurboModule(ansible.module_utils.basic.AnsibleModule):
- embedded_in_server = False
- collection_name = None
-
- def __init__(self, *args, **kwargs):
- self.embedded_in_server = sys.argv[0].endswith("/server.py")
- self.collection_name = (
- AnsibleTurboModule.collection_name or get_collection_name_from_path()
- )
- ansible.module_utils.basic.AnsibleModule.__init__(
- self, *args, bypass_checks=not self.embedded_in_server, **kwargs
- )
- self._running = None
- if not self.embedded_in_server:
- self.run_on_daemon()
-
- def socket_path(self):
- if self._remote_tmp is None:
- abs_remote_tmp = tempfile.gettempdir()
- else:
- abs_remote_tmp = os.path.expanduser(os.path.expandvars(self._remote_tmp))
- return os.path.join(abs_remote_tmp, f"turbo_mode.{self.collection_name}.socket")
-
- def init_args(self):
- argument_specs = expand_argument_specs_aliases(self.argument_spec)
- args = prepare_args(argument_specs, self.params)
- for k in ansible.module_utils.basic.PASS_VARS:
- attribute = ansible.module_utils.basic.PASS_VARS[k][0]
- if not hasattr(self, attribute):
- continue
- v = getattr(self, attribute)
- if isinstance(v, int) or isinstance(v, bool) or isinstance(v, str):
- args["ANSIBLE_MODULE_ARGS"][f"_ansible_{k}"] = v
- return args
-
- def run_on_daemon(self):
- result = dict(changed=False, original_message="", message="")
- ttl = os.environ.get("ANSIBLE_TURBO_LOOKUP_TTL", None)
- with ansible_collections.cloud.common.plugins.module_utils.turbo.common.connect(
- socket_path=self.socket_path(), ttl=ttl
- ) as turbo_socket:
- ansiblez_path = sys.path[0]
- args = self.init_args()
- data = [
- ansiblez_path,
- json.dumps(args),
- dict(os.environ),
- ]
- content = json.dumps(data).encode()
- result = turbo_socket.communicate(content)
- self.exit_json(**result)
-
- def exit_json(self, **kwargs):
- if not self.embedded_in_server:
- super().exit_json(**kwargs)
- else:
- self.do_cleanup_files()
- raise EmbeddedModuleSuccess(**kwargs)
-
- def fail_json(self, *args, **kwargs):
- if not self.embedded_in_server:
- super().fail_json(**kwargs)
- else:
- self.do_cleanup_files()
- raise EmbeddedModuleFailure(*args, **kwargs)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/server.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/server.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/server.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo/server.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,420 +0,0 @@
-# Copyright (c) 2021 Red Hat
-#
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-import argparse
-import asyncio
-
-# py38 only, See: https://github.com/PyCQA/pylint/issues/2976
-import collections # pylint: disable=syntax-error
-import importlib
-
-# py38 only, See: https://github.com/PyCQA/pylint/issues/2976
-import inspect # pylint: disable=syntax-error
-import io
-import json
-import os
-import pickle
-import signal
-import sys
-import traceback
-import uuid
-import zipfile
-from datetime import datetime
-from zipimport import zipimporter
-
-sys_path_lock = None
-env_lock = None
-
-import ansible.module_utils.basic
-
-please_include_me = "bar"
-
-
-def fork_process():
- """
- This function performs the double fork process to detach from the
- parent process and execute.
- """
- pid = os.fork()
-
- if pid == 0:
- fd = os.open(os.devnull, os.O_RDWR)
-
- # clone stdin/out/err
- for num in range(3):
- if fd != num:
- os.dup2(fd, num)
-
- if fd not in range(3):
- os.close(fd)
-
- pid = os.fork()
- if pid > 0:
- os._exit(0)
-
- # get new process session and detach
- sid = os.setsid()
- if sid == -1:
- raise Exception("Unable to detach session while daemonizing")
-
- # avoid possible problems with cwd being removed
- os.chdir("/")
-
- pid = os.fork()
- if pid > 0:
- sys.exit(0) # pylint: disable=ansible-bad-function
- else:
- sys.exit(0) # pylint: disable=ansible-bad-function
- return pid
-
-
-class EmbeddedModule:
- def __init__(self, ansiblez_path, params):
- self.ansiblez_path = ansiblez_path
- self.collection_name, self.module_name = self.find_module_name()
- self.params = params
- self.module_class = None
- self.debug_mode = False
- self.module_path = (
- "ansible_collections.{collection_name}." "plugins.modules.{module_name}"
- ).format(collection_name=self.collection_name, module_name=self.module_name)
-
- def find_module_name(self):
- with zipfile.ZipFile(self.ansiblez_path) as zip:
- for path in zip.namelist():
- if not path.startswith("ansible_collections"):
- continue
- if not path.endswith(".py"):
- continue
- if path.endswith("__init__.py"):
- continue
- splitted = path.split("/")
- if len(splitted) != 6:
- continue
- if splitted[-3:-1] != ["plugins", "modules"]:
- continue
- collection = ".".join(splitted[1:3])
- name = splitted[-1][:-3]
- return collection, name
- raise Exception("Cannot find module name")
-
- async def load(self):
- async with sys_path_lock:
- # Add the Ansiblez_path in sys.path
- sys.path.insert(0, self.ansiblez_path)
-
- # resettle the loaded modules that were associated
- # with a different Ansiblez.
- for path, module in sorted(tuple(sys.modules.items())):
- if path and module and path.startswith("ansible_collections"):
- try:
- prefix = sys.modules[path].__loader__.prefix
- except AttributeError:
- # Not from a zipimporter loader, skipping
- continue
- # Reload package modules only, to pick up new modules from
- # packages that have been previously loaded.
- if hasattr(sys.modules[path], "__path__"):
- py_path = self.ansiblez_path + os.sep + prefix
- my_loader = zipimporter(py_path)
- sys.modules[path].__loader__ = my_loader
- try:
- importlib.reload(sys.modules[path])
- except ModuleNotFoundError:
- pass
- # Finally, load the plugin class.
- self.module_class = importlib.import_module(self.module_path)
-
- async def unload(self):
- async with sys_path_lock:
- sys.path = [i for i in sys.path if i != self.ansiblez_path]
-
- def create_profiler(self):
- if self.debug_mode:
- import cProfile
-
- pr = cProfile.Profile()
- pr.enable()
- return pr
-
- def print_profiling_info(self, pr):
- if self.debug_mode:
- import pstats
-
- sortby = pstats.SortKey.CUMULATIVE
- ps = pstats.Stats(pr).sort_stats(sortby)
- ps.print_stats(20)
-
- def print_backtrace(self, backtrace):
- if self.debug_mode:
- print(backtrace) # pylint: disable=ansible-bad-function
-
- async def run(self):
- class FakeStdin(io.IOBase):
- buffer = None
-
- def __init__(self):
- super().__init__()
-
- from .exceptions import (
- EmbeddedModuleFailure,
- EmbeddedModuleSuccess,
- EmbeddedModuleUnexpectedFailure,
- )
-
- # monkeypatching to pass the argument to the module, this is not
- # really safe, and in the future, this will prevent us to run several
- # modules in parallel. We can maybe use a scoped monkeypatch instead
- _fake_stdin = FakeStdin()
- _fake_stdin.buffer = io.BytesIO(self.params.encode())
- sys.stdin = _fake_stdin
- # Trick to be sure ansible.module_utils.basic._load_params() won't
- # try to build the module parameters from the daemon arguments
- sys.argv = sys.argv[:1]
- ansible.module_utils.basic._ANSIBLE_ARGS = None
- pr = self.create_profiler()
- if not hasattr(self.module_class, "main"):
- raise EmbeddedModuleFailure("No main() found!")
- try:
- if inspect.iscoroutinefunction(self.module_class.main):
- await self.module_class.main()
- elif pr:
- pr.runcall(self.module_class.main)
- else:
- self.module_class.main()
- except EmbeddedModuleSuccess as e:
- self.print_profiling_info(pr)
- return e.kwargs
- except EmbeddedModuleFailure as e:
- backtrace = traceback.format_exc()
- self.print_backtrace(backtrace)
- raise
- except Exception as e:
- backtrace = traceback.format_exc()
- self.print_backtrace(backtrace)
- raise EmbeddedModuleUnexpectedFailure(str(backtrace))
- else:
- raise EmbeddedModuleUnexpectedFailure(
- "Likely a bug: exit_json() or fail_json() should be called during the module excution"
- )
-
-
-async def run_as_lookup_plugin(data):
- errors = None
- result = None
-
- try:
- import ansible.plugins.loader as plugin_loader
- from ansible.module_utils._text import to_native
- from ansible.parsing.dataloader import DataLoader
- from ansible.template import Templar
- except ImportError as e:
- errors = str(e)
- return [result, errors]
-
- try:
- (
- lookup_name,
- terms,
- variables,
- kwargs,
- ) = data
-
- # load lookup plugin
- templar = Templar(loader=DataLoader(), variables=None)
- ansible_collections = "ansible_collections."
- if lookup_name.startswith(ansible_collections):
- lookup_name = lookup_name.replace(ansible_collections, "", 1)
- ansible_plugins_lookup = ".plugins.lookup."
- if ansible_plugins_lookup in lookup_name:
- lookup_name = lookup_name.replace(ansible_plugins_lookup, ".", 1)
-
- instance = plugin_loader.lookup_loader.get(
- name=lookup_name, loader=templar._loader, templar=templar
- )
-
- if not hasattr(instance, "_run"):
- return [None, "No _run() found"]
- if inspect.iscoroutinefunction(instance._run):
- result = await instance._run(terms, variables=variables, **kwargs)
- else:
- result = instance._run(terms, variables=variables, **kwargs)
- except Exception as e:
- errors = to_native(e)
-
- return [result, errors]
-
-
-async def run_as_module(content, debug_mode):
- result = None
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
-
- try:
- (
- ansiblez_path,
- params,
- env,
- ) = json.loads(content)
- if debug_mode:
- print( # pylint: disable=ansible-bad-function
- f"-----\nrunning {ansiblez_path} with params: ¨{params}¨"
- )
-
- embedded_module = EmbeddedModule(ansiblez_path, params)
- if debug_mode:
- embedded_module.debug_mode = True
-
- await embedded_module.load()
- try:
- async with env_lock:
- os.environ.clear()
- os.environ.update(env)
- result = await embedded_module.run()
- except SystemExit:
- backtrace = traceback.format_exc()
- result = {"msg": str(backtrace), "failed": True}
- except EmbeddedModuleFailure as e:
- result = {"msg": str(e), "failed": True}
- if e.kwargs:
- result.update(e.kwargs)
- except Exception as e:
- result = {
- "msg": traceback.format_stack() + [str(e)],
- "failed": True,
- }
- await embedded_module.unload()
- except Exception as e:
- result = {"msg": traceback.format_stack() + [str(e)], "failed": True}
- return result
-
-
-class AnsibleVMwareTurboMode:
- def __init__(self):
- self.sessions = collections.defaultdict(dict)
- self.socket_path = None
- self.ttl = None
- self.debug_mode = None
- self.jobs_ongoing = {}
-
- async def ghost_killer(self):
- while True:
- await asyncio.sleep(self.ttl)
- running_jobs = {
- job_id: start_date
- for job_id, start_date in self.jobs_ongoing.items()
- if (datetime.now() - start_date).total_seconds() < 3600
- }
- if running_jobs:
- continue
- self.stop()
-
- async def handle(self, reader, writer):
- result = None
- self._watcher.cancel()
- self._watcher = self.loop.create_task(self.ghost_killer())
- job_id = str(uuid.uuid4())
- self.jobs_ongoing[job_id] = datetime.now()
- raw_data = await reader.read()
-
- if not raw_data:
- return
-
- (plugin_type, content) = pickle.loads(raw_data)
-
- def _terminate(result):
- writer.write(json.dumps(result).encode())
- writer.close()
-
- if plugin_type == "module":
- result = await run_as_module(content, debug_mode=self.debug_mode)
- elif plugin_type == "lookup":
- result = await run_as_lookup_plugin(content)
- _terminate(result)
- del self.jobs_ongoing[job_id]
-
- def handle_exception(self, loop, context):
- e = context.get("exception")
- traceback.print_exception(type(e), e, e.__traceback__)
- self.stop()
-
- def start(self):
- self.loop = asyncio.new_event_loop()
- asyncio.set_event_loop(self.loop)
- self.loop.add_signal_handler(signal.SIGTERM, self.stop)
- self.loop.set_exception_handler(self.handle_exception)
- self._watcher = self.loop.create_task(self.ghost_killer())
-
- import sys
-
- try:
- from ansible.plugins.loader import init_plugin_loader
-
- init_plugin_loader()
- except ImportError:
- # Running on Ansible < 2.15
- pass
-
- if sys.hexversion >= 0x30A00B1:
- # py3.10 drops the loop argument of create_task.
- self.loop.create_task(
- asyncio.start_unix_server(self.handle, path=self.socket_path)
- )
- else:
- self.loop.create_task(
- asyncio.start_unix_server(
- self.handle, path=self.socket_path, loop=self.loop
- )
- )
- try:
- self.loop.run_forever()
- finally:
- self.loop.close()
-
- def stop(self):
- os.unlink(self.socket_path)
- self.loop.stop()
-
-
-if __name__ == "__main__":
- parser = argparse.ArgumentParser(description="Start a background daemon.")
- parser.add_argument("--socket-path")
- parser.add_argument("--ttl", default=15, type=int)
- parser.add_argument("--fork", action="store_true")
-
- args = parser.parse_args()
- if args.fork:
- fork_process()
- sys_path_lock = asyncio.Lock()
- env_lock = asyncio.Lock()
-
- server = AnsibleVMwareTurboMode()
- server.socket_path = args.socket_path
- server.ttl = args.ttl
- server.debug_mode = not args.fork
- server.start()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/module_utils/turbo_demo.py 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-# This module is part of the test suite to check the import logic of turbo mode
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_demo.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_demo.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_demo.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_demo.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,74 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (C) 2020, Gonéri Le Bouder
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-DOCUMENTATION = r"""
----
-module: turbo_demo
-short_description: A demo module for ansible_module.turbo
-version_added: "1.0.0"
-description:
-- "This module is an example of an ansible_module.turbo integration."
-author:
-- Gonéri Le Bouder (@goneri)
-"""
-
-EXAMPLES = r"""
-- name: Run the module
- cloud.common.turbo_demo:
-"""
-
-import os
-
-from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
- AnsibleTurboModule as AnsibleModule,
-)
-
-
-def counter():
- counter.i += 1
- return counter.i
-
-
-# NOTE: workaround to avoid a warning with ansible-doc
-if True: # pylint: disable=using-constant-test
- counter.i = 0
-
-
-def get_message():
- return f"This is me running with PID: {os.getpid()}, called {counter.i} time(s)"
-
-
-def run_module():
- result = {}
-
- # the AnsibleModule object will be our abstraction working with Ansible
- # this includes instantiation, a couple of common attr would be the
- # args/params passed to the execution, as well as if the module
- # supports check mode
- module = AnsibleModule(argument_spec={}, supports_check_mode=True)
- module.collection_name = "cloud.common"
- previous_value = counter.i
- if not module.check_mode:
- counter()
- result["changed"] = True
- result["message"] = get_message()
- result["counter"] = counter.i
- result["envvar"] = os.environ.get("TURBO_TEST_VAR")
-
- if module._diff:
- result["diff"] = {"before": previous_value, "after": counter.i}
-
- module.exit_json(**result)
-
-
-def main():
- from ansible_collections.cloud.common.plugins.module_utils import turbo_demo
-
- run_module()
-
-
-if __name__ == "__main__":
- main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_fail.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_fail.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_fail.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_fail.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (C) 2021, Aubin Bikouo
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-DOCUMENTATION = r"""
----
-module: turbo_fail
-short_description: A short module which honor additional args when calling fail_json
-version_added: "1.0.0"
-description:
-- "This module aims to test fail_json method on Ansible.turbo module"
-options:
- params:
- description:
- - parameter to display in task output
- required: false
- type: dict
-author:
-- Aubin Bikouo (@abikouo)
-"""
-
-EXAMPLES = r"""
-- name: Fail without additional arguments
- cloud.common.turbo_fail:
-
-- name: Fail with additional arguments
- cloud.common.turbo_fail:
- params:
- test: "ansible"
-"""
-
-
-from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
- AnsibleTurboModule as AnsibleModule,
-)
-
-
-def run_module():
- module = AnsibleModule(
- argument_spec=dict(
- params=dict(type="dict"),
- )
- )
- module.collection_name = "cloud.common"
- msg = "ansible.cloud.fail"
- if module.params.get("params"):
- module.fail_json(msg=msg, **module.params.get("params"))
- module.fail_json(msg=msg)
-
-
-def main():
- run_module()
-
-
-if __name__ == "__main__":
- main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_import.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_import.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_import.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/modules/turbo_import.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (C) 2022, 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
-
-DOCUMENTATION = r"""
----
-module: turbo_import
-short_description: A demo module to test import logic for turbo mode
-version_added: "1.0.0"
-description:
-- "This module tests the import logic for turbo mode."
-author:
-- Mike Graves (@gravesm)
-"""
-
-EXAMPLES = r"""
-- name: Run the module
- cloud.common.turbo_import:
-"""
-
-
-from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
- AnsibleTurboModule as AnsibleModule,
-)
-
-
-def run_module():
- module = AnsibleModule(argument_spec={})
- module.collection_name = "cloud.common"
- module.exit_json(changed=False)
-
-
-def main():
- from ansible_collections.cloud.common.plugins.module_utils import turbo_demo
-
- run_module()
-
-
-if __name__ == "__main__":
- main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/plugins/plugin_utils/turbo/lookup.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,93 +0,0 @@
-# Copyright (c) 2021 Red Hat
-#
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os
-
-import ansible_collections.cloud.common.plugins.module_utils.turbo.common
-from ansible.plugins.lookup import LookupBase
-from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleUnexpectedFailure,
-)
-
-
-def get_server_ttl(variables):
- # trying to retrieve first TTL from environment variable
- ttl = os.environ.get("ANSIBLE_TURBO_LOOKUP_TTL", None)
- if ttl is not None:
- return ttl
- # Read TTL from ansible environment
- for env_var in variables.get("environment", []):
- value = env_var.get("ANSIBLE_TURBO_LOOKUP_TTL", None)
- test_var_int = [
- isinstance(value, str) and value.isnumeric(),
- isinstance(value, int),
- ]
- if value is not None and any(test_var_int):
- ttl = value
- return ttl
-
-
-class TurboLookupBase(LookupBase):
- def run_on_daemon(self, terms, variables=None, **kwargs):
- self._ttl = get_server_ttl(variables)
- return self.execute(terms=terms, variables=variables, **kwargs)
-
- @property
- def socket_path(self):
- if not hasattr(self, "__socket_path"):
- """
- Input:
- _load_name: ansible_collections.cloud.common.plugins.lookup.turbo_random_lookup
- Output:
- __socket_path: {HOME}/.ansible/tmp/turbo_mode_cloud.common.socket
- this will allow to have one socket per collection
- """
- name = self._load_name
- ansible_collections = "ansible_collections."
- if name.startswith(ansible_collections):
- name = name.replace(ansible_collections, "", 1)
- lookup_plugins = ".plugins.lookup."
- idx = name.find(lookup_plugins)
- if idx != -1:
- name = name[:idx]
-
- self.__socket_path = (
- os.environ["HOME"] + f"/.ansible/tmp/turbo_lookup.{name}.socket"
- )
- return self.__socket_path
-
- def execute(self, terms, variables=None, **kwargs):
- result = None
- with ansible_collections.cloud.common.plugins.module_utils.turbo.common.connect(
- socket_path=self.socket_path, ttl=self._ttl, plugin="lookup"
- ) as turbo_socket:
- content = (self._load_name, terms, variables, kwargs)
- (result, errors) = turbo_socket.communicate(content)
- if errors:
- raise EmbeddedModuleUnexpectedFailure(errors)
-
- return result
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/pytest.ini ansible-12.0.0+dfsg/ansible_collections/cloud/common/pytest.ini
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/pytest.ini 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/pytest.ini 1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-[pytest]
-addopts = --import-mode append
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/test-requirements.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/test-requirements.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/test-requirements.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/test-requirements.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-coverage==4.5.4
-pytest-xdist
-pytest-ansible
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/config.yml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/config.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/config.yml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/config.yml 1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-modules:
- python_requires: '>=3.9'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_fail/tasks/main.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-- name: fail with no additionnal args
- cloud.common.turbo_fail:
- register: result
- failed_when: not result.failed
-
-- assert:
- that:
- - result | list | difference(["failed_when_result"]) | sort == ["changed", "failed", "msg"]
-
-- name: fail with additionnal args
- cloud.common.turbo_fail:
- params:
- test:
- phase: integration
- release: 1.0
- environment: production
- register: result
- failed_when: not result.failed
-
-- assert:
- that:
- - result.environment == "production"
- - result.test.phase == "integration"
- - result.test.release == 1.0
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/playbook.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,81 +0,0 @@
-- hosts: localhost
- gather_facts: false
-
- environment:
- ANSIBLE_TURBO_LOOKUP_TTL: 1
- ANOTHER_ANSIBLE_VARS: 10
-
- tasks:
- - name: variables definition
- set_fact:
- var00: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
- var01: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
-
- - pause:
- seconds: 2
-
- - name: variables definition
- set_fact:
- var10: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
- var11: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
- environment:
- ANSIBLE_TURBO_LOOKUP_TTL: 4
-
- - pause:
- seconds: 2
-
- - name: variables definition
- set_fact:
- var20: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
- var21: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
-
- - name: validate output
- assert:
- that:
- - '"turbo_demo_counter: 1" in var00'
- - '"turbo_demo_counter: 2" in var01'
- - '"turbo_demo_counter: 1" in var10'
- - '"turbo_demo_counter: 2" in var11'
- - '"turbo_demo_counter: 3" in var20'
- - '"turbo_demo_counter: 4" in var21'
-
- - name: Wait for the socket to be closed
- pause:
- seconds: 5
-
-
-- hosts: localhost
- gather_facts: false
-
- vars:
- turbo_play_var: "simple ansible playbook variable"
-
- tasks:
- - name: set variables using lookup plugin
- set_fact:
- var0: "{{ lookup('cloud.common.turbo_demo', terms, playbook_vars=['turbo_play_var', 'turbo_task_var'], wantlist=True) }}"
- var1: "{{ lookup('cloud.common.turbo_demo', terms, playbook_vars=['turbo_task_var'], wantlist=True) }}"
- var2: "{{ lookup('cloud.common.turbo_demo', terms, playbook_vars=['turbo_play_var'], wantlist=True) }}"
- vars:
- terms: ["2.9", "2.10"]
- turbo_task_var: "simple ansible task variable"
-
- - name: test lookup plugin using a module
- debug:
- msg: "{{ lookup('cloud.common.turbo_demo', wantlist=True) }}"
- register: output
-
- - name: validate other settings
- assert:
- that:
- - '"turbo_demo_counter: 1" in var0'
- - '"turbo_demo_counter: 2" in var1'
- - '"turbo_demo_counter: 3" in var2'
- - '"turbo_demo_counter: 4" in output.msg'
- - '"simple ansible task variable" in var0'
- - '"simple ansible task variable" in var1'
- - 'turbo_play_var in var0'
- - 'turbo_play_var in var2'
- - '["2.9", "2.10"] in var0'
- - '["2.9", "2.10"] in var1'
- - '["2.9", "2.10"] in var2'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_lookup/runme.sh 1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -eux
-exec ansible-playbook playbook.yaml -vvv
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/playbook.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-- hosts: localhost
- gather_facts: false
- tasks:
- - import_role:
- name: turbo_mode
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/runme.sh 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-set -eux
-export ANSIBLE_ROLES_PATH=..
-exec ansible-playbook playbook.yaml
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode/tasks/main.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,77 +0,0 @@
-- cloud.common.turbo_import:
-
-- cloud.common.turbo_demo:
- with_sequence: count=10
- register: _result
-- debug: var=_result.results[-1]
-- assert:
- that:
- - _result.results[-1].counter == 10
-- cloud.common.turbo_demo:
- with_sequence: count=10
- check_mode: True
- register: _result
-- assert:
- that:
- - _result.results[-1].counter == 10
-- cloud.common.turbo_demo:
- with_sequence: count=10
- become: true
- register: _result
-- assert:
- that:
- - _result.results[-1].counter == 10
-- cloud.common.turbo_demo:
- diff: true
- register: _result_with_diff
-- assert:
- that:
- - _result_with_diff.diff is defined
-- cloud.common.turbo_demo:
- diff: false
- register: _result_no_diff
-- assert:
- that:
- - _result_no_diff.diff is undefined
-
-- name: Test task environment var
- cloud.common.turbo_demo:
- environment:
- TURBO_TEST_VAR: foobar
- register: _result
-
-- assert:
- that:
- - _result.envvar == "foobar"
-
-- name: Test task environment var not set
- cloud.common.turbo_demo:
- register: _result
-
-- assert:
- that:
- - not _result.envvar
-
-
-- name: Create temporary dir
- ansible.builtin.tempfile:
- state: directory
- suffix: temp
- register: tempdir_1
-
-- name: Test with a different remote_tmp, there is no socket yet.
- cloud.common.turbo_demo:
- vars:
- ansible_remote_tmp: "{{ tempdir_1.path }}"
- register: _result
-- assert:
- that:
- - _result.counter == 1
-
-- name: test using default remote_tmp. socket previously created
- cloud.common.turbo_demo:
- register: _result
-
-- assert:
- that:
- - _result.counter > 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory 1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-host1 ansible_connection=local
-host2 ansible_connection=local
-host3 ansible_connection=local
-host4 ansible_connection=local
-host5 ansible_connection=local
-host6 ansible_connection=local
-host7 ansible_connection=local
-host8 ansible_connection=local
-host9 ansible_connection=local
-host10 ansible_connection=local
-host11 ansible_connection=local
-host12 ansible_connection=local
-host13 ansible_connection=local
-host14 ansible_connection=local
-host15 ansible_connection=local
-host16 ansible_connection=local
-host17 ansible_connection=local
-host18 ansible_connection=local
-host19 ansible_connection=local
-host20 ansible_connection=local
-host21 ansible_connection=local
-host22 ansible_connection=local
-host23 ansible_connection=local
-host24 ansible_connection=local
-host25 ansible_connection=local
-host26 ansible_connection=local
-host27 ansible_connection=local
-host28 ansible_connection=local
-host29 ansible_connection=local
-host30 ansible_connection=local
-host31 ansible_connection=local
-host32 ansible_connection=local
-host33 ansible_connection=local
-host34 ansible_connection=local
-host35 ansible_connection=local
-host36 ansible_connection=local
-host37 ansible_connection=local
-host38 ansible_connection=local
-host39 ansible_connection=local
-host40 ansible_connection=local
-host41 ansible_connection=local
-host42 ansible_connection=local
-host43 ansible_connection=local
-host44 ansible_connection=local
-host45 ansible_connection=local
-host46 ansible_connection=local
-host47 ansible_connection=local
-host48 ansible_connection=local
-host49 ansible_connection=local
-host50 ansible_connection=local
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/inventory.ini 1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-host1 ansible_connection=local ansible_python_interpreter=python3
-host2 ansible_connection=local ansible_python_interpreter=python3
-host3 ansible_connection=local ansible_python_interpreter=python3
-host4 ansible_connection=local ansible_python_interpreter=python3
-host5 ansible_connection=local ansible_python_interpreter=python3
-host6 ansible_connection=local ansible_python_interpreter=python3
-host7 ansible_connection=local ansible_python_interpreter=python3
-host8 ansible_connection=local ansible_python_interpreter=python3
-host9 ansible_connection=local ansible_python_interpreter=python3
-host10 ansible_connection=local ansible_python_interpreter=python3
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/playbook.yaml 1970-01-01 00:00:00.000000000 +0000
@@ -1,36 +0,0 @@
-- hosts: localhost
- gather_facts: false
- tasks:
- - name: Wait for any previous call to end
- pause:
- seconds: 35
- - cloud.common.turbo_demo:
- - pause:
- seconds: 5
-
-- hosts: all
- strategy: free
- gather_facts: false
- tasks:
- - cloud.common.turbo_demo:
- with_sequence: count=10
- - cloud.common.turbo_demo:
- with_sequence: count=10
-
-- hosts: localhost
- gather_facts: false
- tasks:
- - cloud.common.turbo_demo:
- register: _result
- - debug: var=_result
- - assert:
- that:
- - _result.counter == 202
- - pause:
- seconds: 35
- - cloud.common.turbo_demo:
- register: _result
- - debug: var=_result
- - assert:
- that:
- - _result.counter == 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/integration/targets/turbo_mode_parallel_exec/runme.sh 1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -eux
-exec ansible-playbook -i inventory.ini playbook.yaml
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.14.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.15.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.16.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.17.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.18.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/sanity/ignore-2.19.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-plugins/module_utils/turbo/server.py pylint:ansible-bad-module-import
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/conftest.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2021 XLAB Steampunk
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-import json
-
-import pytest
-from ansible.module_utils import basic
-from ansible.module_utils.common.text.converters import to_bytes
-
-
-@pytest.fixture
-def set_module_args(monkeypatch):
- def wrapper(args=None):
- module_args = dict(ANSIBLE_MODULE_ARGS=args or {})
- monkeypatch.setattr(basic, "_ANSIBLE_ARGS", to_bytes(json.dumps(module_args)))
-
- return wrapper
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_module.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2021 XLAB Steampunk
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-import sys
-
-import pytest
-from ansible.module_utils import basic
-from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
- AnsibleTurboModule,
-)
-
-
-def _patch_globals(monkeypatch):
- # Patch sys.argv so that module does not try to spin up the server on
- # initialization. The purpose is to make sure AnsibleTurboModule.embedded_in_server
- # is set to True.
- monkeypatch.setattr(sys, "argv", ["something/that/ends/on/server.py"])
-
- # Collection name detection will fail in unit tests, so we patch it here directly
- # and bypass the detection process.
- monkeypatch.setattr(AnsibleTurboModule, "collection_name", "namespace.name")
-
- # Patch the ansible profile global var, since it is not set when running unit test. This
- # var only exists for ansible 2.19 and above
- try:
- monkeypatch.setattr(basic, "_ANSIBLE_PROFILE", "legacy")
- except AttributeError:
- pass
-
-
-def test_module_socket_path_remote_tmp_not_set(monkeypatch, set_module_args):
- _patch_globals(monkeypatch)
- set_module_args()
- module = AnsibleTurboModule(argument_spec={})
- path = module.socket_path()
-
- # We cannot know what tmp dir python uses, but we do know that it is a full path
- # that ends with deterministc suffix.
- assert path.startswith("/")
- assert path.endswith("/turbo_mode.namespace.name.socket")
-
-
-@pytest.mark.parametrize("tmp_path", ["/tmp", "/tmp/"])
-def test_module_socket_path_from_remote_tmp(monkeypatch, set_module_args, tmp_path):
- _patch_globals(monkeypatch)
- set_module_args(dict(_ansible_remote_tmp=tmp_path))
- module = AnsibleTurboModule(argument_spec={})
-
- assert module.socket_path() == "/tmp/turbo_mode.namespace.name.socket"
-
-
-@pytest.mark.parametrize(
- "tmp_path", ["/t/$MY_VAR", "/t/${MY_VAR}", "/t/$MY_VAR/", "/t/${MY_VAR}/"]
-)
-def test_module_socket_path_env_vars_in_remote_tmp(
- monkeypatch, set_module_args, tmp_path
-):
- _patch_globals(monkeypatch)
- set_module_args(dict(_ansible_remote_tmp=tmp_path))
- monkeypatch.setenv("MY_VAR", "my_var_value")
- module = AnsibleTurboModule(argument_spec={})
-
- assert module.socket_path() == "/t/my_var_value/turbo_mode.namespace.name.socket"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,171 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2020 Red Hat
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-import json
-import os
-import socket
-import subprocess
-import sys
-import time
-from pathlib import Path
-
-# py38 only, See: https://github.com/PyCQA/pylint/issues/2976
-from unittest.mock import ANY, Mock # pylint: disable=syntax-error
-
-import ansible.module_utils.basic
-import ansible_collections.cloud.common.plugins.module_utils.turbo.common as turbo_common
-import pytest
-from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
- expand_argument_specs_aliases,
- get_collection_name_from_path,
- prepare_args,
-)
-
-
-@pytest.mark.parametrize(
- "my_module_path,my_collection_name",
- [
- (
- "/tmp/ansible_vmware.vmware_rest.vcenter_vm_info_payload_548h2lev/ansible_vmware.vmware_rest.vcenter_vm_info_payload.zip/ansible/module_utils",
- "vmware.vmware_rest",
- )
- ],
-)
-def test_collection_name(monkeypatch, my_module_path, my_collection_name):
- def mocked_func():
- return my_module_path
-
- monkeypatch.setattr(ansible.module_utils.basic, "get_module_path", mocked_func)
- assert get_collection_name_from_path() == my_collection_name
-
-
-def test_start_daemon_from_module(monkeypatch):
- mocked_Popen = Mock()
- monkeypatch.setattr(subprocess, "Popen", mocked_Popen)
- turbo_socket = turbo_common.AnsibleTurboSocket(socket_path="/aa")
- assert turbo_socket.start_server()
- mocked_Popen.assert_called_once_with(
- [
- ANY,
- "-m",
- "ansible_collections.cloud.common.plugins.module_utils.turbo.server",
- "--fork",
- "--socket-path",
- "/aa",
- ],
- env=ANY,
- close_fds=True,
- )
-
-
-def test_start_daemon_from_lookup(monkeypatch):
- mocked_Popen = Mock()
- monkeypatch.setattr(subprocess, "Popen", mocked_Popen)
- turbo_socket = turbo_common.AnsibleTurboSocket(
- socket_path="/aa", plugin="lookup", ttl=150
- )
- assert turbo_socket.start_server()
- mocked_Popen.assert_called_once_with(
- [
- ANY,
- os.path.join(os.path.dirname(turbo_common.__file__), "server.py"),
- "--fork",
- "--socket-path",
- "/aa",
- "--ttl",
- "150",
- ],
- env=ANY,
- close_fds=True,
- )
-
-
-def test_start_daemon_with_no_mock(tmp_path):
- # This is an ugly fix to get this to pass in CI
- p = Path.cwd().parents
- sys.path.insert(0, str(p[2]))
- my_socket = tmp_path / "socket"
- turbo_socket = turbo_common.AnsibleTurboSocket(socket_path=str(my_socket), ttl=1)
- assert turbo_socket.start_server()
- time.sleep(0.5)
- assert my_socket.is_socket()
- time.sleep(0.8)
- assert not my_socket.exists()
-
-
-def test_connect(monkeypatch):
- mocked_socket = Mock()
- monkeypatch.setattr(socket, "socket", mocked_socket)
- turbo_socket = turbo_common.AnsibleTurboSocket(socket_path="/nowhere")
- assert turbo_socket.bind()
- mocked_socket.connect_assert_called_once_with("/nowhere")
-
-
-def test_expand_argument_specs_aliases():
- argspec = {"foo": {"type": int, "aliases": ["bar"]}}
- assert expand_argument_specs_aliases(argspec) == {
- "foo": {"type": int, "aliases": ["bar"]},
- "bar": {"type": int, "aliases": ["bar"]},
- }
-
-
-def test_prepare_args():
- argspec = {"foo": {"type": int}}
- params = {"foo": 1}
- expected = {"ANSIBLE_MODULE_ARGS": {"foo": 1}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
-
-
-def test_prepare_args_ignore_none():
- argspec = {"foo": {"type": int}}
- params = {"foo": None}
- expected = {"ANSIBLE_MODULE_ARGS": {}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
-
-
-def test_prepare_args_subkey_freeform():
- argspec = {"foo": {"type": dict, "default": {}}}
- params = {"foo": {"bar": 1}}
- expected = {"ANSIBLE_MODULE_ARGS": {"foo": {"bar": 1}}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
-
-
-def test_prepare_args_subkey_with_default():
- argspec = {"foo": {"bar": {"default": 1}}}
- params = {"foo": {"bar": 1}}
- expected = {"ANSIBLE_MODULE_ARGS": {"foo": {}}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
-
-
-def test_prepare_args_dedup_aliases():
- argspec = {"foo": {"aliases": ["bar"], "type": int}}
- params = {"foo": 1, "bar": 1}
- expected = {"ANSIBLE_MODULE_ARGS": {"foo": 1}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
-
-
-def test_prepare_args_with_aliases():
- argspec = {"foo": {"aliases": ["bar"], "type": int}}
- params = {"foo": 1}
- expected = {"ANSIBLE_MODULE_ARGS": {"foo": 1}}
- assert prepare_args(argspec, params) in (
- expected,
- json.dumps(expected).encode("utf-8"),
- )
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/requirements.txt ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/requirements.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tests/unit/requirements.txt 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tests/unit/requirements.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-pytest
-pytest-xdist
-pytest-mock
-mock
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tox.ini ansible-12.0.0+dfsg/ansible_collections/cloud/common/tox.ini
--- ansible-12.0.0~b5+dfsg/ansible_collections/cloud/common/tox.ini 2025-06-25 12:49:25.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/cloud/common/tox.ini 1970-01-01 00:00:00.000000000 +0000
@@ -1,61 +0,0 @@
-[tox]
-minversion = 1.4.2
-envlist = linters
-skipsdist = True
-
-[common]
-
-format_dirs = {toxinidir}/plugins {toxinidir}/tests
-
-[testenv]
-deps = -r{toxinidir}/requirements.txt
- -r{toxinidir}/test-requirements.txt
-install_command = pip install {opts} {packages}
-
-[testenv:isort]
-deps =
- isort
-commands =
- isort --profile black {[common]format_dirs}
-
-[testenv:flynt]
-deps =
- flynt
-commands =
- flynt {[common]format_dirs}
-
-[testenv:black]
-depends =
- flynt, isort
-deps =
- black >=23.0, <24.0
-commands =
- black {[common]format_dirs}
-
-[testenv:linters]
-install_command = pip install {opts} {packages}
-deps =
- {[testenv:black]deps}
- {[testenv:isort]deps}
- {[testenv:flynt]deps}
- flake8
-commands =
- flynt {[common]format_dirs}
- isort --profile black {[common]format_dirs}
- black -v --check {[common]format_dirs}
- flake8 {posargs} {[common]format_dirs}
-
-[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/
-
-[testenv:antsibull-changelog]
-deps =
- ansible-core==2.11.*
- antsibull-changelog
-commands =
- antsibull-changelog {posargs}
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/CHANGELOG.md ansible-12.0.0+dfsg/ansible_collections/community/dns/CHANGELOG.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/CHANGELOG.md 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/CHANGELOG.md 2025-08-31 13:16:19.000000000 +0000
@@ -2,259 +2,262 @@
**Topics**
-- v3\.3\.1
+- v3\.3\.2
- Release Summary
- Bugfixes
-- v3\.3\.0
+- v3\.3\.1
- Release Summary
- Bugfixes
- - New Modules
-- v3\.2\.7
+- v3\.3\.0
- Release Summary
- Bugfixes
-- v3\.2\.6
+ - New Modules
+- v3\.2\.7
- Release Summary
- Bugfixes
-- v3\.2\.5
+- v3\.2\.6
- Release Summary
- Bugfixes
-- v3\.2\.4
+- v3\.2\.5
- Release Summary
- Bugfixes
-- v3\.2\.3
+- v3\.2\.4
- Release Summary
- Bugfixes
-- v3\.2\.2
+- v3\.2\.3
- Release Summary
- Bugfixes
-- v3\.2\.1
+- v3\.2\.2
- Release Summary
- Bugfixes
-- v3\.2\.0
+- v3\.2\.1
- Release Summary
- - Minor Changes
- Bugfixes
-- v3\.1\.2
+- v3\.2\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v3\.1\.1
+- v3\.1\.2
- Release Summary
- Bugfixes
-- v3\.1\.0
+- v3\.1\.1
- Release Summary
- - Minor Changes
- Bugfixes
+- v3\.1\.0
+ - Release Summary
+ - Minor Changes
+ - Bugfixes
- New Plugins
- Filter
- Lookup
- v3\.0\.7
- - Release Summary
- - Bugfixes
-- v3\.0\.6
- Release Summary
- Bugfixes
-- v3\.0\.5
+- v3\.0\.6
- Release Summary
- Bugfixes
-- v3\.0\.4
+- v3\.0\.5
- Release Summary
- Bugfixes
-- v3\.0\.3
+- v3\.0\.4
- Release Summary
- Bugfixes
-- v3\.0\.2
+- v3\.0\.3
- Release Summary
- Bugfixes
-- v3\.0\.1
+- v3\.0\.2
- Release Summary
- Bugfixes
-- v3\.0\.0
+- v3\.0\.1
- Release Summary
+ - Bugfixes
+- v3\.0\.0
+ - Release Summary
- Major Changes
- Minor Changes
- Breaking Changes / Porting Guide
- Removed Features \(previously deprecated\)
- - Bugfixes
-- v2\.9\.0
- - Release Summary
- Bugfixes
+- v2\.9\.0
+ - Release Summary
+ - Bugfixes
- New Plugins
- Filter
- v2\.8\.3
- - Release Summary
- - Bugfixes
-- v2\.8\.2
- Release Summary
- - Security Fixes
- Bugfixes
-- v2\.8\.1
+- v2\.8\.2
- Release Summary
+ - Security Fixes
- Bugfixes
-- v2\.8\.0
+- v2\.8\.1
- Release Summary
- - Minor Changes
- - Deprecated Features
- Bugfixes
-- v2\.7\.0
+- v2\.8\.0
- Release Summary
- - Minor Changes
+ - Minor Changes
+ - Deprecated Features
- Bugfixes
-- v2\.6\.4
+- v2\.7\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.6\.3
+- v2\.6\.4
- Release Summary
- Bugfixes
-- v2\.6\.2
+- v2\.6\.3
- Release Summary
- Bugfixes
-- v2\.6\.1
+- v2\.6\.2
- Release Summary
- Bugfixes
-- v2\.6\.0
+- v2\.6\.1
- Release Summary
- - Minor Changes
- Bugfixes
+- v2\.6\.0
+ - Release Summary
+ - Minor Changes
+ - Bugfixes
- New Plugins
- Lookup
- New Modules
- v2\.5\.7
- - Release Summary
- - Bugfixes
-- v2\.5\.6
- Release Summary
+ - Bugfixes
+- v2\.5\.6
+ - Release Summary
- Known Issues
- v2\.5\.5
- - Release Summary
- - Bugfixes
-- v2\.5\.4
- Release Summary
- Bugfixes
-- v2\.5\.3
+- v2\.5\.4
- Release Summary
- Bugfixes
-- v2\.5\.2
+- v2\.5\.3
- Release Summary
- Bugfixes
-- v2\.5\.1
+- v2\.5\.2
- Release Summary
- Bugfixes
-- v2\.5\.0
+- v2\.5\.1
- Release Summary
- - Minor Changes
- - Deprecated Features
- Bugfixes
-- v2\.4\.2
+- v2\.5\.0
- Release Summary
+ - Minor Changes
+ - Deprecated Features
- Bugfixes
-- v2\.4\.1
+- v2\.4\.2
- Release Summary
- Bugfixes
-- v2\.4\.0
+- v2\.4\.1
- Release Summary
- - Minor Changes
- Bugfixes
-- v2\.3\.4
+- v2\.4\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.3\.3
+- v2\.3\.4
- Release Summary
- Bugfixes
-- v2\.3\.2
+- v2\.3\.3
- Release Summary
- Bugfixes
-- v2\.3\.1
+- v2\.3\.2
- Release Summary
- - Minor Changes
- Bugfixes
-- v2\.3\.0
+- v2\.3\.1
- Release Summary
- - Minor Changes
+ - Minor Changes
- Bugfixes
-- v2\.2\.1
+- v2\.3\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.2\.0
+- v2\.2\.1
- Release Summary
- - Minor Changes
- Bugfixes
-- v2\.1\.1
+- v2\.2\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.1\.0
+- v2\.1\.1
- Release Summary
- - Minor Changes
- Bugfixes
-- v2\.0\.9
+- v2\.1\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.0\.8
+- v2\.0\.9
- Release Summary
- Bugfixes
-- v2\.0\.7
+- v2\.0\.8
- Release Summary
- Bugfixes
-- v2\.0\.6
+- v2\.0\.7
- Release Summary
- Bugfixes
-- v2\.0\.5
+- v2\.0\.6
- Release Summary
- Bugfixes
-- v2\.0\.4
+- v2\.0\.5
- Release Summary
- Bugfixes
-- v2\.0\.3
+- v2\.0\.4
- Release Summary
+ - Bugfixes
+- v2\.0\.3
+ - Release Summary
- Minor Changes
- v2\.0\.2
- - Release Summary
- - Bugfixes
-- v2\.0\.1
- Release Summary
- Bugfixes
-- v2\.0\.0
+- v2\.0\.1
- Release Summary
+ - Bugfixes
+- v2\.0\.0
+ - Release Summary
- Minor Changes
- Breaking Changes / Porting Guide
- Deprecated Features
- - Bugfixes
+ - Bugfixes
- New Plugins
- Inventory
- New Modules
- v1\.2\.0
- - Release Summary
- - Minor Changes
- - Bugfixes
-- v1\.1\.0
- Release Summary
- - Minor Changes
+ - Minor Changes
- Bugfixes
-- v1\.0\.1
+- v1\.1\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v1\.0\.0
+- v1\.0\.1
- Release Summary
- Bugfixes
-- v0\.3\.0
+- v1\.0\.0
- Release Summary
- - Minor Changes
- Bugfixes
+- v0\.3\.0
+ - Release Summary
+ - Minor Changes
+ - Bugfixes
- New Modules
- v0\.2\.0
- - Release Summary
+ - Release Summary
- Major Changes
- Minor Changes
- Breaking Changes / Porting Guide
- - Bugfixes
+ - Bugfixes
- New Modules
- v0\.1\.0
- - Release Summary
+ - Release Summary
- New Plugins
- Filter
- New Modules
-
-## v3\.3\.1
+
+## v3\.3\.2
### Release Summary
@@ -264,6 +267,20 @@
### Bugfixes
+* Update Public Suffix List\.
+* various DNS lookup plugins and modules \- improve handling of invalid nameserver IPs/names \([https\://github\.com/ansible\-collections/community\.dns/issues/282](https\://github\.com/ansible\-collections/community\.dns/issues/282)\, [https\://github\.com/ansible\-collections/community\.dns/pull/284](https\://github\.com/ansible\-collections/community\.dns/pull/284)\)\.
+
+
+## v3\.3\.1
+
+
+### Release Summary
+
+Bugfix and maintenance release with updated PSL\.
+
+
+### Bugfixes
+
* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.dns/pull/280](https\://github\.com/ansible\-collections/community\.dns/pull/280)\)\.
* Update Public Suffix List\.
* nameserver\_record\_info \- removed type ALL\, which never worked \([https\://github\.com/ansible\-collections/community\.dns/issues/278](https\://github\.com/ansible\-collections/community\.dns/issues/278)\, [https\://github\.com/ansible\-collections/community\.dns/pull/279](https\://github\.com/ansible\-collections/community\.dns/pull/279)\)\.
@@ -271,12 +288,12 @@
## v3\.3\.0
-
+
### Release Summary
Feature release with support for AdGuard Home\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -290,12 +307,12 @@
## v3\.2\.7
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -303,12 +320,12 @@
## v3\.2\.6
-
+
### Release Summary
Regular bugfix and maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -318,12 +335,12 @@
## v3\.2\.5
-
+
### Release Summary
Regular maintenance release with bugfixes and updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -332,12 +349,12 @@
## v3\.2\.4
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -345,12 +362,12 @@
## v3\.2\.3
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -358,12 +375,12 @@
## v3\.2\.2
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -371,12 +388,12 @@
## v3\.2\.1
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -384,7 +401,7 @@
## v3\.2\.0
-
+
### Release Summary
Feature/maintenance release with updated PSL\.
@@ -395,7 +412,7 @@
* all filter\, inventory\, and lookup plugins\, and plugin utils \- add type hints to all Python 3 only code \([https\://github\.com/ansible\-collections/community\.dns/pull/239](https\://github\.com/ansible\-collections/community\.dns/pull/239)\)\.
* get\_public\_suffix\, get\_registrable\_domain\, remove\_public\_suffix\, and remove\_registrable\_domain filter plugin \- validate parameters\, and correctly handle byte strings when passed for input \([https\://github\.com/ansible\-collections/community\.dns/pull/239](https\://github\.com/ansible\-collections/community\.dns/pull/239)\)\.
-
+
### Bugfixes
* Fix various issues and potential bugs pointed out by linters \([https\://github\.com/ansible\-collections/community\.dns/pull/242](https\://github\.com/ansible\-collections/community\.dns/pull/242)\, [https\://github\.com/ansible\-collections/community\.dns/pull/243](https\://github\.com/ansible\-collections/community\.dns/pull/243)\)\.
@@ -404,12 +421,12 @@
## v3\.1\.2
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -417,12 +434,12 @@
## v3\.1\.1
-
+
### Release Summary
Maintenance release with updated documentation and PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -430,7 +447,7 @@
## v3\.1\.0
-
+
### Release Summary
Feature release with updated PSL\.
@@ -440,7 +457,7 @@
* all controller code \- modernize Python code \([https\://github\.com/ansible\-collections/community\.dns/pull/231](https\://github\.com/ansible\-collections/community\.dns/pull/231)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -461,12 +478,12 @@
## v3\.0\.7
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -474,12 +491,12 @@
## v3\.0\.6
-
+
### Release Summary
Regular maintenance release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -487,12 +504,12 @@
## v3\.0\.5
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -500,12 +517,12 @@
## v3\.0\.4
-
+
### Release Summary
Regular maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -513,12 +530,12 @@
## v3\.0\.3
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -526,12 +543,12 @@
## v3\.0\.2
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -539,12 +556,12 @@
## v3\.0\.1
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -552,7 +569,7 @@
## v3\.0\.0
-
+
### Release Summary
New major release\.
@@ -583,7 +600,7 @@
* hetzner\_dns\_record\_set\, hetzner\_dns\_record \- the deprecated alias name of the prefix option was removed \([https\://github\.com/ansible\-collections/community\.dns/pull/196](https\://github\.com/ansible\-collections/community\.dns/pull/196)\)\.
* hosttech\_dns\_records \- the redirect to the hosttech\_dns\_record\_sets module has been removed \([https\://github\.com/ansible\-collections/community\.dns/pull/196](https\://github\.com/ansible\-collections/community\.dns/pull/196)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -591,12 +608,12 @@
## v2\.9\.0
-
+
### Release Summary
Feature and bugfix release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -614,12 +631,12 @@
## v2\.8\.3
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* DNS record modules\, inventory plugins \- fix the TXT entry encoder to avoid splitting up escape sequences for quotes and backslashes over multiple TXT strings \([https\://github\.com/ansible\-collections/community\.dns/issues/190](https\://github\.com/ansible\-collections/community\.dns/issues/190)\, [https\://github\.com/ansible\-collections/community\.dns/pull/191](https\://github\.com/ansible\-collections/community\.dns/pull/191)\)\.
@@ -628,7 +645,7 @@
## v2\.8\.2
-
+
### Release Summary
Bugfix release\.
@@ -638,7 +655,7 @@
* hosttech\_dns\_records and hetzner\_dns\_records inventory plugins \- make sure all data received from the remote servers is marked as unsafe\, so remote code execution by obtaining texts that can be evaluated as templates is not possible \([https\://www\.die\-welt\.net/2024/03/remote\-code\-execution\-in\-ansible\-dynamic\-inventory\-plugins/](https\://www\.die\-welt\.net/2024/03/remote\-code\-execution\-in\-ansible\-dynamic\-inventory\-plugins/)\, [https\://github\.com/ansible\-collections/community\.dns/pull/189](https\://github\.com/ansible\-collections/community\.dns/pull/189)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -646,12 +663,12 @@
## v2\.8\.1
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -659,7 +676,7 @@
## v2\.8\.0
-
+
### Release Summary
Feature and maintenance release with updated PSL\.
@@ -674,7 +691,7 @@
* hetzner\_dns\_records and hosttech\_dns\_records inventory plugins \- the filters option has been renamed to simple\_filters\. The old name will stop working in community\.hrobot 2\.0\.0 \([https\://github\.com/ansible\-collections/community\.dns/pull/181](https\://github\.com/ansible\-collections/community\.dns/pull/181)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -682,7 +699,7 @@
## v2\.7\.0
-
+
### Release Summary
Bugfix and feature release with updated PSL\.
@@ -693,7 +710,7 @@
* nameserver\_info and nameserver\_record\_info \- add server parameter to specify custom DNS servers \([https\://github\.com/ansible\-collections/community\.dns/pull/168](https\://github\.com/ansible\-collections/community\.dns/pull/168)\, [https\://github\.com/ansible\-collections/community\.dns/pull/178](https\://github\.com/ansible\-collections/community\.dns/pull/178)\)\.
* wait\_for\_txt \- add server parameter to specify custom DNS servers \([https\://github\.com/ansible\-collections/community\.dns/pull/178](https\://github\.com/ansible\-collections/community\.dns/pull/178)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -702,12 +719,12 @@
## v2\.6\.4
-
+
### Release Summary
Bugfix and maintenance version\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -716,12 +733,12 @@
## v2\.6\.3
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* HTTP module utils \- make compatible with ansible\-core 2\.17 \([https\://github\.com/ansible\-collections/community\.dns/pull/165](https\://github\.com/ansible\-collections/community\.dns/pull/165)\)\.
@@ -730,12 +747,12 @@
## v2\.6\.2
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -743,12 +760,12 @@
## v2\.6\.1
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -756,7 +773,7 @@
## v2\.6\.0
-
+
### Release Summary
Feature release with an updated Public Suffix List\.
@@ -767,7 +784,7 @@
* wait\_for\_txt \- add servfail\_retries parameter that allows retrying after SERVFAIL errors \([https\://github\.com/ansible\-collections/community\.dns/pull/159](https\://github\.com/ansible\-collections/community\.dns/pull/159)\)\.
* wait\_for\_txt\, resolver module utils \- use [EDNS](https\://en\.wikipedia\.org/wiki/Extension\_Mechanisms\_for\_DNS) \([https\://github\.com/ansible\-collections/community\.dns/pull/158](https\://github\.com/ansible\-collections/community\.dns/pull/158)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -791,12 +808,12 @@
## v2\.5\.7
-
+
### Release Summary
Regular maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -804,7 +821,7 @@
## v2\.5\.6
-
+
### Release Summary
Maintenance release\.
@@ -825,12 +842,12 @@
## v2\.5\.5
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -838,12 +855,12 @@
## v2\.5\.4
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -851,12 +868,12 @@
## v2\.5\.3
-
+
### Release Summary
Maintenance release with updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -864,12 +881,12 @@
## v2\.5\.2
-
+
### Release Summary
Maintenance release with improved documentation and updated PSL\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -877,12 +894,12 @@
## v2\.5\.1
-
+
### Release Summary
Maintenance release \(updated PSL\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -890,7 +907,7 @@
## v2\.5\.0
-
+
### Release Summary
Feature and bugfix release with updated PSL\.
@@ -906,7 +923,7 @@
* The default of the newly added option txt\_character\_encoding will change from octal to decimal in community\.dns 3\.0\.0\. The new default will be compatible with [RFC 1035](https\://www\.ietf\.org/rfc/rfc1035\.txt) \([https\://github\.com/ansible\-collections/community\.dns/pull/134](https\://github\.com/ansible\-collections/community\.dns/pull/134)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -915,12 +932,12 @@
## v2\.4\.2
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -928,12 +945,12 @@
## v2\.4\.1
-
+
### Release Summary
Regular maintenance release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -942,7 +959,7 @@
## v2\.4\.0
-
+
### Release Summary
Feature and maintenance release\.
@@ -954,7 +971,7 @@
* Added a community\.dns\.hosttech module defaults group / action group\. Use with group/community\.dns\.hosttech to provide options for all Hosttech DNS modules \([https\://github\.com/ansible\-collections/community\.dns/pull/119](https\://github\.com/ansible\-collections/community\.dns/pull/119)\)\.
* wait\_for\_txt \- the module now supports check mode\. The only practical change in behavior is that in check mode\, the module is now executed instead of skipped\. Since the module does not change anything\, it should have been marked as supporting check mode since it was originally added \([https\://github\.com/ansible\-collections/community\.dns/pull/119](https\://github\.com/ansible\-collections/community\.dns/pull/119)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -962,12 +979,12 @@
## v2\.3\.4
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -975,12 +992,12 @@
## v2\.3\.3
-
+
### Release Summary
Maintenance release including an updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -988,12 +1005,12 @@
## v2\.3\.2
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1001,7 +1018,7 @@
## v2\.3\.1
-
+
### Release Summary
Maintenance release including an updated Public Suffix List\.
@@ -1011,7 +1028,7 @@
* The collection repository conforms to the [REUSE specification](https\://reuse\.software/spec/) except for the changelog fragments \([https\://github\.com/ansible\-collections/community\.dns/pull/112](https\://github\.com/ansible\-collections/community\.dns/pull/112)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1019,7 +1036,7 @@
## v2\.3\.0
-
+
### Release Summary
Maintenance release including an updated Public Suffix List\.
@@ -1029,7 +1046,7 @@
* All software licenses are now in the LICENSES/ directory of the collection root\. Moreover\, SPDX\-License\-Identifier\: is used to declare the applicable license for every file that is not automatically generated \([https\://github\.com/ansible\-collections/community\.dns/pull/109](https\://github\.com/ansible\-collections/community\.dns/pull/109)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1037,12 +1054,12 @@
## v2\.2\.1
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1050,7 +1067,7 @@
## v2\.2\.0
-
+
### Release Summary
Feature release\.
@@ -1061,7 +1078,7 @@
* hetzner\_dns\_records and hosttech\_dns\_records inventory plugins \- allow to template provider\-specific credentials and the zone\_name\, zone\_id options \([https\://github\.com/ansible\-collections/community\.dns/pull/106](https\://github\.com/ansible\-collections/community\.dns/pull/106)\)\.
* wait\_for\_txt \- improve error messages so that in case of SERVFAILs or other DNS errors it is clear which record was queried from which DNS server \([https\://github\.com/ansible\-collections/community\.dns/pull/105](https\://github\.com/ansible\-collections/community\.dns/pull/105)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1069,12 +1086,12 @@
## v2\.1\.1
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1082,7 +1099,7 @@
## v2\.1\.0
-
+
### Release Summary
Feature and maintenance release with updated PSL\.
@@ -1092,7 +1109,7 @@
* Prepare collection for inclusion in an Execution Environment by declaring its dependencies \([https\://github\.com/ansible\-collections/community\.dns/pull/93](https\://github\.com/ansible\-collections/community\.dns/pull/93)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1100,12 +1117,12 @@
## v2\.0\.9
-
+
### Release Summary
Maintenance release with updated Public Suffix List and added collection links file\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1113,12 +1130,12 @@
## v2\.0\.8
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1126,12 +1143,12 @@
## v2\.0\.7
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1139,12 +1156,12 @@
## v2\.0\.6
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1153,12 +1170,12 @@
## v2\.0\.5
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1166,12 +1183,12 @@
## v2\.0\.4
-
+
### Release Summary
Maintenance release with updated Public Suffix List\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1179,7 +1196,7 @@
## v2\.0\.3
-
+
### Release Summary
Bugfix release\.
@@ -1192,12 +1209,12 @@
## v2\.0\.2
-
+
### Release Summary
Regular maintenance release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1205,12 +1222,12 @@
## v2\.0\.1
-
+
### Release Summary
Maintenance release with Public Suffix List updates\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1218,7 +1235,7 @@
## v2\.0\.0
-
+
### Release Summary
This release contains many new features\, modules and plugins\, but also has several breaking changes to the 1\.x\.y versions\. Please read the changelog carefully to determine what to change if you used an earlier version of this collection\.
@@ -1258,7 +1275,7 @@
* The hosttech\_dns\_records module has been renamed to hosttech\_dns\_record\_sets\. The old name will stop working in community\.dns 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.dns/pull/31](https\://github\.com/ansible\-collections/community\.dns/pull/31)\)\.
-
+
### Bugfixes
* Hetzner API \- interpret missing TTL as 300\, which is what the web console also does \([https\://github\.com/ansible\-collections/community\.dns/pull/42](https\://github\.com/ansible\-collections/community\.dns/pull/42)\)\.
@@ -1296,7 +1313,7 @@
## v1\.2\.0
-
+
### Release Summary
Last minor 1\.x\.0 version\. The 2\.0\.0 version will have some backwards incompatible changes to the hosttech\_dns\_record and hosttech\_dns\_records modules which will require user intervention\. These changes should result in a better UX\.
@@ -1308,7 +1325,7 @@
* hosttech\_dns\_record \- in diff mode\, also return diff data structure when changed is false \([https\://github\.com/ansible\-collections/community\.dns/pull/28](https\://github\.com/ansible\-collections/community\.dns/pull/28)\)\.
* module utils \- add default implementation for some zone/record API functions\, and move common JSON API code to helper class \([https\://github\.com/ansible\-collections/community\.dns/pull/26](https\://github\.com/ansible\-collections/community\.dns/pull/26)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1317,7 +1334,7 @@
## v1\.1\.0
-
+
### Release Summary
Regular maintenance release\.
@@ -1327,7 +1344,7 @@
* Avoid internal ansible\-core module\_utils in favor of equivalent public API available since at least Ansible 2\.9 \([https\://github\.com/ansible\-collections/community\.dns/pull/24](https\://github\.com/ansible\-collections/community\.dns/pull/24)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1335,12 +1352,12 @@
## v1\.0\.1
-
+
### Release Summary
Regular maintenance release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1348,12 +1365,12 @@
## v1\.0\.0
-
+
### Release Summary
First stable release\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1361,7 +1378,7 @@
## v0\.3\.0
-
+
### Release Summary
Fixes bugs\, adds rate limiting for Hosttech JSON API\, and adds a new bulk synchronization module\.
@@ -1371,7 +1388,7 @@
* hosttech\_dns\_\* \- handle 419 Too Many Requests with proper rate limiting for JSON API \([https\://github\.com/ansible\-collections/community\.dns/pull/14](https\://github\.com/ansible\-collections/community\.dns/pull/14)\)\.
-
+
### Bugfixes
* Avoid converting ASCII labels which contain underscores or other printable ASCII characters outside \[a\-zA\-Z0\-9\-\] to alabels during normalization \([https\://github\.com/ansible\-collections/community\.dns/pull/13](https\://github\.com/ansible\-collections/community\.dns/pull/13)\)\.
@@ -1385,7 +1402,7 @@
## v0\.2\.0
-
+
### Release Summary
Major refactoring release\, which adds a zone information module and supports HostTech\'s new REST API\.
@@ -1410,7 +1427,7 @@
* hosttech\_\* module\_utils \- completely rewrite and refactor to support new JSON API and allow to reuse provider\-independent module logic \([https\://github\.com/ansible\-collections/community\.dns/pull/4](https\://github\.com/ansible\-collections/community\.dns/pull/4)\)\.
-
+
### Bugfixes
* Update Public Suffix List\.
@@ -1425,7 +1442,7 @@
## v0\.1\.0
-
+
### Release Summary
Initial public release\.
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/CHANGELOG.rst ansible-12.0.0+dfsg/ansible_collections/community/dns/CHANGELOG.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/CHANGELOG.rst 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/CHANGELOG.rst 2025-08-31 13:16:19.000000000 +0000
@@ -4,6 +4,20 @@
.. contents:: Topics
+v3.3.2
+======
+
+Release Summary
+---------------
+
+Bugfix and maintenance release with updated PSL.
+
+Bugfixes
+--------
+
+- Update Public Suffix List.
+- various DNS lookup plugins and modules - improve handling of invalid nameserver IPs/names (https://github.com/ansible-collections/community.dns/issues/282, https://github.com/ansible-collections/community.dns/pull/284).
+
v3.3.1
======
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/FILES.json ansible-12.0.0+dfsg/ansible_collections/community/dns/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/FILES.json 2025-08-18 18:26:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/FILES.json 2025-08-31 13:19:00.000000000 +0000
@@ -116,7 +116,7 @@
"name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3563ea77d49fd1bb39a8754fe3f1ced790fdd848520080a28767926476135078",
+ "chksum_sha256": "c97c833136cdb7c204eedbccea41d2637e4e8f2c36ecb045b7e4447ad726ecc3",
"format": 1
},
{
@@ -431,21 +431,21 @@
"name": "plugins/lookup/lookup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9e42d21b5baf53a0dde3ea2fec7f0f1efe2a55763d4c8b7d49c116b2accbd8b6",
+ "chksum_sha256": "f11ee4977f9a50017b9dda607359326924cd14fd7d30623855eb9c42eff25aa1",
"format": 1
},
{
"name": "plugins/lookup/lookup_as_dict.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c6aa5ab26fb9a8a107287f75552fffbedc2fd908f57c1a10afb85e979f13176",
+ "chksum_sha256": "b0c8f319a8b216d8451aef088480e54c6656823757e810e66866fd2d67e31b47",
"format": 1
},
{
"name": "plugins/lookup/reverse_lookup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b8a8af9b0ef5a09fb36baa48a480a5c094e79f0ecfedc7d65b13cc35d9babf97",
+ "chksum_sha256": "2a4f85560004544fdfe5ea4be5b64b5f4eb4725ac3890ee89b1102a3ea63e53c",
"format": 1
},
{
@@ -662,7 +662,7 @@
"name": "plugins/module_utils/resolver.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1a016f1870cbdbd70b7101d2c89ee37f2c9e99b65d801ad38f10fdff22f58ab7",
+ "chksum_sha256": "f2a895504b0db01f3bd761d9bda8c47c8baebfa9ce27e63a7a340c491712306e",
"format": 1
},
{
@@ -879,7 +879,7 @@
"name": "plugins/public_suffix_list.dat",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3644fd1b381b984e7576b4a5de37a819f1f2dd73e1096e6f4782f2ec00cde1af",
+ "chksum_sha256": "aef53a6329193716221ffaf1dca3327ab4b171cbe482932ed3cd4a4193c8591c",
"format": 1
},
{
@@ -1187,7 +1187,7 @@
"name": "tests/integration/targets/lookup_lookup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "41a89304105ac17c7696d2c3e9dd422256a2055e14e170f1426ba52b57d8c2d0",
+ "chksum_sha256": "80f1b4e442e061f4df4dbc8b0a543726b9d727d7b7d4fc8395821c1a3229bff3",
"format": 1
},
{
@@ -1215,7 +1215,7 @@
"name": "tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "22ffe81a2f0571564fe97fab44d18afd0585ec8f8979214d0f8c8c27d8302f3f",
+ "chksum_sha256": "393bf433ac2afe5c66ef6edbc64390779ba99c6e7d7696496f80f5a496dcebc1",
"format": 1
},
{
@@ -1243,7 +1243,7 @@
"name": "tests/integration/targets/lookup_reverse_lookup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5355aed84c7bd045dece389849e1d59a83df54f1d07206421a8cbe01cf55af9f",
+ "chksum_sha256": "c51f90a93002e477cf99a6e75814e3bc2afa116981b89b9ce5dd52d3fe1e5600",
"format": 1
},
{
@@ -1271,7 +1271,7 @@
"name": "tests/integration/targets/nameserver_info/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fe453b69024785b62cdca33dedd78360f9f032c93bd71f70615bdf231d2c311b",
+ "chksum_sha256": "7771c5480f285aa00d02522533364083e99b98b7e252637d28c727f93aa379c3",
"format": 1
},
{
@@ -1292,7 +1292,7 @@
"name": "tests/integration/targets/nameserver_record_info/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0d062b20ce237113d5968d76bf5e8b488644afc97e6feb6add4f005fa20d2270",
+ "chksum_sha256": "4df6dc8707d131ce4ddf7a8f879f102f6cda56e91458dc90dc289846620d2a45",
"format": 1
},
{
@@ -1341,7 +1341,7 @@
"name": "tests/integration/targets/wait_for_txt/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e91a52fae8adc8b0aa8b108f09765135ea432639d8e97416ad26eddf8e5cde86",
+ "chksum_sha256": "89991b662638c783a72ea892c1dfe6ece3b376a6dd80ef1a23183abb8bf4dd86",
"format": 1
},
{
@@ -1502,7 +1502,7 @@
"name": "tests/sanity/ignore-2.20.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "db760e87421f998b8480167241cfa7637b8cd9cda47c3100e5bb574879f503b9",
+ "chksum_sha256": "0077cd240d219e2f6c5eaeadbb771c0edee3f749fc47b67c557be9cf3c26e7fc",
"format": 1
},
{
@@ -1558,14 +1558,14 @@
"name": "tests/unit/plugins/lookup/test_lookup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0f4bd2558469d8be5036b738018662c766834dd896fee343d73ab44cbc7bfd26",
+ "chksum_sha256": "52844a4b1c249c9ac6ba1293a5b6b5eecc197c392abcb1c1186c6ef2d8526775",
"format": 1
},
{
"name": "tests/unit/plugins/lookup/test_lookup_as_dict.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42d50b12213c7628d55c32aab120cb6a12771b38a58de83fb2f6790b86e3f632",
+ "chksum_sha256": "de29a0de2e69e53fb55308040a6b2dfbe6fec419384c94fd71d62bf75892cc8c",
"format": 1
},
{
@@ -2013,7 +2013,7 @@
"name": "CHANGELOG.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "236ee153699ee1da2a5c6e7b1e57a164440a01f7ef9b56eab1cd129f74d118cd",
+ "chksum_sha256": "9e369f1194b9856dd769abce53e7c1a10a8013cf66391b876b1382f82f394b71",
"format": 1
},
{
@@ -2027,7 +2027,7 @@
"name": "CHANGELOG.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "32ca4e6137d4ce217253df980ee8b45c0649e37c17b841ad3a43248c59ba4b4f",
+ "chksum_sha256": "22602707446622bf1e691bec64de6428ef126d905677e214a04f3c01557b1f2f",
"format": 1
},
{
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/community/dns/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/MANIFEST.json 2025-08-18 18:26:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/MANIFEST.json 2025-08-31 13:19:00.000000000 +0000
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "community",
"name": "dns",
- "version": "3.3.1",
+ "version": "3.3.2",
"authors": [
"Felix Fontein (github.com/felixfontein)",
"Markus Bergholz (github.com/markuman)"
@@ -32,7 +32,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42184188f0815de991c1052b3f912504ad4660bd76487c888186b5d4b7842074",
+ "chksum_sha256": "a5524d8a893633fcb62ed91799146799fe3359f43744d492937ceecf6b919b82",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/changelogs/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/community/dns/changelogs/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/changelogs/changelog.yaml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/changelogs/changelog.yaml 2025-08-31 13:16:19.000000000 +0000
@@ -1103,3 +1103,16 @@
- 3.3.1.yml
- update-psl.yml
release_date: '2025-08-18'
+ 3.3.2:
+ changes:
+ bugfixes:
+ - Update Public Suffix List.
+ - various DNS lookup plugins and modules - improve handling of invalid nameserver
+ IPs/names (https://github.com/ansible-collections/community.dns/issues/282,
+ https://github.com/ansible-collections/community.dns/pull/284).
+ release_summary: Bugfix and maintenance release with updated PSL.
+ fragments:
+ - 284-invalid-nameserver.yml
+ - 3.3.2.yml
+ - update-psl.yml
+ release_date: '2025-08-31'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/lookup.py ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/lookup.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/lookup.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/lookup.py 2025-08-31 13:16:19.000000000 +0000
@@ -152,6 +152,7 @@
try:
import dns.resolver
from dns.rdatatype import RdataType
+ from dns.resolver import NXDOMAIN
except ImportError:
# handled by assert_requirements_present_dnspython
pass
@@ -198,7 +199,13 @@
def _get_resolver(
resolver: SimpleResolver, server: str
) -> t.Callable[[], list[str]]:
- return lambda: resolver.resolve_addresses(server)
+ def f():
+ try:
+ return resolver.resolve_addresses(server)
+ except NXDOMAIN as exc:
+ raise AnsibleLookupError(f"Nameserver {server} does not exist ({exc})")
+
+ return f
def run(
self, terms: list[t.Any], variables: t.Any | None = None, **kwargs: t.Any
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/lookup_as_dict.py ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/lookup_as_dict.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/lookup_as_dict.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/lookup_as_dict.py 2025-08-31 13:16:19.000000000 +0000
@@ -442,6 +442,7 @@
try:
import dns.resolver
from dns.rdatatype import RdataType
+ from dns.resolver import NXDOMAIN
except ImportError:
# handled by assert_requirements_present_dnspython
pass
@@ -486,7 +487,13 @@
def _get_resolver(
resolver: SimpleResolver, server: str
) -> t.Callable[[], list[str]]:
- return lambda: resolver.resolve_addresses(server)
+ def f():
+ try:
+ return resolver.resolve_addresses(server)
+ except NXDOMAIN as exc:
+ raise AnsibleLookupError(f"Nameserver {server} does not exist ({exc})")
+
+ return f
def run(
self, terms: list[t.Any], variables: t.Any | None = None, **kwargs: t.Any
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/reverse_lookup.py ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/reverse_lookup.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/lookup/reverse_lookup.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/lookup/reverse_lookup.py 2025-08-31 13:16:19.000000000 +0000
@@ -95,6 +95,7 @@
try:
import dns.resolver
from dns.rdatatype import RdataType
+ from dns.resolver import NXDOMAIN
except ImportError:
# handled by assert_requirements_present_dnspython
pass
@@ -139,7 +140,13 @@
def _get_resolver(
resolver: SimpleResolver, server: str
) -> t.Callable[[], list[str]]:
- return lambda: resolver.resolve_addresses(server)
+ def f():
+ try:
+ return resolver.resolve_addresses(server)
+ except NXDOMAIN as exc:
+ raise AnsibleLookupError(f"Nameserver {server} does not exist ({exc})")
+
+ return f
def run(
self, terms: list[t.Any], variables: t.Any | None = None, **kwargs: t.Any
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/module_utils/resolver.py ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/module_utils/resolver.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/module_utils/resolver.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/module_utils/resolver.py 2025-08-31 13:16:19.000000000 +0000
@@ -18,6 +18,7 @@
try:
import dns
import dns.exception
+ import dns.inet
import dns.message
import dns.name
import dns.query
@@ -37,6 +38,10 @@
pass
+class InvalidInput(ResolverError):
+ pass
+
+
class _Resolve(object):
def __init__(self, timeout=10, timeout_retries=3, servfail_retries=0):
self.timeout = timeout
@@ -173,6 +178,12 @@
if not nameserver_ips:
raise ResolverError('Have neither nameservers nor nameserver IPs')
+ # Sanity check: do we have a valid nameserver IP?
+ try:
+ dns.inet.af_for_address(nameserver_ips[0])
+ except ValueError:
+ raise InvalidInput("Invalid nameserver IP address {0}".format(nameserver_ips[0]))
+
query = dns.message.make_query(target, dns.rdatatype.NS)
retry = 0
while True:
@@ -304,6 +315,14 @@
kwargs = {}
try:
return runner()
+ except InvalidInput as e:
+ if generate_additional_results is not None:
+ kwargs = generate_additional_results()
+ module.fail_json(
+ msg='Invalid input{0}: {1}'.format(suffix, to_native(e)),
+ exception=traceback.format_exc(),
+ **kwargs
+ )
except ResolverError as e:
if generate_additional_results is not None:
kwargs = generate_additional_results()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/public_suffix_list.dat ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/public_suffix_list.dat
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/plugins/public_suffix_list.dat 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/plugins/public_suffix_list.dat 2025-08-31 13:16:19.000000000 +0000
@@ -236,7 +236,7 @@
// au : https://www.iana.org/domains/root/db/au.html
// https://www.auda.org.au/
-// Confirmed by registry 2024-11-17
+// Confirmed by registry 2025-07-16
au
// 2LDs
asn.au
@@ -279,7 +279,7 @@
wa.gov.au
// 4LDs
// education.tas.edu.au - Removed at the request of the Department of Education Tasmania
-schools.nsw.edu.au
+// schools.nsw.edu.au - Removed at the request of the New South Wales Department of Education.
// aw : https://www.iana.org/domains/root/db/aw.html
aw
@@ -499,6 +499,7 @@
am.br
anani.br
aparecida.br
+api.br
app.br
arq.br
art.br
@@ -584,6 +585,7 @@
sp.gov.br
to.gov.br
gru.br
+ia.br
imb.br
ind.br
inf.br
@@ -644,6 +646,7 @@
sjc.br
slg.br
slz.br
+social.br
sorocaba.br
srv.br
taxi.br
@@ -660,6 +663,7 @@
vix.br
vlog.br
wiki.br
+xyz.br
zlg.br
// bs : http://www.nic.bs/rules.html
@@ -6169,95 +6173,94 @@
lib.dc.us
cc.de.us
cc.fl.us
+lib.fl.us
cc.ga.us
+lib.ga.us
cc.gu.us
+lib.gu.us
cc.hi.us
+lib.hi.us
cc.ia.us
+lib.ia.us
cc.id.us
+lib.id.us
cc.il.us
+lib.il.us
cc.in.us
+lib.in.us
cc.ks.us
+lib.ks.us
cc.ky.us
+lib.ky.us
cc.la.us
+lib.la.us
cc.ma.us
+lib.ma.us
cc.md.us
+lib.md.us
cc.me.us
+lib.me.us
cc.mi.us
+lib.mi.us
cc.mn.us
+lib.mn.us
cc.mo.us
+lib.mo.us
cc.ms.us
+lib.ms.us
cc.mt.us
+lib.mt.us
cc.nc.us
+lib.nc.us
cc.nd.us
+lib.nd.us
cc.ne.us
+lib.ne.us
cc.nh.us
+lib.nh.us
cc.nj.us
+lib.nj.us
cc.nm.us
+lib.nm.us
cc.nv.us
+lib.nv.us
cc.ny.us
+lib.ny.us
cc.oh.us
+lib.oh.us
cc.ok.us
+lib.ok.us
cc.or.us
+lib.or.us
cc.pa.us
+lib.pa.us
cc.pr.us
+lib.pr.us
cc.ri.us
+lib.ri.us
cc.sc.us
+lib.sc.us
cc.sd.us
+lib.sd.us
cc.tn.us
+lib.tn.us
cc.tx.us
+lib.tx.us
cc.ut.us
+lib.ut.us
cc.va.us
+lib.va.us
cc.vi.us
+lib.vi.us
cc.vt.us
+lib.vt.us
cc.wa.us
+lib.wa.us
cc.wi.us
+lib.wi.us
cc.wv.us
cc.wy.us
k12.wy.us
-// lib.de.us - Issue #243 - Moved to Private section at request of Ed Moore
-lib.fl.us
-lib.ga.us
-lib.gu.us
-lib.hi.us
-lib.ia.us
-lib.id.us
-lib.il.us
-lib.in.us
-lib.ks.us
-lib.ky.us
-lib.la.us
-lib.ma.us
-lib.md.us
-lib.me.us
-lib.mi.us
-lib.mn.us
-lib.mo.us
-lib.ms.us
-lib.mt.us
-lib.nc.us
-lib.nd.us
-lib.ne.us
-lib.nh.us
-lib.nj.us
-lib.nm.us
-lib.nv.us
-lib.ny.us
-lib.oh.us
-lib.ok.us
-lib.or.us
-lib.pa.us
-lib.pr.us
-lib.ri.us
-lib.sc.us
-lib.sd.us
-lib.tn.us
-lib.tx.us
-lib.ut.us
-lib.va.us
-lib.vi.us
-lib.vt.us
-lib.wa.us
-lib.wi.us
// lib.wv.us - Bug 941670 - Removed at request of Larry W Arnold
lib.wy.us
// k12.ma.us contains school districts in Massachusetts. The 4LDs are
@@ -6791,7 +6794,7 @@
// newGTLDs
-// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-07-16T15:22:08Z
+// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-08-27T15:19:08Z
// This list is auto-generated, don't edit it manually.
// aaa : American Automobile Association, Inc.
// https://www.iana.org/domains/root/db/aaa.html
@@ -9401,7 +9404,7 @@
// https://www.iana.org/domains/root/db/nowtv.html
nowtv
-// nra : NRA Holdings Company, INC.
+// nra : National Rifle Association of America
// https://www.iana.org/domains/root/db/nra.html
nra
@@ -9761,10 +9764,6 @@
// https://www.iana.org/domains/root/db/red.html
red
-// redstone : Redstone Haute Couture Co., Ltd.
-// https://www.iana.org/domains/root/db/redstone.html
-redstone
-
// redumbrella : Travelers TLD, LLC
// https://www.iana.org/domains/root/db/redumbrella.html
redumbrella
@@ -11255,10 +11254,6 @@
wroc.pl
zakopane.pl
-// .US
-// Submitted by Ed Moore
-lib.de.us
-
// 12CHARS : https://12chars.com
// Submitted by Kenny Niehage
12chars.dev
@@ -11271,7 +11266,7 @@
inf.ua
ltd.ua
-// 611 blockchain domain name system : https://611project.net/
+// 611 blockchain domain name system : https://sixone.one/
611.to
// A2 Hosting
@@ -14094,6 +14089,7 @@
// Jotelulu S.L. : https://jotelulu.com
// Submitted by Daniel Fariña
+jote.cloud
jotelulu.cloud
// JouwWeb B.V. : https://www.jouwweb.nl
@@ -15530,8 +15526,10 @@
temp-dns.com
// Supabase : https://supabase.io
-// Submitted by Inian Parameshwaran
+// Submitted by Supabase Security
supabase.co
+realtime.supabase.co
+storage.supabase.co
supabase.in
supabase.net
@@ -15804,6 +15802,10 @@
// Submitted by Masayuki Note
wafflecell.com
+// Walrus : https://walrus.xyz
+// Submitted by Max Spector
+wal.app
+
// Webflow, Inc. : https://www.webflow.com
// Submitted by Webflow Security Team
webflow.io
@@ -15856,6 +15858,8 @@
// William Harrison : https://wharrison.com.au
// Submitted by William Harrison
wdh.app
+hrsn.au
+vps.hrsn.au
hrsn.dev
// Windsurf : https://windsurf.com
@@ -15922,6 +15926,7 @@
yandexcloud.net
storage.yandexcloud.net
website.yandexcloud.net
+sourcecraft.site
// YesCourse Pty Ltd : https://yescourse.com
// Submitted by Atul Bhouraskar
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -24,3 +24,17 @@
- ansible_txt | length > 0
- ansible_txt[0] is string
- ansible_empty | length == 0
+
+- name: Test with invalid nameserver IP
+ ansible.builtin.set_fact:
+ broken: >-
+ {{ query('community.dns.lookup', 'www.ansible.com', type='A', server='999.999.999.999') }}
+ register: result
+ ignore_errors: true
+
+- name: Check results
+ assert:
+ that:
+ - result is failed
+ - >-
+ "Nameserver 999.999.999.999 does not exist" in result.msg
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -29,3 +29,17 @@
- ansible_txt[0].value is string
- ansible_txt | map(attribute='strings') | map('join') | list == ansible_txt | map(attribute='value') | list
- ansible_empty | length == 0
+
+- name: Test with invalid nameserver IP
+ ansible.builtin.set_fact:
+ broken: >-
+ {{ query('community.dns.lookup_as_dict', 'www.ansible.com', type='A', server='999.999.999.999') }}
+ register: result
+ ignore_errors: true
+
+- name: Check results
+ assert:
+ that:
+ - result is failed
+ - >-
+ "Nameserver 999.999.999.999 does not exist" in result.msg
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_reverse_lookup/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_reverse_lookup/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_reverse_lookup/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/lookup_reverse_lookup/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -21,3 +21,17 @@
- ansible_aaaa == ['dns.quad9.net.']
- ansible_both == ['dns9.quad9.net.', 'dns.quad9.net.']
- ansible_via_other == ['dns9.quad9.net.']
+
+- name: Test with invalid nameserver IP
+ ansible.builtin.set_fact:
+ broken: >-
+ {{ query('community.dns.reverse_lookup', '9.9.9.9', server='999.999.999.999') }}
+ register: result
+ ignore_errors: true
+
+- name: Check results
+ assert:
+ that:
+ - result is failed
+ - >-
+ "Nameserver 999.999.999.999 does not exist" in result.msg
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -15,7 +15,7 @@
msg: '{{ result }}'
- name: Validate results
- assert:
+ ansible.builtin.assert:
that:
- result.results[0].nameservers[0] in ['n0cn.akamaitech.net.', 'n0dscr.akamai.net.', 'a.iana-servers.net.']
- result.results[0].nameservers[1] in ['n1cn.akamaitech.net.', 'n1dscr.akamai.net.', 'b.iana-servers.net.']
@@ -40,7 +40,7 @@
msg: '{{ result }}'
- name: Validate results
- assert:
+ ansible.builtin.assert:
that:
- result.results[0].nameservers[0] in ['n0cn.akamaitech.net.', 'n0dscr.akamai.net.', 'a.iana-servers.net.']
- result.results[0].nameservers[1] in ['n1cn.akamaitech.net.', 'n1dscr.akamai.net.', 'b.iana-servers.net.']
@@ -56,7 +56,23 @@
msg: '{{ result }}'
- name: Validate results
- assert:
+ ansible.builtin.assert:
that:
- result.results[0].nameservers[0] in ['n0cn.akamaitech.net.', 'n0dscr.akamai.net.', 'a.iana-servers.net.']
- result.results[0].nameservers[1] in ['n1cn.akamaitech.net.', 'n1dscr.akamai.net.', 'b.iana-servers.net.']
+
+- name: Test with invalid nameserver IP
+ community.dns.nameserver_info:
+ name:
+ - example.com
+ server:
+ - 999.999.999.999
+ register: result
+ ignore_errors: true
+
+- name: Validate results
+ ansible.builtin.assert:
+ that:
+ - result is failed
+ - >-
+ result.msg == "Invalid input: Invalid nameserver IP address 999.999.999.999"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -16,7 +16,7 @@
msg: '{{ result }}'
- name: Validate results
- assert:
+ ansible.builtin.assert:
that:
- result.results[0].result[0].nameserver in ['n0cn.akamaitech.net.', 'n0dscr.akamai.net.', 'a.iana-servers.net.']
- result.results[0].result[1].nameserver in ['n1cn.akamaitech.net.', 'n1dscr.akamai.net.', 'b.iana-servers.net.']
@@ -42,7 +42,24 @@
msg: '{{ result }}'
- name: Validate results
- assert:
+ ansible.builtin.assert:
that:
- result.results[0].result[0].nameserver in ['n0cn.akamaitech.net.', 'n0dscr.akamai.net.', 'a.iana-servers.net.']
- result.results[0].result[1].nameserver in ['n1cn.akamaitech.net.', 'n1dscr.akamai.net.', 'b.iana-servers.net.']
+
+- name: Test with invalid nameserver IP
+ community.dns.nameserver_record_info:
+ name:
+ - example.com
+ type: A
+ server:
+ - 999.999.999.999
+ register: result
+ ignore_errors: true
+
+- name: Validate results
+ ansible.builtin.assert:
+ that:
+ - result is failed
+ - >-
+ result.msg == "Invalid input: Invalid nameserver IP address 999.999.999.999"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml 2025-08-31 13:16:19.000000000 +0000
@@ -71,3 +71,21 @@
- timeout.records[0].done == false
- "'values' in timeout.records[0]"
- timeout.records[0].check_count == 1
+
+- name: Test with invalid nameserver IP
+ community.dns.wait_for_txt:
+ records:
+ - name: github.com
+ # random digits generated by https://www.random.org/
+ values: x9717627475397185312575692320809591701005198751588993668249007340758823426405452359342719842260291210
+ server:
+ - 999.999.999.999
+ register: result
+ ignore_errors: true
+
+- name: Validate results
+ ansible.builtin.assert:
+ that:
+ - result is failed
+ - >-
+ result.msg == "Invalid input: Invalid nameserver IP address 999.999.999.999"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/sanity/ignore-2.20.txt ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/sanity/ignore-2.20.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/sanity/ignore-2.20.txt 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/sanity/ignore-2.20.txt 2025-08-31 13:16:19.000000000 +0000
@@ -1,2 +1,7 @@
+plugins/module_utils/conversion/converter.py pylint:ansible-bad-import-from
+plugins/module_utils/dnspython_records.py pylint:ansible-bad-import-from
+plugins/module_utils/hosttech/wsdl_api.py pylint:ansible-bad-import-from
+plugins/module_utils/http.py pylint:ansible-bad-import-from
+plugins/module_utils/wsdl.py pylint:ansible-bad-import-from
plugins/plugin_utils/inventory/records.py no-assert # The asserts are mainly needed for type inference
plugins/public_suffix_list.dat no-smart-quotes
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup.py ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup.py 2025-08-31 13:16:19.000000000 +0000
@@ -575,7 +575,7 @@
print(exc.value.args[0])
assert (
exc.value.args[0]
- == "Unexpected DNS error for ns.example.com: The DNS query name does not exist: ns.example.com."
+ == "Nameserver ns.example.com does not exist (The DNS query name does not exist: ns.example.com.)"
)
def test_server_resolve_servfail(self) -> None:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup_as_dict.py ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup_as_dict.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup_as_dict.py 2025-08-18 18:23:19.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/dns/tests/unit/plugins/lookup/test_lookup_as_dict.py 2025-08-31 13:16:19.000000000 +0000
@@ -551,7 +551,7 @@
print(exc.value.args[0])
assert (
exc.value.args[0]
- == "Unexpected DNS error for ns.example.com: The DNS query name does not exist: ns.example.com."
+ == "Nameserver ns.example.com does not exist (The DNS query name does not exist: ns.example.com.)"
)
def test_server_resolve_servfail(self) -> None:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/.github/workflows/nox.yml ansible-12.0.0+dfsg/ansible_collections/community/routeros/.github/workflows/nox.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/.github/workflows/nox.yml 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/.github/workflows/nox.yml 2025-08-31 19:10:38.000000000 +0000
@@ -21,7 +21,7 @@
name: "Run extra sanity tests"
steps:
- name: Check out collection
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
persist-credentials: false
- name: Run nox
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/CHANGELOG.md ansible-12.0.0+dfsg/ansible_collections/community/routeros/CHANGELOG.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/CHANGELOG.md 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/CHANGELOG.md 2025-08-31 19:10:38.000000000 +0000
@@ -2,163 +2,167 @@
**Topics**
-- v3\.9\.0
+- v3\.10\.0
- Release Summary
- Minor Changes
- Bugfixes
-- v3\.8\.1
+- v3\.9\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v3\.8\.0
+- v3\.8\.1
- Release Summary
- - Minor Changes
-- v3\.7\.0
+ - Bugfixes
+- v3\.8\.0
- Release Summary
- Minor Changes
-- v3\.6\.0
+- v3\.7\.0
- Release Summary
- Minor Changes
-- v3\.5\.0
+- v3\.6\.0
- Release Summary
- Minor Changes
-- v3\.4\.0
+- v3\.5\.0
- Release Summary
- Minor Changes
- - Bugfixes
-- v3\.3\.0
+- v3\.4\.0
- Release Summary
- Minor Changes
-- v3\.2\.0
+ - Bugfixes
+- v3\.3\.0
- Release Summary
- Minor Changes
-- v3\.1\.0
+- v3\.2\.0
- Release Summary
- Minor Changes
- - Bugfixes
-- v3\.0\.0
+- v3\.1\.0
- Release Summary
+ - Minor Changes
+ - Bugfixes
+- v3\.0\.0
+ - Release Summary
- Breaking Changes / Porting Guide
- Removed Features \(previously deprecated\)
- v2\.20\.0
- - Release Summary
- - Minor Changes
-- v2\.19\.0
- Release Summary
- Minor Changes
-- v2\.18\.0
+- v2\.19\.0
- Release Summary
- Minor Changes
- - Deprecated Features
- - Bugfixes
-- v2\.17\.0
+- v2\.18\.0
- Release Summary
- Minor Changes
-- v2\.16\.0
+ - Deprecated Features
+ - Bugfixes
+- v2\.17\.0
- Release Summary
- Minor Changes
-- v2\.15\.0
+- v2\.16\.0
- Release Summary
- Minor Changes
-- v2\.14\.0
+- v2\.15\.0
- Release Summary
- Minor Changes
-- v2\.13\.0
+- v2\.14\.0
- Release Summary
- Minor Changes
- - Bugfixes
-- v2\.12\.0
+- v2\.13\.0
- Release Summary
- Minor Changes
-- v2\.11\.0
+ - Bugfixes
+- v2\.12\.0
- Release Summary
- Minor Changes
-- v2\.10\.0
+- v2\.11\.0
- Release Summary
- Minor Changes
- - Bugfixes
-- v2\.9\.0
+- v2\.10\.0
- Release Summary
- Minor Changes
- Bugfixes
-- v2\.8\.3
+- v2\.9\.0
- Release Summary
+ - Minor Changes
+ - Bugfixes
+- v2\.8\.3
+ - Release Summary
- Known Issues
- v2\.8\.2
- - Release Summary
- - Bugfixes
-- v2\.8\.1
- Release Summary
- Bugfixes
-- v2\.8\.0
+- v2\.8\.1
- Release Summary
- - Minor Changes
- Bugfixes
-- v2\.7\.0
+- v2\.8\.0
- Release Summary
- Minor Changes
- Bugfixes
-- v2\.6\.0
+- v2\.7\.0
- Release Summary
- Minor Changes
- Bugfixes
-- v2\.5\.0
+- v2\.6\.0
- Release Summary
- Minor Changes
- Bugfixes
-- v2\.4\.0
+- v2\.5\.0
- Release Summary
- Minor Changes
- Bugfixes
+- v2\.4\.0
+ - Release Summary
+ - Minor Changes
+ - Bugfixes
- Known Issues
- v2\.3\.1
- - Release Summary
+ - Release Summary
- Known Issues
- v2\.3\.0
- - Release Summary
- - Minor Changes
- - Bugfixes
-- v2\.2\.1
- Release Summary
+ - Minor Changes
- Bugfixes
-- v2\.2\.0
+- v2\.2\.1
- Release Summary
- - Minor Changes
- Bugfixes
- - New Modules
-- v2\.1\.0
+- v2\.2\.0
- Release Summary
- Minor Changes
- Bugfixes
- - New Modules
-- v2\.0\.0
+ - New Modules
+- v2\.1\.0
- Release Summary
- Minor Changes
- - Breaking Changes / Porting Guide
- Bugfixes
- - New Plugins
- - Filter
-- v1\.2\.0
+ - New Modules
+- v2\.0\.0
- Release Summary
- Minor Changes
+ - Breaking Changes / Porting Guide
- Bugfixes
-- v1\.1\.0
+ - New Plugins
+ - Filter
+- v1\.2\.0
- Release Summary
- Minor Changes
-- v1\.0\.1
- - Release Summary
- Bugfixes
-- v1\.0\.0
+- v1\.1\.0
+ - Release Summary
+ - Minor Changes
+- v1\.0\.1
- Release Summary
- Bugfixes
-- v0\.1\.1
+- v1\.0\.0
- Release Summary
- Bugfixes
-- v0\.1\.0
+- v0\.1\.1
- Release Summary
- - Minor Changes
+ - Bugfixes
+- v0\.1\.0
+ - Release Summary
+ - Minor Changes
-
-## v3\.9\.0
+
+## v3\.10\.0
### Release Summary
@@ -168,13 +172,40 @@
### Minor Changes
+* api\_info\, api\_modify \- add show\-at\-cli\-login property in system note \([https\://github\.com/ansible\-collections/community\.routeros/pull/392](https\://github\.com/ansible\-collections/community\.routeros/pull/392)\)\.
+* api\_info\, api\_modify \- set default value for include and exclude properties in system note to an empty string \([https\://github\.com/ansible\-collections/community\.routeros/pull/394](https\://github\.com/ansible\-collections/community\.routeros/pull/394)\)\.
+
+
+### Bugfixes
+
+* api\_facts \- also report interfaces that are inferred only by reference by IP addresses\.
+ RouterOS\'s APIs have IPv4 and IPv6 addresses point at interfaces by their name\, which can
+ change over time and in\-between API calls\, such that interfaces may have been enumerated
+ under another name\, or not at all \(for example when removed\)\. Such interfaces are now reported
+ under their new or temporary name and with a synthetic type property set to differentiate
+ the more likely and positively confirmed removal case \(with type\: \"ansible\:unknown\"\) from
+ the unlikely and probably transient naming mismatch \(with type\: \"ansible\:mismatch\"\)\.
+ Previously\, the api\_facts module would have crashed with a KeyError exception
+ \([https\://github\.com/ansible\-collections/community\.routeros/pull/391](https\://github\.com/ansible\-collections/community\.routeros/pull/391)\)\.
+
+
+## v3\.9\.0
+
+
+### Release Summary
+
+Bugfix and feature release\.
+
+
+### Minor Changes
+
* api\_info\, api modify \- add remote\-log\-format\, remote\-protocol\, and event\-delimiter to system logging action \([https\://github\.com/ansible\-collections/community\.routeros/pull/381](https\://github\.com/ansible\-collections/community\.routeros/pull/381)\)\.
* api\_info\, api\_modify \- add disable\-link\-local\-address and stale\-neighbor\-timeout fields to ipv6 settings \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
* api\_info\, api\_modify \- adjust neighbor limit fields in ipv6 settings to match RouterOS 7\.18 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/380](https\://github\.com/ansible\-collections/community\.routeros/pull/380)\)\.
* api\_info\, api\_modify \- set passthrough default in ip firewall mangle to true for RouterOS 7\.19 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/382](https\://github\.com/ansible\-collections/community\.routeros/pull/382)\)\.
* api\_info\, api\_modify \- since RouterOS 7\.17 VRF is supported for OVPN server\. It now supports multiple entries\, while api\_modify so far only accepted a single entry\. The interface ovpn\-server server path now allows multiple entries on RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/383](https\://github\.com/ansible\-collections/community\.routeros/pull/383)\)\.
-
+
### Bugfixes
* routeros terminal plugin \- fix terminal\_stdout\_re pattern to handle long system identities when connecting to RouterOS through SSH \([https\://github\.com/ansible\-collections/community\.routeros/pull/386](https\://github\.com/ansible\-collections/community\.routeros/pull/386)\)\.
@@ -182,12 +213,12 @@
## v3\.8\.1
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* facts and api\_facts modules \- prevent deprecation warnings when used with ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.routeros/pull/384](https\://github\.com/ansible\-collections/community\.routeros/pull/384)\)\.
@@ -195,12 +226,12 @@
## v3\.8\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add interface ethernet switch port\-isolation which is supported since RouterOS 6\.43 \([https\://github\.com/ansible\-collections/community\.routeros/pull/375](https\://github\.com/ansible\-collections/community\.routeros/pull/375)\)\.
@@ -211,12 +242,12 @@
## v3\.7\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_find\_and\_modify \- allow to control whether dynamic and/or builtin entries are ignored with the new ignore\_dynamic and ignore\_builtin options \([https\://github\.com/ansible\-collections/community\.routeros/issues/372](https\://github\.com/ansible\-collections/community\.routeros/issues/372)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/373](https\://github\.com/ansible\-collections/community\.routeros/pull/373)\)\.
@@ -225,12 +256,12 @@
## v3\.6\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add mdns\-repeat\-ifaces to ip dns for RouterOS 7\.16 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/358](https\://github\.com/ansible\-collections/community\.routeros/pull/358)\)\.
@@ -240,12 +271,12 @@
## v3\.5\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- change default for /ip/cloud/ddns\-enabled for RouterOS 7\.17 and newer from yes to auto \([https\://github\.com/ansible\-collections/community\.routeros/pull/350](https\://github\.com/ansible\-collections/community\.routeros/pull/350)\)\.
@@ -253,17 +284,17 @@
## v3\.4\.0
-
+
### Release Summary
Feature and bugfix release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add support for the ip dns forwarders path implemented by RouterOS 7\.17 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/343](https\://github\.com/ansible\-collections/community\.routeros/pull/343)\)\.
-
+
### Bugfixes
* api\_info\, api\_modify \- remove the primary key action from the interface wifi provisioning path\, since RouterOS also allows to create completely duplicate entries \([https\://github\.com/ansible\-collections/community\.routeros/issues/344](https\://github\.com/ansible\-collections/community\.routeros/issues/344)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/345](https\://github\.com/ansible\-collections/community\.routeros/pull/345)\)\.
@@ -271,12 +302,12 @@
## v3\.3\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add missing attribute require\-message\-auth for the radius path which exists since RouterOS version 7\.15 \([https\://github\.com/ansible\-collections/community\.routeros/issues/338](https\://github\.com/ansible\-collections/community\.routeros/issues/338)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/339](https\://github\.com/ansible\-collections/community\.routeros/pull/339)\)\.
@@ -287,12 +318,12 @@
## v3\.2\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add support for the routing filter community\-list path implemented by RouterOS 7 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/331](https\://github\.com/ansible\-collections/community\.routeros/pull/331)\)\.
@@ -300,17 +331,17 @@
## v3\.1\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add missing fields comment\, next\-pool to ip pool path \([https\://github\.com/ansible\-collections/community\.routeros/pull/327](https\://github\.com/ansible\-collections/community\.routeros/pull/327)\)\.
-
+
### Bugfixes
* api\_info\, api\_modify \- fields log and log\-prefix in paths ip firewall filter\, ip firewall mangle\, ip firewall nat\, ip firewall raw now have the correct default values \([https\://github\.com/ansible\-collections/community\.routeros/pull/324](https\://github\.com/ansible\-collections/community\.routeros/pull/324)\)\.
@@ -318,7 +349,7 @@
## v3\.0\.0
-
+
### Release Summary
Major release that drops support for End of Life Python versions and fixes check mode for community\.routeros\.command\.
@@ -336,12 +367,12 @@
## v2\.20\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add new parameters from the RouterOS 7\.16 release \([https\://github\.com/ansible\-collections/community\.routeros/pull/323](https\://github\.com/ansible\-collections/community\.routeros/pull/323)\)\.
@@ -352,12 +383,12 @@
## v2\.19\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add support for the ip dns adlist path implemented by RouterOS 7\.15 and newer \([https\://github\.com/ansible\-collections/community\.routeros/pull/310](https\://github\.com/ansible\-collections/community\.routeros/pull/310)\)\.
@@ -369,12 +400,12 @@
## v2\.18\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info \- allow to restrict the output by limiting fields to specific values with the new restrict option \([https\://github\.com/ansible\-collections/community\.routeros/pull/305](https\://github\.com/ansible\-collections/community\.routeros/pull/305)\)\.
@@ -390,7 +421,7 @@
* The collection deprecates support for all Ansible/ansible\-base/ansible\-core versions that are currently End of Life\, [according to the ansible\-core support matrix](https\://docs\.ansible\.com/ansible\-core/devel/reference\_appendices/release\_and\_maintenance\.html\#ansible\-core\-support\-matrix)\. This means that the next major release of the collection will no longer support Ansible 2\.9\, ansible\-base 2\.10\, ansible\-core 2\.11\, ansible\-core 2\.12\, ansible\-core 2\.13\, and ansible\-core 2\.14\.
-
+
### Bugfixes
* api\_modify\, api\_info \- change the default of ingress\-filtering in paths interface bridge and interface bridge port back to false for RouterOS before version 7 \([https\://github\.com/ansible\-collections/community\.routeros/pull/305](https\://github\.com/ansible\-collections/community\.routeros/pull/305)\)\.
@@ -398,12 +429,12 @@
## v2\.17\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add system health settings path \([https\://github\.com/ansible\-collections/community\.routeros/pull/294](https\://github\.com/ansible\-collections/community\.routeros/pull/294)\)\.
@@ -413,12 +444,12 @@
## v2\.16\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add missing path /ppp secret \([https\://github\.com/ansible\-collections/community\.routeros/pull/286](https\://github\.com/ansible\-collections/community\.routeros/pull/286)\)\.
@@ -427,12 +458,12 @@
## v2\.15\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- Add RouterOS 7\.x support to /mpls ldp path \([https\://github\.com/ansible\-collections/community\.routeros/pull/271](https\://github\.com/ansible\-collections/community\.routeros/pull/271)\)\.
@@ -449,12 +480,12 @@
## v2\.14\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add read\-only fields installed\-version\, latest\-version and status in system package update \([https\://github\.com/ansible\-collections/community\.routeros/pull/263](https\://github\.com/ansible\-collections/community\.routeros/pull/263)\)\.
@@ -464,18 +495,18 @@
## v2\.13\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- make path user group modifiable and add comment attribute \([https\://github\.com/ansible\-collections/community\.routeros/issues/256](https\://github\.com/ansible\-collections/community\.routeros/issues/256)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/257](https\://github\.com/ansible\-collections/community\.routeros/pull/257)\)\.
* api\_modify\, api\_info \- add support for the ip vrf path in RouterOS 7 \([https\://github\.com/ansible\-collections/community\.routeros/pull/259](https\://github\.com/ansible\-collections/community\.routeros/pull/259)\)
-
+
### Bugfixes
* facts \- fix date not getting removed for idempotent config export \([https\://github\.com/ansible\-collections/community\.routeros/pull/262](https\://github\.com/ansible\-collections/community\.routeros/pull/262)\)\.
@@ -483,12 +514,12 @@
## v2\.12\.0
-
+
### Release Summary
Feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add interface ovpn\-client path \([https\://github\.com/ansible\-collections/community\.routeros/issues/242](https\://github\.com/ansible\-collections/community\.routeros/issues/242)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/244](https\://github\.com/ansible\-collections/community\.routeros/pull/244)\)\.
@@ -502,12 +533,12 @@
## v2\.11\.0
-
+
### Release Summary
Feature and bugfix release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add missing DoH parameters doh\-max\-concurrent\-queries\, doh\-max\-server\-connections\, and doh\-timeout to the ip dns path \([https\://github\.com/ansible\-collections/community\.routeros/issues/230](https\://github\.com/ansible\-collections/community\.routeros/issues/230)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/235](https\://github\.com/ansible\-collections/community\.routeros/pull/235)\)
@@ -522,12 +553,12 @@
## v2\.10\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_info \- add new include\_read\_only option to select behavior for read\-only values\. By default these are not returned \([https\://github\.com/ansible\-collections/community\.routeros/pull/213](https\://github\.com/ansible\-collections/community\.routeros/pull/213)\)\.
@@ -551,7 +582,7 @@
* api\_modify \- add new handle\_read\_only and handle\_write\_only options to handle the module\'s behavior for read\-only and write\-only fields \([https\://github\.com/ansible\-collections/community\.routeros/pull/213](https\://github\.com/ansible\-collections/community\.routeros/pull/213)\)\.
* api\_modify\, api\_info \- support API paths routing id\, routing bgp connection \([https\://github\.com/ansible\-collections/community\.routeros/pull/220](https\://github\.com/ansible\-collections/community\.routeros/pull/220)\)\.
-
+
### Bugfixes
* api\_info\, api\_modify \- in the snmp path\, ensure that engine\-id\-suffix is only available on RouterOS 7\.10\+\, and that engine\-id is read\-only on RouterOS 7\.10\+ \([https\://github\.com/ansible\-collections/community\.routeros/issues/208](https\://github\.com/ansible\-collections/community\.routeros/issues/208)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/218](https\://github\.com/ansible\-collections/community\.routeros/pull/218)\)\.
@@ -559,18 +590,18 @@
## v2\.9\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- add path caps\-man channel and enable path caps\-man manager interface \([https\://github\.com/ansible\-collections/community\.routeros/issues/193](https\://github\.com/ansible\-collections/community\.routeros/issues/193)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/194](https\://github\.com/ansible\-collections/community\.routeros/pull/194)\)\.
* api\_info\, api\_modify \- add path ip traffic\-flow target \([https\://github\.com/ansible\-collections/community\.routeros/issues/191](https\://github\.com/ansible\-collections/community\.routeros/issues/191)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/192](https\://github\.com/ansible\-collections/community\.routeros/pull/192)\)\.
-
+
### Bugfixes
* api\_modify\, api\_info \- add missing parameter engine\-id\-suffix for the snmp path \([https\://github\.com/ansible\-collections/community\.routeros/issues/189](https\://github\.com/ansible\-collections/community\.routeros/issues/189)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/190](https\://github\.com/ansible\-collections/community\.routeros/pull/190)\)\.
@@ -578,7 +609,7 @@
## v2\.8\.3
-
+
### Release Summary
Maintenance release with updated documentation\.
@@ -599,12 +630,12 @@
## v2\.8\.2
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* api\_modify\, api\_info \- add missing parameter tls for the tool e\-mail path \([https\://github\.com/ansible\-collections/community\.routeros/issues/179](https\://github\.com/ansible\-collections/community\.routeros/issues/179)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/180](https\://github\.com/ansible\-collections/community\.routeros/pull/180)\)\.
@@ -612,12 +643,12 @@
## v2\.8\.1
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* facts \- do not crash in CLI output preprocessing in unexpected situations during line unwrapping \([https\://github\.com/ansible\-collections/community\.routeros/issues/170](https\://github\.com/ansible\-collections/community\.routeros/issues/170)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/177](https\://github\.com/ansible\-collections/community\.routeros/pull/177)\)\.
@@ -625,12 +656,12 @@
## v2\.8\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_modify \- adapt data for API paths ip dhcp\-server network \([https\://github\.com/ansible\-collections/community\.routeros/pull/156](https\://github\.com/ansible\-collections/community\.routeros/pull/156)\)\.
@@ -640,7 +671,7 @@
* api\_modify \- support API paths ip firewall layer7\-protocol \([https\://github\.com/ansible\-collections/community\.routeros/pull/153](https\://github\.com/ansible\-collections/community\.routeros/pull/153)\)\.
* command \- workaround for extra characters in stdout in RouterOS versions between 6\.49 and 7\.1\.5 \([https\://github\.com/ansible\-collections/community\.routeros/issues/62](https\://github\.com/ansible\-collections/community\.routeros/issues/62)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/161](https\://github\.com/ansible\-collections/community\.routeros/pull/161)\)\.
-
+
### Bugfixes
* api\_info\, api\_modify \- fix default and remove behavior for dhcp\-options in path ip dhcp\-client \([https\://github\.com/ansible\-collections/community\.routeros/issues/148](https\://github\.com/ansible\-collections/community\.routeros/issues/148)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/154](https\://github\.com/ansible\-collections/community\.routeros/pull/154)\)\.
@@ -650,17 +681,17 @@
## v2\.7\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* api\_modify\, api\_info \- support API paths ip arp\, ip firewall raw\, ipv6 firewall raw \([https\://github\.com/ansible\-collections/community\.routeros/pull/144](https\://github\.com/ansible\-collections/community\.routeros/pull/144)\)\.
-
+
### Bugfixes
* api\_modify\, api\_info \- defaults corrected for fields in interface wireguard peers API path \([https\://github\.com/ansible\-collections/community\.routeros/pull/144](https\://github\.com/ansible\-collections/community\.routeros/pull/144)\)\.
@@ -668,18 +699,18 @@
## v2\.6\.0
-
+
### Release Summary
Regular bugfix and feature release\.
-
+
### Minor Changes
* api\_modify\, api\_info \- add field regexp to ip dns static \([https\://github\.com/ansible\-collections/community\.routeros/issues/141](https\://github\.com/ansible\-collections/community\.routeros/issues/141)\)\.
* api\_modify\, api\_info \- support API paths interface wireguard\, interface wireguard peers \([https\://github\.com/ansible\-collections/community\.routeros/pull/143](https\://github\.com/ansible\-collections/community\.routeros/pull/143)\)\.
-
+
### Bugfixes
* api\_modify \- do not use name as a unique key in ip dns static \([https\://github\.com/ansible\-collections/community\.routeros/issues/141](https\://github\.com/ansible\-collections/community\.routeros/issues/141)\)\.
@@ -688,17 +719,17 @@
## v2\.5\.0
-
+
### Release Summary
Feature and bugfix release\.
-
+
### Minor Changes
* api\_info\, api\_modify \- support API paths interface ethernet poe\, interface gre6\, interface vrrp and also support all previously missing fields of entries in ip dhcp\-server \([https\://github\.com/ansible\-collections/community\.routeros/pull/137](https\://github\.com/ansible\-collections/community\.routeros/pull/137)\)\.
-
+
### Bugfixes
* api\_modify \- address\-pool field of entries in API path ip dhcp\-server is not required anymore \([https\://github\.com/ansible\-collections/community\.routeros/pull/137](https\://github\.com/ansible\-collections/community\.routeros/pull/137)\)\.
@@ -706,12 +737,12 @@
## v2\.4\.0
-
+
### Release Summary
Feature release improving the api\* modules\.
-
+
### Minor Changes
* api\* modules \- Add new option force\_no\_cert to connect with ADH ciphers \([https\://github\.com/ansible\-collections/community\.routeros/pull/124](https\://github\.com/ansible\-collections/community\.routeros/pull/124)\)\.
@@ -732,7 +763,7 @@
* api\_modify\, api\_info \- support for fields blackhole\, pref\-src\, routing\-table\, suppress\-hw\-offload\, type\, vrf\-interface in ip route path \([https\://github\.com/ansible\-collections/community\.routeros/pull/131](https\://github\.com/ansible\-collections/community\.routeros/pull/131)\)\.
* api\_modify\, api\_info \- support paths system ntp client servers and system ntp server available in ROS7\, as well as new fields servers\, mode\, and vrf for system ntp client \([https\://github\.com/ansible\-collections/community\.routeros/pull/122](https\://github\.com/ansible\-collections/community\.routeros/pull/122)\)\.
-
+
### Bugfixes
* api\_modify \- ip route entry can be defined without the need of gateway field\, which is correct for unreachable/blackhole type of routes \([https\://github\.com/ansible\-collections/community\.routeros/pull/131](https\://github\.com/ansible\-collections/community\.routeros/pull/131)\)\.
@@ -750,7 +781,7 @@
## v2\.3\.1
-
+
### Release Summary
Maintenance release with improved documentation\.
@@ -763,19 +794,19 @@
## v2\.3\.0
-
+
### Release Summary
Feature and bugfix release\.
-
+
### Minor Changes
* The collection repository conforms to the [REUSE specification](https\://reuse\.software/spec/) except for the changelog fragments \([https\://github\.com/ansible\-collections/community\.routeros/pull/108](https\://github\.com/ansible\-collections/community\.routeros/pull/108)\)\.
* api\* modules \- added timeout parameter \([https\://github\.com/ansible\-collections/community\.routeros/pull/109](https\://github\.com/ansible\-collections/community\.routeros/pull/109)\)\.
* api\_modify\, api\_info \- support API path ip firewall mangle \([https\://github\.com/ansible\-collections/community\.routeros/pull/110](https\://github\.com/ansible\-collections/community\.routeros/pull/110)\)\.
-
+
### Bugfixes
* api\_modify\, api\_info \- make API path ip dhcp\-server support script\, and ip firewall nat support in\-interface and in\-interface\-list \([https\://github\.com/ansible\-collections/community\.routeros/pull/110](https\://github\.com/ansible\-collections/community\.routeros/pull/110)\)\.
@@ -783,12 +814,12 @@
## v2\.2\.1
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* api\_modify\, api\_info \- make API path ip dhcp\-server lease support server\=all \([https\://github\.com/ansible\-collections/community\.routeros/issues/104](https\://github\.com/ansible\-collections/community\.routeros/issues/104)\, [https\://github\.com/ansible\-collections/community\.routeros/pull/107](https\://github\.com/ansible\-collections/community\.routeros/pull/107)\)\.
@@ -797,17 +828,17 @@
## v2\.2\.0
-
+
### Release Summary
New feature release\.
-
+
### Minor Changes
* All software licenses are now in the LICENSES/ directory of the collection root\. Moreover\, SPDX\-License\-Identifier\: is used to declare the applicable license for every file that is not automatically generated \([https\://github\.com/ansible\-collections/community\.routeros/pull/101](https\://github\.com/ansible\-collections/community\.routeros/pull/101)\)\.
-
+
### Bugfixes
* Include LICENSES/BSD\-2\-Clause\.txt file for the routeros module utils \([https\://github\.com/ansible\-collections/community\.routeros/pull/101](https\://github\.com/ansible\-collections/community\.routeros/pull/101)\)\.
@@ -821,12 +852,12 @@
## v2\.1\.0
-
+
### Release Summary
Feature and bugfix release with new modules\.
-
+
### Minor Changes
* Added a community\.routeros\.api module defaults group\. Use with group/community\.routeros\.api to provide options for all API\-based modules \([https\://github\.com/ansible\-collections/community\.routeros/pull/89](https\://github\.com/ansible\-collections/community\.routeros/pull/89)\)\.
@@ -835,7 +866,7 @@
* api \- update query to accept symbolic parameters \([https\://github\.com/ansible\-collections/community\.routeros/pull/63](https\://github\.com/ansible\-collections/community\.routeros/pull/63)\)\.
* api\* modules \- allow to set an encoding other than the default ASCII for communicating with the API \([https\://github\.com/ansible\-collections/community\.routeros/pull/95](https\://github\.com/ansible\-collections/community\.routeros/pull/95)\)\.
-
+
### Bugfixes
* query \- fix query function check for \.id vs\. id arguments to not conflict with routeros arguments like identity \([https\://github\.com/ansible\-collections/community\.routeros/pull/68](https\://github\.com/ansible\-collections/community\.routeros/pull/68)\, [https\://github\.com/ansible\-collections/community\.routeros/issues/67](https\://github\.com/ansible\-collections/community\.routeros/issues/67)\)\.
@@ -850,12 +881,12 @@
## v2\.0\.0
-
+
### Release Summary
A new major release with breaking changes in the behavior of community\.routeros\.api and community\.routeros\.command\.
-
+
### Minor Changes
* api \- make validation of WHERE for query more strict \([https\://github\.com/ansible\-collections/community\.routeros/pull/53](https\://github\.com/ansible\-collections/community\.routeros/pull/53)\)\.
@@ -869,7 +900,7 @@
* api \- splitting commands no longer uses a naive split by whitespace\, but a more RouterOS CLI compatible splitting algorithm \([https\://github\.com/ansible\-collections/community\.routeros/pull/45](https\://github\.com/ansible\-collections/community\.routeros/pull/45)\)\.
* command \- the module now always indicates that a change happens\. If this is not correct\, please use changed\_when to determine the correct changed status for a task \([https\://github\.com/ansible\-collections/community\.routeros/pull/50](https\://github\.com/ansible\-collections/community\.routeros/pull/50)\)\.
-
+
### Bugfixes
* api \- improve splitting of WHERE queries \([https\://github\.com/ansible\-collections/community\.routeros/pull/47](https\://github\.com/ansible\-collections/community\.routeros/pull/47)\)\.
@@ -891,12 +922,12 @@
## v1\.2\.0
-
+
### Release Summary
Bugfix and feature release\.
-
+
### Minor Changes
* Avoid internal ansible\-core module\_utils in favor of equivalent public API available since at least Ansible 2\.9 \([https\://github\.com/ansible\-collections/community\.routeros/pull/38](https\://github\.com/ansible\-collections/community\.routeros/pull/38)\)\.
@@ -904,7 +935,7 @@
* api \- rename option ssl to tls\, and keep the old name as an alias \([https\://github\.com/ansible\-collections/community\.routeros/pull/37](https\://github\.com/ansible\-collections/community\.routeros/pull/37)\)\.
* fact \- add fact ansible\_net\_config\_nonverbose to get idempotent config \(no date\, no verbose\) \([https\://github\.com/ansible\-collections/community\.routeros/pull/23](https\://github\.com/ansible\-collections/community\.routeros/pull/23)\)\.
-
+
### Bugfixes
* api \- when using TLS/SSL\, remove explicit cipher configuration to insecure values\, which also makes it impossible to connect to newer RouterOS versions \([https\://github\.com/ansible\-collections/community\.routeros/pull/34](https\://github\.com/ansible\-collections/community\.routeros/pull/34)\)\.
@@ -912,12 +943,12 @@
## v1\.1\.0
-
+
### Release Summary
This release allow dashes in usernames for SSH\-based modules\.
-
+
### Minor Changes
* command \- added support for a dash \(\-\) in username \([https\://github\.com/ansible\-collections/community\.routeros/pull/18](https\://github\.com/ansible\-collections/community\.routeros/pull/18)\)\.
@@ -926,12 +957,12 @@
## v1\.0\.1
-
+
### Release Summary
Maintenance release with a bugfix for api\.
-
+
### Bugfixes
* api \- remove id to \.id as default requirement which conflicts with RouterOS id configuration parameter \([https\://github\.com/ansible\-collections/community\.routeros/pull/15](https\://github\.com/ansible\-collections/community\.routeros/pull/15)\)\.
@@ -939,12 +970,12 @@
## v1\.0\.0
-
+
### Release Summary
This is the first production \(non\-prerelease\) release of community\.routeros\.
-
+
### Bugfixes
* routeros terminal plugin \- allow slashes in hostnames for terminal detection\. Without this\, slashes in hostnames will result in connection timeouts \([https\://github\.com/ansible\-collections/community\.network/pull/138](https\://github\.com/ansible\-collections/community\.network/pull/138)\)\.
@@ -952,12 +983,12 @@
## v0\.1\.1
-
+
### Release Summary
Small improvements and bugfixes over the initial release\.
-
+
### Bugfixes
* api \- fix crash when the ssl parameter is used \([https\://github\.com/ansible\-collections/community\.routeros/pull/3](https\://github\.com/ansible\-collections/community\.routeros/pull/3)\)\.
@@ -965,12 +996,12 @@
## v0\.1\.0
-
+
### Release Summary
The community\.routeros continues the work on the Ansible RouterOS modules from their state in community\.network 1\.2\.0\. The changes listed here are thus relative to the modules community\.network\.routeros\_\*\.
-
+
### Minor Changes
* facts \- now also collecting data about BGP and OSPF \([https\://github\.com/ansible\-collections/community\.network/pull/101](https\://github\.com/ansible\-collections/community\.network/pull/101)\)\.
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/CHANGELOG.rst ansible-12.0.0+dfsg/ansible_collections/community/routeros/CHANGELOG.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/CHANGELOG.rst 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/CHANGELOG.rst 2025-08-31 19:10:38.000000000 +0000
@@ -4,6 +4,33 @@
.. contents:: Topics
+v3.10.0
+=======
+
+Release Summary
+---------------
+
+Bugfix and feature release.
+
+Minor Changes
+-------------
+
+- api_info, api_modify - add ``show-at-cli-login`` property in ``system note`` (https://github.com/ansible-collections/community.routeros/pull/392).
+- api_info, api_modify - set default value for ``include`` and ``exclude`` properties in ``system note`` to an empty string (https://github.com/ansible-collections/community.routeros/pull/394).
+
+Bugfixes
+--------
+
+- api_facts - also report interfaces that are inferred only by reference by IP addresses.
+ RouterOS's APIs have IPv4 and IPv6 addresses point at interfaces by their name, which can
+ change over time and in-between API calls, such that interfaces may have been enumerated
+ under another name, or not at all (for example when removed). Such interfaces are now reported
+ under their new or temporary name and with a synthetic ``type`` property set to differentiate
+ the more likely and positively confirmed removal case (with ``type: "ansible:unknown"``) from
+ the unlikely and probably transient naming mismatch (with ``type: "ansible:mismatch"``).
+ Previously, the api_facts module would have crashed with a ``KeyError`` exception
+ (https://github.com/ansible-collections/community.routeros/pull/391).
+
v3.9.0
======
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/FILES.json ansible-12.0.0+dfsg/ansible_collections/community/routeros/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/FILES.json 2025-08-10 18:16:14.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/FILES.json 2025-08-31 19:14:17.000000000 +0000
@@ -39,7 +39,7 @@
"name": ".github/workflows/nox.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "41491fda09506b55995094038f15ebab2eae11c446c91b35618c6a67d572fef1",
+ "chksum_sha256": "d9e6afe4f513325240fed8baaa972ffbc00048b22103becef7b7b58f7bc489b3",
"format": 1
},
{
@@ -102,7 +102,7 @@
"name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aaf6d0af5898ae9660f8dc13262f18a177e77b5820982020eac258f942df565e",
+ "chksum_sha256": "09be6472708e09387f4bbbb898b06e219e3d30c33a02400daed00719922bb4b2",
"format": 1
},
{
@@ -312,7 +312,7 @@
"name": "plugins/module_utils/_api_data.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e83897aa88b98cee37afd303a16f9c8932cd98c2e2a38a08aeb83e988784171f",
+ "chksum_sha256": "883478f9cd2cb865bf2659cf83b781dbcb2f0334314881fd7e521d33cfca7864",
"format": 1
},
{
@@ -368,7 +368,7 @@
"name": "plugins/modules/api_facts.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34e0308ff584d3dcd63d534b5b817e6842cce7edefd21324c08ccfe68c19e7f1",
+ "chksum_sha256": "7b8d28c49dd69948b04edac551a7cd01f7c0458b8792cbedf80167498cece8ab",
"format": 1
},
{
@@ -697,7 +697,7 @@
"name": "tests/sanity/ignore-2.20.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "be52be730d96a4eb8ecc0619cb88120928c0afb599ace1c18313cf4a2678aade",
+ "chksum_sha256": "58aa13ace536617b8b684a14e3e52692352696f9dde01972e00f3c37dd1deb2a",
"format": 1
},
{
@@ -1075,7 +1075,7 @@
"name": "tests/unit/plugins/modules/test_api_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "43e46cc556161d5689098bd1fa8586ddb2e95543092f3ba8baf43192aaaf2d5c",
+ "chksum_sha256": "6ebcea20db9005ee963eb48cfb621bf179025fc0207233d8881c8b4020eabade",
"format": 1
},
{
@@ -1166,7 +1166,7 @@
"name": "CHANGELOG.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ef7aa86b818b00a1ce4914882590f873d18032dd1e4f960c8baa9d75cb14d549",
+ "chksum_sha256": "e39f7e37950f465344df724dc0633260e28ae3d106878cc76a40e7d8268f69a0",
"format": 1
},
{
@@ -1180,7 +1180,7 @@
"name": "CHANGELOG.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a9115bac631221883ce51a3055de2fe76452d12b8d81273a45951740962632f2",
+ "chksum_sha256": "e6d6cc4c7b9f741c20f547d3c67ba142e4de68aceb9f4e6a799eb9722d690c0f",
"format": 1
},
{
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/community/routeros/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/MANIFEST.json 2025-08-10 18:16:14.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/MANIFEST.json 2025-08-31 19:14:17.000000000 +0000
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "community",
"name": "routeros",
- "version": "3.9.0",
+ "version": "3.10.0",
"authors": [
"Egor Zaitsev (github.com/heuels)",
"Nikolay Dachev (github.com/NikolayDachev)",
@@ -31,7 +31,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cde481b5f326e275daaa3f9184926ba2e4771c015904c00b79c13cb30d031ae4",
+ "chksum_sha256": "eff0d1546e73c243d28a59383ab505034d3a5dfc6aef170e2f61d6da7d0de432",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/changelogs/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/community/routeros/changelogs/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/changelogs/changelog.yaml 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/changelogs/changelog.yaml 2025-08-31 19:10:38.000000000 +0000
@@ -971,3 +971,44 @@
- 385-vrf-support-for-ovpn-server.yml
- 386-fix-pattern-to-handle-long-identity.yml
release_date: '2025-08-10'
+ 3.10.0:
+ changes:
+ bugfixes:
+ - 'api_facts - also report interfaces that are inferred only by reference
+ by IP addresses.
+
+ RouterOS''s APIs have IPv4 and IPv6 addresses point at interfaces by their
+ name, which can
+
+ change over time and in-between API calls, such that interfaces may have
+ been enumerated
+
+ under another name, or not at all (for example when removed). Such interfaces
+ are now reported
+
+ under their new or temporary name and with a synthetic ``type`` property
+ set to differentiate
+
+ the more likely and positively confirmed removal case (with ``type: "ansible:unknown"``)
+ from
+
+ the unlikely and probably transient naming mismatch (with ``type: "ansible:mismatch"``).
+
+ Previously, the api_facts module would have crashed with a ``KeyError``
+ exception
+
+ (https://github.com/ansible-collections/community.routeros/pull/391).
+
+ '
+ minor_changes:
+ - api_info, api_modify - add ``show-at-cli-login`` property in ``system note``
+ (https://github.com/ansible-collections/community.routeros/pull/392).
+ - api_info, api_modify - set default value for ``include`` and ``exclude``
+ properties in ``system note`` to an empty string (https://github.com/ansible-collections/community.routeros/pull/394).
+ release_summary: Bugfix and feature release.
+ fragments:
+ - 3.10.0.yml
+ - 391-report-unknown-interfaces.yml
+ - 392-sys-note-cli-login.yml
+ - 394-iface-list-defaults.yml
+ release_date: '2025-08-31'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/plugins/module_utils/_api_data.py ansible-12.0.0+dfsg/ansible_collections/community/routeros/plugins/module_utils/_api_data.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/plugins/module_utils/_api_data.py 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/plugins/module_utils/_api_data.py 2025-08-31 19:10:38.000000000 +0000
@@ -441,8 +441,8 @@
fully_understood=True,
fields={
'comment': KeyInfo(can_disable=True, remove_value=''),
- 'exclude': KeyInfo(),
- 'include': KeyInfo(),
+ 'exclude': KeyInfo(default=''),
+ 'include': KeyInfo(default=''),
'name': KeyInfo(),
},
),
@@ -4421,6 +4421,9 @@
unversioned=VersionedAPIData(
single_value=True,
fully_understood=True,
+ versioned_fields=[
+ ([('7.14', '>=')], 'show-at-cli-login', KeyInfo(default=False)),
+ ],
fields={
'note': KeyInfo(default=''),
'show-at-login': KeyInfo(default=True),
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/plugins/modules/api_facts.py ansible-12.0.0+dfsg/ansible_collections/community/routeros/plugins/modules/api_facts.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/plugins/modules/api_facts.py 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/plugins/modules/api_facts.py 2025-08-31 19:10:38.000000000 +0000
@@ -317,8 +317,10 @@
def populate_addresses(self, data, family):
for value in data:
key = value['interface']
- if family not in self.facts['interfaces'][key]:
- self.facts['interfaces'][key][family] = []
+ iface = self.facts['interfaces'].setdefault(key, (
+ {"type": "ansible:unknown"} if key.startswith('*') else
+ {"type": "ansible:mismatch"}))
+ iface_addrs = iface.setdefault(family, [])
addr, subnet = value['address'].split('/')
subnet = subnet.strip()
# Try to convert subnet to an integer
@@ -328,7 +330,7 @@
pass
ip = dict(address=addr.strip(), subnet=subnet)
self.add_ip_address(addr.strip(), family)
- self.facts['interfaces'][key][family].append(ip)
+ iface_addrs.append(ip)
def add_ip_address(self, address, family):
if family == 'ipv4':
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/tests/sanity/ignore-2.20.txt ansible-12.0.0+dfsg/ansible_collections/community/routeros/tests/sanity/ignore-2.20.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/tests/sanity/ignore-2.20.txt 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/tests/sanity/ignore-2.20.txt 2025-08-31 19:10:38.000000000 +0000
@@ -1 +1,4 @@
+plugins/modules/api_facts.py pylint:ansible-bad-import-from
+plugins/modules/command.py pylint:ansible-bad-import-from
+plugins/modules/facts.py pylint:ansible-bad-import-from
tests/update-docs.py shebang
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/tests/unit/plugins/modules/test_api_info.py ansible-12.0.0+dfsg/ansible_collections/community/routeros/tests/unit/plugins/modules/test_api_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/routeros/tests/unit/plugins/modules/test_api_info.py 2025-08-10 18:13:29.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/routeros/tests/unit/plugins/modules/test_api_info.py 2025-08-31 19:10:38.000000000 +0000
@@ -470,8 +470,6 @@
{
'.id': '*2000010',
'name': 'WAN',
- 'include': '',
- 'exclude': '',
'comment': 'defconf',
},
])
@@ -523,24 +521,18 @@
{
'.id': '*2000000',
'name': 'all',
- 'include': '',
- 'exclude': '',
'builtin': True,
'comment': 'contains all interfaces',
},
{
'.id': '*2000001',
'name': 'none',
- 'include': '',
- 'exclude': '',
'builtin': True,
'comment': 'contains no interfaces',
},
{
'.id': '*2000010',
'name': 'WAN',
- 'include': '',
- 'exclude': '',
'builtin': False,
'comment': 'defconf',
},
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/.github/workflows/nox.yml ansible-12.0.0+dfsg/ansible_collections/community/sops/.github/workflows/nox.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/.github/workflows/nox.yml 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/.github/workflows/nox.yml 2025-08-31 14:39:18.000000000 +0000
@@ -21,7 +21,7 @@
name: "Run extra sanity tests"
steps:
- name: Check out collection
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
persist-credentials: false
- name: Run nox
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/CHANGELOG.md ansible-12.0.0+dfsg/ansible_collections/community/sops/CHANGELOG.md
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/CHANGELOG.md 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/CHANGELOG.md 2025-08-31 14:39:18.000000000 +0000
@@ -2,136 +2,139 @@
**Topics**
-- v2\.2\.1
+- v2\.2\.2
- Release Summary
- Bugfixes
-- v2\.2\.0
+- v2\.2\.1
- Release Summary
+ - Bugfixes
+- v2\.2\.0
+ - Release Summary
- Minor Changes
- v2\.1\.0
- - Release Summary
+ - Release Summary
- Minor Changes
- v2\.0\.5
- - Release Summary
-- v2\.0\.4
- Release Summary
- - Bugfixes
-- v2\.0\.3
+- v2\.0\.4
- Release Summary
- Bugfixes
-- v2\.0\.2
+- v2\.0\.3
- Release Summary
- Bugfixes
-- v2\.0\.1
+- v2\.0\.2
- Release Summary
-- v2\.0\.0
+ - Bugfixes
+- v2\.0\.1
- Release Summary
+- v2\.0\.0
+ - Release Summary
- Removed Features \(previously deprecated\)
- v1\.9\.1
- - Release Summary
- - Bugfixes
-- v1\.9\.0
- Release Summary
+ - Bugfixes
+- v1\.9\.0
+ - Release Summary
- Minor Changes
- v1\.8\.2
- - Release Summary
+ - Release Summary
- Deprecated Features
- v1\.8\.1
- - Release Summary
- - Bugfixes
-- v1\.8\.0
- Release Summary
- - Minor Changes
- Bugfixes
-- v1\.7\.0
+- v1\.8\.0
- Release Summary
- - Minor Changes
+ - Minor Changes
- Bugfixes
-- v1\.6\.7
+- v1\.7\.0
- Release Summary
+ - Minor Changes
- Bugfixes
-- v1\.6\.6
+- v1\.6\.7
- Release Summary
- Bugfixes
-- v1\.6\.5
+- v1\.6\.6
- Release Summary
- Bugfixes
-- v1\.6\.4
+- v1\.6\.5
- Release Summary
- Bugfixes
-- v1\.6\.3
+- v1\.6\.4
- Release Summary
+ - Bugfixes
+- v1\.6\.3
+ - Release Summary
- Known Issues
- v1\.6\.2
- - Release Summary
- - Bugfixes
-- v1\.6\.1
- Release Summary
- Bugfixes
-- v1\.6\.0
+- v1\.6\.1
- Release Summary
+ - Bugfixes
+- v1\.6\.0
+ - Release Summary
- Minor Changes
- v1\.5\.0
- - Release Summary
+ - Release Summary
- Minor Changes
- New Playbooks
- New Roles
- v1\.4\.1
- - Release Summary
- - Bugfixes
-- v1\.4\.0
- Release Summary
+ - Bugfixes
+- v1\.4\.0
+ - Release Summary
- Minor Changes
- v1\.3\.0
- - Release Summary
+ - Release Summary
- Minor Changes
- v1\.2\.3
- - Release Summary
-- v1\.2\.2
- Release Summary
- - Bugfixes
-- v1\.2\.1
+- v1\.2\.2
- Release Summary
-- v1\.2\.0
+ - Bugfixes
+- v1\.2\.1
- Release Summary
+- v1\.2\.0
+ - Release Summary
- Minor Changes
- - Bugfixes
+ - Bugfixes
- v1\.1\.0
- - Release Summary
+ - Release Summary
- Minor Changes
- New Plugins
- Filter
- v1\.0\.6
- - Release Summary
- - Bugfixes
-- v1\.0\.5
- Release Summary
- Bugfixes
-- v1\.0\.4
+- v1\.0\.5
- Release Summary
+ - Bugfixes
+- v1\.0\.4
+ - Release Summary
- Security Fixes
- v1\.0\.3
- - Release Summary
- - Bugfixes
-- v1\.0\.2
- Release Summary
-- v1\.0\.1
+ - Bugfixes
+- v1\.0\.2
- Release Summary
-- v1\.0\.0
+- v1\.0\.1
- Release Summary
+- v1\.0\.0
+ - Release Summary
- Minor Changes
- v0\.2\.0
- - Release Summary
+ - Release Summary
- Minor Changes
- v0\.1\.0
- - Release Summary
+ - Release Summary
- New Plugins
- Lookup
- Vars
- New Modules
-
-## v2\.2\.1
+
+## v2\.2\.2
### Release Summary
@@ -141,12 +144,26 @@
### Bugfixes
+* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.sops/pull/260](https\://github\.com/ansible\-collections/community\.sops/pull/260)\)\.
+* all modules and plugins \- the default of enable\_local\_keyservice changed from false to true\, and explicitly setting it to false now passes \-\-enable\-local\-keyservice\=false\. SOPS\' default has always been true\, and when setting this option to true so far it resulted in passing \-\-enable\-local\-keyservice\, which is equivalent to \-\-enable\-local\-keyservice\=true and had no effect\. This means that from now on\, setting enable\_local\_keyservice explicitly to false has an effect\. If enable\_local\_keyservice was not set before\, or was set to true\, nothing will change \([https\://github\.com/ansible\-collections/community\.sops/issues/261](https\://github\.com/ansible\-collections/community\.sops/issues/261)\, [https\://github\.com/ansible\-collections/community\.sops/pull/262](https\://github\.com/ansible\-collections/community\.sops/pull/262)\)\.
+
+
+## v2\.2\.1
+
+
+### Release Summary
+
+Bugfix release\.
+
+
+### Bugfixes
+
* install role \- avoid deprecated parameter value for the ansible\.builtin\.uri module \([https\://github\.com/ansible\-collections/community\.sops/pull/255](https\://github\.com/ansible\-collections/community\.sops/pull/255)\)\.
## v2\.2\.0
-
+
### Release Summary
Feature release\.
@@ -159,7 +176,7 @@
## v2\.1\.0
-
+
### Release Summary
Feature release\.
@@ -172,7 +189,7 @@
## v2\.0\.5
-
+
### Release Summary
Maintenance release with updated SOPS version test coverage\.
@@ -180,12 +197,12 @@
## v2\.0\.4
-
+
### Release Summary
Maintenance release with Data Tagging support\.
-
+
### Bugfixes
* load\_vars \- make evaluation compatible with Data Tagging in upcoming ansible\-core release \([https\://github\.com/ansible\-collections/community\.sops/pull/225](https\://github\.com/ansible\-collections/community\.sops/pull/225)\)\.
@@ -193,12 +210,12 @@
## v2\.0\.3
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* install role \- sops\_install\_on\_localhost\=false was not working properly if the role was running on more than one host due to a bug in ansible\-core \([https\://github\.com/ansible\-collections/community\.sops/issues/223](https\://github\.com/ansible\-collections/community\.sops/issues/223)\, [https\://github\.com/ansible\-collections/community\.sops/pull/224](https\://github\.com/ansible\-collections/community\.sops/pull/224)\)\.
@@ -206,12 +223,12 @@
## v2\.0\.2
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* install role \- when used with Debian on ARM architecture\, the architecture name is now correctly translated from aarch64 to arm64 \([https\://github\.com/ansible\-collections/community\.sops/issues/220](https\://github\.com/ansible\-collections/community\.sops/issues/220)\, [https\://github\.com/ansible\-collections/community\.sops/pull/221](https\://github\.com/ansible\-collections/community\.sops/pull/221)\)\.
@@ -219,7 +236,7 @@
## v2\.0\.1
-
+
### Release Summary
Maintenance release with updated documentation\.
@@ -227,7 +244,7 @@
## v2\.0\.0
-
+
### Release Summary
Major verison that drops support for End of Life Ansible/ansible\-base/ansible\-core versions\.
@@ -240,12 +257,12 @@
## v1\.9\.1
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* sops\_encrypt \- pass absolute paths to module\.atomic\_move\(\) \([https\://github\.com/ansible/ansible/issues/83950](https\://github\.com/ansible/ansible/issues/83950)\, [https\://github\.com/ansible\-collections/community\.sops/pull/208](https\://github\.com/ansible\-collections/community\.sops/pull/208)\)\.
@@ -253,7 +270,7 @@
## v1\.9\.0
-
+
### Release Summary
Feature release\.
@@ -268,7 +285,7 @@
## v1\.8\.2
-
+
### Release Summary
Maintenance release with updated documentation and changelog\.
@@ -281,12 +298,12 @@
## v1\.8\.1
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* Pass config\_path on SOPS 3\.9\.0 before the subcommand instead of after it \([https\://github\.com/ansible\-collections/community\.sops/issues/195](https\://github\.com/ansible\-collections/community\.sops/issues/195)\, [https\://github\.com/ansible\-collections/community\.sops/pull/197](https\://github\.com/ansible\-collections/community\.sops/pull/197)\)\.
@@ -294,7 +311,7 @@
## v1\.8\.0
-
+
### Release Summary
Feature release for supporting improvements coming with SOPS 3\.9\.0\.
@@ -305,7 +322,7 @@
* Detect SOPS 3\.9\.0 and use new decrypt and encrypt subcommands \([https\://github\.com/ansible\-collections/community\.sops/pull/190](https\://github\.com/ansible\-collections/community\.sops/pull/190)\)\.
* sops vars plugin \- new option handle\_unencrypted\_files allows to control behavior when encountering unencrypted files with SOPS 3\.9\.0\+ \([https\://github\.com/ansible\-collections/community\.sops/pull/190](https\://github\.com/ansible\-collections/community\.sops/pull/190)\)\.
-
+
### Bugfixes
* sops\_encrypt \- properly support path\_regex in \.sops\.yaml when SOPS 3\.9\.0 or later is used \([https\://github\.com/ansible\-collections/community\.sops/issues/153](https\://github\.com/ansible\-collections/community\.sops/issues/153)\, [https\://github\.com/ansible\-collections/community\.sops/pull/190](https\://github\.com/ansible\-collections/community\.sops/pull/190)\)\.
@@ -313,7 +330,7 @@
## v1\.7\.0
-
+
### Release Summary
Bugfix and feature release to fix installation issues with SOPS 3\.9\.0\.
@@ -323,7 +340,7 @@
* sops vars plugin \- allow to configure the valid extensions with an ansible\.cfg entry or with an environment variable \([https\://github\.com/ansible\-collections/community\.sops/pull/185](https\://github\.com/ansible\-collections/community\.sops/pull/185)\)\.
-
+
### Bugfixes
* Fix RPM URL for the 3\.9\.0 release \([https\://github\.com/ansible\-collections/community\.sops/pull/188](https\://github\.com/ansible\-collections/community\.sops/pull/188)\)\.
@@ -331,12 +348,12 @@
## v1\.6\.7
-
+
### Release Summary
Bugfix release\.
-
+
### Bugfixes
* sops\_encrypt \- ensure that output\-type is set to yaml when the file extension \.yml is used\. Now both \.yaml and \.yml files use the SOPS \-\-output\-type\=yaml formatting \([https\://github\.com/ansible\-collections/community\.sops/issues/164](https\://github\.com/ansible\-collections/community\.sops/issues/164)\)\.
@@ -344,12 +361,12 @@
## v1\.6\.6
-
+
### Release Summary
Make fully compatible with and test against sops 3\.8\.0\.
-
+
### Bugfixes
* Fix RPM URL for the 3\.8\.0 release \([https\://github\.com/ansible\-collections/community\.sops/pull/161](https\://github\.com/ansible\-collections/community\.sops/pull/161)\)\.
@@ -357,12 +374,12 @@
## v1\.6\.5
-
+
### Release Summary
Make compatible with and test against sops 3\.8\.0\-rc\.1\.
-
+
### Bugfixes
* Avoid pre\-releases when picking the latest version when using the GitHub API method \([https\://github\.com/ansible\-collections/community\.sops/pull/159](https\://github\.com/ansible\-collections/community\.sops/pull/159)\)\.
@@ -371,12 +388,12 @@
## v1\.6\.4
-
+
### Release Summary
Maintenance/bugfix release for the move of sops to the new [getsops GitHub organization](https\://github\.com/getsops)\.
-
+
### Bugfixes
* install role \- fix sops\_github\_latest\_detection\=latest\-release\, which broke due to sops moving to another GitHub organization \([https\://github\.com/ansible\-collections/community\.sops/pull/151](https\://github\.com/ansible\-collections/community\.sops/pull/151)\)\.
@@ -384,7 +401,7 @@
## v1\.6\.3
-
+
### Release Summary
Maintenance release with updated documentation\.
@@ -405,12 +422,12 @@
## v1\.6\.2
-
+
### Release Summary
Maintenance release\.
-
+
### Bugfixes
* install role \- make sure that the pkg\_mgr fact is definitely available when installing on localhost\. This can improve error messages in some cases \([https\://github\.com/ansible\-collections/community\.sops/issues/145](https\://github\.com/ansible\-collections/community\.sops/issues/145)\, [https\://github\.com/ansible\-collections/community\.sops/pull/146](https\://github\.com/ansible\-collections/community\.sops/pull/146)\)\.
@@ -418,12 +435,12 @@
## v1\.6\.1
-
+
### Release Summary
Maintenance release\.
-
+
### Bugfixes
* action plugin helper \- fix handling of deprecations for ansible\-core 2\.14\.2 \([https\://github\.com/ansible\-collections/community\.sops/pull/136](https\://github\.com/ansible\-collections/community\.sops/pull/136)\)\.
@@ -432,7 +449,7 @@
## v1\.6\.0
-
+
### Release Summary
Feature release improving the installation role\.
@@ -447,7 +464,7 @@
## v1\.5\.0
-
+
### Release Summary
Feature release\.
@@ -471,12 +488,12 @@
## v1\.4\.1
-
+
### Release Summary
Maintenance release to improve compatibility with future ansible\-core releases\.
-
+
### Bugfixes
* load\_vars \- ensure compatibility with newer versions of ansible\-core \([https\://github\.com/ansible\-collections/community\.sops/pull/121](https\://github\.com/ansible\-collections/community\.sops/pull/121)\)\.
@@ -484,7 +501,7 @@
## v1\.4\.0
-
+
### Release Summary
Feature release\.
@@ -498,7 +515,7 @@
## v1\.3\.0
-
+
### Release Summary
Feature release\.
@@ -512,7 +529,7 @@
## v1\.2\.3
-
+
### Release Summary
Fix formatting bug in documentation\. No code changes\.
@@ -520,12 +537,12 @@
## v1\.2\.2
-
+
### Release Summary
Maintenance release\.
-
+
### Bugfixes
* Include simplified\_bsd\.txt license file for the sops module utils\.
@@ -533,7 +550,7 @@
## v1\.2\.1
-
+
### Release Summary
Maintenance release with updated documentation\.
@@ -541,7 +558,7 @@
## v1\.2\.0
-
+
### Release Summary
Collection release for inclusion in Ansible 4\.9\.0 and 5\.1\.0\.
@@ -553,7 +570,7 @@
* sops lookup and vars plugin \- allow to configure almost all generic options by ansible\.cfg entries and environment variables \([https\://github\.com/ansible\-collections/community\.sops/pull/81](https\://github\.com/ansible\-collections/community\.sops/pull/81)\)\.
-
+
### Bugfixes
* Fix error handling in calls of the sops binary when negative errors are returned \([https\://github\.com/ansible\-collections/community\.sops/issues/82](https\://github\.com/ansible\-collections/community\.sops/issues/82)\, [https\://github\.com/ansible\-collections/community\.sops/pull/83](https\://github\.com/ansible\-collections/community\.sops/pull/83)\)\.
@@ -561,7 +578,7 @@
## v1\.1\.0
-
+
### Release Summary
A minor release for inclusion in Ansible 4\.2\.0\.
@@ -582,12 +599,12 @@
## v1\.0\.6
-
+
### Release Summary
This release makes the collection compatible to the latest beta release of ansible\-core 2\.11\.
-
+
### Bugfixes
* action\_module plugin helper \- make compatible with latest changes in ansible\-core 2\.11\.0b3 \([https\://github\.com/ansible\-collections/community\.sops/pull/58](https\://github\.com/ansible\-collections/community\.sops/pull/58)\)\.
@@ -596,12 +613,12 @@
## v1\.0\.5
-
+
### Release Summary
This release fixes a bug that prevented correct YAML file to be created when the output was ending in \.yaml\.
-
+
### Bugfixes
* community\.sops\.sops\_encrypt \- use output type yaml when path ends with \.yaml \([https\://github\.com/ansible\-collections/community\.sops/pull/56](https\://github\.com/ansible\-collections/community\.sops/pull/56)\)\.
@@ -609,7 +626,7 @@
## v1\.0\.4
-
+
### Release Summary
This is a security release\, fixing a potential information leak in the community\.sops\.sops\_encrypt module\.
@@ -622,12 +639,12 @@
## v1\.0\.3
-
+
### Release Summary
This release include some fixes to Ansible docs and required changes for inclusion in Ansible\.
-
+
### Bugfixes
* community\.sops\.sops lookup plugins \- fix wrong format of Ansible variables so that these are actually used \([https\://github\.com/ansible\-collections/community\.sops/pull/51](https\://github\.com/ansible\-collections/community\.sops/pull/51)\)\.
@@ -636,7 +653,7 @@
## v1\.0\.2
-
+
### Release Summary
Fix of 1\.0\.1 release which had no changelog entry\.
@@ -644,7 +661,7 @@
## v1\.0\.1
-
+
### Release Summary
Re\-release of 1\.0\.0 to counteract error during release\.
@@ -652,7 +669,7 @@
## v1\.0\.0
-
+
### Release Summary
First stable release\. This release is expected to be included in Ansible 3\.0\.0\.
@@ -666,7 +683,7 @@
## v0\.2\.0
-
+
### Release Summary
This release adds features for the lookup and vars plugins\.
@@ -681,7 +698,7 @@
## v0\.1\.0
-
+
### Release Summary
First release of the community\.sops collection\!
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/CHANGELOG.rst ansible-12.0.0+dfsg/ansible_collections/community/sops/CHANGELOG.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/CHANGELOG.rst 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/CHANGELOG.rst 2025-08-31 14:39:18.000000000 +0000
@@ -4,6 +4,20 @@
.. contents:: Topics
+v2.2.2
+======
+
+Release Summary
+---------------
+
+Bugfix release.
+
+Bugfixes
+--------
+
+- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.sops/pull/260).
+- all modules and plugins - the default of ``enable_local_keyservice`` changed from ``false`` to ``true``, and explicitly setting it to ``false`` now passes ``--enable-local-keyservice=false``. SOPS' default has always been ``true``, and when setting this option to ``true`` so far it resulted in passing ``--enable-local-keyservice``, which is equivalent to ``--enable-local-keyservice=true`` and had no effect. This means that from now on, setting ``enable_local_keyservice`` explicitly to ``false`` has an effect. If ``enable_local_keyservice`` was not set before, or was set to ``true``, nothing will change (https://github.com/ansible-collections/community.sops/issues/261, https://github.com/ansible-collections/community.sops/pull/262).
+
v2.2.1
======
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/FILES.json ansible-12.0.0+dfsg/ansible_collections/community/sops/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/FILES.json 2025-08-04 16:41:43.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/FILES.json 2025-08-31 14:41:59.000000000 +0000
@@ -39,7 +39,7 @@
"name": ".github/workflows/nox.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "492369e4ad5185982f2b90d280b5a642d6f791ac838905fe43560de250ef3492",
+ "chksum_sha256": "7afd8d22ca93777a07ce0fbde34ea77c1e20a4fa13b9997c022ff779c89126e4",
"format": 1
},
{
@@ -116,7 +116,7 @@
"name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "286b079b6495ceda114af370c814e1f72673399e84ee02d596c279f5a87be0b9",
+ "chksum_sha256": "0d78b6424871ccb1c7d696382d26ecc1cb993705c945a33dea43e9dda05fdee7",
"format": 1
},
{
@@ -270,7 +270,7 @@
"name": "plugins/doc_fragments/sops.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dcd22a1f67faf02e044429fdda6ade691485aaee6bc19814050c1efc1ecfaf0c",
+ "chksum_sha256": "ad9bb7ab9fc2ae8aa6ab3e2203bbbd6d2852072f3f6d3b1112cbadd4f513427f",
"format": 1
},
{
@@ -291,7 +291,7 @@
"name": "plugins/filter/decrypt.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42c474884843c047245c68174d37435ddafe607c93574a22d5820eebb2703c7f",
+ "chksum_sha256": "8415704f2c5da475b99a3517048eb49b2ec4f36b956de5272514cd4ff70cc5e0",
"format": 1
},
{
@@ -326,7 +326,7 @@
"name": "plugins/module_utils/sops.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fc43cfc6b2c6a0fca598a4ea638d85225553a83f7e505bbf21850a687f0d7173",
+ "chksum_sha256": "c65ec76ee4263540b0e3b5c7a4095053c0d051d537cee09e3328f6a352964f99",
"format": 1
},
{
@@ -361,7 +361,7 @@
"name": "plugins/plugin_utils/action_module.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a32f7b4b27d76b995b4b58323a7a63344d999561d91c7d8379543eb2e816e498",
+ "chksum_sha256": "accadc798a04e33f831b1da7852b76238654ff335d08d5b89a191612d9db8685",
"format": 1
},
{
@@ -886,7 +886,7 @@
"name": "tests/integration/targets/filter_decrypt/files/fake-sops.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6b08de408912442f9fc06fad2d167a3988220edbded3c9c3ef8001c904c2f7b7",
+ "chksum_sha256": "3789c363d753216c8cb2c5c7aa854eecdaea8b76c2b1101dc6be1f87b3ab9e46",
"format": 1
},
{
@@ -1110,7 +1110,7 @@
"name": "tests/integration/targets/filter_decrypt/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f82806a609a5948f67ca15b1751d03b06f3bb352d5b0a96858587aecd14961c5",
+ "chksum_sha256": "dad09d9dd69e638cdf24fe6de80bc23814e5f92040a949780d286e32531ec0dd",
"format": 1
},
{
@@ -1299,7 +1299,7 @@
"name": "tests/integration/targets/lookup_sops/files/fake-sops.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c54bd8b8d632d7d502c1d99320c071ba466780cbac5549412a86188fbb1c78ed",
+ "chksum_sha256": "9a706b8cc2838a8f142b81126fd41afd159d0725b32a23e37e141c4540452ded",
"format": 1
},
{
@@ -1537,7 +1537,7 @@
"name": "tests/integration/targets/lookup_sops/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6d71eff736e4c6a34ad65b974c449314b55a81987581e125fc0b583f7bbe79eb",
+ "chksum_sha256": "3b327ceafb65f1b7f99389efa5fa9b7d5433237a6d580239c8fa0ab2d9187780",
"format": 1
},
{
@@ -2699,7 +2699,7 @@
"name": "tests/sanity/ignore-2.20.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "339f0feb36bead5f3e7ea0b6f9e2a87c0c3206f495d294ecfad057f7defa0225",
+ "chksum_sha256": "fe5ddafa8f7a29f2856538917338e021b31292c5ab7e3b3cb6e72bb8d3453baa",
"format": 1
},
{
@@ -2762,7 +2762,7 @@
"name": "CHANGELOG.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "07f74a744d911a2b6899d15fbd1bc6d7243573d19f0af6cd878d516023338bb9",
+ "chksum_sha256": "6ec77439284888f900b80b0c8d4dda68995be16a49931b817799b634213740f7",
"format": 1
},
{
@@ -2776,7 +2776,7 @@
"name": "CHANGELOG.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b7930e98b90f490f276fe68679956ff3f160555952815c31ff791dc0919116fd",
+ "chksum_sha256": "56c50a421e87c6b5ec23cdf3830acb059ccf5f27cdd84db3d45c3a9d3ab42a08",
"format": 1
},
{
@@ -2832,7 +2832,7 @@
"name": "noxfile.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "889730942700a5706ceaa606e4f86aa75b63f909dba35efdd3391525c91f40c9",
+ "chksum_sha256": "f6129f45cf78a8af0df3a059ee6ed742ae7448b16872bb1e21748fd07a033072",
"format": 1
}
],
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/community/sops/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/MANIFEST.json 2025-08-04 16:41:43.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/MANIFEST.json 2025-08-31 14:41:59.000000000 +0000
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "community",
"name": "sops",
- "version": "2.2.1",
+ "version": "2.2.2",
"authors": [
"Edoardo Tenani"
],
@@ -30,7 +30,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "70a6d2ba74005b40ad8ac76bb760e4c2a695bd4cb868c82a622b35652ead04ba",
+ "chksum_sha256": "3e0f6808ebd9c41e688403e30d944daa00f3babc48ad127a9490869faa7f30dd",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/changelogs/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/community/sops/changelogs/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/changelogs/changelog.yaml 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/changelogs/changelog.yaml 2025-08-31 14:39:18.000000000 +0000
@@ -516,3 +516,22 @@
- 2.2.1.yml
- 255-install-redirects.yml
release_date: '2025-08-03'
+ 2.2.2:
+ changes:
+ bugfixes:
+ - Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.sops/pull/260).
+ - all modules and plugins - the default of ``enable_local_keyservice`` changed
+ from ``false`` to ``true``, and explicitly setting it to ``false`` now passes
+ ``--enable-local-keyservice=false``. SOPS' default has always been ``true``,
+ and when setting this option to ``true`` so far it resulted in passing ``--enable-local-keyservice``,
+ which is equivalent to ``--enable-local-keyservice=true`` and had no effect.
+ This means that from now on, setting ``enable_local_keyservice`` explicitly
+ to ``false`` has an effect. If ``enable_local_keyservice`` was not set before,
+ or was set to ``true``, nothing will change (https://github.com/ansible-collections/community.sops/issues/261,
+ https://github.com/ansible-collections/community.sops/pull/262).
+ release_summary: Bugfix release.
+ fragments:
+ - 2.2.2.yml
+ - 260-deprecations.yml
+ - 262-local-keyservice.yml
+ release_date: '2025-08-31'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/noxfile.py ansible-12.0.0+dfsg/ansible_collections/community/sops/noxfile.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/noxfile.py 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/noxfile.py 2025-08-31 14:39:18.000000000 +0000
@@ -62,9 +62,11 @@
gha_container: str = "ubuntu-latest",
target: str = "gha/main/",
) -> None:
- docker_container_short = docker_container
- if docker_container_short.startswith("quay.io/ansible-community/test-image:"):
- docker_container_short = docker_container_short[len("quay.io/ansible-community/test-image:"):]
+ docker_container_short = (
+ docker_container
+ .removeprefix("quay.io/ansible-community/test-image:")
+ .removeprefix("localhost/test-image:")
+ )
target_name = target.split("/", 1)[1].rstrip("/").replace("/", "-")
# Compose name
name = f"ansible-test-integration-{target_name}-{core_version}-{docker_container_short}"
@@ -121,6 +123,7 @@
archlinux = "quay.io/ansible-community/test-image:archlinux"
debian_bullseye = "quay.io/ansible-community/test-image:debian-bullseye"
debian_bookworm = "quay.io/ansible-community/test-image:debian-bookworm"
+debian_13_trixie = "quay.io/ansible-community/test-image:debian-13-trixie"
for core_version in ["devel"]:
for docker_container in ["ubuntu2204", "ubuntu2404", "fedora42"]:
@@ -142,6 +145,7 @@
add_target(core_version="devel", docker_container="ubuntu2404", sops_version="3.9.1")
add_target(core_version="devel", docker_container=archlinux, python_version="3.13", sops_version="latest")
add_target(core_version="devel", docker_container=debian_bookworm, python_version="3.11", sops_version="latest")
+add_target(core_version="devel", docker_container=debian_13_trixie, python_version="3.13", sops_version="latest")
add_target(core_version="devel", docker_container="ubuntu2404", sops_version="latest", gha_container="ubuntu-24.04-arm")
# Install specific sops
@@ -156,6 +160,7 @@
# Install latest sops
add_target(core_version="devel", docker_container=archlinux, python_version="3.13", target="gha/install/3/", github_latest_detection="auto")
add_target(core_version="devel", docker_container=debian_bookworm, python_version="3.11", target="gha/install/3/", github_latest_detection="auto")
+add_target(core_version="devel", docker_container=debian_13_trixie, python_version="3.13", target="gha/install/3/", github_latest_detection="auto")
add_target(core_version="2.16", docker_container=debian_bullseye, python_version="3.9", target="gha/install/3/", github_latest_detection="auto")
add_target(core_version="2.19", docker_container="fedora41", target="gha/install/3/", github_latest_detection="auto")
add_target(core_version="devel", docker_container="fedora42", target="gha/install/3/", github_latest_detection="auto")
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/doc_fragments/sops.py ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/doc_fragments/sops.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/doc_fragments/sops.py 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/doc_fragments/sops.py 2025-08-31 14:39:18.000000000 +0000
@@ -76,9 +76,9 @@
enable_local_keyservice:
description:
- Tell SOPS to use local key service.
- - This corresponds to the SOPS C(--enable-local-keyservice) option.
+ - When set to V(false), this corresponds to the SOPS C(--enable-local-keyservice=false) option.
type: bool
- default: false
+ default: true
version_added: 1.0.0
keyservice:
description:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/filter/decrypt.py ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/filter/decrypt.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/filter/decrypt.py 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/filter/decrypt.py 2025-08-31 14:39:18.000000000 +0000
@@ -118,7 +118,7 @@
def decrypt_filter(data, input_type='yaml', output_type='yaml', sops_binary='sops', rstrip=True, decode_output=True,
aws_profile=None, aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None,
- config_path=None, enable_local_keyservice=False, keyservice=None, age_key=None, age_keyfile=None, age_ssh_private_keyfile=None):
+ config_path=None, enable_local_keyservice=True, keyservice=None, age_key=None, age_keyfile=None, age_ssh_private_keyfile=None):
'''Decrypt sops-encrypted data.'''
# Check parameters
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/module_utils/sops.py ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/module_utils/sops.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/module_utils/sops.py 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/module_utils/sops.py 2025-08-31 14:39:18.000000000 +0000
@@ -78,9 +78,9 @@
return f
-def _create_boolean(argument_name, pre=False):
+def _create_boolean(argument_name, pre=False, invert=False):
def f(value, arguments_pre, arguments_post, env, version):
- if value:
+ if value ^ invert:
_add_argument(arguments_pre, arguments_post, argument_name, pre=pre)
return f
@@ -102,7 +102,7 @@
'aws_secret_access_key': _create_env_variable('AWS_SECRET_ACCESS_KEY'),
'aws_session_token': _create_env_variable('AWS_SESSION_TOKEN'),
'config_path': _create_single_arg('--config', pre=True),
- 'enable_local_keyservice': _create_boolean('--enable-local-keyservice'),
+ 'enable_local_keyservice': _create_boolean('--enable-local-keyservice=false', invert=True),
'keyservice': _create_repeated('--keyservice'),
}
@@ -379,7 +379,7 @@
},
'enable_local_keyservice': {
'type': 'bool',
- 'default': False,
+ 'default': True,
},
'keyservice': {
'type': 'list',
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/plugin_utils/action_module.py ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/plugin_utils/action_module.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/plugins/plugin_utils/action_module.py 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/plugins/plugin_utils/action_module.py 2025-08-31 14:39:18.000000000 +0000
@@ -23,7 +23,7 @@
from ansible.errors import AnsibleError
from ansible.module_utils import six
from ansible.module_utils.basic import SEQUENCETYPE, remove_values
-from ansible.module_utils.common._collections_compat import (
+from collections.abc import (
Mapping
)
from ansible.module_utils.common.validation import (
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/files/fake-sops.sh ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/files/fake-sops.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/files/fake-sops.sh 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/files/fake-sops.sh 2025-08-31 14:39:18.000000000 +0000
@@ -3,7 +3,7 @@
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
-if [ "$1" != "--enable-local-keyservice" ] || [ "$2" != "--input-type" ] || [ "$3" != "yaml" ] || [ "$4" != "--output-type" ] || [ "$5" != "yaml" ] || [ "$6" != "--decrypt" ] || [ "$7" != "/dev/stdin" ] || [ "$8" != "" ]; then
+if [ "$1" != "--enable-local-keyservice=false" ] || [ "$2" != "--input-type" ] || [ "$3" != "yaml" ] || [ "$4" != "--output-type" ] || [ "$5" != "yaml" ] || [ "$6" != "--decrypt" ] || [ "$7" != "/dev/stdin" ] || [ "$8" != "" ]; then
echo "Command (fake-sops): $*" > /dev/stderr
exit 1
fi
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/tasks/main.yml 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/filter_decrypt/tasks/main.yml 2025-08-31 14:39:18.000000000 +0000
@@ -121,7 +121,7 @@
- name: Test fake sops binary
set_fact:
- fake_sops_output: "{{ lookup('file', 'simple.sops.yaml') | community.sops.decrypt(sops_binary=role_path ~ '/files/fake-sops.sh', enable_local_keyservice=True, aws_access_key_id='xxx') }}"
+ fake_sops_output: "{{ lookup('file', 'simple.sops.yaml') | community.sops.decrypt(sops_binary=role_path ~ '/files/fake-sops.sh', enable_local_keyservice=False, aws_access_key_id='xxx') }}"
fake_sops_output_2: "{{ lookup('file', 'simple.sops.yaml') | community.sops.decrypt(sops_binary=role_path ~ '/files/fake-sops-val.sh', config_path='/path/to/asdf', aws_secret_access_key='yyy') }}"
fake_sops_output_3: "{{ lookup('file', 'simple.sops.yaml') | community.sops.decrypt(sops_binary=role_path ~ '/files/fake-sops-rep.sh', keyservice=['a', 'b'], aws_session_token='zzz') }}"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/files/fake-sops.sh ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/files/fake-sops.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/files/fake-sops.sh 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/files/fake-sops.sh 2025-08-31 14:39:18.000000000 +0000
@@ -3,7 +3,7 @@
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
-if [ "$1" != "--enable-local-keyservice" ] || [ "$2" != "--decrypt" ] || [ "$(basename "$3")" != "simple.sops.yaml" ] || [ "$4" != "" ]; then
+if [ "$1" != "--enable-local-keyservice=false" ] || [ "$2" != "--decrypt" ] || [ "$(basename "$3")" != "simple.sops.yaml" ] || [ "$4" != "" ]; then
echo "Command (fake-sops): $*" > /dev/stderr
exit 1
fi
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/tasks/main.yml 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/integration/targets/lookup_sops/tasks/main.yml 2025-08-31 14:39:18.000000000 +0000
@@ -142,7 +142,7 @@
- name: Test fake sops binary (lookup parameters)
set_fact:
- fake_sops_output: "{{ lookup('community.sops.sops', 'simple.sops.yaml', sops_binary=role_path ~ '/files/fake-sops.sh', enable_local_keyservice=True, aws_access_key_id='xxx') }}"
+ fake_sops_output: "{{ lookup('community.sops.sops', 'simple.sops.yaml', sops_binary=role_path ~ '/files/fake-sops.sh', enable_local_keyservice=False, aws_access_key_id='xxx') }}"
fake_sops_output_2: "{{ lookup('community.sops.sops', 'simple.sops.yaml', sops_binary=role_path ~ '/files/fake-sops-val.sh', config_path='/path/to/asdf', aws_secret_access_key='yyy') }}"
fake_sops_output_3: "{{ lookup('community.sops.sops', 'simple.sops.yaml', sops_binary=role_path ~ '/files/fake-sops-rep.sh', keyservice=['a', 'b'], aws_session_token='zzz') }}"
@@ -161,7 +161,7 @@
fake_sops_output: "{{ lookup('community.sops.sops', 'simple.sops.yaml') }}"
vars:
# sops_binary: "{{ role_path }}/files/fake-sops.sh"
- sops_enable_local_keyservice: true
+ sops_enable_local_keyservice: false
sops_aws_access_key_id: xxx
- name: Work around Ansible bug for next test
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/sanity/ignore-2.20.txt ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/sanity/ignore-2.20.txt
--- ansible-12.0.0~b5+dfsg/ansible_collections/community/sops/tests/sanity/ignore-2.20.txt 2025-08-04 16:38:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/community/sops/tests/sanity/ignore-2.20.txt 2025-08-31 14:39:18.000000000 +0000
@@ -1,3 +1,5 @@
+plugins/action/load_vars.py pylint:ansible-bad-import-from
+plugins/plugin_utils/action_module.py pylint:ansible-bad-import-from
tests/integration/targets/filter_decrypt/files/hidden-binary.yaml yamllint:error
tests/integration/targets/filter_decrypt/files/hidden-json.yaml yamllint:error
tests/integration/targets/lookup_sops/files/hidden-binary.yaml yamllint:error
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/.github/workflows/main.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/.github/workflows/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/.github/workflows/main.yml 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/.github/workflows/main.yml 2025-09-09 00:14:19.000000000 +0000
@@ -66,13 +66,13 @@
strategy:
fail-fast: false
matrix:
- include:
- - VERSION: "v4.0"
- NETBOX_DOCKER_VERSION: 2.9.1
+ include:
- VERSION: "v4.1"
NETBOX_DOCKER_VERSION: 3.0.1
- VERSION: "v4.2"
- NETBOX_DOCKER_VERSION: 3.1.0
+ NETBOX_DOCKER_VERSION: 3.2.1
+ - VERSION: "v4.3"
+ NETBOX_DOCKER_VERSION: 3.3.0
steps:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/FILES.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/FILES.json 2025-03-04 22:42:10.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/FILES.json 2025-09-09 00:14:19.000000000 +0000
@@ -8,5106 +8,6002 @@
"format": 1
},
{
- "name": "CHANGELOG.rst",
+ "name": "pyproject.toml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5561e1e48b10d67a51e4b3adfb0e6b5e7dc54b85ed5c6f66c6d3adb2743dea0e",
+ "chksum_sha256": "4f56f0fb81fa3058694bd1838ca3aee09909a3341fa928e1d3aeb14f67dd9196",
"format": 1
},
{
- "name": "LICENSE",
+ "name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "605e9047a563c5c8396ffb18232aa4304ec56586aee537c45064c6fb425e44ad",
+ "chksum_sha256": "f309ed5d08d3bc8a6bd4b58dd8b1130b5664f21fd4ee32b44c0ad8927b7aa0d8",
"format": 1
},
{
- "name": "CONTRIBUTING.md",
+ "name": "requirements.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11337b573ba4ffe704e9a94e682e018f7a489b4bd9ed5b474643ec2ae136ddf4",
+ "chksum_sha256": "d003b5dde4117b9ef860b6d4fd67096a2909ea206f63116d5d46d1955fcc94f1",
"format": 1
},
{
- "name": "requirements.yml",
+ "name": ".readthedocs.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5dfa35ed19609e37e1629ce816373f8dd766b78c0e65d948bfa6e69da08cd090",
+ "chksum_sha256": "b906c5988737cbfd185e239467558df249bee93aed2a9b9bae3a830c48ffd47b",
"format": 1
},
{
- "name": "poetry.lock",
+ "name": "docs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use/inventory.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "46122303da37d3e111fc99adf1b0088290690e8d7253f4b2591adf2387d76646",
+ "chksum_sha256": "7b28ca7e2a6cf1d0549a4eb2cafc901e3b2adfc449c3de6950bdf165daeb2b35",
"format": 1
},
{
- "name": "tests",
+ "name": "docs/getting_started/how-to-use/advanced.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "aad987bea7cd675b99e0a3224b88b8ce6163ec6626a7c6f1393d0c52fe988c30",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use/modules.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "720bd7b5e52bf0923a949930fff93636d166388dee964928f065e67649b6cfe0",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use/media",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/config.yml",
+ "name": "docs/getting_started/how-to-use/media/advanced_dns_name.png",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "71ff5426485cc74b3c360a0941dc40661ef17ffc8983435481f55f9f4143ae4f",
+ "chksum_sha256": "3f4c6892f90e4b7a2ef8ce70fbe04c4c1cee8806d2aa37ffe09955045eb96bb2",
"format": 1
},
{
- "name": "tests/integration",
+ "name": "docs/getting_started/how-to-use/media/api_device_post.png",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "abdd29c2a0dc029c4aa6d4176b1a205dbc5d4d1f434d821e04b9a08a26175221",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use/media/advanced_dict.png",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b0d011fef324a804f6cbb2778e65d69c6373c8123fac576d9f49072471a6e908",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7029fde832d231a3111e5484faac6759377430100b288bc14f6b2670c6022d73",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/installation.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a4a35f73d6e5c37ffbc2e117b4c11a1f9ebeaa78d93b9c36efca62080792c7ca",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/index.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "105990e8aebad3487a6e7174313bc26bc4138813416cd4c98c8157f158b6904c",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/how-to-use.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "24afa8389fadeb19111920ff8dedfad7bbbe0cf54c9fefa238c564b8809a39e9",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/integration.cfg",
+ "name": "docs/getting_started/contributing/modules",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/modules/new_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b5e219ab076b1e90de2c650d480fe0a4b8724f839ac95f5240ed64a80202dfbf",
+ "chksum_sha256": "992100c8aa6c94c16d82d1196bbf725193ebad97aa7630eec5c2c58556ed363c",
"format": 1
},
{
- "name": "tests/integration/targets",
+ "name": "docs/getting_started/contributing/modules/media",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/v4.2",
+ "name": "docs/getting_started/contributing/modules/media/post_rt.png",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7c5735f28bbce3e68418d44c9d799bfd9a546304ea826bc31e9da6604817ca51",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/modules/media/vrf_options.png",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c04ff654c85e611c7968264f1596973cd6f28b6d48a71efcafa5a22f5c498daf",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/modules/index.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5158e3e659bafe06c7cd9d2897af6e7ac6209207d906fb4bb530b200b390832e",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/modules/update_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "afff5f11445cb862a1177e48f0f2e92316056b7781786a368fa960645ccb34bd",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/modules/architecture.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f226220ff71f4bed8081eb948547871542ffba902620f0982a2bc03d3e07fee0",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/inventory",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks",
+ "name": "docs/getting_started/contributing/inventory/index.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "698639c0280fc8b9d8a8926baf2e53dbaff581600a4cc3f65cf9ecdc4dc19732",
+ "format": 1
+ },
+ {
+ "name": "docs/getting_started/contributing/index.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "08326dcd2935d4a33b028eb1dab2a5afda56afb802d9ca6c89e1a59c0c45afd2",
+ "format": 1
+ },
+ {
+ "name": "docs/requirements.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "39988308e7ae66376608418d13d7979ccd50fcdc3e1c3439912ff9943c210ca3",
+ "format": 1
+ },
+ {
+ "name": "docs/changelog",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_role.yml",
+ "name": "docs/changelog/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
+ "chksum_sha256": "1831a65ac37c6d38d1024a11f051b0fb19e95123b9372436ea5d6fd366fe8c54",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_journal_entry.yml",
+ "name": "docs/changelog/changelog_include.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
+ "chksum_sha256": "d8a74a8989015f6ff8f2e9c52c07518770e91dd69c81b078eec816aafc8ab9a2",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_tag.yml",
+ "name": "docs/js",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/js/ansible",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/js/ansible/application.js",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
+ "chksum_sha256": "2a63425844f360eba3a0f4548933729f58ec6e6df6fbf1906bf2986e394cf149",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_chassis.yml",
+ "name": "docs/_extensions",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/_extensions/pygments_lexer.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
+ "chksum_sha256": "6fa5a72e224c3cae4a07f42ea993bed348822e31e4435c300f01e707fb961cb8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_tunnel_group.yml",
+ "name": "docs/media",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/media/postresults.PNG",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
+ "chksum_sha256": "12ce503f9c545a573466e75cf028f316afc893e41f056be1ce6838b44db49537",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_cable.yml",
+ "name": "docs/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
+ "chksum_sha256": "13a5ee7e9853fc07707a7cdc745cb837c7b2ee852328f4b4c7ebcf6e3acb881b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_lan.yml",
+ "name": "docs/_static",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/_static/ansible.css",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
+ "chksum_sha256": "0787ca656847c399975c5cca01be77f08d4ff9344b87bec1c1ba1aaa3cff56a8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_webhook.yml",
+ "name": "docs/_static/pygments.css",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
+ "chksum_sha256": "74318b36e2302111536796af5aa86a9ceab09faa3eedc3e7d28878b8751896d6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_permission.yml",
+ "name": "docs/plugins",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_device_role_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f4439e093bd263b5c922c86922753af33497d18be599c8890f38261e06860c15",
+ "chksum_sha256": "30554a23ff0aaba9e4b78c125d6e40de69526e0b073dbe546bc01e4712a83106",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_token.yml",
+ "name": "docs/plugins/netbox_site_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21c3676714a1e5949f86be9633f300551a5bd089bec304f9077eb996d2022e90",
+ "chksum_sha256": "42c6d6831107d74d6cf3e7a23b77bfd1d8e6e05a61b1f767a8cc24372ef25413",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_custom_field.yml",
+ "name": "docs/plugins/netbox_console_server_port_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
+ "chksum_sha256": "16db01670e0dcec0f577f867e3d1845870f8a9b93777f0c228098c2e0498a62c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rir.yml",
+ "name": "docs/plugins/netbox_tunnel_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
+ "chksum_sha256": "a9bc8735a70cec07566f6fa1a251ac3d332b38809e56e4bcbabd5f203d494464",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_cluster_type.yml",
+ "name": "docs/plugins/netbox_power_outlet_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
+ "chksum_sha256": "5bb2441fbee10b2dee0fad9ec183fff7bd8387094527f4d6975376c9254c3362",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_prefix.yml",
+ "name": "docs/plugins/netbox_power_outlet_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b2deb0e95870a5dcf7208efa09991d3ac9b5b72d7d9ff6bc3f130df369e38f34",
+ "chksum_sha256": "1dba5cf57dc1e423ca291e0094ef08b3b86ada2d2e6ba8aeba1e5d0bf78896b5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_ipam_role.yml",
+ "name": "docs/plugins/nb_lookup_lookup.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
+ "chksum_sha256": "81d3782d78242769029c8e9646ffe421b3fc7da5df59c2d865bd4b2d6974179e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rear_port_template.yml",
+ "name": "docs/plugins/netbox_manufacturer_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
+ "chksum_sha256": "b3ec02ef7d13ade0c04755fa22ee6281845d27b353227b240192feb71393dfb4",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_circuit.yml",
+ "name": "docs/plugins/netbox_fhrp_group_assignment_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
+ "chksum_sha256": "52264ab9863b6b48cddfb6390243740963b93c5307273726454136da0972ae42",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_asn.yml",
+ "name": "docs/plugins/netbox_provider_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
+ "chksum_sha256": "cfbfea172c48fb34062de40f1d928814292eecf0c4fb04f08d44a749d9659fbd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rack_role.yml",
+ "name": "docs/plugins/netbox_device_interface_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
+ "chksum_sha256": "1c186cbed878108d623a976666fb5ddbfc535380af38d03b8c7749926b8dbbe8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_type.yml",
+ "name": "docs/plugins/netbox_wireless_lan_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
+ "chksum_sha256": "ad57f32c7d3096c219a52b7b27b1f90bbd0be3edd67e6fdfaf7d823cf15ce325",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_inventory_item.yml",
+ "name": "docs/plugins/netbox_custom_field_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
+ "chksum_sha256": "e99e15e6578a67688545f9ba12e22567ae77358e908ce60cbcc54f62bd831bf9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/main.yml",
+ "name": "docs/plugins/netbox_power_feed_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6f5f36bd8848ee73cb96db1b249e05a72f11a29a2009313ca05dde389b6aa9df",
+ "chksum_sha256": "2a9b7339980914e6f97f16e645c13155973a0a058eee8a1ab20252dfa2c9363e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_manufacturer.yml",
+ "name": "docs/plugins/netbox_power_port_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
+ "chksum_sha256": "b193c28dc26ce70a127ee897c760471fb7b54ccf379477a5c994ace17f443156",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_console_port_template.yml",
+ "name": "docs/plugins/netbox_service_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
+ "chksum_sha256": "8ce5477fa688c20c04e5273291d6ef4f8ac40b75841751e0960973e2a2ebeec8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_contact_role.yml",
+ "name": "docs/plugins/netbox_device_bay_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
+ "chksum_sha256": "da3df78bcc6022de83913a31a413de74fa0a9d4a59ff19fc54b6b6afd4a9172c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_interface_template.yml",
+ "name": "docs/plugins/netbox_wireless_link_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
+ "chksum_sha256": "9e959d69028839654d7709c6f3c2159a1fd8e3400c8ad51bb39f02d0ccdd3c39",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_vlan_group.yml",
+ "name": "docs/plugins/netbox_fhrp_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
+ "chksum_sha256": "7899521d4ca97f569134ee77a392b32d3eaaeaeefa0a1d29dbb69ffe708634b7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_module_bay.yml",
+ "name": "docs/plugins/netbox_cable_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
+ "chksum_sha256": "9b293de85945449ee432a223608ad215b3ef786b2c0aa4975ffae96887f2dd65",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_console_server_port_template.yml",
+ "name": "docs/plugins/netbox_webhook_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
+ "chksum_sha256": "3a2f34ae27b20bb9a8b104683b2ac2e24fc464d4c9d8fc6e51f950a240612ec5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_vrf.yml",
+ "name": "docs/plugins/netbox_circuit_type_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
+ "chksum_sha256": "9ef31d0eb525c7bc4c6ed2416f79d880b5855abe9030e3e18a67a308fa796254",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_location.yml",
+ "name": "docs/plugins/netbox_circuit_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
+ "chksum_sha256": "4ac985dfe11ae4a5240e8683f5254f766bf42d44744017081cc33ae079a5add3",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_machine.yml",
+ "name": "docs/plugins/netbox_region_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c78969b84c27362fa55a2f50652acaf04388b93e78290e3b1bea06b32ed26fbb",
+ "chksum_sha256": "b1253e6e1dfcc5ed6c266456095a154cca8a9099f3368d7cd10df5497538b0a6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_disk.yml",
+ "name": "docs/plugins/netbox_circuit_termination_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
+ "chksum_sha256": "09d4c007c93b2a1e3a6413275a41c8aa3040c26f768325bbc54792f5528d7f81",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_lan_group.yml",
+ "name": "docs/plugins/netbox_route_target_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
+ "chksum_sha256": "b66003160f3a1cc2fb0ff232d730f7a2ffbfa68240fd9ab317a23183a7038e8b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_outlet.yml",
+ "name": "docs/plugins/netbox_asn_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
+ "chksum_sha256": "301db8a0f443f5d3babc569f3c0034dc6d2dbe19de3f21f29ace450de6133c37",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_bay.yml",
+ "name": "docs/plugins/netbox_cluster_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
+ "chksum_sha256": "0412c7715fbbc053c1cce1cfabfd01c2fbca32294bc376e06f827461f4d8ec12",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_front_port_template.yml",
+ "name": "docs/plugins/netbox_module_bay_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
+ "chksum_sha256": "da3ded46277761e7cd951db8fdc6896d311c08ca729725dfe22d826a4f7d3285",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_contact.yml",
+ "name": "docs/plugins/netbox_device_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
+ "chksum_sha256": "ddf397e5370749e69d08da2f0c2d2b025b59c4d5d444e9c559bd4e33841c2563",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_mac_address.yml",
+ "name": "docs/plugins/netbox_contact_role_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a533431441769cae9692e4529bb2df49133685999d0cd7713081a20b514f657a",
+ "chksum_sha256": "8022ab565b63426eedeacf47b370c10de85efc07b79449bb6e9484105264719a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_console_port.yml",
+ "name": "docs/plugins/netbox_console_port_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
+ "chksum_sha256": "dd74e6df8c43fcdc27d48d34acf0ba0dd95d22bb1548a8e2ed47809067a6246c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_fhrp_group_assignment.yml",
+ "name": "docs/plugins/netbox_wireless_lan_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
+ "chksum_sha256": "2f9f27a7600e82057bc8ebf7758894807e0b5e50c2a52910fd1e2fc41b2b734c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device.yml",
+ "name": "docs/plugins/netbox_virtual_disk_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
+ "chksum_sha256": "a99914436428249f5e31657ef1b8ea88f213f419814df7938b42feb2c83473fe",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_tenant.yml",
+ "name": "docs/plugins/netbox_rack_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
+ "chksum_sha256": "ce0d7ee5f942c18210dd6b6b4721af2ff9fa2ac435683b15caa061cf8a249072",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml",
+ "name": "docs/plugins/netbox_interface_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5f65f18257e67029d5c7bb97aa06a8c3f2a75d662c0d3135333007e11db87dc8",
+ "chksum_sha256": "80ce94c21753ae848881272883ff10e6a2b9d2d2c9b9f89b2b102f5c5fabb251",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_lookup.yml",
+ "name": "docs/plugins/netbox_power_panel_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
+ "chksum_sha256": "56861dbfe8e42f3daa5e59796d0bb53725aae517391435cf3175a706cba64bd9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_config_template.yml",
+ "name": "docs/plugins/netbox_vm_interface_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
+ "chksum_sha256": "eb1a8cda582c69e2e22b7cd33949284112bc0e6f685fb45f54a9be042af13e13",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_ip_address.yml",
+ "name": "docs/plugins/netbox_rir_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
+ "chksum_sha256": "1382122a269cb4a2ca918fb4dce0556756d693c127250b0c12f72c1fc5c6d966",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_interface.yml",
+ "name": "docs/plugins/netbox_provider_network_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "85ad057a599c32fb6e28a48d913fa0ca98b88afe36640ef059a149975454da86",
+ "chksum_sha256": "a23d61e7604943181ff50d1fa009a0532dd5e29ca33208deca2816a171d7e709",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_console_server_port.yml",
+ "name": "docs/plugins/netbox_vlan_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
+ "chksum_sha256": "3aa0ddbac2de8873b44e41c33d090396aeb0d65666e5a8b4d9608c9e2d104953",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_l2vpn.yml",
+ "name": "docs/plugins/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
+ "chksum_sha256": "f5f4af7bec4ae74a0fdee531e24304a88f2c90b71e4ac628622a3934251a055e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_inventory_item_role.yml",
+ "name": "docs/plugins/netbox_site_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
+ "chksum_sha256": "de9e722dbd77ad11b398e8ff6066c393aedb01cdd70245975a99bd18161871a9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rack_group.yml",
+ "name": "docs/plugins/netbox_permission_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
+ "chksum_sha256": "f87ed7557087f572e80a19c4c198852c5a2e1ab18ff500f5522539247d3c6bb3",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_port_template.yml",
+ "name": "docs/plugins/netbox_vlan_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
+ "chksum_sha256": "dae65230660dfe86c8803568752e0ce855c4cbbd74cb0495a4163032075f6a6e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_device_bay_template.yml",
+ "name": "docs/plugins/netbox_journal_entry_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
+ "chksum_sha256": "22c3d01413a0fa2aeabad854e2d8d29fe1f456ea896b5c1c148dfc18553c024b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_circuit_type.yml",
+ "name": "docs/plugins/netbox_service_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
+ "chksum_sha256": "fb8bd1b8aa273473a619bb031bb312df227e8ec68b90f5adab879aef0a4fed95",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_export_template.yml",
+ "name": "docs/plugins/nb_inventory_inventory.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
+ "chksum_sha256": "0244c61888929957245245e2116381e77c6bfdd9b050f1163625b31f2d744868",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_service_template.yml",
+ "name": "docs/plugins/netbox_tunnel_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
+ "chksum_sha256": "e1522cef7048a34d072bf877d3fc9966210161571359dc65ce82b38b267b81c9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rack.yml",
+ "name": "docs/plugins/netbox_platform_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5102726a77b9fd96fd91f72b14185f4d346070d663b24d3ecf96f7c1ad43db5b",
+ "chksum_sha256": "3bd1e742365fd5932e47bcfda93a39fd54ad4f5418aa431194008741181eacea",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_site.yml",
+ "name": "docs/plugins/netbox_contact_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
+ "chksum_sha256": "6af28804a0631086f3c5b9ec32bf77c9c803aee913598110ea86c3c7e7715d7c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_module_type.yml",
+ "name": "docs/plugins/netbox_vrf_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
+ "chksum_sha256": "74129cf1dd3afac0246b50e80ad5756754ce4f351bb3f3b2048c7598a8c7854a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_vm_interface.yml",
+ "name": "docs/plugins/netbox_user_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
+ "chksum_sha256": "a8c5c2775f9346c183cad768e786e1f5c9963f788fe58f52a1f3e7d206501c3f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_region.yml",
+ "name": "docs/plugins/netbox_inventory_item_role_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
+ "chksum_sha256": "81876f89da7f326ad30e320c91c45358c3cff44ebd45102383c82d93811ddfb1",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_link.yml",
+ "name": "docs/plugins/netbox_aggregate_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
+ "chksum_sha256": "98404d353a38cc6284513b10a4931c6a5a1f5495f34bbbbe187d5765e790b755",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_fhrp_group.yml",
+ "name": "docs/plugins/netbox_cluster_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
+ "chksum_sha256": "a73d8ca9f42a9568610015216e355d5c98a348128638af0697cd2e075cce6bfb",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_user.yml",
+ "name": "docs/plugins/netbox_prefix_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5d43792e4962f794c4d543e3c5299aafa76d1deaa44ece6e0e3ba53c65a63d39",
+ "chksum_sha256": "5ce376d22e0f44b3b3673819ebb3d65ea20bd22af3a2d7f844508d569d0bba18",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_port.yml",
+ "name": "docs/plugins/netbox_cluster_type_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
+ "chksum_sha256": "64dbb8c1fcb644d5e8e2c24816aa42b6cf1439a99810402c987aee38eb466770",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_front_port.yml",
+ "name": "docs/plugins/netbox_mac_address_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
+ "chksum_sha256": "7772cf13a923e8c3ce8a0e61c303c35f3d49f57c8523e67c9e915ce6c9badd71",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_provider_network.yml",
+ "name": "docs/plugins/netbox_custom_link_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
+ "chksum_sha256": "bbbda8bed1dae73fbd89ba0774988c238e1d3440456bec3891fd7a29a63defde",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_config_context.yml",
+ "name": "docs/plugins/netbox_export_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
+ "chksum_sha256": "84c0c7e2c98c4ad63c69145b3193e077fc523ed72504e79ae526e83541217b87",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_route_target.yml",
+ "name": "docs/plugins/netbox_ipam_role_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
+ "chksum_sha256": "cc6c5676f0872194f33895ae5aa9387ac3b04f92639f6e0ec8b6953e347e51b6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_rear_port.yml",
+ "name": "docs/plugins/netbox_rear_port_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
+ "chksum_sha256": "074441f1003e17b2e645aa54fbbc9936c059385f9282e9ebb61342b8ce1ea6be",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_service.yml",
+ "name": "docs/plugins/netbox_ip_address_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "284ba7a8c0c4289324906f530321a35d97ea04881d12b11dd72da2e187fa97aa",
+ "chksum_sha256": "f7bb12a1391ab6dd0b0fecbb64e429ec7547f38c47bd79a7935b9a053495f454",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_site_group.yml",
+ "name": "docs/plugins/netbox_device_type_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
+ "chksum_sha256": "994cba0bf816c1694b21eeaedab63656ed8d2a189f6ede4cbbc3cf98715829ea",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_tenant_group.yml",
+ "name": "docs/plugins/netbox_config_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
+ "chksum_sha256": "397445d96d98529c852ed7b753f8b0687ce73756160bfe7b9ef1bdb301532aee",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_vlan.yml",
+ "name": "docs/plugins/netbox_power_port_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
+ "chksum_sha256": "d3bd3323f8d1adfb79407df70a73aff54dc124be216a30ecfe566959eefc48bd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_outlet_template.yml",
+ "name": "docs/plugins/netbox_l2vpn_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
+ "chksum_sha256": "3073d7429b343c45ad2237ecd96b4dd79490c6bc3935a71758c3a4e27074ed32",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_cluster.yml",
+ "name": "docs/plugins/environment_variables.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d0e6c21979d8c7a40c2dfedf17a84aacadb97e6e5ead6b69e5eb10639741ac2c",
+ "chksum_sha256": "919b9c68b99e6fe558e929a66e60200db11c9125fc67e92184911e9a0c458adf",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_module.yml",
+ "name": "docs/plugins/netbox_config_context_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
+ "chksum_sha256": "c6966267251d0fc9889a5a388489c41331e6c269d8ee98d2fba1e5b8e3d0e2c6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_platform.yml",
+ "name": "docs/plugins/netbox_device_interface_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
+ "chksum_sha256": "1685451506564e5865b67e71173a87e6bac03509e29bcca66ccc880944363526",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_provider.yml",
+ "name": "docs/plugins/netbox_front_port_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
+ "chksum_sha256": "fe05082aef27134795c24b3155584a387bd895feebc954ebb2c716367eab32bd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_cluster_group.yml",
+ "name": "docs/plugins/netbox_front_port_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
+ "chksum_sha256": "031611f76fcd64c92cb447dd632fb54a0084662e2186bf503b9e2f1898bebf53",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_feed.yml",
+ "name": "docs/plugins/netbox_rear_port_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
+ "chksum_sha256": "618f3236d1d4230405b51fc7c7f12bd15f18a7defdb0a620c5d0fadbdf4bed74",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_tunnel.yml",
+ "name": "docs/plugins/netbox_virtual_chassis_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
+ "chksum_sha256": "ad9a6315329277212ec33aa881dc1ba6ee31727d0e45546700309a9f4d5ea696",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_custom_link.yml",
+ "name": "docs/plugins/netbox_token_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
+ "chksum_sha256": "1afd9a2a56e62d159800cd2839684376396171efc6b6b6467ae48b8f9afcecc9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_user_group.yml",
+ "name": "docs/plugins/netbox_virtual_machine_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ba829ea0017c2fe3a97d2e197b86e5fbbbd2396c3f2b5619eb28087ab7c3e029",
+ "chksum_sha256": "52b6903b65fdf379068e2a61df0365adb1b56a7c750ef6a83fe3c1333c514603",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_power_panel.yml",
+ "name": "docs/plugins/netbox_tag_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
+ "chksum_sha256": "348c06deb69a851473244de5ebf3d1a4bc30c0ebcfc2a2e58dc987525d3b9909",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_l2vpn_termination.yml",
+ "name": "docs/plugins/netbox_console_port_template_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
+ "chksum_sha256": "3fa9366e119c2dbd54a29e3efdb714ce23e5bcd5cd72ff2e634be0ec3bd7693d",
"format": 1
},
{
- "name": "tests/integration/targets/v4.2/tasks/netbox_aggregate.yml",
+ "name": "docs/plugins/netbox_user_group_module.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
+ "chksum_sha256": "332431f40cedf0d47e2268bf3b7da102d4949012450d888e4a2a376e5b374737",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2",
+ "name": "docs/plugins/netbox_rack_role_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4ba0689041959357663be897cf59eecdb2e5576c467f2595769eb57d31c82181",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_console_server_port_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0c8e089922a60794099b97b5a0be8573dba01e317710c4539aa18459522fb2d2",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_module_type_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "62917e8f94001d3b5d6af869ee7bb604f765319fd96c9390e30a76e09c635a7f",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_tenant_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "21efff48b9a758139aef53b12e3637fea34d512593aa207561186f5b1066558b",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_module_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fac14f1c6140ef2f624e0143e1c18574a4ec172b61939aacffef3f816067008a",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_contact_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b5b40c438b299475b0a94648248159b94014aa166f475c8cbebb279eb61e6564",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_device_bay_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9b58952511f8a9c5e876190cb459c1b9b4dc71a84738be836ea8ffd75b78734f",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_custom_field_choice_set_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f20ddd3e371ea3799df85c1be864a004bbed4210895bc6b1d7447ef4bfc4738d",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_rack_group_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8389d164e3b594dbb595c9b35eb1d27b31c11d9154a12a81e0ec4a80bdd69921",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_location_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2a935508772fda71ba8a4ea233874ac9e564a2f89b230e37c84dba0ee1c06a99",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_tenant_group_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "10ce87f1e308e25275fa6e3d2c9673d6dbb3fc4ef4c3f6f0e5324e5c62033968",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_inventory_item_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ee5b25af1469814fb139d4a8d46e9ce1b23579306b399f6b8af1212831879b2d",
+ "format": 1
+ },
+ {
+ "name": "docs/plugins/netbox_l2vpn_termination_module.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "619a1012fc5df8627a317c8b3db911d0682eeddb393332e906e71ea2134436c2",
+ "format": 1
+ },
+ {
+ "name": "docs/conf.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "96d9a9e5902655cbe392008f2b98ddcceb35d1fa30e7359debf9abca7a79e38c",
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/aliases",
+ "name": "docs/module_utils/netbox_secrets",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_secrets/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
+ "chksum_sha256": "8fe38c525cf5a8c333411a9c0266960fb55f3360ec7aaf981a0765d126326c89",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/compare_inventory_json.py",
+ "name": "docs/module_utils/netbox_tenancy",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_tenancy/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b124d3651bbc95d0f9a91bf941603d005fb84cc6732f092f10f5fdb7e0606cc7",
+ "chksum_sha256": "d3aae8ae61995eda566696ff9322a02bcd663128520294b5dbcee6c2d7b62f71",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/runme_config.template",
+ "name": "docs/module_utils/netbox_utils",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_utils/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
+ "chksum_sha256": "51b1dc879f2785c838a3a573ceeef3c09cf6d169d36f4e856d25cb60fde62463",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/.gitignore",
+ "name": "docs/module_utils/netbox_ipam",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_ipam/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
+ "chksum_sha256": "5c83d597e8b57c1fc6e1b240b361802f04cf5b2b93ed5b163430c2ad2a25c700",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/runme.sh",
+ "name": "docs/module_utils/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6f2b7a2585ba29e702bd7f8d247c53c264ce817158a6e19412fdd930440badbe",
+ "chksum_sha256": "b4fdf0597f752c618b999e67fb63624f430780bf693e4b2b408ab5666df9d1bd",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files",
+ "name": "docs/module_utils/netbox_dcim",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2.json",
+ "name": "docs/module_utils/netbox_dcim/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
+ "chksum_sha256": "aac738555b1754e47e6a3b632cde1a825c7af6f831382487ccad4eccc8910f13",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options.yml",
+ "name": "docs/module_utils/netbox_circuits",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_circuits/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
+ "chksum_sha256": "69b4f0147da11b460812a18e1a30c46cf783038607e8aa15b8104ebcf745971b",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-bearer-token.json",
+ "name": "docs/module_utils/netbox_extras",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_extras/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4244b17e640c12cfeaf500bfeb0d03ea87acc82f645a36a977f166c7bb1523d8",
+ "chksum_sha256": "91e0d05c958f3fd4bddd1f90fcffd40cb838ca9fe10ddb23fed96c96c29f925b",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2-filter.json",
+ "name": "docs/module_utils/netbox_virtualization",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "docs/module_utils/netbox_virtualization/index.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1f41c02495247269978aad74f6fe847f7d304640c522614be6b1ffdb3ce852c6",
+ "chksum_sha256": "96fccbb031a84baaa22a47b0feca0bd05c5471eecaceb2908caf75f5d20384a4",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-legacy.yml",
+ "name": "docs/Makefile",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
+ "chksum_sha256": "8b6587b859607f200f116e2cb043fc358e1c3a26c326b563bf348453cfc68307",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-noracks.yml",
+ "name": "poetry.lock",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
+ "chksum_sha256": "86438138eb3f8eef89a1d702c99abfb8cc8efc1ccede85140ec6642b7ab634a3",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals.json",
+ "name": "LICENSE",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "40a19e937a8d7144f15fbfc6b6fb4a4cd2eea077d92b32695aced3d217e6b0ad",
+ "chksum_sha256": "605e9047a563c5c8396ffb18232aa4304ec56586aee537c45064c6fb425e44ad",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-noracks.json",
+ "name": "CONTRIBUTING.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "408c0743dd140374190fe94211f1e82bb1cb9897aae95545e0a77a489ae6afdb",
+ "chksum_sha256": "11337b573ba4ffe704e9a94e682e018f7a489b4bd9ed5b474643ec2ae136ddf4",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options-flatten.json",
+ "name": ".github",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": ".github/ISSUE_TEMPLATE",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": ".github/ISSUE_TEMPLATE/feature_request.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "506196508ff9db15e9764eeeb464da3f8e3d638ddaa38c699252c11e2a185ffd",
+ "chksum_sha256": "4c042a9f4b7a1e6a8a3c7962b44e364f5b2cfe5242f17415bb9e7af94103561b",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options.json",
+ "name": ".github/ISSUE_TEMPLATE/housekeeping.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
+ "chksum_sha256": "6952213267de18d7a4656f4aa76a8fecd52fad264d38159074ce5fea2ebf3986",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals-flatten.yml",
+ "name": ".github/ISSUE_TEMPLATE/documentation_change.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
+ "chksum_sha256": "a1c372660a10ea2ce252341ddcf8f52b5faf3923b4d3ca2f864609450cfe3534",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options-flatten.yml",
+ "name": ".github/ISSUE_TEMPLATE/config.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
+ "chksum_sha256": "417cfe754f2372185d81c8ef435d8ade002ab0f5db9f7f917a9ac26ec7479851",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2.yml",
+ "name": ".github/ISSUE_TEMPLATE/bug_report.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
+ "chksum_sha256": "c626f2997fc48e16250057238523be1a42788d29eb48755db176bd433c79e13a",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals-flatten.json",
+ "name": ".github/workflows",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": ".github/workflows/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6313f3922ecede170bb4893bd219548ca99415f9215beca0777d7eeb240e0b2",
+ "chksum_sha256": "aa9e1cb7e64be9a7ddb5e87560313e3536ac3ec87f46ca537815d31e568d78f5",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals.yml",
+ "name": ".github/workflows/tests.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
+ "chksum_sha256": "0c92711af925ff0e4c24e1173b14497783014373cb175d5b8533a1e75d632b37",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory.json",
+ "name": ".github/workflows/release.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "49579282813ceef9669fa7fd5e6c5c14ffb784fcc828783bfb38822754f6070b",
+ "chksum_sha256": "f60625361566d151303c75db858e6bdeec0d40f1caaf67c1cc832659b29285e4",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory.yml",
+ "name": ".github/pull_request_template.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
+ "chksum_sha256": "63489727d4197ef434809dfd6310bcb819a32864f5586f1b7f604338c3b86808",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-bearer-token.yml",
+ "name": "ansible.cfg",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
+ "chksum_sha256": "b5e219ab076b1e90de2c650d480fe0a4b8724f839ac95f5240ed64a80202dfbf",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-legacy.json",
+ "name": "test-requirements.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6a294a4fae2a1c215602b359daf59a62939be03b59ebf3ad695b6bc4e8cfc53a",
+ "chksum_sha256": "47f934aaf74138c7491a9fedb7e83b606f40334ed0ad8169e79de138d51933e1",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2-filter.yml",
+ "name": "tests",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/test_data.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
+ "chksum_sha256": "b5c34afc0e8ddbb4fc388802015f63ff1628e2f3335f8cce280c0e38933acd60",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1",
+ "name": "tests/integration",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks",
+ "name": "tests/integration/inventory",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bf6a9d73d42a044241b7d75415e6f7ce16bd132696b12c2db198315cefb6ea93",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/render_config.sh",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "30d66afe6eb2e85dbbcba336f2f49db90499b8f6e2a382139a8ffba2ba3aaec5",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/integration.cfg",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b5e219ab076b1e90de2c650d480fe0a4b8724f839ac95f5240ed64a80202dfbf",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_role.yml",
+ "name": "tests/integration/targets/regression-v4.1",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.1/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.1/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
+ "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_journal_entry.yml",
+ "name": "tests/integration/targets/v4.0",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.0/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rear_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
+ "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_tag.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_console_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
+ "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_chassis.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_cable.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
+ "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_tunnel_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_cluster_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
+ "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_cable.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_user.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
+ "chksum_sha256": "1bddc6f41520242350bd62e66d0fe5684676e3ee82712548df660b67a93b7fe0",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_lan.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_chassis.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
+ "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_webhook.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_circuit_termination.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5f65f18257e67029d5c7bb97aa06a8c3f2a75d662c0d3135333007e11db87dc8",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.0/tasks/netbox_webhook.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_permission.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_service_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f4439e093bd263b5c922c86922753af33497d18be599c8890f38261e06860c15",
+ "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_token.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_export_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21c3676714a1e5949f86be9633f300551a5bd089bec304f9077eb996d2022e90",
+ "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_custom_field.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
+ "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rir.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_console_server_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
+ "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_cluster_type.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_disk.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
+ "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_prefix.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_module.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aeb27e31ec707d92e3c6702c9f79d74d8eda59466e0d0be48ffe0956f80f6e41",
+ "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_ipam_role.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_custom_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
+ "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rear_port_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_service.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
+ "chksum_sha256": "284ba7a8c0c4289324906f530321a35d97ea04881d12b11dd72da2e187fa97aa",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_circuit.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_vm_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
+ "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_asn.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_bay_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
+ "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rack_role.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
+ "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_type.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_machine.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
+ "chksum_sha256": "dcb63cfbe1c5e4bc03fd99c2acc5748166b17f9b515e74722a14a707a35af52c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_inventory_item.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_custom_field.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
+ "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/main.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_circuit_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6311b3620a596e53dc58b5dab23a933f38368e449fb038a1c554174d49c75edb",
+ "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_manufacturer.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_inventory_item_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
+ "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_console_port_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_fhrp_group_assignment.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
+ "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_contact_role.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_location.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
+ "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_interface_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_panel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
+ "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_vlan_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_front_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
+ "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_module_bay.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_vlan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
+ "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_console_server_port_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_ipam_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
+ "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_vrf.yml",
+ "name": "tests/integration/targets/v4.0/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
+ "chksum_sha256": "83272eb83e8008ef6e3d2e258dbf471c6fc1d20435a512205619243064bb981d",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_location.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_aggregate.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
+ "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_machine.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c78969b84c27362fa55a2f50652acaf04388b93e78290e3b1bea06b32ed26fbb",
+ "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_disk.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
+ "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_lan_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_site.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
+ "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_outlet.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
+ "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_bay.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rear_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
+ "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_front_port_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_region.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
+ "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_contact.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_manufacturer.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
+ "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_console_port.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rack.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
+ "chksum_sha256": "05008a27b746cbc423241ccf119122a4504c88622a804eb92fd9180daa652416",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_fhrp_group_assignment.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_outlet_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
+ "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_tenant_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
+ "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_tenant.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_tenant.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_circuit_termination.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5f65f18257e67029d5c7bb97aa06a8c3f2a75d662c0d3135333007e11db87dc8",
+ "chksum_sha256": "5904d07523b13a3389eea959095e9a643739796f257398fd53fcad04522e03ab",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_lookup.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_vrf.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
+ "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_config_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_feed.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
+ "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_ip_address.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_tunnel_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
+ "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_interface.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_module_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fa1bd5454f23ddb0f68440d46081384bc59d518065c482d82760722c53ae1148",
+ "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_console_server_port.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_prefix.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
+ "chksum_sha256": "aeb27e31ec707d92e3c6702c9f79d74d8eda59466e0d0be48ffe0956f80f6e41",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_l2vpn.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_contact_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
+ "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_inventory_item_role.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_console_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
+ "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rack_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_front_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
+ "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_port_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_config_context.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
+ "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_device_bay_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_user_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
+ "chksum_sha256": "f030a6071c8cb9ab319e967844f922543191d813b277d5f64419c8ebc79ce00b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_circuit_type.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
+ "chksum_sha256": "fa1bd5454f23ddb0f68440d46081384bc59d518065c482d82760722c53ae1148",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_export_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_lookup.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
+ "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_service_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_console_server_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
+ "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rack.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_asn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5102726a77b9fd96fd91f72b14185f4d346070d663b24d3ecf96f7c1ad43db5b",
+ "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_site.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_site_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
+ "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_module_type.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_provider_network.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
+ "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_vm_interface.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
+ "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_region.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_cluster_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
+ "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_link.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_circuit.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
+ "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_fhrp_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_l2vpn_termination.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
+ "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_user.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_cluster.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5d43792e4962f794c4d543e3c5299aafa76d1deaa44ece6e0e3ba53c65a63d39",
+ "chksum_sha256": "8a792917906c74e992cdbf619a5e4b21f262e19cf2608ada8c525816c88d0b6f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_port.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_journal_entry.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
+ "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_front_port.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_route_target.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
+ "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_provider_network.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_config_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
+ "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_config_context.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_module_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
+ "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_route_target.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_tag.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
+ "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_rear_port.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_ip_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
+ "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_service.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_lan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "284ba7a8c0c4289324906f530321a35d97ea04881d12b11dd72da2e187fa97aa",
+ "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_site_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_platform.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
+ "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_tenant_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_l2vpn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
+ "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_vlan.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
+ "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_outlet_template.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_inventory_item.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
+ "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_cluster.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_tunnel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8a792917906c74e992cdbf619a5e4b21f262e19cf2608ada8c525816c88d0b6f",
+ "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_module.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_contact.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
+ "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_platform.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rack_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
+ "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_provider.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rir.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
+ "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_cluster_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_device_interface_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
+ "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_feed.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_permission.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
+ "chksum_sha256": "d5297de1145e9ca34a549db012d3bdae0739015708e75c08f0ae0418dcfb9462",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_tunnel.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_power_outlet.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
+ "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_custom_link.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_fhrp_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
+ "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_user_group.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_rack_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ba829ea0017c2fe3a97d2e197b86e5fbbbd2396c3f2b5619eb28087ab7c3e029",
+ "chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_power_panel.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_provider.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
+ "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_l2vpn_termination.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_vlan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
+ "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.1/tasks/netbox_aggregate.yml",
+ "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_lan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
+ "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1",
+ "name": "tests/integration/targets/v4.2",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/aliases",
+ "name": "tests/integration/targets/v4.2/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rear_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
+ "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/compare_inventory_json.py",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_console_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b124d3651bbc95d0f9a91bf941603d005fb84cc6732f092f10f5fdb7e0606cc7",
+ "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/runme_config.template",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_cable.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
+ "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/.gitignore",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_cluster_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
+ "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/runme.sh",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_user.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6f2b7a2585ba29e702bd7f8d247c53c264ce817158a6e19412fdd930440badbe",
+ "chksum_sha256": "5d43792e4962f794c4d543e3c5299aafa76d1deaa44ece6e0e3ba53c65a63d39",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_chassis.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
+ "chksum_sha256": "8538fa013aef1d0b62af6c341392ae9642c233adfb016a4fa91b1794156b32b1",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_webhook.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
+ "chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-bearer-token.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_service_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4244b17e640c12cfeaf500bfeb0d03ea87acc82f645a36a977f166c7bb1523d8",
+ "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2-filter.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_export_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1f41c02495247269978aad74f6fe847f7d304640c522614be6b1ffdb3ce852c6",
+ "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-legacy.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
+ "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-noracks.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_console_server_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
+ "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_disk.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "40a19e937a8d7144f15fbfc6b6fb4a4cd2eea077d92b32695aced3d217e6b0ad",
+ "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-noracks.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_module.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "408c0743dd140374190fe94211f1e82bb1cb9897aae95545e0a77a489ae6afdb",
+ "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options-flatten.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_custom_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "506196508ff9db15e9764eeeb464da3f8e3d638ddaa38c699252c11e2a185ffd",
+ "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_service.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
+ "chksum_sha256": "ddba7baa03c87693459d55dc64471bf280d67388922a771c6272d3eeb97059b1",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals-flatten.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_vm_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
+ "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options-flatten.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_bay_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
+ "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
+ "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals-flatten.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_virtual_machine.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6313f3922ecede170bb4893bd219548ca99415f9215beca0777d7eeb240e0b2",
+ "chksum_sha256": "c78969b84c27362fa55a2f50652acaf04388b93e78290e3b1bea06b32ed26fbb",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_custom_field.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
+ "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_circuit_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "49579282813ceef9669fa7fd5e6c5c14ffb784fcc828783bfb38822754f6070b",
+ "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_inventory_item_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
+ "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-bearer-token.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_fhrp_group_assignment.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
+ "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-legacy.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_location.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6a294a4fae2a1c215602b359daf59a62939be03b59ebf3ad695b6bc4e8cfc53a",
+ "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2-filter.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_panel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
+ "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.1",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_front_port.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.1/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_vlan_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.1/tasks/main.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_ipam_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
+ "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.0",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6f5f36bd8848ee73cb96db1b249e05a72f11a29a2009313ca05dde389b6aa9df",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.0/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_aggregate.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.0/tasks/main.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
+ "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_link.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/aliases",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_site.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
+ "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/compare_inventory_json.py",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b124d3651bbc95d0f9a91bf941603d005fb84cc6732f092f10f5fdb7e0606cc7",
+ "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/runme_config.template",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rear_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
+ "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/.gitignore",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_region.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
+ "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/runme.sh",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_manufacturer.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f2d26a7388590de5e1126420c402289975eded15a914293329f046406a82ed1d",
+ "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rack.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5102726a77b9fd96fd91f72b14185f4d346070d663b24d3ecf96f7c1ad43db5b",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_outlet_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "abe32d82135b4cb211e594c2a789bea69427808de1a261f016bd68d82e31f6ad",
+ "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_tenant_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
+ "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-bearer-token.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_tenant.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24721f38cc28e5e5b92b2aa9c2b8cd194375537599ec1e0953e57349a3224e4f",
+ "chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2-filter.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1065a83e0e3b43e8b977c17edb8dae3922f0a069348248376c97952ff81b1bc8",
+ "chksum_sha256": "21c3676714a1e5949f86be9633f300551a5bd089bec304f9077eb996d2022e90",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-legacy.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_vrf.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
+ "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-noracks.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_feed.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
+ "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_tunnel_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bef705d7a4bb0e838d5d175a5eeafd74a167e2fcef903ed15a3870df30fde263",
+ "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-noracks.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_module_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2130c775b7edfc15ff9faf019f985f3c043d0a8dded624fd3b02c00f5eba95a6",
+ "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options-flatten.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_prefix.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0eac007057f5196403d3372c9d67af60dde0647e2dce63f5c232f18a3cd31747",
+ "chksum_sha256": "b2deb0e95870a5dcf7208efa09991d3ac9b5b72d7d9ff6bc3f130df369e38f34",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_contact_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "abe32d82135b4cb211e594c2a789bea69427808de1a261f016bd68d82e31f6ad",
+ "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals-flatten.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_console_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
+ "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options-flatten.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_front_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
+ "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_config_context.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
+ "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals-flatten.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_user_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "628f7f5d1979ac14d573921f294a16f2e806435c0531b3c4812a4d451245c811",
+ "chksum_sha256": "ba829ea0017c2fe3a97d2e197b86e5fbbbd2396c3f2b5619eb28087ab7c3e029",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
+ "chksum_sha256": "85ad057a599c32fb6e28a48d913fa0ca98b88afe36640ef059a149975454da86",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_lookup.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6bbfd5fddf4478d645866f3407acfb809f8143a1440ef85e9ea5395843958433",
+ "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_console_server_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
+ "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-bearer-token.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_asn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
+ "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-legacy.json",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_site_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "970d63d35cf9f73edcd7d192a9ff74a57bee700745ade35c9985515855f6d966",
+ "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
"format": 1
},
{
- "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2-filter.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_provider_network.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
+ "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.2",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.2/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_cluster_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
"format": 1
},
{
- "name": "tests/integration/targets/regression-v4.2/tasks/main.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_circuit.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
+ "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_l2vpn_termination.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.2/tasks/netbox_cluster.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d0e6c21979d8c7a40c2dfedf17a84aacadb97e6e5ead6b69e5eb10639741ac2c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_role.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_journal_entry.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
+ "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_journal_entry.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_route_target.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
+ "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_tag.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_config_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
+ "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_chassis.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_mac_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
+ "chksum_sha256": "a533431441769cae9692e4529bb2df49133685999d0cd7713081a20b514f657a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_tunnel_group.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_module_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
+ "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_cable.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_tag.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
+ "chksum_sha256": "f66bd30df09cf23962208b46521482fbf17a2d221fa3e500793743f2df39f81c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_lan.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_ip_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
+ "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_webhook.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_lan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
+ "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_permission.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_platform.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d5297de1145e9ca34a549db012d3bdae0739015708e75c08f0ae0418dcfb9462",
+ "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_token.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_l2vpn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5904d07523b13a3389eea959095e9a643739796f257398fd53fcad04522e03ab",
+ "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_custom_field.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
+ "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rir.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_inventory_item.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
+ "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_cluster_type.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_tunnel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
+ "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_prefix.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_contact.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aeb27e31ec707d92e3c6702c9f79d74d8eda59466e0d0be48ffe0956f80f6e41",
+ "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_ipam_role.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rack_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
+ "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rear_port_template.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rir.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
+ "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_circuit.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_device_interface_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
+ "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_asn.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_permission.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
+ "chksum_sha256": "f4439e093bd263b5c922c86922753af33497d18be599c8890f38261e06860c15",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rack_role.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_power_outlet.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.2/tasks/netbox_fhrp_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.2/tasks/netbox_rack_role.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_type.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_provider.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
+ "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_inventory_item.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_vlan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
+ "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/main.yml",
+ "name": "tests/integration/targets/v4.2/tasks/netbox_wireless_lan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "83272eb83e8008ef6e3d2e258dbf471c6fc1d20435a512205619243064bb981d",
+ "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_manufacturer.yml",
+ "name": "tests/integration/targets/inventory-v4.2",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.2/runme_config.template",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
+ "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_console_port_template.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
+ "chksum_sha256": "49579282813ceef9669fa7fd5e6c5c14ffb784fcc828783bfb38822754f6070b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_contact_role.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
+ "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_interface_template.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-bearer-token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
+ "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_vlan_group.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
+ "chksum_sha256": "506196508ff9db15e9764eeeb464da3f8e3d638ddaa38c699252c11e2a185ffd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_module_bay.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
+ "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_console_server_port_template.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2-filter.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
+ "chksum_sha256": "1f41c02495247269978aad74f6fe847f7d304640c522614be6b1ffdb3ce852c6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_vrf.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
+ "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_location.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
+ "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_machine.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dcb63cfbe1c5e4bc03fd99c2acc5748166b17f9b515e74722a14a707a35af52c",
+ "chksum_sha256": "40a19e937a8d7144f15fbfc6b6fb4a4cd2eea077d92b32695aced3d217e6b0ad",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_virtual_disk.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
+ "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_lan_group.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_outlet.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-noracks.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
+ "chksum_sha256": "408c0743dd140374190fe94211f1e82bb1cb9897aae95545e0a77a489ae6afdb",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_bay.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-legacy.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
+ "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_front_port_template.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-options.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_contact.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-jinja2-filter.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
+ "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_console_port.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-noracks.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
+ "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_fhrp_group_assignment.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-legacy.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
+ "chksum_sha256": "6a294a4fae2a1c215602b359daf59a62939be03b59ebf3ad695b6bc4e8cfc53a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-bearer-token.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
+ "chksum_sha256": "4244b17e640c12cfeaf500bfeb0d03ea87acc82f645a36a977f166c7bb1523d8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_tenant.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
+ "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_circuit_termination.yml",
+ "name": "tests/integration/targets/inventory-v4.2/files/test-inventory-plurals-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5f65f18257e67029d5c7bb97aa06a8c3f2a75d662c0d3135333007e11db87dc8",
+ "chksum_sha256": "c6313f3922ecede170bb4893bd219548ca99415f9215beca0777d7eeb240e0b2",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_lookup.yml",
+ "name": "tests/integration/targets/inventory-v4.2/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
+ "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_config_template.yml",
+ "name": "tests/integration/targets/inventory-v4.2/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
+ "chksum_sha256": "6f2b7a2585ba29e702bd7f8d247c53c264ce817158a6e19412fdd930440badbe",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_ip_address.yml",
+ "name": "tests/integration/targets/inventory-v4.2/.gitignore",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
+ "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_interface.yml",
+ "name": "tests/integration/targets/inventory-v4.2/compare_inventory_json.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fa1bd5454f23ddb0f68440d46081384bc59d518065c482d82760722c53ae1148",
+ "chksum_sha256": "3c22980ad0813e7d94e15579c9d360f502e13450d2ba0a58e55de183b2a82a53",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_console_server_port.yml",
+ "name": "tests/integration/targets/regression-v4.0",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.0/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.0/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
+ "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_l2vpn.yml",
+ "name": "tests/integration/targets/inventory-v4.3",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.3/runme_config.template",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
+ "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_inventory_item_role.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
+ "chksum_sha256": "49579282813ceef9669fa7fd5e6c5c14ffb784fcc828783bfb38822754f6070b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rack_group.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
+ "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_port_template.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
+ "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_device_bay_template.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
+ "chksum_sha256": "506196508ff9db15e9764eeeb464da3f8e3d638ddaa38c699252c11e2a185ffd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_circuit_type.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
+ "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_export_template.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
+ "chksum_sha256": "1f41c02495247269978aad74f6fe847f7d304640c522614be6b1ffdb3ce852c6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_service_template.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
+ "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rack.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05008a27b746cbc423241ccf119122a4504c88622a804eb92fd9180daa652416",
+ "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_site.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
+ "chksum_sha256": "40a19e937a8d7144f15fbfc6b6fb4a4cd2eea077d92b32695aced3d217e6b0ad",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_module_type.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
+ "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_vm_interface.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_region.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
+ "chksum_sha256": "408c0743dd140374190fe94211f1e82bb1cb9897aae95545e0a77a489ae6afdb",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_wireless_link.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
+ "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_fhrp_group.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-options.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_user.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1bddc6f41520242350bd62e66d0fe5684676e3ee82712548df660b67a93b7fe0",
+ "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_port.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
+ "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_front_port.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
+ "chksum_sha256": "6a294a4fae2a1c215602b359daf59a62939be03b59ebf3ad695b6bc4e8cfc53a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_provider_network.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
+ "chksum_sha256": "4244b17e640c12cfeaf500bfeb0d03ea87acc82f645a36a977f166c7bb1523d8",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_config_context.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
+ "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_route_target.yml",
+ "name": "tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
+ "chksum_sha256": "c6313f3922ecede170bb4893bd219548ca99415f9215beca0777d7eeb240e0b2",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_rear_port.yml",
+ "name": "tests/integration/targets/inventory-v4.3/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
+ "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_service.yml",
+ "name": "tests/integration/targets/inventory-v4.3/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "284ba7a8c0c4289324906f530321a35d97ea04881d12b11dd72da2e187fa97aa",
+ "chksum_sha256": "6f2b7a2585ba29e702bd7f8d247c53c264ce817158a6e19412fdd930440badbe",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_site_group.yml",
+ "name": "tests/integration/targets/inventory-v4.3/.gitignore",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
+ "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_tenant_group.yml",
+ "name": "tests/integration/targets/inventory-v4.3/compare_inventory_json.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
+ "chksum_sha256": "3c22980ad0813e7d94e15579c9d360f502e13450d2ba0a58e55de183b2a82a53",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_vlan.yml",
+ "name": "tests/integration/targets/inventory-v4.1",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.1/runme_config.template",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
+ "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_outlet_template.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
+ "chksum_sha256": "49579282813ceef9669fa7fd5e6c5c14ffb784fcc828783bfb38822754f6070b",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_cluster.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8a792917906c74e992cdbf619a5e4b21f262e19cf2608ada8c525816c88d0b6f",
+ "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_module.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-bearer-token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
+ "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_platform.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
+ "chksum_sha256": "506196508ff9db15e9764eeeb464da3f8e3d638ddaa38c699252c11e2a185ffd",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_provider.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
+ "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_cluster_group.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2-filter.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
+ "chksum_sha256": "1f41c02495247269978aad74f6fe847f7d304640c522614be6b1ffdb3ce852c6",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_feed.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
+ "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_tunnel.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
+ "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_custom_link.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
+ "chksum_sha256": "40a19e937a8d7144f15fbfc6b6fb4a4cd2eea077d92b32695aced3d217e6b0ad",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_user_group.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f030a6071c8cb9ab319e967844f922543191d813b277d5f64419c8ebc79ce00b",
+ "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_power_panel.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_l2vpn_termination.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-noracks.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
+ "chksum_sha256": "408c0743dd140374190fe94211f1e82bb1cb9897aae95545e0a77a489ae6afdb",
"format": 1
},
{
- "name": "tests/integration/targets/v4.0/tasks/netbox_aggregate.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-legacy.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
+ "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
"format": 1
},
{
- "name": "tests/integration/netbox-deploy.py",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-options.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "198e2e258a2870d286d2587b33a9557b092be9e439d9ade91f39549d2032e00e",
+ "chksum_sha256": "beaea896add211240861527fa80ade82a01ecb1aaacc17f2fb537bcb658b45f7",
"format": 1
},
{
- "name": "tests/integration/render_config.sh",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-jinja2-filter.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "30d66afe6eb2e85dbbcba336f2f49db90499b8f6e2a382139a8ffba2ba3aaec5",
+ "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
"format": 1
},
{
- "name": "tests/integration/inventory",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-noracks.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bf6a9d73d42a044241b7d75415e6f7ce16bd132696b12c2db198315cefb6ea93",
+ "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
"format": 1
},
{
- "name": "tests/test_data.py",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-legacy.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b5c34afc0e8ddbb4fc388802015f63ff1628e2f3335f8cce280c0e38933acd60",
+ "chksum_sha256": "6a294a4fae2a1c215602b359daf59a62939be03b59ebf3ad695b6bc4e8cfc53a",
"format": 1
},
{
- "name": "tests/netbox-docker",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-bearer-token.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4244b17e640c12cfeaf500bfeb0d03ea87acc82f645a36a977f166c7bb1523d8",
"format": 1
},
{
- "name": "tests/netbox-docker/v4.2",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
"format": 1
},
{
- "name": "tests/netbox-docker/v4.2/docker-compose.override.yml",
+ "name": "tests/integration/targets/inventory-v4.1/files/test-inventory-plurals-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "427f4e9918c4c371486dd7d2eeabbfdda735f5a596c590afe045e18b0a3c356c",
+ "chksum_sha256": "c6313f3922ecede170bb4893bd219548ca99415f9215beca0777d7eeb240e0b2",
"format": 1
},
{
- "name": "tests/netbox-docker/v4.1",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory-v4.1/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
"format": 1
},
{
- "name": "tests/netbox-docker/v4.1/docker-compose.override.yml",
+ "name": "tests/integration/targets/inventory-v4.1/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c1d14a9c23c3fecd8e7cb2dc38b1d3c3401063701f9fe26f82357268cb54c72f",
+ "chksum_sha256": "6f2b7a2585ba29e702bd7f8d247c53c264ce817158a6e19412fdd930440badbe",
"format": 1
},
{
- "name": "tests/netbox-docker/v4.0",
+ "name": "tests/integration/targets/inventory-v4.1/.gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.1/compare_inventory_json.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3c22980ad0813e7d94e15579c9d360f502e13450d2ba0a58e55de183b2a82a53",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.3",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/netbox-docker/v4.0/docker-compose.override.yml",
+ "name": "tests/integration/targets/regression-v4.3/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/regression-v4.3/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "27b3a14ab0d3014c101ed8fe6ecd6a8b366c166950c2cdee1cc3647a8ac41986",
+ "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
"format": 1
},
{
- "name": "tests/unit",
+ "name": "tests/integration/targets/regression-v4.2",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/unit/module_utils",
+ "name": "tests/integration/targets/regression-v4.2/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures",
+ "name": "tests/integration/targets/regression-v4.2/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d353cfb6cab6f4a778a9fcbb44ab5730d1150d866c96bdea997014d39fc1c831",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.1",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices",
+ "name": "tests/integration/targets/v4.1/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/services.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rear_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1eee733c9069414f6294f64ecf0bd65c0afb42053c0ee8e1d9bf0ac48ca9e59c",
+ "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/virtual_machines.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_console_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8a019714226dd0208003a775d05c48aed8195b0f09a23ad4c5e976a31f2f4b91",
+ "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/vlans.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_cable.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c4b951095ee4c7443616cda2f26ed9e778226bf4b8e193e0f67cc5b0b96a6636",
+ "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/prefixes.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_cluster_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a7f82c633273e126c2455161a1c832460b368d8e40677a0cb290ec9910e2bcf",
+ "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/interfaces.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_user.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "69edd276a4d6ff23a24aa290de80ed861b94cba637207a9edb481d7b4dfa9a59",
+ "chksum_sha256": "5d43792e4962f794c4d543e3c5299aafa76d1deaa44ece6e0e3ba53c65a63d39",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/devices.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_chassis.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d28c8ab2e5a53cf617e96c37caa10d4881e19f2756e59ce036610d3ac13935af",
+ "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/device_types.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_circuit_termination.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "065d95e75aa2b700f265e33133b94b5c9f93bd30d9be9a0fdcfe4a17671421ee",
+ "chksum_sha256": "5f65f18257e67029d5c7bb97aa06a8c3f2a75d662c0d3135333007e11db87dc8",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/racks.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_webhook.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "710913087d5fe7c6250ac7a6bbdb378fd2a98f5425595ed92a452e6789ea62e1",
+ "chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/sites.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_service_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "31d58287f5b07e8aa0c0e1c1ca12b907f88d8ab987b98b5ef09beef01a49a090",
+ "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
"format": 1
},
{
- "name": "tests/unit/module_utils/fixtures/choices/circuits.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_export_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eef93b5c65458cac7b33b1e1365518d381d3e12bcc73b7afbdd163a42350a521",
+ "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_port_template.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/slug",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_console_server_port_template.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/slug/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_disk.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d38464486cef0b272cd7879626d2fbccaba6359c5166c2aed483fcd0c108645c",
+ "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/arg_spec_default",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_module.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/arg_spec_default/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_custom_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f48dd7aea115db209d32d4ce0fc6b9836c877a08bf035ee588bbc3f436b4a076",
+ "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/find_app",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_service.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "284ba7a8c0c4289324906f530321a35d97ea04881d12b11dd72da2e187fa97aa",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/find_app/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_vm_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f57619e431da1db5f3459f0d390e0f98ed8422dd1dfaea0a322faa6689762e2f",
+ "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_child",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_bay_template.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_child/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bb4a47f18fb6fcab7557a036a71612f65e75d22972139f8916012ebcbb8dcce0",
+ "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_no_child",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_virtual_machine.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c78969b84c27362fa55a2f50652acaf04388b93e78290e3b1bea06b32ed26fbb",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_no_child/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_custom_field.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a2808a6706a4ba94c964b0bd5ccb27036fb6f4ae58402fc388c4a8a56229f758",
+ "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/choices_id",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_circuit_type.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/choices_id/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_inventory_item_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0ef637ce49cb7fbf3fb67f39641b2db2ddddae41a4a5c772e65cb401fc21d595",
+ "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/normalize_data",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_fhrp_group_assignment.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/normalize_data/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_location.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fb8e60b069fb6b847cc286cf83c8df8ea5c8b19078f614be83983e85616036aa",
+ "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_user_query_params",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_panel.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_data/build_query_params_user_query_params/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_front_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "362739ebc62d83999764392653b6347662f5fadf3f88b5b38a9ce0924db2acea",
+ "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
"format": 1
},
{
- "name": "tests/unit/module_utils/test_netbox_base_class.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_vlan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0dc56f4039832885f094fd6afe72322d991372b113e600ad2f52d0f60a54e74",
+ "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
"format": 1
},
{
- "name": "tests/unit/module_utils/__init__.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_ipam_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
"format": 1
},
{
- "name": "tests/unit/inventory",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6311b3620a596e53dc58b5dab23a933f38368e449fb038a1c554174d49c75edb",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_aggregate.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3894903f8c1c89c1f679f9860e22dd3adb3d3e4c2de310e2b91ddcdf32673411",
+ "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/extract_custom_fields",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_link.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/extract_custom_fields/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_site.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b7b970702d1d2884cf0115bc7fef7a54a0c9b49c01d138e568e27902280afd21",
+ "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/validate_query_parameter",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_type.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/validate_query_parameter/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rear_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c38afa75bd45672caa3cae3eef0306f045828f98f47f3ee8f41e2a51296e4f79",
+ "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/refresh_url",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_region.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/refresh_url/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_manufacturer.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "26ce71fb70dc9b712c6c61495f8e03308f03a1d38efce476737100cde2664d93",
+ "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/get_resource_list_chunked",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rack.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5102726a77b9fd96fd91f72b14185f4d346070d663b24d3ecf96f7c1ad43db5b",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/get_resource_list_chunked/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_outlet_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "09bee34133057a8261ff63b1392f689076a161cefca45e489fe9ed0b9846dee4",
+ "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/filter_query_parameters",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_tenant_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/filter_query_parameters/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_tenant.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3ecebe7994f1acfae3e196b3f8bce30dab18114fa92f662a4e06a57f338870be",
+ "chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/group_extractors",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_token.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "21c3676714a1e5949f86be9633f300551a5bd089bec304f9077eb996d2022e90",
"format": 1
},
{
- "name": "tests/unit/inventory/test_data/group_extractors/data.json",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_vrf.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a70575200ab06266b0d57856884be9e187cb5fe4737bb93883024dcb66ac8849",
+ "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
"format": 1
},
{
- "name": "tests/unit/inventory/__init__.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_feed.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
"format": 1
},
{
- "name": "tests/unit/inventory/test_nb_inventory.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_tunnel_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9bded80e5639367114edfb1049f6eac6db020cb6b8ef1aa63a152bf59596133f",
+ "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
"format": 1
},
{
- "name": "meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_module_type.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
"format": 1
},
{
- "name": "meta/execution-environment.yml",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_prefix.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0cd0b966cbb8fefb00f7122190d7a9b42dc5da517a8c5ba9d86e34c51bc3e43a",
+ "chksum_sha256": "aeb27e31ec707d92e3c6702c9f79d74d8eda59466e0d0be48ffe0956f80f6e41",
"format": 1
},
{
- "name": "meta/runtime.yml",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_contact_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "620d4052670d3d48ecad892e422c0acb7b7ce3d08faf0b8b0e516bf794226452",
+ "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
"format": 1
},
{
- "name": "README.md",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_console_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f309ed5d08d3bc8a6bd4b58dd8b1130b5664f21fd4ee32b44c0ad8927b7aa0d8",
+ "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
"format": 1
},
{
- "name": ".ansible-lint",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_front_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b43ecf9cad4057c044a233c4b4ac61c46f6171284e2760e201cc429b487d1eab",
+ "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
"format": 1
},
{
- "name": "ansible.cfg",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_config_context.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b5e219ab076b1e90de2c650d480fe0a4b8724f839ac95f5240ed64a80202dfbf",
+ "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
"format": 1
},
{
- "name": "pyproject.toml",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_user_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4f56f0fb81fa3058694bd1838ca3aee09909a3341fa928e1d3aeb14f67dd9196",
+ "chksum_sha256": "ba829ea0017c2fe3a97d2e197b86e5fbbbd2396c3f2b5619eb28087ab7c3e029",
"format": 1
},
{
- "name": "requirements.txt",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d003b5dde4117b9ef860b6d4fd67096a2909ea206f63116d5d46d1955fcc94f1",
+ "chksum_sha256": "fa1bd5454f23ddb0f68440d46081384bc59d518065c482d82760722c53ae1148",
"format": 1
},
{
- "name": "plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_lookup.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
"format": 1
},
{
- "name": "plugins/module_utils",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_console_server_port.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_users.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_asn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c52d8554391fd05e70914c1c773e0605c3a2a97462cf1c7a8f509042b3493abe",
+ "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_wireless.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_site_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e962fa78336a3c28fb139d8ef1485b74451d06bcad5bb779d849344e74303d84",
+ "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_vpn.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_provider_network.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "80cbfa947d2bd3a0d396420bf623cd6716fcf775c985eb191ba74f09a71a0947",
+ "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_virtualization.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4888905fe5f076ebb504c9259b5a7a04975265001c91daab7a144772f6d331cc",
+ "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_dcim.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_cluster_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e45dc16edfd7ab4e5eab71682b071ef6bdb4bb3e8579a02528bca789c270f519",
+ "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_circuits.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_circuit.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1e448439cc15b42ac16bf9e390741429fc6293dae59817e680dc5dae4de5683e",
+ "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_utils.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_l2vpn_termination.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e004fe44ed4ac04e11f31a97104b6b07eaf66a7317cdcd5b05880ab42052a863",
+ "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_extras.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_cluster.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7caec2ff44747f93ef6f18b1201d4b8abd1ba455f41db4a902d859e819bc99c2",
+ "chksum_sha256": "8a792917906c74e992cdbf619a5e4b21f262e19cf2608ada8c525816c88d0b6f",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_secrets.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_journal_entry.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b12f0853325dd27f38948cd9da65b72c563ce46612f8cf55cfa5806b1ab784c6",
+ "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_ipam.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_route_target.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e0bafbcd130448c1d2aedde79c96d0d392e6928145ff0e53130d4ce990db2fc5",
+ "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
"format": 1
},
{
- "name": "plugins/module_utils/__init__.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_config_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
"format": 1
},
{
- "name": "plugins/module_utils/netbox_tenancy.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_module_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "50a1de4f8a2dd29d4ee73a75fa9ab8e3f5e444a5fc1935a8d09172a56f290d11",
+ "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
"format": 1
},
{
- "name": "plugins/doc_fragments",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_tag.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
"format": 1
},
{
- "name": "plugins/doc_fragments/common.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_ip_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b4d6dcd47f317aeaf14303eca8299617b4c493b3fe233b30c6bfeb4eda9fdf46",
+ "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
"format": 1
},
{
- "name": "plugins/inventory",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_lan_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
"format": 1
},
{
- "name": "plugins/inventory/nb_inventory.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_platform.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ed3add690c7989be68a2d9a1b982f635abe13ec53c80e3a34a2942530c70147f",
+ "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
"format": 1
},
{
- "name": "plugins/lookup",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_l2vpn.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
"format": 1
},
{
- "name": "plugins/lookup/nb_lookup.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "76bfb1cb4d2f1e967c74bd02bb0e541c38011c118ed5b7ebd7a756e26a55cc99",
+ "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
"format": 1
},
{
- "name": "plugins/modules",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.1/tasks/netbox_inventory_item.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
"format": 1
},
{
- "name": "plugins/modules/netbox_console_server_port.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_tunnel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5bfcbf1b1403757095db86810251a73d71d761d7c7e12dd21870bbc80d80bcc9",
+ "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_interface.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_contact.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2dd01b124a879c6aea9ecfe0683dd2f722a385ee4b6ffbff45ba8beb6164d196",
+ "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
"format": 1
},
{
- "name": "plugins/modules/netbox_config_template.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rack_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6c4e8fbba0a4a370f572ce87c4f49559476b2adf1fb75ba1c00ea8c11dfc8afc",
+ "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
"format": 1
},
{
- "name": "plugins/modules/netbox_webhook.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rir.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1060bd63ba3d1fc3243fa7585140dfc3030ff0c52dfbf88d75c45b7d8ea99818",
+ "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
"format": 1
},
{
- "name": "plugins/modules/netbox_token.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_device_interface_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b21ad86dbd1152b081a8df4c2410c3ea7cdbaecf4f3dcc5afc5aa0c1549483aa",
+ "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
"format": 1
},
{
- "name": "plugins/modules/netbox_vrf.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_permission.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e118e744fa36ff6b96694c90384ce092eff62534a0b1007b91049d55580e2ad",
+ "chksum_sha256": "f4439e093bd263b5c922c86922753af33497d18be599c8890f38261e06860c15",
"format": 1
},
{
- "name": "plugins/modules/netbox_journal_entry.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_power_outlet.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e4d8f7d87a363368d9fe18bda8c77392851e98e9ac46161f89dfa6bacdecb1ed",
+ "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
"format": 1
},
{
- "name": "plugins/modules/netbox_platform.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_fhrp_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "287aec55bb1e282c54d9f1ff68dd9f3df05761c19054ba817f5cd8a2e80aed38",
+ "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
"format": 1
},
{
- "name": "plugins/modules/netbox_rir.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_rack_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "623f518cee58aad0d0f8fa70ccbcc23945e9c67dfcd7722004f7958ea4d19456",
+ "chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
"format": 1
},
{
- "name": "plugins/modules/netbox_rear_port.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_provider.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a7278ac9b53aec8726f6110c6e336aea6ca8e8ddc06a9c41aa9e98ea53d31e8",
+ "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
"format": 1
},
{
- "name": "plugins/modules/netbox_provider_network.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_vlan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e7d61d14305709e298ae538853f531c2fcdf7704bfd5c3bc0d5a2d9bf1780983",
+ "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
"format": 1
},
{
- "name": "plugins/modules/netbox_tunnel.py",
+ "name": "tests/integration/targets/v4.1/tasks/netbox_wireless_lan.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "27aeb620d909d458077977b7c7baad8d00bd228ea11dc5fe7932fc69922f9bd2",
+ "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_role.py",
+ "name": "tests/integration/targets/inventory-v4.0",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.0/runme_config.template",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "83d9795f3371255a833f3944231b4a5da5ab99cfe4f20e76483ff49856b845d5",
+ "chksum_sha256": "de40fd34a465f7da8925f1e9ba52359e10ac740e08f2dfa398691810fcc03bd7",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_feed.py",
+ "name": "tests/integration/targets/inventory-v4.0/files",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "be2e18e3463e0be77686b1a9b9b23ab674bc65d8b76757bd08d18315b613ce9d",
+ "chksum_sha256": "6bbfd5fddf4478d645866f3407acfb809f8143a1440ef85e9ea5395843958433",
"format": 1
},
{
- "name": "plugins/modules/netbox_permission.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5956017f62229e6559f5a31d1ec183e1c712a198805706569fb9f3a207cf6047",
+ "chksum_sha256": "e1bb426120346d183fd6496e2d4db53ee3613e16bebd5ab804b322848ac4a318",
"format": 1
},
{
- "name": "plugins/modules/netbox_l2vpn.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-bearer-token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8af6e4df049e34038f1ebadd11f337eaa24e26fbcf8a86834c4bf3ef79fffb56",
+ "chksum_sha256": "132a27a2b7b0112317290b60310c7b651631af9769cf07e139bbb01bc7b8657a",
"format": 1
},
{
- "name": "plugins/modules/netbox_module_type.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b50044bae1b05dd580bf6e7620aaba2e5a74f50b271fcf74aa45de46dcda3ae",
+ "chksum_sha256": "0eac007057f5196403d3372c9d67af60dde0647e2dce63f5c232f18a3cd31747",
"format": 1
},
{
- "name": "plugins/modules/netbox_rack_group.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "868c00a12cb69124a62f12ee70dac8c9ee5fc6e7ac300405f121bd8310c08c43",
+ "chksum_sha256": "3a53d46d9eafdedf2909441f1963e48bb986e07fbeacd96ceb1a337f85b2de65",
"format": 1
},
{
- "name": "plugins/modules/netbox_virtual_chassis.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2-filter.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "645e5c160dce736090188005632028848087315b802e58fdce8fb0feccc17033",
+ "chksum_sha256": "1065a83e0e3b43e8b977c17edb8dae3922f0a069348248376c97952ff81b1bc8",
"format": 1
},
{
- "name": "plugins/modules/netbox_cluster_group.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e5f861f5e0393cb5f55da469c17c0ba607f558469de176aea740fffdc3504ebd",
+ "chksum_sha256": "45f7aba5d2f5500f7b43dc461a91140c4069910b2ba7c54a126aceb082d0c9d9",
"format": 1
},
{
- "name": "plugins/modules/netbox_circuit_termination.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "625f56c8b99f27b151f05827a0a3a423688d753bf7b051d07c030eb5f302dae7",
+ "chksum_sha256": "a1240c3ef4e6fca185f723107c089e3079996b23e8d630e25a48623a1b77b706",
"format": 1
},
{
- "name": "plugins/modules/netbox_inventory_item_role.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "50c6ef2a713ca82ddf49d34b0c3093e6c01c3048b215ef0ef891906c333b1529",
+ "chksum_sha256": "bef705d7a4bb0e838d5d175a5eeafd74a167e2fcef903ed15a3870df30fde263",
"format": 1
},
{
- "name": "plugins/modules/netbox_site_group.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options-flatten.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "81d354cd6dcdaaa0e4267e628d0e28a20b24d3313edecf7e8cc8b0615028ddc0",
+ "chksum_sha256": "fa8fa9856a8cb16c7e5fbe45826e20fa319f62a0f2672aa907285d6f81940f4f",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_bay.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9c3f2d1215abb817dd04ba6515530b3114fe290262f734eee3f1bf0d80ea6113",
+ "chksum_sha256": "abe32d82135b4cb211e594c2a789bea69427808de1a261f016bd68d82e31f6ad",
"format": 1
},
{
- "name": "plugins/modules/netbox_cluster.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-noracks.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7e0ae0e32b47e9cdd07d82498f8dd153aaf56e582a326a1e6cccf54cbc5e177f",
+ "chksum_sha256": "2130c775b7edfc15ff9faf019f985f3c043d0a8dded624fd3b02c00f5eba95a6",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_type.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-legacy.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f419cbd269160a7fa6b6eda4929cfb99b1e7245ce7db44447c8a3eaa9885c231",
+ "chksum_sha256": "71f03a61506d106d1985bf9c237f78b900dcbd1f360558a23e6bf5fac6e77e17",
"format": 1
},
{
- "name": "plugins/modules/netbox_service.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-options.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1633413ba3a58551f1b0d47077d726726dd7f021241efdb759bd1a25d9ef0e98",
+ "chksum_sha256": "abe32d82135b4cb211e594c2a789bea69427808de1a261f016bd68d82e31f6ad",
"format": 1
},
{
- "name": "plugins/modules/netbox_manufacturer.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-jinja2-filter.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7562792a9f7bb0cda5180d4ef2c6127ea6c5250c01bc2a3f8bb0fcb681ac836e",
+ "chksum_sha256": "07bf21906dd0fdad49a7da12b85dbe91bff6614b5205dc31c1514bdc4f684119",
"format": 1
},
{
- "name": "plugins/modules/netbox_ip_address.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-noracks.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bfb2a61a2716406a54aafb2817d8501661412575ef8fa03a92f73e363323107e",
+ "chksum_sha256": "d2f73a8cf0695c20b2d1b47bea80ecca284484c13da2e055e23f09fa9837dbd1",
"format": 1
},
{
- "name": "plugins/modules/netbox_rack_role.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-legacy.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b8adaac5cdc7ebdcdfa35adc9e6be3f781706e2b0cdeffc26313dba4ceea3be0",
+ "chksum_sha256": "970d63d35cf9f73edcd7d192a9ff74a57bee700745ade35c9985515855f6d966",
"format": 1
},
{
- "name": "plugins/modules/netbox_custom_link.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-bearer-token.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "026a4cd881bae68d2bcde93a69620441905b473d1e6a60cdde110f2bf1db094e",
+ "chksum_sha256": "24721f38cc28e5e5b92b2aa9c2b8cd194375537599ec1e0953e57349a3224e4f",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_interface_template.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8a9a32b41a89bf21f1fe1222ff115fc513805726a7c5d45783b1ebca15c9a828",
+ "chksum_sha256": "2ebe08e8fa91b5d960239258dc4e38a0ede81f73da3b4f55f07c6db61177cb4b",
"format": 1
},
{
- "name": "plugins/modules/netbox_fhrp_group.py",
+ "name": "tests/integration/targets/inventory-v4.0/files/test-inventory-plurals-flatten.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4ab54efb7b7d480b387e0f7ef28200a52433b4b2197ec67f1a01ea97c2804a47",
+ "chksum_sha256": "628f7f5d1979ac14d573921f294a16f2e806435c0531b3c4812a4d451245c811",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_port_template.py",
+ "name": "tests/integration/targets/inventory-v4.0/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "970a4d5f21f065104a6585e48d6076a793cde0b87f36974af3019d96b9629e92",
+ "chksum_sha256": "3efbf182d151ffe527a8a250a044a83997eec84d250c8651dcdfe6f62c60a97d",
"format": 1
},
{
- "name": "plugins/modules/netbox_circuit_type.py",
+ "name": "tests/integration/targets/inventory-v4.0/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6636665daf3094c1dfcf1ad6e406f1c545e144d83157d945e28f91864de7bc92",
+ "chksum_sha256": "f2d26a7388590de5e1126420c402289975eded15a914293329f046406a82ed1d",
"format": 1
},
{
- "name": "plugins/modules/netbox_module_bay.py",
+ "name": "tests/integration/targets/inventory-v4.0/.gitignore",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a7ad78cf8ad94dee64058b6122ddbc6b7520dfb51d1cab7a75b676f0c33bc45f",
+ "chksum_sha256": "deacc9eea815485333d506e5bd64fb0c4a4a9980a33ff1b443a2deb0ca488209",
"format": 1
},
{
- "name": "plugins/modules/netbox_mac_address.py",
+ "name": "tests/integration/targets/inventory-v4.0/compare_inventory_json.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "65ff14a2d9b6d53787ab1f289ed3e0641522c29539df2471273065dda269bc6a",
+ "chksum_sha256": "b124d3651bbc95d0f9a91bf941603d005fb84cc6732f092f10f5fdb7e0606cc7",
"format": 1
},
{
- "name": "plugins/modules/netbox_contact.py",
+ "name": "tests/integration/targets/v4.3",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "20f811d01fb87b4b207d873c1ce1afa1a5e202d140ed6e1559782aafa22d5722",
+ "chksum_sha256": "c447858ce56b010ade5e270a4946c136f55ce62f1acf537794bf5ecfd0bd764c",
"format": 1
},
{
- "name": "plugins/modules/netbox_tenant_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d718548666a1b6ae349c9175f39935bad5af259704a97eb415ad0b6ca273ffc5",
+ "chksum_sha256": "34f6827b41414f45567db756890c96017801791620a0f5f3fd34957d52cea41e",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_port.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_cable.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "810c2aba9e965ecd4a8e0f437e330a5c2d068b06c384c8f3777d1c09f075aa74",
+ "chksum_sha256": "949d8b64df5d75dd5aef8c8a4cb6fd2130a545bf3f2c4dff3b555d585bfbcf2f",
"format": 1
},
{
- "name": "plugins/modules/netbox_virtual_disk.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "213ca5145932f7b848bbc3d93ed282dff9153c50727f51f4747137135d5e2e3f",
+ "chksum_sha256": "7540de23db3cbc7fdb0fdf7ee8b401d1329a06ce86406b6af8149f527c497434",
"format": 1
},
{
- "name": "plugins/modules/netbox_vlan_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_user.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9eb77e1ca3e2fe25b63cf905c13a3bef0fb074cc55c8ecea72d995a629ed3a4a",
+ "chksum_sha256": "5d43792e4962f794c4d543e3c5299aafa76d1deaa44ece6e0e3ba53c65a63d39",
"format": 1
},
{
- "name": "plugins/modules/netbox_front_port.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3ca3d33bfbee6d950e92ec23cd92876e4d6ef8ebb22bc82118ea9a2ff3ebb527",
+ "chksum_sha256": "a6e10d83c29843e16136c44d1c83e59f5710af722516ee1a50a50d01ada9936c",
"format": 1
},
{
- "name": "plugins/modules/netbox_rack.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8cbe5d65ac1770b62cbaec8f7a5bc5f7aa86268e29d3d04975311e27cb38ed28",
+ "chksum_sha256": "8538fa013aef1d0b62af6c341392ae9642c233adfb016a4fa91b1794156b32b1",
"format": 1
},
{
- "name": "plugins/modules/netbox_tag.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_webhook.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b57d9ba9911fa979987d82027af3ae416d0a54bae21559f0346d9c6fd9160c6d",
+ "chksum_sha256": "e6f3c29c240fec28b69d6bea5d9db984d2ed6a4ee54ac4b51078d2060c0ce895",
"format": 1
},
{
- "name": "plugins/modules/netbox_asn.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_service_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ea2240131475f5a03e062f7510517cae8d32f2039eee611008cd24ebde770cc",
+ "chksum_sha256": "3de123df2afca03aabda0c72df05dbe648539bd85dafa557e0e9875a3d187c88",
"format": 1
},
{
- "name": "plugins/modules/netbox_wireless_lan.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_export_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "46df15ad06bd919abaa71e0bd5b82aaa00d639246ad49fb548cb098c087371e1",
+ "chksum_sha256": "5eca00fd8b84237b66ec86e00cfc228fdd53b30006ed0d83ae534f020aac0af2",
"format": 1
},
{
- "name": "plugins/modules/netbox_wireless_link.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6ff0e8be94d254e8d074e45954755f315fd9edf9137661826abd2b17cf831460",
+ "chksum_sha256": "75a31cd47526a885482c3d44901674b3f33c8415978c343410b4897ed5423079",
"format": 1
},
{
- "name": "plugins/modules/netbox_module.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05a271bbb128fd2083abf52cf65df145b416340f8020ca1fae0567e1bed2a45d",
+ "chksum_sha256": "9995e0004b5473922fd605b5734a2bacb4a8ee28bd7d1a329a71081c6368fdeb",
"format": 1
},
{
- "name": "plugins/modules/netbox_contact_role.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "385d48ba1d4b904e1caf01af3e140410b7ebc8b5666ba69a1743eba4044578e9",
+ "chksum_sha256": "1c5554999363ab282f9eeac5f4a171a7192a129f88ea5598cda624d35c146332",
"format": 1
},
{
- "name": "plugins/modules/netbox_wireless_lan_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_module.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f421c362d197fc435a38fc22205968857dff44c42daa7d9a13214d9cec7725ee",
+ "chksum_sha256": "702abfdc17f0d47b34325b99870e63e2d0a74a3baa5e8a35d875b3c65fe27b05",
"format": 1
},
{
- "name": "plugins/modules/netbox_tunnel_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_custom_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b594d300b4e02e8d29a9d6ccf5db67dfc10ea6182b48b2bd8ea7d72afaf61eb7",
+ "chksum_sha256": "6e8639a6b80b9885ceb706b2f3af4516bd300db7e60b44178a78c27a4a0c0211",
"format": 1
},
{
- "name": "plugins/modules/netbox_export_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_service.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "69d6d720adfbf91c1a52374338625267752eb7c394b160da8601fe43d4d13b65",
+ "chksum_sha256": "ddba7baa03c87693459d55dc64471bf280d67388922a771c6272d3eeb97059b1",
"format": 1
},
{
- "name": "plugins/modules/netbox_rear_port_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0774a138a14545017bd78766e461c5f723991aa4c54804eeeca96ac09c3bfb4f",
+ "chksum_sha256": "cb904924261d3e7e3e815dd73aa1d29c96c29d7e1d0ce4af324058023e7c9a30",
"format": 1
},
{
- "name": "plugins/modules/netbox_user.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bef71665691b52483e6bfe7e5c5a9fb93de18b49f6a6127dd448e42e8bc1b374",
+ "chksum_sha256": "c942b0b528cea2de144b744e3d84b33223b9bd5c5b3110ffa9a4cbac926ee092",
"format": 1
},
{
- "name": "plugins/modules/netbox_l2vpn_termination.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "19f273e9c69300f75685605c07de32692829c4397913cf2279cfca7da0cda433",
+ "chksum_sha256": "ce033d9508643e8c49526a974501176855693695ec4df51fa939158759ee2f51",
"format": 1
},
{
- "name": "plugins/modules/netbox_inventory_item.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b486dc3dcf750bc36bc29e79bb5ef756f57a2970caddc97485fd765fade9489c",
+ "chksum_sha256": "c78969b84c27362fa55a2f50652acaf04388b93e78290e3b1bea06b32ed26fbb",
"format": 1
},
{
- "name": "plugins/modules/netbox_service_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_custom_field.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "04a40a22ba361900ebb90ef35e38972a4db791f2ac4f7f3328de0b477809a47e",
+ "chksum_sha256": "059b52971a9beac0b9197eca68e2adf37094244b7e9141c0a329a617cce6a8b4",
"format": 1
},
{
- "name": "plugins/modules/netbox_console_port.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "22d0691edb3978d72f23f4131ddd8520aa7430c43ccceee188e204d39a4cffcf",
+ "chksum_sha256": "2ba7477427c6e0c5e4fb95f8731cf9134e0ae1ea7830de9c4d9aa930ab647508",
"format": 1
},
{
- "name": "plugins/modules/netbox_vm_interface.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "84e77276903029d62efb92d0fe3c1992919a5aa87ac60807f82d8470fa08c4b3",
+ "chksum_sha256": "f7fee772a4a9b6f48163ffec16cfee663e8e6747e2c26f9698b5074e97af1442",
"format": 1
},
{
- "name": "plugins/modules/netbox_user_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bff31a353aa84e70f98ef6b8f9b930f409719fac5afa06b3f25c542c4a60b165",
+ "chksum_sha256": "9dd8966d59ed6d3b9ed7250956715a6b79116e38851df7d4fd77c549490d5356",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_panel.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_location.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bf77eeca2ff7495d3dbea12f0848889d332c0c3ad7323dab0f6cd21e536c9f89",
+ "chksum_sha256": "eb2c983ee5af371a527fca7e20de968debb8cb00ab00a3288e91530d0e95edf1",
"format": 1
},
{
- "name": "plugins/modules/netbox_ipam_role.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_panel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bdae208439bee3f22aecba61e93ce377780ea02e7c39ba3f6df565240d4f6c5f",
+ "chksum_sha256": "17165ceb389769d30297e5d28cd61517f1753a3b1f0f86eea7b3dc2b698a66ba",
"format": 1
},
{
- "name": "plugins/modules/netbox_device.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_front_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eba8b1469a775d0793b28c259305811172d900f4cad500f826c6012036d67fc3",
+ "chksum_sha256": "234f840e4ccc8bf521f75e11089fa14656919a1a85d1e04a083c7b15cfb1925e",
"format": 1
},
{
- "name": "plugins/modules/netbox_custom_field_choice_set.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a4ce60e3b58f719b3e4f577404ed14a4876033850bd83e55ce29371a3e8c45aa",
+ "chksum_sha256": "cf6717d7f30ef367d4049c7d8087b88032e56c5041093e50dde12e3cc323fd82",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_outlet.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05f934116bfba3947288f4f3eef2dbaf705bd077e3bd6fbf15d4937c0b4288d4",
+ "chksum_sha256": "7ceb5fbc06093cfb74e70b9890cd7ee2a63400abde4859c232ae2696ed8c4a8e",
"format": 1
},
{
- "name": "plugins/modules/netbox_tenant.py",
+ "name": "tests/integration/targets/v4.3/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4d4517859d7f1fb6492e58cabb50264d5c7fa8b3c3f75030a89989632fae44f2",
+ "chksum_sha256": "6f5f36bd8848ee73cb96db1b249e05a72f11a29a2009313ca05dde389b6aa9df",
"format": 1
},
{
- "name": "plugins/modules/netbox_region.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_aggregate.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4dc8b9cbcd390de75587ce141d16a5424259306e90dc604869d90dca3c13345d",
+ "chksum_sha256": "0ac4b09ba8fc47cbbdb3b5d4fc4830e6ab5325c5e283ea5424bb5665fea1bb97",
"format": 1
},
{
- "name": "plugins/modules/netbox_route_target.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "80e0c903f3c8c84d6f80ef78e5212bd5469d1e8fcce822c745d84e3c53300c09",
+ "chksum_sha256": "cfbebf7401c3d835bc8d2245803b093be89ab9747375704065a997713eef1865",
"format": 1
},
{
- "name": "plugins/modules/netbox_contact_group.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d83cc16f31751d1ede538d6b6f6be1715713f4c9973c198e805ad24ff580c3ef",
+ "chksum_sha256": "803d79b36bf3618e3283242d8dadae714c09913755288dc43c3bda9d19c1f6ac",
"format": 1
},
{
- "name": "plugins/modules/__init__.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_site.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "892a39c82540cf0ee8315ec090fc01f8f7c71b51b06340cb460efd008a5a9294",
"format": 1
},
{
- "name": "plugins/modules/netbox_console_server_port_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "67d4f7bd5f7c75842829388993cc7ce4a94c183a470baa5f0478b15e1337857e",
+ "chksum_sha256": "b59c642074bb81a361367906f132fda8bd32479418a35d8c0aa56ff1831e80b8",
"format": 1
},
{
- "name": "plugins/modules/netbox_fhrp_group_assignment.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rear_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a056bc88bba0fed5eaf823a6f8b6bbb11db2de8b7de044dd9e97c843b11ebbcd",
+ "chksum_sha256": "17e9b9eafcac50f2b934c23bfc94213f84fe4eb23f5c80ef8e651b021fac7550",
"format": 1
},
{
- "name": "plugins/modules/netbox_power_outlet_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_region.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "890b7fb0444b514cd5e3ece079a507b861dbf2891c5ac44770dc36577e975d1a",
+ "chksum_sha256": "ccd04021429ee77b69edb2e219cec7cb9d4ad291029bf735eb73860b70492c25",
"format": 1
},
{
- "name": "plugins/modules/netbox_custom_field.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "54b22b47c06633a940d394f5c5508efd35687c3eb87ece25d11c6f6dc65327a2",
+ "chksum_sha256": "602806156756634f7b9ca2d8b2a24364ef8385aa68f85a0cbe56ae6fed45be90",
"format": 1
},
{
- "name": "plugins/modules/netbox_console_port_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rack.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3bad97e5cefb8d56f784bf9e8f2dd7b8c6fabbf737e1acb4e8e0d753bf9903cb",
+ "chksum_sha256": "5102726a77b9fd96fd91f72b14185f4d346070d663b24d3ecf96f7c1ad43db5b",
"format": 1
},
{
- "name": "plugins/modules/netbox_location.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1dbdbf467bb0035e0a4ab6ee66faa569c9faa1fc0d9731265c82857e21507358",
+ "chksum_sha256": "d68cfbb7e8d0efeb2c683bd1a6cdd891de8c00cab74af5ccd08493551cfb55ce",
"format": 1
},
{
- "name": "plugins/modules/netbox_cluster_type.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c8e9eaa064b4421aa51a5bb3128d72c277891d08305c730450177e55e12eb1d8",
+ "chksum_sha256": "c6013a1c956d588d0f927d7c513be42c8fc1a91e4deb016ddc23a251a9067245",
"format": 1
},
{
- "name": "plugins/modules/netbox_circuit.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_tenant.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9fd9f64d9887eca8ce2a128e3261dd9a900f7a5345470c8e801980680648b480",
+ "chksum_sha256": "374db9ef14a5ad3f28eb748e5a3e1a695ed622c89ecfe8c190264c934b2d3160",
"format": 1
},
{
- "name": "plugins/modules/netbox_virtual_machine.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_token.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d3bb81305a5af693f33af8a0215abd323e2e3418a222a2bc9059a0dc63d93f10",
+ "chksum_sha256": "21c3676714a1e5949f86be9633f300551a5bd089bec304f9077eb996d2022e90",
"format": 1
},
{
- "name": "plugins/modules/netbox_vlan.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_vrf.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "771f17cfdacf3c1dd13f25c9a341b4c4716396b5ea0e8c8997d25077d7856e31",
+ "chksum_sha256": "3f1a5dab109569be7a5aa4a7b7b568d8bfbd7d5b17fc0e2424a4d47f0b321866",
"format": 1
},
{
- "name": "plugins/modules/netbox_front_port_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_feed.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "35b11c253d567c858b7927bc95c9fdae68de7019657021e949536ddd5e4b41bd",
+ "chksum_sha256": "9791bbf4cda16f4189caa2f9910d48a57790baf9f00c06b3b2de33d7f8ec148c",
"format": 1
},
{
- "name": "plugins/modules/netbox_prefix.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1d3dc9e4a43d3a75ff8a94201afa1b9f1e454f251fe2cb6ae367955026fd0c54",
+ "chksum_sha256": "34d723e9107a9c4841200fffaad45ed8357f95180e483c9501bbd2367f5e7b61",
"format": 1
},
{
- "name": "plugins/modules/netbox_aggregate.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_module_type.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f6986e99d152086f462a477c4796585dd6cbbe22258f7595335113a5e4eef0cf",
+ "chksum_sha256": "3390662b64aa51fd25c120ba98815eba45eb2a7389dc828eb2eb985e791a7cce",
"format": 1
},
{
- "name": "plugins/modules/netbox_provider.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_prefix.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d52039cff5a155d8bd27872ef27902356d6cfc3dd56121a9fdb1452a09848ada",
+ "chksum_sha256": "b2deb0e95870a5dcf7208efa09991d3ac9b5b72d7d9ff6bc3f130df369e38f34",
"format": 1
},
{
- "name": "plugins/modules/netbox_config_context.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_contact_role.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "82856c9866618126bb9767651a6a86db8c52240247a761515dde467b621cd140",
+ "chksum_sha256": "d7a5644fe75789ad3cc615de2c5d23aaa262763b80e078757e1a2247f64de617",
"format": 1
},
{
- "name": "plugins/modules/netbox_site.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_console_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "142edd8247ffb608050e9f140fc83dac895a8a3bbfb736483b97e1d036a2de2a",
+ "chksum_sha256": "97a3b6773243884f57fdeb3f8e5b7759a774bdd49a5245edbf879ba158985370",
"format": 1
},
{
- "name": "plugins/modules/netbox_cable.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bdcb740914e8b63db284b86b0dd92499526c668ecc4a9385482d268bbc147920",
+ "chksum_sha256": "fc0477e2d1e41c7364e3afad1a0f880284ab4dca487d3a1dd8af8614de0c872c",
"format": 1
},
{
- "name": "plugins/modules/netbox_device_bay_template.py",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_config_context.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "78b9cb6d4d613b317adad86574dfb910d62177f9394ae9c093e8913ce5b09abc",
+ "chksum_sha256": "df4a1f9cd476ce57438b2c478667c9914e71923495fdebf489dd7811a51f55da",
"format": 1
},
{
- "name": "changelogs",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_user_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ba829ea0017c2fe3a97d2e197b86e5fbbbd2396c3f2b5619eb28087ab7c3e029",
"format": 1
},
{
- "name": "changelogs/fragments",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_interface.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "85ad057a599c32fb6e28a48d913fa0ca98b88afe36640ef059a149975454da86",
"format": 1
},
{
- "name": "changelogs/fragments/.gitkeep",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_lookup.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "523461a3abc6bf1af9e8800f6648d0150501bf1cf6cc0c1946c8d0813d4b6401",
"format": 1
},
{
- "name": "changelogs/config.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bad0157e7ffee11df87f3adaa5dcfa3f1841e816a27cbcf5b866fa21f63ef1bd",
+ "chksum_sha256": "9aea5c2b0b02bfcf481b23201853cd354d04452b17507b5b3fdc9cb494c81530",
"format": 1
},
{
- "name": "changelogs/changelog.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_asn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "66aab480eb94f6d013492eb48d517fbe971496b75e85a042a1054113ffdc7ddc",
+ "chksum_sha256": "e166e0e9b57f80051a393c89d84e217aa3749040f9779b58bcfd0c6668756b42",
"format": 1
},
{
- "name": ".readthedocs.yml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_site_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b906c5988737cbfd185e239467558df249bee93aed2a9b9bae3a830c48ffd47b",
+ "chksum_sha256": "0dc3566f5851e868d35dd673565b243652f09cfe2de7089f0b605241c11ab5c1",
"format": 1
},
{
- "name": ".gitignore",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_provider_network.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c0ac384e24827235e0b17021954d2b803c3da263038dfaa24967d3d40a86ea15",
+ "chksum_sha256": "9b0cad326050fd05d658114529543fd266660b18c56ac1dafdc645304c7c82ca",
"format": 1
},
{
- "name": ".ansible-lint-ignore",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c9f3858f2f46c33226d8494ece32bb03872c105e228fb32e56b4d4c342b924c9",
+ "chksum_sha256": "d1ca0b9611dfe3bcfa427f8996e1c56ecdcae5e05769a35c3023d0e3cf99eea2",
"format": 1
},
{
- "name": ".github",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cf464a2bd2d8fe3338add9e782e37869ac573d2ca4b0070215cc6c5c18a53e82",
"format": 1
},
{
- "name": ".github/pull_request_template.md",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_circuit.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "63489727d4197ef434809dfd6310bcb819a32864f5586f1b7f604338c3b86808",
+ "chksum_sha256": "5a4518332beaffdecd006ea6f56082c0091990ecd6e1e07acaaf3f364a879a30",
"format": 1
},
{
- "name": ".github/workflows",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "72993bb4e4c7519b83e30babedd32dabb4d90a9768d00d6b70f274aeac3ee45b",
"format": 1
},
{
- "name": ".github/workflows/main.yml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_cluster.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "087f532a81f9a318167500573ffc1d80059240058b669895f39e62aa7e445252",
+ "chksum_sha256": "d0e6c21979d8c7a40c2dfedf17a84aacadb97e6e5ead6b69e5eb10639741ac2c",
"format": 1
},
{
- "name": ".github/workflows/release.yml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f60625361566d151303c75db858e6bdeec0d40f1caaf67c1cc832659b29285e4",
+ "chksum_sha256": "3a6524c6a048a0282c890f8216ca1eb19d40fa377842f2a5afcac395f11bf53a",
"format": 1
},
{
- "name": ".github/workflows/tests.yml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_route_target.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0c92711af925ff0e4c24e1173b14497783014373cb175d5b8533a1e75d632b37",
+ "chksum_sha256": "9142507b1fc0cf09182ce2a2df17a5ba4b10e02f4aef5e8221181d8a6ea4fe92",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_config_template.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4500c8b3a396ccf6590e426f4c3d8c67824fc180a486a93445375dfffb52a43c",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE/housekeeping.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_mac_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6952213267de18d7a4656f4aa76a8fecd52fad264d38159074ce5fea2ebf3986",
+ "chksum_sha256": "a533431441769cae9692e4529bb2df49133685999d0cd7713081a20b514f657a",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE/config.yml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_module_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "417cfe754f2372185d81c8ef435d8ade002ab0f5db9f7f917a9ac26ec7479851",
+ "chksum_sha256": "4003a39a5132206a0f4b256bb466fbef857bcadbceedcd43a6fe9042be30619a",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE/bug_report.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_tag.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c626f2997fc48e16250057238523be1a42788d29eb48755db176bd433c79e13a",
+ "chksum_sha256": "0dd53a692f8af842a04c746f97259aefa6b9e33a02ac66f979a35616d0348043",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE/documentation_change.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_ip_address.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a1c372660a10ea2ce252341ddcf8f52b5faf3923b4d3ca2f864609450cfe3534",
+ "chksum_sha256": "c44f1288eda29551cf5c594ef43c849dc69c4d811f02a17d4671fadfd285cdb5",
"format": 1
},
{
- "name": ".github/ISSUE_TEMPLATE/feature_request.yaml",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4c042a9f4b7a1e6a8a3c7962b44e364f5b2cfe5242f17415bb9e7af94103561b",
+ "chksum_sha256": "25034eac8b5e4c8cf293055a90906e70d807d3fd5789ba9dc87adbf7861a55a5",
"format": 1
},
{
- "name": "hacking",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/v4.3/tasks/netbox_platform.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ccb6154491d5ba029d390674c7bcfaaea27abfd9be491874d3051bbfe5b3a724",
"format": 1
},
{
- "name": "hacking/build.sh",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c824f229eafb4ad8fcc24c800b6d08ad8af1c8ca866e9cdbfd543429b2a04a24",
+ "chksum_sha256": "3d0f64ef7ae2061a2447205db494ed8367c9646d2b10ae5549c3f10cccda6503",
"format": 1
},
{
- "name": "hacking/update_test_inventories.sh",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_bay.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c02406514a0a53c1328f5397a4df2aae6ed1096159a3a85db20e34b5c73acdbe",
+ "chksum_sha256": "3d08ca60364615906bd685d55c4528058a507a37cab50378376e0b1cf356056c",
"format": 1
},
{
- "name": "hacking/make-docs.sh",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eaf25c88bd9a0d8d8b583c8f65bed04ce553749fe2949e2e07063fc420b08bbb",
+ "chksum_sha256": "fcc2f0371f0f8995d81aeff8a3703657ae4fc9aab338b7580141728588fae777",
"format": 1
},
{
- "name": "hacking/black.sh",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_tunnel.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "31b38a6d54cf7fd233d647760c6f9b695bde61762b09b0aba5899ea746d14248",
+ "chksum_sha256": "56878d0a7961ea142ea3021621dd0124ec3e9af04a9176e855692adc47efd8f0",
"format": 1
},
{
- "name": "hacking/local-test.sh",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_contact.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3c4c16322033b5df7c08d9081098e11416b3bbdebede263ba84a92c4f043d815",
+ "chksum_sha256": "b0a3264d210d7a3fecb8edca38167f8615b842a4b54995e141aa35f7eaff1e4c",
"format": 1
},
{
- "name": "test-requirements.txt",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rack_group.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "47f934aaf74138c7491a9fedb7e83b606f40334ed0ad8169e79de138d51933e1",
+ "chksum_sha256": "38a8451d8064030aea164f006ef382c20f92f34909571eb3fd5f6e545c76b025",
"format": 1
},
{
- "name": "docs",
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rir.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "11e4da868d00d8de767f052be4d103d8cc5c3bb36b999f369a46db3456d15a58",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8cd6756a0407f04ab8790222293b3835ab242094ffb958a4c365ee6beffc93ba",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_permission.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f4439e093bd263b5c922c86922753af33497d18be599c8890f38261e06860c15",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c2114d5a5403f08d7c8e805fc5f5deaaadff30f72dc41965a7869b513caa8a33",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c4111d64926c954d64ecfa36bf0b19609b11ed079d181edcceaa7040efc04460",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_rack_role.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f38ea66d9f75164b06ad3d3da8b7a4826dc03a3c22dd2dc20e6a1ab76c5d3446",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_provider.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "9d0e8dcec59fd43ad5c4fd25e8b5cc3402f11d31981e4ef183a19be5cd204141",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_vlan.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "24675cf58ccbc62e103e2b12d58b1879626fdc4060e10883fcc0221654e4d57c",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "64f26adbd0e58e8ade42fded522650f129b94ca54b85e0e19ecbf2c742a37f9c",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/netbox-deploy.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "198e2e258a2870d286d2587b33a9557b092be9e439d9ade91f39549d2032e00e",
+ "format": 1
+ },
+ {
+ "name": "tests/unit",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/Makefile",
+ "name": "tests/unit/inventory",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/unit/inventory/test_nb_inventory.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8b6587b859607f200f116e2cb043fc358e1c3a26c326b563bf348453cfc68307",
+ "chksum_sha256": "9bded80e5639367114edfb1049f6eac6db020cb6b8ef1aa63a152bf59596133f",
"format": 1
},
{
- "name": "docs/changelog",
+ "name": "tests/unit/inventory/test_data",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/changelog/changelog_include.rst",
+ "name": "tests/unit/inventory/test_data/validate_query_parameter",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/unit/inventory/test_data/validate_query_parameter/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d8a74a8989015f6ff8f2e9c52c07518770e91dd69c81b078eec816aafc8ab9a2",
+ "chksum_sha256": "c38afa75bd45672caa3cae3eef0306f045828f98f47f3ee8f41e2a51296e4f79",
"format": 1
},
{
- "name": "docs/changelog/index.rst",
+ "name": "tests/unit/inventory/test_data/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1831a65ac37c6d38d1024a11f051b0fb19e95123b9372436ea5d6fd366fe8c54",
+ "chksum_sha256": "3894903f8c1c89c1f679f9860e22dd3adb3d3e4c2de310e2b91ddcdf32673411",
"format": 1
},
{
- "name": "docs/module_utils",
+ "name": "tests/unit/inventory/test_data/extract_custom_fields",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_extras",
+ "name": "tests/unit/inventory/test_data/extract_custom_fields/data.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b7b970702d1d2884cf0115bc7fef7a54a0c9b49c01d138e568e27902280afd21",
+ "format": 1
+ },
+ {
+ "name": "tests/unit/inventory/test_data/refresh_url",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_extras/index.rst",
+ "name": "tests/unit/inventory/test_data/refresh_url/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "91e0d05c958f3fd4bddd1f90fcffd40cb838ca9fe10ddb23fed96c96c29f925b",
+ "chksum_sha256": "26ce71fb70dc9b712c6c61495f8e03308f03a1d38efce476737100cde2664d93",
"format": 1
},
{
- "name": "docs/module_utils/netbox_circuits",
+ "name": "tests/unit/inventory/test_data/get_resource_list_chunked",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_circuits/index.rst",
+ "name": "tests/unit/inventory/test_data/get_resource_list_chunked/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "69b4f0147da11b460812a18e1a30c46cf783038607e8aa15b8104ebcf745971b",
+ "chksum_sha256": "09bee34133057a8261ff63b1392f689076a161cefca45e489fe9ed0b9846dee4",
"format": 1
},
{
- "name": "docs/module_utils/netbox_ipam",
+ "name": "tests/unit/inventory/test_data/group_extractors",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_ipam/index.rst",
+ "name": "tests/unit/inventory/test_data/group_extractors/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5c83d597e8b57c1fc6e1b240b361802f04cf5b2b93ed5b163430c2ad2a25c700",
+ "chksum_sha256": "a70575200ab06266b0d57856884be9e187cb5fe4737bb93883024dcb66ac8849",
"format": 1
},
{
- "name": "docs/module_utils/netbox_dcim",
+ "name": "tests/unit/inventory/test_data/filter_query_parameters",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_dcim/index.rst",
+ "name": "tests/unit/inventory/test_data/filter_query_parameters/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aac738555b1754e47e6a3b632cde1a825c7af6f831382487ccad4eccc8910f13",
+ "chksum_sha256": "3ecebe7994f1acfae3e196b3f8bce30dab18114fa92f662a4e06a57f338870be",
"format": 1
},
{
- "name": "docs/module_utils/index.rst",
+ "name": "tests/unit/inventory/__init__.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b4fdf0597f752c618b999e67fb63624f430780bf693e4b2b408ab5666df9d1bd",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "docs/module_utils/netbox_virtualization",
+ "name": "tests/unit/module_utils",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_virtualization/index.rst",
+ "name": "tests/unit/module_utils/test_data",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/test_data/arg_spec_default",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/test_data/arg_spec_default/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "96fccbb031a84baaa22a47b0feca0bd05c5471eecaceb2908caf75f5d20384a4",
+ "chksum_sha256": "f48dd7aea115db209d32d4ce0fc6b9836c877a08bf035ee588bbc3f436b4a076",
"format": 1
},
{
- "name": "docs/module_utils/netbox_secrets",
+ "name": "tests/unit/module_utils/test_data/choices_id",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_secrets/index.rst",
+ "name": "tests/unit/module_utils/test_data/choices_id/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8fe38c525cf5a8c333411a9c0266960fb55f3360ec7aaf981a0765d126326c89",
+ "chksum_sha256": "0ef637ce49cb7fbf3fb67f39641b2db2ddddae41a4a5c772e65cb401fc21d595",
"format": 1
},
{
- "name": "docs/module_utils/netbox_tenancy",
+ "name": "tests/unit/module_utils/test_data/normalize_data",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_tenancy/index.rst",
+ "name": "tests/unit/module_utils/test_data/normalize_data/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d3aae8ae61995eda566696ff9322a02bcd663128520294b5dbcee6c2d7b62f71",
+ "chksum_sha256": "fb8e60b069fb6b847cc286cf83c8df8ea5c8b19078f614be83983e85616036aa",
"format": 1
},
{
- "name": "docs/module_utils/netbox_utils",
+ "name": "tests/unit/module_utils/test_data/build_query_params_user_query_params",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/module_utils/netbox_utils/index.rst",
+ "name": "tests/unit/module_utils/test_data/build_query_params_user_query_params/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "51b1dc879f2785c838a3a573ceeef3c09cf6d169d36f4e856d25cb60fde62463",
+ "chksum_sha256": "362739ebc62d83999764392653b6347662f5fadf3f88b5b38a9ce0924db2acea",
"format": 1
},
{
- "name": "docs/getting_started",
+ "name": "tests/unit/module_utils/test_data/find_app",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/installation.rst",
+ "name": "tests/unit/module_utils/test_data/find_app/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a4a35f73d6e5c37ffbc2e117b4c11a1f9ebeaa78d93b9c36efca62080792c7ca",
+ "chksum_sha256": "f57619e431da1db5f3459f0d390e0f98ed8422dd1dfaea0a322faa6689762e2f",
"format": 1
},
{
- "name": "docs/getting_started/contributing.rst",
+ "name": "tests/unit/module_utils/test_data/build_query_params_child",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/test_data/build_query_params_child/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7029fde832d231a3111e5484faac6759377430100b288bc14f6b2670c6022d73",
+ "chksum_sha256": "bb4a47f18fb6fcab7557a036a71612f65e75d22972139f8916012ebcbb8dcce0",
"format": 1
},
{
- "name": "docs/getting_started/contributing",
+ "name": "tests/unit/module_utils/test_data/slug",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/contributing/inventory",
+ "name": "tests/unit/module_utils/test_data/slug/data.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d38464486cef0b272cd7879626d2fbccaba6359c5166c2aed483fcd0c108645c",
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/test_data/build_query_params_no_child",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/contributing/inventory/index.rst",
+ "name": "tests/unit/module_utils/test_data/build_query_params_no_child/data.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "698639c0280fc8b9d8a8926baf2e53dbaff581600a4cc3f65cf9ecdc4dc19732",
+ "chksum_sha256": "a2808a6706a4ba94c964b0bd5ccb27036fb6f4ae58402fc388c4a8a56229f758",
"format": 1
},
{
- "name": "docs/getting_started/contributing/index.rst",
+ "name": "tests/unit/module_utils/__init__.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "08326dcd2935d4a33b028eb1dab2a5afda56afb802d9ca6c89e1a59c0c45afd2",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules",
+ "name": "tests/unit/module_utils/test_netbox_base_class.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "96adcdef2d71b1bc1a221ca7dd7925ebede59808cb68e7c161540ade8f3306ab",
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/fixtures",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/media",
+ "name": "tests/unit/module_utils/fixtures/choices",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/media/post_rt.png",
+ "name": "tests/unit/module_utils/fixtures/choices/circuits.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7c5735f28bbce3e68418d44c9d799bfd9a546304ea826bc31e9da6604817ca51",
+ "chksum_sha256": "eef93b5c65458cac7b33b1e1365518d381d3e12bcc73b7afbdd163a42350a521",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/media/vrf_options.png",
+ "name": "tests/unit/module_utils/fixtures/choices/vlans.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c04ff654c85e611c7968264f1596973cd6f28b6d48a71efcafa5a22f5c498daf",
+ "chksum_sha256": "c4b951095ee4c7443616cda2f26ed9e778226bf4b8e193e0f67cc5b0b96a6636",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/new_module.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/interfaces.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "992100c8aa6c94c16d82d1196bbf725193ebad97aa7630eec5c2c58556ed363c",
+ "chksum_sha256": "69edd276a4d6ff23a24aa290de80ed861b94cba637207a9edb481d7b4dfa9a59",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/architecture.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/device_types.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9f1a0fce897bddacaa5a5b979a00bbe6cbecdcd3d0fff4fca484db73ac76e82b",
+ "chksum_sha256": "065d95e75aa2b700f265e33133b94b5c9f93bd30d9be9a0fdcfe4a17671421ee",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/update_module.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/racks.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "afff5f11445cb862a1177e48f0f2e92316056b7781786a368fa960645ccb34bd",
+ "chksum_sha256": "710913087d5fe7c6250ac7a6bbdb378fd2a98f5425595ed92a452e6789ea62e1",
"format": 1
},
{
- "name": "docs/getting_started/contributing/modules/index.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/virtual_machines.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5158e3e659bafe06c7cd9d2897af6e7ac6209207d906fb4bb530b200b390832e",
+ "chksum_sha256": "8a019714226dd0208003a775d05c48aed8195b0f09a23ad4c5e976a31f2f4b91",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/services.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24afa8389fadeb19111920ff8dedfad7bbbe0cf54c9fefa238c564b8809a39e9",
+ "chksum_sha256": "1eee733c9069414f6294f64ecf0bd65c0afb42053c0ee8e1d9bf0ac48ca9e59c",
"format": 1
},
{
- "name": "docs/getting_started/index.rst",
+ "name": "tests/unit/module_utils/fixtures/choices/prefixes.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "105990e8aebad3487a6e7174313bc26bc4138813416cd4c98c8157f158b6904c",
+ "chksum_sha256": "3a7f82c633273e126c2455161a1c832460b368d8e40677a0cb290ec9910e2bcf",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use",
+ "name": "tests/unit/module_utils/fixtures/choices/devices.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d28c8ab2e5a53cf617e96c37caa10d4881e19f2756e59ce036610d3ac13935af",
+ "format": 1
+ },
+ {
+ "name": "tests/unit/module_utils/fixtures/choices/sites.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "31d58287f5b07e8aa0c0e1c1ca12b907f88d8ab987b98b5ef09beef01a49a090",
+ "format": 1
+ },
+ {
+ "name": "tests/netbox-docker",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/advanced.rst",
+ "name": "tests/netbox-docker/v4.0",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/netbox-docker/v4.0/docker-compose.override.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aad987bea7cd675b99e0a3224b88b8ce6163ec6626a7c6f1393d0c52fe988c30",
+ "chksum_sha256": "27b3a14ab0d3014c101ed8fe6ecd6a8b366c166950c2cdee1cc3647a8ac41986",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/modules.rst",
+ "name": "tests/netbox-docker/v4.2",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/netbox-docker/v4.2/docker-compose.override.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "720bd7b5e52bf0923a949930fff93636d166388dee964928f065e67649b6cfe0",
+ "chksum_sha256": "427f4e9918c4c371486dd7d2eeabbfdda735f5a596c590afe045e18b0a3c356c",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/media",
+ "name": "tests/netbox-docker/v4.1",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/media/advanced_dict.png",
+ "name": "tests/netbox-docker/v4.1/docker-compose.override.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0d011fef324a804f6cbb2778e65d69c6373c8123fac576d9f49072471a6e908",
+ "chksum_sha256": "c1d14a9c23c3fecd8e7cb2dc38b1d3c3401063701f9fe26f82357268cb54c72f",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/media/advanced_dns_name.png",
+ "name": "tests/netbox-docker/v4.3",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/netbox-docker/v4.3/docker-compose.override.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f4c6892f90e4b7a2ef8ce70fbe04c4c1cee8806d2aa37ffe09955045eb96bb2",
+ "chksum_sha256": "b32c33d74b6b43650d49a4ddcc55046eeb6c941217ad6ac1f65257f427960724",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/media/api_device_post.png",
+ "name": "tests/config.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "abdd29c2a0dc029c4aa6d4176b1a205dbc5d4d1f434d821e04b9a08a26175221",
+ "chksum_sha256": "71ff5426485cc74b3c360a0941dc40661ef17ffc8983435481f55f9f4143ae4f",
"format": 1
},
{
- "name": "docs/getting_started/how-to-use/inventory.rst",
+ "name": ".ansible-lint",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7b28ca7e2a6cf1d0549a4eb2cafc901e3b2adfc449c3de6950bdf165daeb2b35",
+ "chksum_sha256": "b43ecf9cad4057c044a233c4b4ac61c46f6171284e2760e201cc429b487d1eab",
"format": 1
},
{
- "name": "docs/js",
+ "name": "requirements.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5dfa35ed19609e37e1629ce816373f8dd766b78c0e65d948bfa6e69da08cd090",
+ "format": 1
+ },
+ {
+ "name": "plugins",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/js/ansible",
+ "name": "plugins/modules",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/js/ansible/application.js",
+ "name": "plugins/modules/netbox_aggregate.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a63425844f360eba3a0f4548933729f58ec6e6df6fbf1906bf2986e394cf149",
+ "chksum_sha256": "f6986e99d152086f462a477c4796585dd6cbbe22258f7595335113a5e4eef0cf",
"format": 1
},
{
- "name": "docs/media",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "plugins/modules/netbox_circuit_termination.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "46bbae0ed4d6c70114a04aa791e4159dbdce4f8a9c2dfecd90a0ecfcad223544",
"format": 1
},
{
- "name": "docs/media/postresults.PNG",
+ "name": "plugins/modules/netbox_device_bay.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "12ce503f9c545a573466e75cf028f316afc893e41f056be1ce6838b44db49537",
+ "chksum_sha256": "9c3f2d1215abb817dd04ba6515530b3114fe290262f734eee3f1bf0d80ea6113",
"format": 1
},
{
- "name": "docs/requirements.txt",
+ "name": "plugins/modules/netbox_vlan.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "39988308e7ae66376608418d13d7979ccd50fcdc3e1c3439912ff9943c210ca3",
+ "chksum_sha256": "771f17cfdacf3c1dd13f25c9a341b4c4716396b5ea0e8c8997d25077d7856e31",
"format": 1
},
{
- "name": "docs/plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "plugins/modules/netbox_vrf.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3e118e744fa36ff6b96694c90384ce092eff62534a0b1007b91049d55580e2ad",
"format": 1
},
{
- "name": "docs/plugins/netbox_config_template_module.rst",
+ "name": "plugins/modules/netbox_virtual_disk.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "397445d96d98529c852ed7b753f8b0687ce73756160bfe7b9ef1bdb301532aee",
+ "chksum_sha256": "213ca5145932f7b848bbc3d93ed282dff9153c50727f51f4747137135d5e2e3f",
"format": 1
},
{
- "name": "docs/plugins/netbox_rir_module.rst",
+ "name": "plugins/modules/netbox_platform.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1382122a269cb4a2ca918fb4dce0556756d693c127250b0c12f72c1fc5c6d966",
+ "chksum_sha256": "f4bb3d8ddb33f8027773707cbd6924125c85897febab485600c8d10c88469bd2",
"format": 1
},
{
- "name": "docs/plugins/netbox_user_module.rst",
+ "name": "plugins/modules/netbox_device_interface_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a8c5c2775f9346c183cad768e786e1f5c9963f788fe58f52a1f3e7d206501c3f",
+ "chksum_sha256": "8a9a32b41a89bf21f1fe1222ff115fc513805726a7c5d45783b1ebca15c9a828",
"format": 1
},
{
- "name": "docs/plugins/netbox_rack_module.rst",
+ "name": "plugins/modules/netbox_inventory_item_role.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ce0d7ee5f942c18210dd6b6b4721af2ff9fa2ac435683b15caa061cf8a249072",
+ "chksum_sha256": "50c6ef2a713ca82ddf49d34b0c3093e6c01c3048b215ef0ef891906c333b1529",
"format": 1
},
{
- "name": "docs/plugins/netbox_cable_module.rst",
+ "name": "plugins/modules/netbox_console_server_port_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b293de85945449ee432a223608ad215b3ef786b2c0aa4975ffae96887f2dd65",
+ "chksum_sha256": "67d4f7bd5f7c75842829388993cc7ce4a94c183a470baa5f0478b15e1337857e",
"format": 1
},
{
- "name": "docs/plugins/netbox_wireless_link_module.rst",
+ "name": "plugins/modules/netbox_power_panel.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9e959d69028839654d7709c6f3c2159a1fd8e3400c8ad51bb39f02d0ccdd3c39",
+ "chksum_sha256": "bf77eeca2ff7495d3dbea12f0848889d332c0c3ad7323dab0f6cd21e536c9f89",
"format": 1
},
{
- "name": "docs/plugins/netbox_tenant_module.rst",
+ "name": "plugins/modules/netbox_user.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21efff48b9a758139aef53b12e3637fea34d512593aa207561186f5b1066558b",
+ "chksum_sha256": "bef71665691b52483e6bfe7e5c5a9fb93de18b49f6a6127dd448e42e8bc1b374",
"format": 1
},
{
- "name": "docs/plugins/netbox_interface_module.rst",
+ "name": "plugins/modules/netbox_service.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "80ce94c21753ae848881272883ff10e6a2b9d2d2c9b9f89b2b102f5c5fabb251",
+ "chksum_sha256": "1633413ba3a58551f1b0d47077d726726dd7f021241efdb759bd1a25d9ef0e98",
"format": 1
},
{
- "name": "docs/plugins/netbox_fhrp_group_module.rst",
+ "name": "plugins/modules/netbox_asn.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7899521d4ca97f569134ee77a392b32d3eaaeaeefa0a1d29dbb69ffe708634b7",
+ "chksum_sha256": "2ea2240131475f5a03e062f7510517cae8d32f2039eee611008cd24ebde770cc",
"format": 1
},
{
- "name": "docs/plugins/netbox_vlan_group_module.rst",
+ "name": "plugins/modules/netbox_rack_role.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dae65230660dfe86c8803568752e0ce855c4cbbd74cb0495a4163032075f6a6e",
+ "chksum_sha256": "b8adaac5cdc7ebdcdfa35adc9e6be3f781706e2b0cdeffc26313dba4ceea3be0",
"format": 1
},
{
- "name": "docs/plugins/netbox_route_target_module.rst",
+ "name": "plugins/modules/netbox_console_port.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b66003160f3a1cc2fb0ff232d730f7a2ffbfa68240fd9ab317a23183a7038e8b",
+ "chksum_sha256": "22d0691edb3978d72f23f4131ddd8520aa7430c43ccceee188e204d39a4cffcf",
"format": 1
},
{
- "name": "docs/plugins/netbox_l2vpn_module.rst",
+ "name": "plugins/modules/netbox_wireless_link.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3073d7429b343c45ad2237ecd96b4dd79490c6bc3935a71758c3a4e27074ed32",
+ "chksum_sha256": "6ff0e8be94d254e8d074e45954755f315fd9edf9137661826abd2b17cf831460",
"format": 1
},
{
- "name": "docs/plugins/netbox_ip_address_module.rst",
+ "name": "plugins/modules/netbox_vlan_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f7bb12a1391ab6dd0b0fecbb64e429ec7547f38c47bd79a7935b9a053495f454",
+ "chksum_sha256": "9eb77e1ca3e2fe25b63cf905c13a3bef0fb074cc55c8ecea72d995a629ed3a4a",
"format": 1
},
{
- "name": "docs/plugins/netbox_site_group_module.rst",
+ "name": "plugins/modules/netbox_cluster_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42c6d6831107d74d6cf3e7a23b77bfd1d8e6e05a61b1f767a8cc24372ef25413",
+ "chksum_sha256": "e5f861f5e0393cb5f55da469c17c0ba607f558469de176aea740fffdc3504ebd",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_interface_template_module.rst",
+ "name": "plugins/modules/netbox_fhrp_group_assignment.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c186cbed878108d623a976666fb5ddbfc535380af38d03b8c7749926b8dbbe8",
+ "chksum_sha256": "a056bc88bba0fed5eaf823a6f8b6bbb11db2de8b7de044dd9e97c843b11ebbcd",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_bay_template_module.rst",
+ "name": "plugins/modules/netbox_device_type.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "da3df78bcc6022de83913a31a413de74fa0a9d4a59ff19fc54b6b6afd4a9172c",
+ "chksum_sha256": "1ceddcffd07e6f7e976a57ef8e0558301deb9d0b40fc9d12cd0e71acc15af44d",
"format": 1
},
{
- "name": "docs/plugins/netbox_inventory_item_module.rst",
+ "name": "plugins/modules/netbox_console_server_port.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ee5b25af1469814fb139d4a8d46e9ce1b23579306b399f6b8af1212831879b2d",
+ "chksum_sha256": "5bfcbf1b1403757095db86810251a73d71d761d7c7e12dd21870bbc80d80bcc9",
"format": 1
},
{
- "name": "docs/plugins/netbox_contact_role_module.rst",
+ "name": "plugins/modules/netbox_tunnel_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8022ab565b63426eedeacf47b370c10de85efc07b79449bb6e9484105264719a",
+ "chksum_sha256": "b594d300b4e02e8d29a9d6ccf5db67dfc10ea6182b48b2bd8ea7d72afaf61eb7",
"format": 1
},
{
- "name": "docs/plugins/netbox_vlan_module.rst",
+ "name": "plugins/modules/netbox_service_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3aa0ddbac2de8873b44e41c33d090396aeb0d65666e5a8b4d9608c9e2d104953",
+ "chksum_sha256": "04a40a22ba361900ebb90ef35e38972a4db791f2ac4f7f3328de0b477809a47e",
"format": 1
},
{
- "name": "docs/plugins/netbox_service_template_module.rst",
+ "name": "plugins/modules/netbox_circuit.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8ce5477fa688c20c04e5273291d6ef4f8ac40b75841751e0960973e2a2ebeec8",
+ "chksum_sha256": "9fd9f64d9887eca8ce2a128e3261dd9a900f7a5345470c8e801980680648b480",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_type_module.rst",
+ "name": "plugins/modules/netbox_location.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2874b53ab18bc4d76c2b33e7756c6cb025287613c586e29d0c00807453c3639e",
+ "chksum_sha256": "1dbdbf467bb0035e0a4ab6ee66faa569c9faa1fc0d9731265c82857e21507358",
"format": 1
},
{
- "name": "docs/plugins/netbox_wireless_lan_group_module.rst",
+ "name": "plugins/modules/netbox_module.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2f9f27a7600e82057bc8ebf7758894807e0b5e50c2a52910fd1e2fc41b2b734c",
+ "chksum_sha256": "05a271bbb128fd2083abf52cf65df145b416340f8020ca1fae0567e1bed2a45d",
"format": 1
},
{
- "name": "docs/plugins/netbox_aggregate_module.rst",
+ "name": "plugins/modules/netbox_permission.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "98404d353a38cc6284513b10a4931c6a5a1f5495f34bbbbe187d5765e790b755",
+ "chksum_sha256": "5956017f62229e6559f5a31d1ec183e1c712a198805706569fb9f3a207cf6047",
"format": 1
},
{
- "name": "docs/plugins/nb_lookup_lookup.rst",
+ "name": "plugins/modules/netbox_power_outlet_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "870b461e9e067a8560f251ddd5215489f184471be687c3b67bd9f637e0952c22",
+ "chksum_sha256": "890b7fb0444b514cd5e3ece079a507b861dbf2891c5ac44770dc36577e975d1a",
"format": 1
},
{
- "name": "docs/plugins/netbox_site_module.rst",
+ "name": "plugins/modules/netbox_tunnel.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de9e722dbd77ad11b398e8ff6066c393aedb01cdd70245975a99bd18161871a9",
+ "chksum_sha256": "27aeb620d909d458077977b7c7baad8d00bd228ea11dc5fe7932fc69922f9bd2",
"format": 1
},
{
- "name": "docs/plugins/netbox_rear_port_template_module.rst",
+ "name": "plugins/modules/netbox_device_interface.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "074441f1003e17b2e645aa54fbbc9936c059385f9282e9ebb61342b8ce1ea6be",
+ "chksum_sha256": "2dd01b124a879c6aea9ecfe0683dd2f722a385ee4b6ffbff45ba8beb6164d196",
"format": 1
},
{
- "name": "docs/plugins/netbox_tenant_group_module.rst",
+ "name": "plugins/modules/netbox_vm_interface.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "10ce87f1e308e25275fa6e3d2c9673d6dbb3fc4ef4c3f6f0e5324e5c62033968",
+ "chksum_sha256": "84e77276903029d62efb92d0fe3c1992919a5aa87ac60807f82d8470fa08c4b3",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_outlet_template_module.rst",
+ "name": "plugins/modules/netbox_ip_address.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5bb2441fbee10b2dee0fad9ec183fff7bd8387094527f4d6975376c9254c3362",
+ "chksum_sha256": "bfb2a61a2716406a54aafb2817d8501661412575ef8fa03a92f73e363323107e",
"format": 1
},
{
- "name": "docs/plugins/netbox_asn_module.rst",
+ "name": "plugins/modules/netbox_power_port.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "301db8a0f443f5d3babc569f3c0034dc6d2dbe19de3f21f29ace450de6133c37",
+ "chksum_sha256": "810c2aba9e965ecd4a8e0f437e330a5c2d068b06c384c8f3777d1c09f075aa74",
"format": 1
},
{
- "name": "docs/plugins/netbox_mac_address_module.rst",
+ "name": "plugins/modules/netbox_config_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7772cf13a923e8c3ce8a0e61c303c35f3d49f57c8523e67c9e915ce6c9badd71",
+ "chksum_sha256": "6c4e8fbba0a4a370f572ce87c4f49559476b2adf1fb75ba1c00ea8c11dfc8afc",
"format": 1
},
{
- "name": "docs/plugins/netbox_ipam_role_module.rst",
+ "name": "plugins/modules/netbox_manufacturer.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cc6c5676f0872194f33895ae5aa9387ac3b04f92639f6e0ec8b6953e347e51b6",
+ "chksum_sha256": "7562792a9f7bb0cda5180d4ef2c6127ea6c5250c01bc2a3f8bb0fcb681ac836e",
"format": 1
},
{
- "name": "docs/plugins/netbox_cluster_type_module.rst",
+ "name": "plugins/modules/netbox_tenant_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "64dbb8c1fcb644d5e8e2c24816aa42b6cf1439a99810402c987aee38eb466770",
+ "chksum_sha256": "d718548666a1b6ae349c9175f39935bad5af259704a97eb415ad0b6ca273ffc5",
"format": 1
},
{
- "name": "docs/plugins/netbox_cluster_group_module.rst",
+ "name": "plugins/modules/netbox_tenant.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a73d8ca9f42a9568610015216e355d5c98a348128638af0697cd2e075cce6bfb",
+ "chksum_sha256": "4d4517859d7f1fb6492e58cabb50264d5c7fa8b3c3f75030a89989632fae44f2",
"format": 1
},
{
- "name": "docs/plugins/netbox_console_port_module.rst",
+ "name": "plugins/modules/__init__.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dd74e6df8c43fcdc27d48d34acf0ba0dd95d22bb1548a8e2ed47809067a6246c",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_role_module.rst",
+ "name": "plugins/modules/netbox_site_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "30554a23ff0aaba9e4b78c125d6e40de69526e0b073dbe546bc01e4712a83106",
+ "chksum_sha256": "81d354cd6dcdaaa0e4267e628d0e28a20b24d3313edecf7e8cc8b0615028ddc0",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_panel_module.rst",
+ "name": "plugins/modules/netbox_provider.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "56861dbfe8e42f3daa5e59796d0bb53725aae517391435cf3175a706cba64bd9",
+ "chksum_sha256": "d52039cff5a155d8bd27872ef27902356d6cfc3dd56121a9fdb1452a09848ada",
"format": 1
},
{
- "name": "docs/plugins/netbox_wireless_lan_module.rst",
+ "name": "plugins/modules/netbox_rear_port_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ad57f32c7d3096c219a52b7b27b1f90bbd0be3edd67e6fdfaf7d823cf15ce325",
+ "chksum_sha256": "0774a138a14545017bd78766e461c5f723991aa4c54804eeeca96ac09c3bfb4f",
"format": 1
},
{
- "name": "docs/plugins/netbox_config_context_module.rst",
+ "name": "plugins/modules/netbox_region.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6966267251d0fc9889a5a388489c41331e6c269d8ee98d2fba1e5b8e3d0e2c6",
+ "chksum_sha256": "4dc8b9cbcd390de75587ce141d16a5424259306e90dc604869d90dca3c13345d",
"format": 1
},
{
- "name": "docs/plugins/netbox_front_port_template_module.rst",
+ "name": "plugins/modules/netbox_user_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fe05082aef27134795c24b3155584a387bd895feebc954ebb2c716367eab32bd",
+ "chksum_sha256": "bff31a353aa84e70f98ef6b8f9b930f409719fac5afa06b3f25c542c4a60b165",
"format": 1
},
{
- "name": "docs/plugins/netbox_cluster_module.rst",
+ "name": "plugins/modules/netbox_l2vpn.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0412c7715fbbc053c1cce1cfabfd01c2fbca32294bc376e06f827461f4d8ec12",
+ "chksum_sha256": "8af6e4df049e34038f1ebadd11f337eaa24e26fbcf8a86834c4bf3ef79fffb56",
"format": 1
},
{
- "name": "docs/plugins/netbox_rack_group_module.rst",
+ "name": "plugins/modules/netbox_prefix.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8389d164e3b594dbb595c9b35eb1d27b31c11d9154a12a81e0ec4a80bdd69921",
+ "chksum_sha256": "fcbdbc250c0186d228bb9ee7baef0e85a5eb857cf66f4c9667b7783da799c19c",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_port_module.rst",
+ "name": "plugins/modules/netbox_device.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b193c28dc26ce70a127ee897c760471fb7b54ccf379477a5c994ace17f443156",
+ "chksum_sha256": "eba8b1469a775d0793b28c259305811172d900f4cad500f826c6012036d67fc3",
"format": 1
},
{
- "name": "docs/plugins/netbox_location_module.rst",
+ "name": "plugins/modules/netbox_webhook.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a935508772fda71ba8a4ea233874ac9e564a2f89b230e37c84dba0ee1c06a99",
+ "chksum_sha256": "1060bd63ba3d1fc3243fa7585140dfc3030ff0c52dfbf88d75c45b7d8ea99818",
"format": 1
},
{
- "name": "docs/plugins/netbox_provider_network_module.rst",
+ "name": "plugins/modules/netbox_power_outlet.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a23d61e7604943181ff50d1fa009a0532dd5e29ca33208deca2816a171d7e709",
+ "chksum_sha256": "05f934116bfba3947288f4f3eef2dbaf705bd077e3bd6fbf15d4937c0b4288d4",
"format": 1
},
{
- "name": "docs/plugins/nb_inventory_inventory.rst",
+ "name": "plugins/modules/netbox_console_port_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0244c61888929957245245e2116381e77c6bfdd9b050f1163625b31f2d744868",
+ "chksum_sha256": "3bad97e5cefb8d56f784bf9e8f2dd7b8c6fabbf737e1acb4e8e0d753bf9903cb",
"format": 1
},
{
- "name": "docs/plugins/netbox_l2vpn_termination_module.rst",
+ "name": "plugins/modules/netbox_rear_port.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "619a1012fc5df8627a317c8b3db911d0682eeddb393332e906e71ea2134436c2",
+ "chksum_sha256": "2a7278ac9b53aec8726f6110c6e336aea6ca8e8ddc06a9c41aa9e98ea53d31e8",
"format": 1
},
{
- "name": "docs/plugins/netbox_platform_module.rst",
+ "name": "plugins/modules/netbox_inventory_item.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c74cd9d58a1edeee2c5916e85bb17ecca0ee6ba71071b53e8c3cb4f59249737a",
+ "chksum_sha256": "b486dc3dcf750bc36bc29e79bb5ef756f57a2970caddc97485fd765fade9489c",
"format": 1
},
{
- "name": "docs/plugins/netbox_console_server_port_module.rst",
+ "name": "plugins/modules/netbox_rack_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0c8e089922a60794099b97b5a0be8573dba01e317710c4539aa18459522fb2d2",
+ "chksum_sha256": "868c00a12cb69124a62f12ee70dac8c9ee5fc6e7ac300405f121bd8310c08c43",
"format": 1
},
{
- "name": "docs/plugins/netbox_custom_field_choice_set_module.rst",
+ "name": "plugins/modules/netbox_route_target.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f20ddd3e371ea3799df85c1be864a004bbed4210895bc6b1d7447ef4bfc4738d",
+ "chksum_sha256": "80e0c903f3c8c84d6f80ef78e5212bd5469d1e8fcce822c745d84e3c53300c09",
"format": 1
},
{
- "name": "docs/plugins/netbox_virtual_disk_module.rst",
+ "name": "plugins/modules/netbox_contact_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a99914436428249f5e31657ef1b8ea88f213f419814df7938b42feb2c83473fe",
+ "chksum_sha256": "d83cc16f31751d1ede538d6b6f6be1715713f4c9973c198e805ad24ff580c3ef",
"format": 1
},
{
- "name": "docs/plugins/netbox_vrf_module.rst",
+ "name": "plugins/modules/netbox_virtual_machine.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "74129cf1dd3afac0246b50e80ad5756754ce4f351bb3f3b2048c7598a8c7854a",
+ "chksum_sha256": "d3bb81305a5af693f33af8a0215abd323e2e3418a222a2bc9059a0dc63d93f10",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_bay_module.rst",
+ "name": "plugins/modules/netbox_export_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b58952511f8a9c5e876190cb459c1b9b4dc71a84738be836ea8ffd75b78734f",
+ "chksum_sha256": "69d6d720adfbf91c1a52374338625267752eb7c394b160da8601fe43d4d13b65",
"format": 1
},
{
- "name": "docs/plugins/netbox_provider_module.rst",
+ "name": "plugins/modules/netbox_rack.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cfbfea172c48fb34062de40f1d928814292eecf0c4fb04f08d44a749d9659fbd",
+ "chksum_sha256": "8cbe5d65ac1770b62cbaec8f7a5bc5f7aa86268e29d3d04975311e27cb38ed28",
"format": 1
},
{
- "name": "docs/plugins/netbox_circuit_termination_module.rst",
+ "name": "plugins/modules/netbox_contact_role.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "09d4c007c93b2a1e3a6413275a41c8aa3040c26f768325bbc54792f5528d7f81",
+ "chksum_sha256": "385d48ba1d4b904e1caf01af3e140410b7ebc8b5666ba69a1743eba4044578e9",
"format": 1
},
{
- "name": "docs/plugins/netbox_console_port_template_module.rst",
+ "name": "plugins/modules/netbox_fhrp_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3fa9366e119c2dbd54a29e3efdb714ce23e5bcd5cd72ff2e634be0ec3bd7693d",
+ "chksum_sha256": "4ab54efb7b7d480b387e0f7ef28200a52433b4b2197ec67f1a01ea97c2804a47",
"format": 1
},
{
- "name": "docs/plugins/netbox_webhook_module.rst",
+ "name": "plugins/modules/netbox_cable.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a2f34ae27b20bb9a8b104683b2ac2e24fc464d4c9d8fc6e51f950a240612ec5",
+ "chksum_sha256": "bdcb740914e8b63db284b86b0dd92499526c668ecc4a9385482d268bbc147920",
"format": 1
},
{
- "name": "docs/plugins/netbox_manufacturer_module.rst",
+ "name": "plugins/modules/netbox_custom_field.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b3ec02ef7d13ade0c04755fa22ee6281845d27b353227b240192feb71393dfb4",
+ "chksum_sha256": "edd3b23e1e299803cfdf40900ec4c7417851527c2338f22846bffa4c3c5090d0",
"format": 1
},
{
- "name": "docs/plugins/netbox_contact_module.rst",
+ "name": "plugins/modules/netbox_rir.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b5b40c438b299475b0a94648248159b94014aa166f475c8cbebb279eb61e6564",
+ "chksum_sha256": "623f518cee58aad0d0f8fa70ccbcc23945e9c67dfcd7722004f7958ea4d19456",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_interface_module.rst",
+ "name": "plugins/modules/netbox_power_feed.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1685451506564e5865b67e71173a87e6bac03509e29bcca66ccc880944363526",
+ "chksum_sha256": "be2e18e3463e0be77686b1a9b9b23ab674bc65d8b76757bd08d18315b613ce9d",
"format": 1
},
{
- "name": "docs/plugins/netbox_console_server_port_template_module.rst",
+ "name": "plugins/modules/netbox_provider_network.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "16db01670e0dcec0f577f867e3d1845870f8a9b93777f0c228098c2e0498a62c",
+ "chksum_sha256": "e7d61d14305709e298ae538853f531c2fcdf7704bfd5c3bc0d5a2d9bf1780983",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_outlet_module.rst",
+ "name": "plugins/modules/netbox_virtual_chassis.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1dba5cf57dc1e423ca291e0094ef08b3b86ada2d2e6ba8aeba1e5d0bf78896b5",
+ "chksum_sha256": "645e5c160dce736090188005632028848087315b802e58fdce8fb0feccc17033",
"format": 1
},
{
- "name": "docs/plugins/netbox_export_template_module.rst",
+ "name": "plugins/modules/netbox_front_port.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "84c0c7e2c98c4ad63c69145b3193e077fc523ed72504e79ae526e83541217b87",
+ "chksum_sha256": "3ca3d33bfbee6d950e92ec23cd92876e4d6ef8ebb22bc82118ea9a2ff3ebb527",
"format": 1
},
{
- "name": "docs/plugins/netbox_permission_module.rst",
+ "name": "plugins/modules/netbox_mac_address.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f87ed7557087f572e80a19c4c198852c5a2e1ab18ff500f5522539247d3c6bb3",
+ "chksum_sha256": "65ff14a2d9b6d53787ab1f289ed3e0641522c29539df2471273065dda269bc6a",
"format": 1
},
{
- "name": "docs/plugins/netbox_service_module.rst",
+ "name": "plugins/modules/netbox_site.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fb8bd1b8aa273473a619bb031bb312df227e8ec68b90f5adab879aef0a4fed95",
+ "chksum_sha256": "142edd8247ffb608050e9f140fc83dac895a8a3bbfb736483b97e1d036a2de2a",
"format": 1
},
{
- "name": "docs/plugins/netbox_tunnel_module.rst",
+ "name": "plugins/modules/netbox_device_role.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a9bc8735a70cec07566f6fa1a251ac3d332b38809e56e4bcbabd5f203d494464",
+ "chksum_sha256": "83d9795f3371255a833f3944231b4a5da5ab99cfe4f20e76483ff49856b845d5",
"format": 1
},
{
- "name": "docs/plugins/environment_variables.rst",
+ "name": "plugins/modules/netbox_module_bay.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "919b9c68b99e6fe558e929a66e60200db11c9125fc67e92184911e9a0c458adf",
+ "chksum_sha256": "a7ad78cf8ad94dee64058b6122ddbc6b7520dfb51d1cab7a75b676f0c33bc45f",
"format": 1
},
{
- "name": "docs/plugins/netbox_rear_port_module.rst",
+ "name": "plugins/modules/netbox_l2vpn_termination.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "618f3236d1d4230405b51fc7c7f12bd15f18a7defdb0a620c5d0fadbdf4bed74",
+ "chksum_sha256": "19f273e9c69300f75685605c07de32692829c4397913cf2279cfca7da0cda433",
"format": 1
},
{
- "name": "docs/plugins/netbox_device_module.rst",
+ "name": "plugins/modules/netbox_power_port_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ddf397e5370749e69d08da2f0c2d2b025b59c4d5d444e9c559bd4e33841c2563",
+ "chksum_sha256": "970a4d5f21f065104a6585e48d6076a793cde0b87f36974af3019d96b9629e92",
"format": 1
},
{
- "name": "docs/plugins/netbox_journal_entry_module.rst",
+ "name": "plugins/modules/netbox_circuit_type.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "22c3d01413a0fa2aeabad854e2d8d29fe1f456ea896b5c1c148dfc18553c024b",
+ "chksum_sha256": "6636665daf3094c1dfcf1ad6e406f1c545e144d83157d945e28f91864de7bc92",
"format": 1
},
{
- "name": "docs/plugins/netbox_inventory_item_role_module.rst",
+ "name": "plugins/modules/netbox_device_bay_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "81876f89da7f326ad30e320c91c45358c3cff44ebd45102383c82d93811ddfb1",
+ "chksum_sha256": "78b9cb6d4d613b317adad86574dfb910d62177f9394ae9c093e8913ce5b09abc",
"format": 1
},
{
- "name": "docs/plugins/netbox_tunnel_group_module.rst",
+ "name": "plugins/modules/netbox_custom_link.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e1522cef7048a34d072bf877d3fc9966210161571359dc65ce82b38b267b81c9",
+ "chksum_sha256": "026a4cd881bae68d2bcde93a69620441905b473d1e6a60cdde110f2bf1db094e",
"format": 1
},
{
- "name": "docs/plugins/netbox_circuit_module.rst",
+ "name": "plugins/modules/netbox_module_type.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4ac985dfe11ae4a5240e8683f5254f766bf42d44744017081cc33ae079a5add3",
+ "chksum_sha256": "9b50044bae1b05dd580bf6e7620aaba2e5a74f50b271fcf74aa45de46dcda3ae",
"format": 1
},
{
- "name": "docs/plugins/netbox_module_type_module.rst",
+ "name": "plugins/modules/netbox_journal_entry.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "62917e8f94001d3b5d6af869ee7bb604f765319fd96c9390e30a76e09c635a7f",
+ "chksum_sha256": "e4d8f7d87a363368d9fe18bda8c77392851e98e9ac46161f89dfa6bacdecb1ed",
"format": 1
},
{
- "name": "docs/plugins/netbox_circuit_type_module.rst",
+ "name": "plugins/modules/netbox_cluster.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9ef31d0eb525c7bc4c6ed2416f79d880b5855abe9030e3e18a67a308fa796254",
+ "chksum_sha256": "7e0ae0e32b47e9cdd07d82498f8dd153aaf56e582a326a1e6cccf54cbc5e177f",
"format": 1
},
{
- "name": "docs/plugins/netbox_contact_group_module.rst",
+ "name": "plugins/modules/netbox_cluster_type.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6af28804a0631086f3c5b9ec32bf77c9c803aee913598110ea86c3c7e7715d7c",
+ "chksum_sha256": "c8e9eaa064b4421aa51a5bb3128d72c277891d08305c730450177e55e12eb1d8",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_feed_module.rst",
+ "name": "plugins/modules/netbox_custom_field_choice_set.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a9b7339980914e6f97f16e645c13155973a0a058eee8a1ab20252dfa2c9363e",
+ "chksum_sha256": "a4ce60e3b58f719b3e4f577404ed14a4876033850bd83e55ce29371a3e8c45aa",
"format": 1
},
{
- "name": "docs/plugins/netbox_custom_link_module.rst",
+ "name": "plugins/modules/netbox_wireless_lan_group.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bbbda8bed1dae73fbd89ba0774988c238e1d3440456bec3891fd7a29a63defde",
+ "chksum_sha256": "f421c362d197fc435a38fc22205968857dff44c42daa7d9a13214d9cec7725ee",
"format": 1
},
{
- "name": "docs/plugins/netbox_tag_module.rst",
+ "name": "plugins/modules/netbox_token.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "348c06deb69a851473244de5ebf3d1a4bc30c0ebcfc2a2e58dc987525d3b9909",
+ "chksum_sha256": "b21ad86dbd1152b081a8df4c2410c3ea7cdbaecf4f3dcc5afc5aa0c1549483aa",
"format": 1
},
{
- "name": "docs/plugins/netbox_front_port_module.rst",
+ "name": "plugins/modules/netbox_ipam_role.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "031611f76fcd64c92cb447dd632fb54a0084662e2186bf503b9e2f1898bebf53",
+ "chksum_sha256": "bdae208439bee3f22aecba61e93ce377780ea02e7c39ba3f6df565240d4f6c5f",
"format": 1
},
{
- "name": "docs/plugins/index.rst",
+ "name": "plugins/modules/netbox_tag.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f5f4af7bec4ae74a0fdee531e24304a88f2c90b71e4ac628622a3934251a055e",
+ "chksum_sha256": "3f814fc070afa94106a52b054b36d92d1d220a210076990611868eecb66649c2",
"format": 1
},
{
- "name": "docs/plugins/netbox_user_group_module.rst",
+ "name": "plugins/modules/netbox_wireless_lan.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "332431f40cedf0d47e2268bf3b7da102d4949012450d888e4a2a376e5b374737",
+ "chksum_sha256": "46df15ad06bd919abaa71e0bd5b82aaa00d639246ad49fb548cb098c087371e1",
"format": 1
},
{
- "name": "docs/plugins/netbox_prefix_module.rst",
+ "name": "plugins/modules/netbox_contact.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "97b48db8532d3992eb3ab7c8d471155437f3836c5ef16e323758bcdc9dd9c790",
+ "chksum_sha256": "20f811d01fb87b4b207d873c1ce1afa1a5e202d140ed6e1559782aafa22d5722",
"format": 1
},
{
- "name": "docs/plugins/netbox_power_port_template_module.rst",
+ "name": "plugins/modules/netbox_config_context.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d3bd3323f8d1adfb79407df70a73aff54dc124be216a30ecfe566959eefc48bd",
+ "chksum_sha256": "82856c9866618126bb9767651a6a86db8c52240247a761515dde467b621cd140",
"format": 1
},
{
- "name": "docs/plugins/netbox_virtual_chassis_module.rst",
+ "name": "plugins/modules/netbox_front_port_template.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ad9a6315329277212ec33aa881dc1ba6ee31727d0e45546700309a9f4d5ea696",
+ "chksum_sha256": "35b11c253d567c858b7927bc95c9fdae68de7019657021e949536ddd5e4b41bd",
"format": 1
},
{
- "name": "docs/plugins/netbox_virtual_machine_module.rst",
+ "name": "plugins/lookup",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/lookup/nb_lookup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "52b6903b65fdf379068e2a61df0365adb1b56a7c750ef6a83fe3c1333c514603",
+ "chksum_sha256": "39064b4d5a2ffd1857856299eca1e178e16c5c3d4b8c9fe6ef21ff0e31cd8aef",
"format": 1
},
{
- "name": "docs/plugins/netbox_rack_role_module.rst",
+ "name": "plugins/inventory",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/inventory/nb_inventory.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4ba0689041959357663be897cf59eecdb2e5576c467f2595769eb57d31c82181",
+ "chksum_sha256": "0f8b33632ff203e37ce0ecd8a45c6ca82e644237d4296dbb9a191f8b2aee848c",
"format": 1
},
{
- "name": "docs/plugins/netbox_module_module.rst",
+ "name": "plugins/module_utils",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "plugins/module_utils/netbox_tenancy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fac14f1c6140ef2f624e0143e1c18574a4ec172b61939aacffef3f816067008a",
+ "chksum_sha256": "50a1de4f8a2dd29d4ee73a75fa9ab8e3f5e444a5fc1935a8d09172a56f290d11",
"format": 1
},
{
- "name": "docs/plugins/netbox_region_module.rst",
+ "name": "plugins/module_utils/netbox_wireless.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b1253e6e1dfcc5ed6c266456095a154cca8a9099f3368d7cd10df5497538b0a6",
+ "chksum_sha256": "e962fa78336a3c28fb139d8ef1485b74451d06bcad5bb779d849344e74303d84",
"format": 1
},
{
- "name": "docs/plugins/netbox_module_bay_module.rst",
+ "name": "plugins/module_utils/netbox_virtualization.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "da3ded46277761e7cd951db8fdc6896d311c08ca729725dfe22d826a4f7d3285",
+ "chksum_sha256": "4888905fe5f076ebb504c9259b5a7a04975265001c91daab7a144772f6d331cc",
"format": 1
},
{
- "name": "docs/plugins/netbox_fhrp_group_assignment_module.rst",
+ "name": "plugins/module_utils/netbox_vpn.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "52264ab9863b6b48cddfb6390243740963b93c5307273726454136da0972ae42",
+ "chksum_sha256": "80cbfa947d2bd3a0d396420bf623cd6716fcf775c985eb191ba74f09a71a0947",
"format": 1
},
{
- "name": "docs/plugins/netbox_custom_field_module.rst",
+ "name": "plugins/module_utils/__init__.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e99e15e6578a67688545f9ba12e22567ae77358e908ce60cbcc54f62bd831bf9",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "docs/plugins/netbox_vm_interface_module.rst",
+ "name": "plugins/module_utils/netbox_dcim.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb1a8cda582c69e2e22b7cd33949284112bc0e6f685fb45f54a9be042af13e13",
+ "chksum_sha256": "e802abb26d680850971187f49b857fbc397d3b236cd33ffef143acf9037c1331",
"format": 1
},
{
- "name": "docs/plugins/netbox_token_module.rst",
+ "name": "plugins/module_utils/netbox_users.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1afd9a2a56e62d159800cd2839684376396171efc6b6b6467ae48b8f9afcecc9",
+ "chksum_sha256": "c52d8554391fd05e70914c1c773e0605c3a2a97462cf1c7a8f509042b3493abe",
"format": 1
},
{
- "name": "docs/conf.py",
+ "name": "plugins/module_utils/netbox_extras.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "96d9a9e5902655cbe392008f2b98ddcceb35d1fa30e7359debf9abca7a79e38c",
+ "chksum_sha256": "7caec2ff44747f93ef6f18b1201d4b8abd1ba455f41db4a902d859e819bc99c2",
"format": 1
},
{
- "name": "docs/_extensions",
+ "name": "plugins/module_utils/netbox_ipam.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "67c3c5cd442dc33400bc83dc9a3e2d3bbacd6d292893f760419d7227a1b7e88e",
+ "format": 1
+ },
+ {
+ "name": "plugins/module_utils/netbox_utils.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3604aa977a96c6e93fb23a5d03b209c9c3f62c86ecff4a203d1853605df6d649",
+ "format": 1
+ },
+ {
+ "name": "plugins/module_utils/netbox_secrets.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b12f0853325dd27f38948cd9da65b72c563ce46612f8cf55cfa5806b1ab784c6",
+ "format": 1
+ },
+ {
+ "name": "plugins/module_utils/netbox_circuits.py",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1e448439cc15b42ac16bf9e390741429fc6293dae59817e680dc5dae4de5683e",
+ "format": 1
+ },
+ {
+ "name": "plugins/doc_fragments",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/_extensions/pygments_lexer.py",
+ "name": "plugins/doc_fragments/common.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6fa5a72e224c3cae4a07f42ea993bed348822e31e4435c300f01e707fb961cb8",
+ "chksum_sha256": "ef3b5ec108915b6457920e5e7e2d6d9eeb2f5e7456cc421d90dd29607d07f3ef",
"format": 1
},
{
- "name": "docs/_static",
+ "name": ".ansible-lint-ignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c9f3858f2f46c33226d8494ece32bb03872c105e228fb32e56b4d4c342b924c9",
+ "format": 1
+ },
+ {
+ "name": ".gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c0ac384e24827235e0b17021954d2b803c3da263038dfaa24967d3d40a86ea15",
+ "format": 1
+ },
+ {
+ "name": "hacking",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "docs/_static/pygments.css",
+ "name": "hacking/local-test.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "74318b36e2302111536796af5aa86a9ceab09faa3eedc3e7d28878b8751896d6",
+ "chksum_sha256": "3c4c16322033b5df7c08d9081098e11416b3bbdebede263ba84a92c4f043d815",
"format": 1
},
{
- "name": "docs/_static/ansible.css",
+ "name": "hacking/build.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0787ca656847c399975c5cca01be77f08d4ff9344b87bec1c1ba1aaa3cff56a8",
+ "chksum_sha256": "c824f229eafb4ad8fcc24c800b6d08ad8af1c8ca866e9cdbfd543429b2a04a24",
"format": 1
},
{
- "name": "docs/index.rst",
+ "name": "hacking/make-docs.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "13a5ee7e9853fc07707a7cdc745cb837c7b2ee852328f4b4c7ebcf6e3acb881b",
+ "chksum_sha256": "eaf25c88bd9a0d8d8b583c8f65bed04ce553749fe2949e2e07063fc420b08bbb",
+ "format": 1
+ },
+ {
+ "name": "hacking/black.sh",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "31b38a6d54cf7fd233d647760c6f9b695bde61762b09b0aba5899ea746d14248",
+ "format": 1
+ },
+ {
+ "name": "hacking/update_test_inventories.sh",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c02406514a0a53c1328f5397a4df2aae6ed1096159a3a85db20e34b5c73acdbe",
+ "format": 1
+ },
+ {
+ "name": "changelogs",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs/changelog.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "66aab480eb94f6d013492eb48d517fbe971496b75e85a042a1054113ffdc7ddc",
+ "format": 1
+ },
+ {
+ "name": "changelogs/config.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "bad0157e7ffee11df87f3adaa5dcfa3f1841e816a27cbcf5b866fa21f63ef1bd",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/netbox_circuit_termination.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a066d548977d7ce88be369285cc929f2b2b05cc1edc218a5235a359c40843a20",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/netbox_service.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dc9e1b98c1de1239ab0add42c7bc6b52232955d9f098fdee3e819544074d051a",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/netbox_custom_field.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f2ecc820b29763f3ff59b228484952f2d2afa99a7972224495087021729e6391",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b71f646d352dda0b03bac8b8df1e0d140acf67a2093e539c7031eb76aa324e4b",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/.gitkeep",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/nb_inventory.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "178806210fa1bb284e1881a87f6daca09adaf8fa704d264b5b8bb0a68a97cd2a",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/netbox_tag.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7f44fe7ddce94f7b2f85e79f3b63e99b13b80c14fc389568e97e25938683ceec",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/1435-fix-duplicate-task-name.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1535416afdd50798328df5c30f22e7467afb603fa32573ad24dd7ae558c863d1",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/1438-fix-inventory-service-collection.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ca299e53792744e7b4fdaa280ca680b03c775a951a16461f6a72d785e4716e6b",
+ "format": 1
+ },
+ {
+ "name": "changelogs/fragments/1433-add-custom-headers.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5d0f5bf416120f42f65f1fea2f048a6bfb892dabc44c9cf8201876d1086e8280",
+ "format": 1
+ },
+ {
+ "name": "CHANGELOG.rst",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5561e1e48b10d67a51e4b3adfb0e6b5e7dc54b85ed5c6f66c6d3adb2743dea0e",
"format": 1
},
{
@@ -5116,6 +6012,27 @@
"chksum_type": "sha256",
"chksum_sha256": "6365ac7f012c2abf8fdda1781d0c36ec4f4e166ebd8442492914f5438ec0b9e8",
"format": 1
+ },
+ {
+ "name": "meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "meta/runtime.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "620d4052670d3d48ecad892e422c0acb7b7ce3d08faf0b8b0e516bf794226452",
+ "format": 1
+ },
+ {
+ "name": "meta/execution-environment.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0cd0b966cbb8fefb00f7122190d7a9b42dc5da517a8c5ba9d86e34c51bc3e43a",
+ "format": 1
}
],
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/MANIFEST.json 2025-03-04 22:42:10.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/MANIFEST.json 2025-09-09 00:14:19.000000000 +0000
@@ -27,7 +27,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6fe5bbf0c1519a78417b5b8ea0439c108ba6dd91e930e5cd80ff89d878095c3",
+ "chksum_sha256": "8f36fe05f81ade3dff4fa70c653ea506b253687d955715fd89d95cecd4b6fed7",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1433-add-custom-headers.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+minor_changes:
+ - Add support for custom headers for all modules
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1435-fix-duplicate-task-name.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+bugfixes:
+ - Fix task duplicate task name in documentation that cause ansible-lint error
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1438-fix-inventory-service-collection.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+bugfixes:
+ - nb_inventory - Fix service collection for version greater than 4.3
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/1439-fix-sevral-bug-discovered-by-integration-tests.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,6 @@
+bugfixes:
+ - Add netbox version check to support service creation for netbox version prior of 4.3
+ - Use dedicated function to check netbox version istead of self.full_version for rack.
+ - Fix typos in tag integration tests.
+ - Fix integration test for circuit termination, missing assignment
+ - Fix integration test for service
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/nb_inventory.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+bugfixes:
+ - nb_inventory - Fixed empty inventory results when netbox server URL is a non-root path
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_circuit_termination.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+minor_changes:
+ - netbox_circuit_termination - Add parameters termination_id and termination_type for NetBox 4.2+
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_custom_field.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+minor_changes:
+ - Support for related_object_filter when related_object_type is "object"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_service.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+bugfixes:
+ - netbox_service - Fix issue 1426 - broken netbox_service module
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/changelogs/fragments/netbox_tag.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,2 @@
+minor_changes:
+ - netbox_tag - Add support for object_types on tags
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/getting_started/contributing/modules/architecture.rst ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/getting_started/contributing/modules/architecture.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/getting_started/contributing/modules/architecture.rst 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/getting_started/contributing/modules/architecture.rst 2025-09-09 00:14:19.000000000 +0000
@@ -284,10 +284,11 @@
url = self.module.params["netbox_url"]
token = self.module.params["netbox_token"]
ssl_verify = self.module.params["validate_certs"]
+ headers = self.module.params["headers"]
# Attempt to initiate connection to NetBox
if nb_client is None:
- self.nb = self._connect_netbox_api(url, token, ssl_verify)
+ self.nb = self._connect_netbox_api(url, token, ssl_verify, headers)
else:
self.nb = nb_client
try:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/nb_lookup_lookup.rst ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/nb_lookup_lookup.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/nb_lookup_lookup.rst 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/nb_lookup_lookup.rst 2025-09-09 00:14:19.000000000 +0000
@@ -568,7 +568,7 @@
manufactured by {{ item.value.device_type.manufacturer.name }}"
loop: "{{ query('netbox.netbox.nb_lookup', 'devices',
api_endpoint='http://localhost/',
- api_filter='role=management tag=Dell'),
+ api_filter='role=management tag=Dell',
token='') }}"
# This example uses an API Filter with a variable and jinja concatenation
- name: Set hostname fact
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_device_type_module.rst ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_device_type_module.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_device_type_module.rst 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_device_type_module.rst 2025-09-09 00:14:19.000000000 +0000
@@ -1076,7 +1076,7 @@
manufacturer: Test Manufacturer
state: present
- - name: Create device type within NetBox with only required information
+ - name: Create device type within NetBox with more information
netbox.netbox.netbox_device_type:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_platform_module.rst ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_platform_module.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_platform_module.rst 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_platform_module.rst 2025-09-09 00:14:19.000000000 +0000
@@ -782,7 +782,7 @@
config_template: "my_config_template_slug"
state: present
- - name: Create platform within NetBox with only required information
+ - name: Create platform within NetBox with more information
netbox.netbox.netbox_platform:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_prefix_module.rst ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_prefix_module.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_prefix_module.rst 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/docs/plugins/netbox_prefix_module.rst 2025-09-09 00:14:19.000000000 +0000
@@ -1216,7 +1216,7 @@
gather_facts: false
tasks:
- - name: Create prefix within NetBox with only required information
+ - name: Create prefix within NetBox with only required information before deleting it
netbox.netbox.netbox_prefix:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/doc_fragments/common.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/doc_fragments/common.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/doc_fragments/common.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/doc_fragments/common.py 2025-09-09 00:14:19.000000000 +0000
@@ -50,4 +50,8 @@
- Certificate path
required: false
type: raw
+ headers:
+ description: Dictionary of headers to be passed to the NetBox API.
+ required: false
+ type: dict
"""
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/inventory/nb_inventory.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/inventory/nb_inventory.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/inventory/nb_inventory.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/inventory/nb_inventory.py 2025-09-09 00:14:19.000000000 +0000
@@ -325,8 +325,8 @@
- prefix: status
key: status.value
-# For use in Ansible Tower (AWX), please see this blog from RedHat: https://www.ansible.com/blog/using-an-inventory-plugin-from-a-collection-in-ansible-tower
-# The credential for NetBox will need to expose NETBOX_API and NETBOX_TOKEN as environment variables.
+# For use in Ansible Tower (AWX) the credential for NetBox will need to expose NETBOX_API
+# and NETBOX_TOKEN as environment variables.
# Example Ansible Tower credential Input Configuration:
fields:
@@ -406,7 +406,8 @@
from ansible.module_utils.urls import open_url
from ansible.module_utils.six.moves.urllib import error as urllib_error
from ansible.module_utils.six.moves.urllib.parse import urlencode
-from ansible.module_utils.six import raise_from
+from ansible.module_utils.six.moves.urllib.parse import urlparse
+
try:
from packaging import specifiers, version
@@ -1148,19 +1149,19 @@
# Pull all prefixes defined in NetBox
url = self.api_endpoint + "/api/ipam/prefixes"
- if self.fetch_all:
- prefixes = self.get_resource_list(url)
- else:
- prefixes = self.get_resource_list_chunked(
- api_url=url,
- query_key="site",
- query_values=list(self.sites_with_prefixes),
- )
+ prefixes = self.get_resource_list(url)
self.prefixes_sites_lookup = defaultdict(list)
# We are only concerned with Prefixes that have actually been assigned to sites
for prefix in prefixes:
- if prefix.get("site"):
+ # NetBox >=4.2
+ if (
+ prefix.get("scope_type") == "dcim.site"
+ and prefix.get("scope") is not None
+ ):
+ self.prefixes_sites_lookup[prefix["scope"]["id"]].append(prefix)
+ # NetBox <=4.1
+ elif prefix.get("site"):
self.prefixes_sites_lookup[prefix["site"]["id"]].append(prefix)
# Remove "site" attribute, as it's redundant when prefixes are assigned to site
del prefix["site"]
@@ -1326,6 +1327,15 @@
if self.fetch_all:
services = self.get_resource_list(url)
+ elif self.api_version >= version.parse("4.3.0"):
+ services = self.get_resource_list_chunked(
+ api_url=url,
+ query_key="parent_object_id",
+ # Query only affected devices and vms and sanitize the list to only contain every ID once
+ query_values=set(
+ chain(self.vms_lookup.keys(), self.devices_lookup.keys())
+ ),
+ )
else:
device_services = self.get_resource_list_chunked(
api_url=url,
@@ -1347,15 +1357,26 @@
for service in services:
service_id = service["id"]
- if service.get("device"):
- self.device_services_lookup[service["device"]["id"]][
- service_id
- ] = service
-
- if service.get("virtual_machine"):
- self.vm_services_lookup[service["virtual_machine"]["id"]][
- service_id
- ] = service
+ if self.api_version >= version.parse("4.3.0"):
+ if service.get("parent_object_type") == "dcim.device":
+ self.device_services_lookup[service["parent_object_id"]][
+ service_id
+ ] = service
+
+ if service.get("parent_object_type") == "virtualization.virtualmachine":
+ self.vm_services_lookup[service["parent_object_id"]][
+ service_id
+ ] = service
+ else:
+ if service.get("device"):
+ self.device_services_lookup[service["device"]["id"]][
+ service_id
+ ] = service
+
+ if service.get("virtual_machine"):
+ self.vm_services_lookup[service["virtual_machine"]["id"]][
+ service_id
+ ] = service
def refresh_virtual_disks(self):
url_vm_virtual_disks = (
@@ -1629,26 +1650,32 @@
self.api_version = version.parse(netbox_api_version)
if self.api_version >= version.parse("3.5.0"):
+ parsed_endpoint_url = urlparse(self.api_endpoint)
+ base_path = parsed_endpoint_url.path
self.allowed_device_query_parameters = [
p["name"]
- for p in openapi["paths"]["/api/dcim/devices/"]["get"]["parameters"]
+ for p in openapi["paths"][base_path + "/api/dcim/devices/"]["get"][
+ "parameters"
+ ]
]
self.allowed_vm_query_parameters = [
p["name"]
- for p in openapi["paths"]["/api/virtualization/virtual-machines/"][
- "get"
- ]["parameters"]
+ for p in openapi["paths"][
+ base_path + "/api/virtualization/virtual-machines/"
+ ]["get"]["parameters"]
]
else:
self.allowed_device_query_parameters = [
p["name"]
- for p in openapi["paths"]["/dcim/devices/"]["get"]["parameters"]
+ for p in openapi["paths"][base_path + "/dcim/devices/"]["get"][
+ "parameters"
+ ]
]
self.allowed_vm_query_parameters = [
p["name"]
- for p in openapi["paths"]["/virtualization/virtual-machines/"]["get"][
- "parameters"
- ]
+ for p in openapi["paths"][
+ base_path + "/virtualization/virtual-machines/"
+ ]["get"]["parameters"]
]
def validate_query_parameter(self, parameter, allowed_query_parameters):
@@ -2016,10 +2043,9 @@
def main(self):
# Check if pytz lib is install, and give error if not
if PYTZ_IMPORT_ERROR:
- raise_from(
- AnsibleError("pytz must be installed to use this plugin"),
- PYTZ_IMPORT_ERROR,
- )
+ raise AnsibleError(
+ "pytz must be installed to use this plugin"
+ ) from PYTZ_IMPORT_ERROR
# Get info about the API - version, allowed query parameters
self.fetch_api_docs()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/lookup/nb_lookup.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/lookup/nb_lookup.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/lookup/nb_lookup.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/lookup/nb_lookup.py 2025-09-09 00:14:19.000000000 +0000
@@ -134,7 +134,6 @@
from ansible.plugins.lookup import LookupBase
from ansible.parsing.splitter import parse_kv, split_args
from ansible.utils.display import Display
-from ansible.module_utils.six import raise_from
from importlib.metadata import version
try:
@@ -328,6 +327,9 @@
}
netbox_endpoint_map["l2vpns"] = {"endpoint": netbox.ipam.l2vpns}
+ if netbox_versiontuple >= (4, 2):
+ netbox_endpoint_map["mac-addresses"] = {"endpoint": netbox.dcim.mac_addresses}
+
return netbox_endpoint_map[term]["endpoint"]
@@ -410,16 +412,14 @@
def run(self, terms, variables=None, **kwargs):
if PYNETBOX_LIBRARY_IMPORT_ERROR:
- raise_from(
- AnsibleError("pynetbox must be installed to use this plugin"),
- PYNETBOX_LIBRARY_IMPORT_ERROR,
- )
+ raise AnsibleError(
+ "pynetbox must be installed to use this plugin"
+ ) from PYNETBOX_LIBRARY_IMPORT_ERROR
if REQUESTS_LIBRARY_IMPORT_ERROR:
- raise_from(
- AnsibleError("requests must be installed to use this plugin"),
- REQUESTS_LIBRARY_IMPORT_ERROR,
- )
+ raise AnsibleError(
+ "requests must be installed to use this plugin"
+ ) from REQUESTS_LIBRARY_IMPORT_ERROR
netbox_api_token = (
kwargs.get("token")
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py 2025-09-09 00:14:19.000000000 +0000
@@ -6,7 +6,6 @@
__metaclass__ = type
-from ansible.module_utils.basic import missing_required_lib
from ansible_collections.netbox.netbox.plugins.module_utils.netbox_utils import (
NetboxModule,
ENDPOINT_NAME_MAPPING,
@@ -53,22 +52,9 @@
NB_VIRTUAL_CHASSIS = "virtual_chassis"
NB_MAC_ADDRESSES = "mac_addresses"
-try:
- from packaging.version import Version
-
- HAS_PACKAGING = True
- PACKAGING_IMPORT_ERROR = ""
-except ImportError as imp_exc:
- PACKAGING_IMPORT_ERROR = imp_exc
- HAS_PACKAGING = False
-
class NetboxDcimModule(NetboxModule):
def __init__(self, module, endpoint):
- if not HAS_PACKAGING:
- module.fail_json(
- msg=missing_required_lib("packaging"), exception=PACKAGING_IMPORT_ERROR
- )
super().__init__(module, endpoint)
def run(self):
@@ -128,7 +114,7 @@
# Handle rack and form_factor
if endpoint_name == "rack":
- if Version(self.full_version) >= Version("4.1.0"):
+ if self._version_check_greater(self.version, "4.1", greater_or_equal=True):
if "type" in data:
data["form_factor"] = self._to_slug(data["type"])
del data["type"]
@@ -207,7 +193,7 @@
data["color"] = data["color"].lower()
if self.endpoint == "cables":
- if Version(self.full_version) >= Version("3.0.6"):
+ if self._version_check_greater(self.version, "3.0", greater_or_equal=True):
cables = [
nb_endpoint.get(
termination_a_type=data["termination_a_type"],
@@ -236,7 +222,7 @@
else:
self._handle_errors(msg="More than one result returned for %s" % (name))
- if Version(self.full_version) >= Version("3.3.0"):
+ if self._version_check_greater(self.version, "3.3", greater_or_equal=True):
data["a_terminations"] = [
{
"object_id": data.pop("termination_a_id"),
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_ipam.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_ipam.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_ipam.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_ipam.py 2025-09-09 00:14:19.000000000 +0000
@@ -162,6 +162,8 @@
- vlans
- vlan_groups
- vrfs
+ - services
+ - service_template
"""
# Used to dynamically set key when returning results
endpoint_name = ENDPOINT_NAME_MAPPING[self.endpoint]
@@ -214,6 +216,18 @@
if not data.get("slug"):
data["slug"] = self._to_slug(name)
+ if self.endpoint == "services" and self._version_check_greater(
+ self.version, "4.3", greater_or_equal=True
+ ):
+ if "device" in data:
+ data["parent_object_type"] = "dcim.device"
+ data["parent_object_id"] = data["device"]
+ del data["device"]
+ elif "virtual_machine" in data:
+ data["parent_object_type"] = "virtualization.virtualmachine"
+ data["parent_object_id"] = data["virtual_machine"]
+ del data["virtual_machine"]
+
if self.module.params.get("first_available"):
first_available = True
else:
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_utils.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_utils.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_utils.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/module_utils/netbox_utils.py 2025-09-09 00:14:19.000000000 +0000
@@ -723,6 +723,7 @@
query_params=dict(required=False, type="list", elements="str"),
validate_certs=dict(type="raw", default=True),
cert=dict(type="raw", required=False),
+ headers=dict(type="dict", required=False),
)
@@ -751,10 +752,11 @@
token = self.module.params["netbox_token"]
ssl_verify = self.module.params["validate_certs"]
cert = self.module.params["cert"]
+ headers = self.module.params["headers"]
# Attempt to initiate connection to NetBox
if nb_client is None:
- self.nb = self._connect_netbox_api(url, token, ssl_verify, cert)
+ self.nb = self._connect_netbox_api(url, token, ssl_verify, cert, headers)
else:
self.nb = nb_client
try:
@@ -804,10 +806,14 @@
return False
- def _connect_netbox_api(self, url, token, ssl_verify, cert):
+ def _connect_netbox_api(self, url, token, ssl_verify, cert, headers=None):
try:
session = requests.Session()
session.verify = ssl_verify
+ if isinstance(headers, str):
+ headers = json.load(headers)
+ if isinstance(headers, dict):
+ session.headers.update(headers)
if cert:
session.cert = tuple(i for i in cert)
nb = pynetbox.api(url, token=token)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_circuit_termination.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_circuit_termination.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_circuit_termination.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_circuit_termination.py 2025-09-09 00:14:19.000000000 +0000
@@ -49,14 +49,36 @@
required: false
type: bool
version_added: 3.5.0
+ termination_id:
+ description:
+ - The ProviderNetwork, Location, Site, Region, or SiteGroup ID of the circuit termination will be assigned to.
+ - This parameter is used with NetBox versions >= 4.2.0.
+ required: false
+ type: int
+ version_added: 4.2.0
+ termination_type:
+ description:
+ - The type the circuit termination will be assigned to.
+ - This parameter is used with NetBox versions >= 4.2.0.
+ choices:
+ - dcim.site
+ - dcim.location
+ - dcim.region
+ - dcim.sitegroup
+ - circuits.providernetwork
+ required: false
+ type: str
+ version_added: 4.2.0
site:
description:
- - The site the circuit termination will be assigned to
+ - The site the circuit termination will be assigned to.
+ - This parameter is used with NetBox versions before 4.2.0.
required: false
type: raw
provider_network:
description:
- - The provider_network the circuit termination will be assigned to
+ - The provider_network the circuit termination will be assigned to.
+ - This parameter is used with NetBox versions before 4.2.0.
required: false
type: raw
port_speed:
@@ -93,7 +115,19 @@
gather_facts: false
tasks:
- - name: Create circuit termination within NetBox with only required information
+ - name: Create circuit termination within NetBox version 4.2.0 or later with only required information
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://netbox.local
+ netbox_token: thisIsMyToken
+ data:
+ circuit: Test Circuit
+ term_side: A
+ termination_id: 1
+ termination_type: dcim.site
+ port_speed: 10000
+ state: present
+
+ - name: Create circuit termination within NetBox versions earlier than 4.2.0 with only required information
netbox.netbox.netbox_circuit_termination:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
@@ -163,6 +197,18 @@
circuit=dict(required=True, type="raw"),
term_side=dict(required=True, choices=["A", "Z"]),
mark_connected=dict(required=False, type="bool"),
+ termination_id=dict(required=False, type="int"),
+ termination_type=dict(
+ required=False,
+ type="str",
+ choices=[
+ "dcim.site",
+ "dcim.location",
+ "dcim.region",
+ "dcim.sitegroup",
+ "circuits.providernetwork",
+ ],
+ ),
site=dict(required=False, type="raw"),
provider_network=dict(required=False, type="raw"),
port_speed=dict(required=False, type="int"),
@@ -180,8 +226,18 @@
("state", "absent", ["circuit", "term_side"]),
]
+ mutually_exclusive = [
+ ("termination_id", "site"),
+ ("termination_type", "site"),
+ ("termination_id", "provider_network"),
+ ("termination_type", "provider_network"),
+ ]
+
module = NetboxAnsibleModule(
- argument_spec=argument_spec, supports_check_mode=True, required_if=required_if
+ argument_spec=argument_spec,
+ supports_check_mode=True,
+ required_if=required_if,
+ mutually_exclusive=mutually_exclusive,
)
netbox_circuit_termination = NetboxCircuitsModule(module, NB_CIRCUIT_TERMINATIONS)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_custom_field.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_custom_field.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_custom_field.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_custom_field.py 2025-09-09 00:14:19.000000000 +0000
@@ -150,6 +150,11 @@
- The name of the choice set to use (for selection fields)
required: false
type: str
+ related_object_filter:
+ description:
+ - Filter definition for related object selection. To reset the value, set it to an empty dict (null value is ignored by the API)
+ required: false
+ type: dict
required: true
"""
@@ -288,6 +293,7 @@
required=False,
type="str",
),
+ related_object_filter=dict(required=False, type="dict"),
),
)
)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_device_type.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_device_type.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_device_type.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_device_type.py 2025-09-09 00:14:19.000000000 +0000
@@ -150,7 +150,7 @@
manufacturer: Test Manufacturer
state: present
- - name: Create device type within NetBox with only required information
+ - name: Create device type within NetBox with more information
netbox.netbox.netbox_device_type:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_platform.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_platform.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_platform.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_platform.py 2025-09-09 00:14:19.000000000 +0000
@@ -106,7 +106,7 @@
config_template: "my_config_template_slug"
state: present
- - name: Create platform within NetBox with only required information
+ - name: Create platform within NetBox with more information
netbox.netbox.netbox_platform:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_prefix.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_prefix.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_prefix.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_prefix.py 2025-09-09 00:14:19.000000000 +0000
@@ -153,7 +153,7 @@
gather_facts: false
tasks:
- - name: Create prefix within NetBox with only required information
+ - name: Create prefix within NetBox with only required information before deleting it
netbox.netbox.netbox_prefix:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_tag.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_tag.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_tag.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/plugins/modules/netbox_tag.py 2025-09-09 00:14:19.000000000 +0000
@@ -50,6 +50,12 @@
- Tag description
required: false
type: str
+ object_types:
+ description:
+ - Objects types using the tag
+ required: false
+ type: list
+ elements: raw
required: true
"""
@@ -80,6 +86,15 @@
loop:
- mgmt
- tun
+
+ - name: Restrict object types
+ netbox.netbox.netbox_tag:
+ netbox_url: http://netbox.local
+ netbox_token: thisIsMyToken
+ data:
+ name: "MyTag"
+ object_types:
+ - dcim.prefix
"""
RETURN = r"""
@@ -119,6 +134,7 @@
color=dict(required=False, type="str"),
description=dict(required=False, type="str"),
slug=dict(required=False, type="str"),
+ object_types=dict(required=False, type="list", elements="raw"),
),
),
)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/poetry.lock ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/poetry.lock
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/poetry.lock 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/poetry.lock 2025-09-09 00:14:19.000000000 +0000
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand.
[[package]]
name = "aiofiles"
@@ -6,6 +6,7 @@
description = "File support for asyncio."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5"},
{file = "aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c"},
@@ -13,103 +14,115 @@
[[package]]
name = "aiohappyeyeballs"
-version = "2.4.4"
+version = "2.6.1"
description = "Happy Eyeballs for asyncio"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"},
- {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"},
+ {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"},
+ {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"},
]
[[package]]
name = "aiohttp"
-version = "3.11.11"
+version = "3.12.14"
description = "Async http client/server framework (asyncio)"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"},
- {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"},
- {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"},
- {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"},
- {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"},
- {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"},
- {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"},
- {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"},
- {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"},
- {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"},
- {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"},
- {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"},
- {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"},
- {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"},
- {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"},
- {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"},
- {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"},
- {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"},
- {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"},
- {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"},
- {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"},
- {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"},
- {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"},
- {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"},
- {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"},
- {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"},
- {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"},
- {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"},
- {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"},
- {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"},
- {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"},
- {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"},
- {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"},
- {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"},
- {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"},
- {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"},
- {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"},
- {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"},
- {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"},
- {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"},
- {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"},
- {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"},
- {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"},
- {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"},
- {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"},
- {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"},
- {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"},
- {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"},
- {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"},
- {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"},
- {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"},
- {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"},
- {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"},
- {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"},
- {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"},
- {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"},
- {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"},
- {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"},
- {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"},
- {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"},
- {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"},
- {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"},
- {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"},
- {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"},
- {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"},
- {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"},
- {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"},
- {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"},
- {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"},
- {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"},
- {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"},
- {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"},
- {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"},
- {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"},
- {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"},
- {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"},
+ {file = "aiohttp-3.12.14-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:906d5075b5ba0dd1c66fcaaf60eb09926a9fef3ca92d912d2a0bbdbecf8b1248"},
+ {file = "aiohttp-3.12.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c875bf6fc2fd1a572aba0e02ef4e7a63694778c5646cdbda346ee24e630d30fb"},
+ {file = "aiohttp-3.12.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbb284d15c6a45fab030740049d03c0ecd60edad9cd23b211d7e11d3be8d56fd"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38e360381e02e1a05d36b223ecab7bc4a6e7b5ab15760022dc92589ee1d4238c"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aaf90137b5e5d84a53632ad95ebee5c9e3e7468f0aab92ba3f608adcb914fa95"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e532a25e4a0a2685fa295a31acf65e027fbe2bea7a4b02cdfbbba8a064577663"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eab9762c4d1b08ae04a6c77474e6136da722e34fdc0e6d6eab5ee93ac29f35d1"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abe53c3812b2899889a7fca763cdfaeee725f5be68ea89905e4275476ffd7e61"},
+ {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5760909b7080aa2ec1d320baee90d03b21745573780a072b66ce633eb77a8656"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:02fcd3f69051467bbaa7f84d7ec3267478c7df18d68b2e28279116e29d18d4f3"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4dcd1172cd6794884c33e504d3da3c35648b8be9bfa946942d353b939d5f1288"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:224d0da41355b942b43ad08101b1b41ce633a654128ee07e36d75133443adcda"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e387668724f4d734e865c1776d841ed75b300ee61059aca0b05bce67061dcacc"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:dec9cde5b5a24171e0b0a4ca064b1414950904053fb77c707efd876a2da525d8"},
+ {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bbad68a2af4877cc103cd94af9160e45676fc6f0c14abb88e6e092b945c2c8e3"},
+ {file = "aiohttp-3.12.14-cp310-cp310-win32.whl", hash = "sha256:ee580cb7c00bd857b3039ebca03c4448e84700dc1322f860cf7a500a6f62630c"},
+ {file = "aiohttp-3.12.14-cp310-cp310-win_amd64.whl", hash = "sha256:cf4f05b8cea571e2ccc3ca744e35ead24992d90a72ca2cf7ab7a2efbac6716db"},
+ {file = "aiohttp-3.12.14-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f4552ff7b18bcec18b60a90c6982049cdb9dac1dba48cf00b97934a06ce2e597"},
+ {file = "aiohttp-3.12.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8283f42181ff6ccbcf25acaae4e8ab2ff7e92b3ca4a4ced73b2c12d8cd971393"},
+ {file = "aiohttp-3.12.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:040afa180ea514495aaff7ad34ec3d27826eaa5d19812730fe9e529b04bb2179"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b413c12f14c1149f0ffd890f4141a7471ba4b41234fe4fd4a0ff82b1dc299dbb"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1d6f607ce2e1a93315414e3d448b831238f1874b9968e1195b06efaa5c87e245"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:565e70d03e924333004ed101599902bba09ebb14843c8ea39d657f037115201b"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4699979560728b168d5ab63c668a093c9570af2c7a78ea24ca5212c6cdc2b641"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad5fdf6af93ec6c99bf800eba3af9a43d8bfd66dce920ac905c817ef4a712afe"},
+ {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ac76627c0b7ee0e80e871bde0d376a057916cb008a8f3ffc889570a838f5cc7"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:798204af1180885651b77bf03adc903743a86a39c7392c472891649610844635"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4f1205f97de92c37dd71cf2d5bcfb65fdaed3c255d246172cce729a8d849b4da"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:76ae6f1dd041f85065d9df77c6bc9c9703da9b5c018479d20262acc3df97d419"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a194ace7bc43ce765338ca2dfb5661489317db216ea7ea700b0332878b392cab"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:16260e8e03744a6fe3fcb05259eeab8e08342c4c33decf96a9dad9f1187275d0"},
+ {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c779e5ebbf0e2e15334ea404fcce54009dc069210164a244d2eac8352a44b28"},
+ {file = "aiohttp-3.12.14-cp311-cp311-win32.whl", hash = "sha256:a289f50bf1bd5be227376c067927f78079a7bdeccf8daa6a9e65c38bae14324b"},
+ {file = "aiohttp-3.12.14-cp311-cp311-win_amd64.whl", hash = "sha256:0b8a69acaf06b17e9c54151a6c956339cf46db4ff72b3ac28516d0f7068f4ced"},
+ {file = "aiohttp-3.12.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a0ecbb32fc3e69bc25efcda7d28d38e987d007096cbbeed04f14a6662d0eee22"},
+ {file = "aiohttp-3.12.14-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0400f0ca9bb3e0b02f6466421f253797f6384e9845820c8b05e976398ac1d81a"},
+ {file = "aiohttp-3.12.14-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a56809fed4c8a830b5cae18454b7464e1529dbf66f71c4772e3cfa9cbec0a1ff"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f2e373276e4755691a963e5d11756d093e346119f0627c2d6518208483fb6d"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ca39e433630e9a16281125ef57ece6817afd1d54c9f1bf32e901f38f16035869"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c748b3f8b14c77720132b2510a7d9907a03c20ba80f469e58d5dfd90c079a1c"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a568abe1b15ce69d4cc37e23020720423f0728e3cb1f9bcd3f53420ec3bfe7"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9888e60c2c54eaf56704b17feb558c7ed6b7439bca1e07d4818ab878f2083660"},
+ {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3006a1dc579b9156de01e7916d38c63dc1ea0679b14627a37edf6151bc530088"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aa8ec5c15ab80e5501a26719eb48a55f3c567da45c6ea5bb78c52c036b2655c7"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:39b94e50959aa07844c7fe2206b9f75d63cc3ad1c648aaa755aa257f6f2498a9"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:04c11907492f416dad9885d503fbfc5dcb6768d90cad8639a771922d584609d3"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:88167bd9ab69bb46cee91bd9761db6dfd45b6e76a0438c7e884c3f8160ff21eb"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:791504763f25e8f9f251e4688195e8b455f8820274320204f7eafc467e609425"},
+ {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2785b112346e435dd3a1a67f67713a3fe692d288542f1347ad255683f066d8e0"},
+ {file = "aiohttp-3.12.14-cp312-cp312-win32.whl", hash = "sha256:15f5f4792c9c999a31d8decf444e79fcfd98497bf98e94284bf390a7bb8c1729"},
+ {file = "aiohttp-3.12.14-cp312-cp312-win_amd64.whl", hash = "sha256:3b66e1a182879f579b105a80d5c4bd448b91a57e8933564bf41665064796a338"},
+ {file = "aiohttp-3.12.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3143a7893d94dc82bc409f7308bc10d60285a3cd831a68faf1aa0836c5c3c767"},
+ {file = "aiohttp-3.12.14-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3d62ac3d506cef54b355bd34c2a7c230eb693880001dfcda0bf88b38f5d7af7e"},
+ {file = "aiohttp-3.12.14-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:48e43e075c6a438937c4de48ec30fa8ad8e6dfef122a038847456bfe7b947b63"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:077b4488411a9724cecc436cbc8c133e0d61e694995b8de51aaf351c7578949d"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d8c35632575653f297dcbc9546305b2c1133391089ab925a6a3706dfa775ccab"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b8ce87963f0035c6834b28f061df90cf525ff7c9b6283a8ac23acee6502afd4"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a2cf66e32a2563bb0766eb24eae7e9a269ac0dc48db0aae90b575dc9583026"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdea089caf6d5cde975084a884c72d901e36ef9c2fd972c9f51efbbc64e96fbd"},
+ {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7865f27db67d49e81d463da64a59365ebd6b826e0e4847aa111056dcb9dc88"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0ab5b38a6a39781d77713ad930cb5e7feea6f253de656a5f9f281a8f5931b086"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b3b15acee5c17e8848d90a4ebc27853f37077ba6aec4d8cb4dbbea56d156933"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e4c972b0bdaac167c1e53e16a16101b17c6d0ed7eac178e653a07b9f7fad7151"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7442488b0039257a3bdbc55f7209587911f143fca11df9869578db6c26feeeb8"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f68d3067eecb64c5e9bab4a26aa11bd676f4c70eea9ef6536b0a4e490639add3"},
+ {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f88d3704c8b3d598a08ad17d06006cb1ca52a1182291f04979e305c8be6c9758"},
+ {file = "aiohttp-3.12.14-cp313-cp313-win32.whl", hash = "sha256:a3c99ab19c7bf375c4ae3debd91ca5d394b98b6089a03231d4c580ef3c2ae4c5"},
+ {file = "aiohttp-3.12.14-cp313-cp313-win_amd64.whl", hash = "sha256:3f8aad695e12edc9d571f878c62bedc91adf30c760c8632f09663e5f564f4baa"},
+ {file = "aiohttp-3.12.14-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b8cc6b05e94d837bcd71c6531e2344e1ff0fb87abe4ad78a9261d67ef5d83eae"},
+ {file = "aiohttp-3.12.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1dcb015ac6a3b8facd3677597edd5ff39d11d937456702f0bb2b762e390a21b"},
+ {file = "aiohttp-3.12.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3779ed96105cd70ee5e85ca4f457adbce3d9ff33ec3d0ebcdf6c5727f26b21b3"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:717a0680729b4ebd7569c1dcd718c46b09b360745fd8eb12317abc74b14d14d0"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b5dd3a2ef7c7e968dbbac8f5574ebeac4d2b813b247e8cec28174a2ba3627170"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4710f77598c0092239bc12c1fcc278a444e16c7032d91babf5abbf7166463f7b"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f3e9f75ae842a6c22a195d4a127263dbf87cbab729829e0bd7857fb1672400b2"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f9c8d55d6802086edd188e3a7d85a77787e50d56ce3eb4757a3205fa4657922"},
+ {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79b29053ff3ad307880d94562cca80693c62062a098a5776ea8ef5ef4b28d140"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23e1332fff36bebd3183db0c7a547a1da9d3b4091509f6d818e098855f2f27d3"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a564188ce831fd110ea76bcc97085dd6c625b427db3f1dbb14ca4baa1447dcbc"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a7a1b4302f70bb3ec40ca86de82def532c97a80db49cac6a6700af0de41af5ee"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:1b07ccef62950a2519f9bfc1e5b294de5dd84329f444ca0b329605ea787a3de5"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:938bd3ca6259e7e48b38d84f753d548bd863e0c222ed6ee6ace3fd6752768a84"},
+ {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8bc784302b6b9f163b54c4e93d7a6f09563bd01ff2b841b29ed3ac126e5040bf"},
+ {file = "aiohttp-3.12.14-cp39-cp39-win32.whl", hash = "sha256:a3416f95961dd7d5393ecff99e3f41dc990fb72eda86c11f2a60308ac6dcd7a0"},
+ {file = "aiohttp-3.12.14-cp39-cp39-win_amd64.whl", hash = "sha256:196858b8820d7f60578f8b47e5669b3195c21d8ab261e39b1d705346458f445f"},
+ {file = "aiohttp-3.12.14.tar.gz", hash = "sha256:6e06e120e34d93100de448fd941522e11dafa78ef1a893c179901b7d66aa29f2"},
]
[package.dependencies]
-aiohappyeyeballs = ">=2.3.0"
-aiosignal = ">=1.1.2"
+aiohappyeyeballs = ">=2.5.0"
+aiosignal = ">=1.4.0"
attrs = ">=17.3.0"
frozenlist = ">=1.1.1"
multidict = ">=4.5,<7.0"
@@ -117,17 +130,18 @@
yarl = ">=1.17.0,<2.0"
[package.extras]
-speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
+speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "brotlicffi ; platform_python_implementation != \"CPython\""]
[[package]]
name = "aiosignal"
-version = "1.3.2"
+version = "1.4.0"
description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
- {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
+ {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"},
+ {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"},
]
[package.dependencies]
@@ -139,6 +153,7 @@
description = "A light, configurable Sphinx theme"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
files = [
{file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"},
{file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"},
@@ -150,6 +165,7 @@
description = "Reusable constraint types to use with typing.Annotated"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
@@ -161,6 +177,7 @@
description = "Radically simple IT automation"
optional = false
python-versions = ">=3.11"
+groups = ["main"]
files = [
{file = "ansible_core-2.18.1-py3-none-any.whl", hash = "sha256:4a312e416e09c7271188d6b8e2b1062fc6834fefd6a1814d0e02fb8aadb3e1ba"},
{file = "ansible_core-2.18.1.tar.gz", hash = "sha256:14cac1f92bbdae881cb0616eddeb17925e8cb507e486087975e724533d9de74f"},
@@ -179,6 +196,7 @@
description = "Tools for building the Ansible Distribution"
optional = false
python-versions = ">=3.6.0,<4.0.0"
+groups = ["main"]
files = [
{file = "ansible-pygments-0.1.1.tar.gz", hash = "sha256:0d0a23cc562f94f4b464f931059ad1688635aac9642962bc68ae3acdb6efbcd0"},
{file = "ansible_pygments-0.1.1-py3-none-any.whl", hash = "sha256:85aa7412a46c83efcfe460c8016da289600c171d2edfa0f474e0dc30a398b002"},
@@ -193,6 +211,7 @@
description = "The antsibull project has been renamed to antsibull-build"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "antsibull-0.67.0-py3-none-any.whl", hash = "sha256:ede7234d55398a3e132fd1ab5a4a93f2c7214a2a496108a01428aa8f7c8793d0"},
{file = "antsibull-0.67.0.tar.gz", hash = "sha256:f3a1c46758bd1369510cc3a7046ecf67f5c94371a92f524c529b8b0ea2aba229"},
@@ -211,6 +230,7 @@
description = "Tools for building the Ansible Distribution"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "antsibull_build-0.69.0-py3-none-any.whl", hash = "sha256:4ed583cad27d913d74528b1995fc3c84fd4fc241c48633ab22bf7d8f9f30c768"},
{file = "antsibull_build-0.69.0.tar.gz", hash = "sha256:311d137b777d1318f7685838907c115d22366d288384f5e2e753343326eb60cb"},
@@ -249,6 +269,7 @@
description = "Changelog tool for Ansible-core and Ansible collections"
optional = false
python-versions = ">=3.9.0"
+groups = ["main"]
files = [
{file = "antsibull_changelog-0.31.1-py3-none-any.whl", hash = "sha256:4b51878ee037199e42e5212b53122e4a4ccc997a783bb73496f41c7238c452e7"},
{file = "antsibull_changelog-0.31.1.tar.gz", hash = "sha256:e76fcc49969c29ae7b8615e7ea2b4ac275a19ff3afbf3d665f1457ab12493f84"},
@@ -268,7 +289,7 @@
dev = ["black (>=24)", "coverage[toml]", "flake8 (>=3.8.0)", "isort", "mypy", "nox", "pylint", "pytest", "pytest-cov", "pytest-error-for-skips", "reuse", "types-docutils", "types-pyyaml", "types-toml"]
formatters = ["black (>=24)", "isort"]
test = ["pytest", "pytest-cov", "pytest-error-for-skips"]
-toml = ["tomli"]
+toml = ["tomli ; python_version < \"3.11\""]
typing = ["mypy", "types-docutils", "types-pyyaml", "types-toml"]
[[package]]
@@ -277,6 +298,7 @@
description = "Tools for building the Ansible Distribution"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "antsibull_core-3.4.0-py3-none-any.whl", hash = "sha256:7d3368d1821d002612feb0fde7401c4df547149e661ad8157f2bb36764c6da28"},
{file = "antsibull_core-3.4.0.tar.gz", hash = "sha256:7eebcccaac5446d3cc04de8be2908becc0a02bb2395b83791ff39ab211f54492"},
@@ -307,6 +329,7 @@
description = "Tools for building Ansible documentation"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "antsibull_docs-2.16.2-py3-none-any.whl", hash = "sha256:7a529d6cba2599843c4f483ef1eef2db518b9e4e4f612affc621f434f48caf5d"},
{file = "antsibull_docs-2.16.2.tar.gz", hash = "sha256:144095f705f1a138f832fe94a07808405efcd8b974ec75cb7b129039a358d318"},
@@ -344,6 +367,7 @@
description = "Python library for processing Ansible documentation markup"
optional = false
python-versions = ">=3.6.1"
+groups = ["main"]
files = [
{file = "antsibull_docs_parser-1.1.0-py3-none-any.whl", hash = "sha256:b29490908cd51660cc2b98d6af45b64db938e529f50e84aec416971820013450"},
{file = "antsibull_docs_parser-1.1.0.tar.gz", hash = "sha256:9b94400918343677119c38344bf3bd867a937259f8d09fddc68deae2741ba056"},
@@ -363,6 +387,7 @@
description = "Antsibull docutils helpers"
optional = false
python-versions = ">=3.9.0"
+groups = ["main"]
files = [
{file = "antsibull_docutils-1.1.0-py3-none-any.whl", hash = "sha256:922dac4c33089c12cf35a73b159ebe86fd29aeb4f697a97f78a7a444734afbd9"},
{file = "antsibull_docutils-1.1.0.tar.gz", hash = "sha256:6fbeb4ebbd957099f98e85f2687d39fa98c9e2ff23745cf368328d0512b3861d"},
@@ -385,6 +410,7 @@
description = "Tools for building the Ansible Distribution"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "antsibull_fileutils-1.1.0-py3-none-any.whl", hash = "sha256:558c517b41973b3716f2edc726bf04bc2bef5a0662ee609378f04a66d22d2e06"},
{file = "antsibull_fileutils-1.1.0.tar.gz", hash = "sha256:69e35bc5d8025c52eac3660290e32b691e08b1d3603da1a5b20d16d75ec39f98"},
@@ -408,6 +434,7 @@
description = "An abstract syntax tree for Python with inference support."
optional = false
python-versions = ">=3.9.0"
+groups = ["main"]
files = [
{file = "astroid-3.3.8-py3-none-any.whl", hash = "sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c"},
{file = "astroid-3.3.8.tar.gz", hash = "sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b"},
@@ -419,6 +446,7 @@
description = "Pool of asyncio coroutines with familiar interface"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
files = [
{file = "asyncio_pool-0.6.0-py3-none-any.whl", hash = "sha256:bf4417be93c2776262d93decabbbd633579f7610947fb73d80857823689e1455"},
{file = "asyncio_pool-0.6.0.tar.gz", hash = "sha256:d7ba5e299ba58d4fb0cebbc722989d1f880df4c4b19e37055075b3dabc062c5b"},
@@ -430,18 +458,19 @@
description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
{file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
]
[package.extras]
-benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
-cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
-dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
+cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
+dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
-tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
-tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
+tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
+tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""]
[[package]]
name = "babel"
@@ -449,6 +478,7 @@
description = "Internationalization utilities"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"},
{file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"},
@@ -463,6 +493,7 @@
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"},
{file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"},
@@ -507,6 +538,7 @@
description = "A simple, correct Python build frontend"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "build-1.2.2.post1-py3-none-any.whl", hash = "sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5"},
{file = "build-1.2.2.post1.tar.gz", hash = "sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7"},
@@ -519,7 +551,7 @@
[package.extras]
docs = ["furo (>=2023.08.17)", "sphinx (>=7.0,<8.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)", "sphinx-issues (>=3.0.0)"]
-test = ["build[uv,virtualenv]", "filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "setuptools (>=56.0.0)", "setuptools (>=67.8.0)", "wheel (>=0.36.0)"]
+test = ["build[uv,virtualenv]", "filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0) ; python_version < \"3.10\"", "setuptools (>=56.0.0) ; python_version == \"3.10\"", "setuptools (>=56.0.0) ; python_version == \"3.11\"", "setuptools (>=67.8.0) ; python_version >= \"3.12\"", "wheel (>=0.36.0)"]
typing = ["build[uv]", "importlib-metadata (>=5.1)", "mypy (>=1.9.0,<1.10.0)", "tomli", "typing-extensions (>=3.7.4.3)"]
uv = ["uv (>=0.1.18)"]
virtualenv = ["virtualenv (>=20.0.35)"]
@@ -530,6 +562,7 @@
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
{file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
@@ -541,6 +574,8 @@
description = "Foreign Function Interface for Python calling C code."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_python_implementation != \"PyPy\""
files = [
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
@@ -620,6 +655,7 @@
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
@@ -721,6 +757,7 @@
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
{file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
@@ -735,6 +772,7 @@
description = "Hosted coverage reports for GitHub, Bitbucket and Gitlab"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "codecov-2.1.13-py2.py3-none-any.whl", hash = "sha256:c2ca5e51bba9ebb43644c43d0690148a55086f7f5e6fd36170858fa4206744d5"},
{file = "codecov-2.1.13.tar.gz", hash = "sha256:2362b685633caeaf45b9951a9b76ce359cd3581dd515b430c6c3f5dfb4d92a8c"},
@@ -750,6 +788,8 @@
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["main"]
+markers = "platform_system == \"Windows\" or os_name == \"nt\" or sys_platform == \"win32\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -761,6 +801,7 @@
description = "Code coverage measurement for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"},
{file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"},
@@ -837,7 +878,7 @@
]
[package.extras]
-toml = ["tomli"]
+toml = ["tomli ; python_full_version <= \"3.11.0a6\""]
[[package]]
name = "cryptography"
@@ -845,6 +886,7 @@
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
optional = false
python-versions = "!=3.9.0,!=3.9.1,>=3.7"
+groups = ["main"]
files = [
{file = "cryptography-44.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf688f615c29bfe9dfc44312ca470989279f0e94bb9f631f85e3459af8efc009"},
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd7c7e2d71d908dc0f8d2027e1604102140d84b155e658c20e8ad1304317691f"},
@@ -883,10 +925,10 @@
cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""}
[package.extras]
-docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"]
+docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0) ; python_version >= \"3.8\""]
docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"]
-nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"]
-pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"]
+nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2) ; python_version >= \"3.8\""]
+pep8test = ["check-sdist ; python_version >= \"3.8\"", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"]
sdist = ["build (>=1.0.0)"]
ssh = ["bcrypt (>=3.1.5)"]
test = ["certifi (>=2024)", "cryptography-vectors (==44.0.1)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"]
@@ -898,6 +940,7 @@
description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "deepdiff-8.1.1-py3-none-any.whl", hash = "sha256:b0231fa3afb0f7184e82535f2b4a36636442ed21e94a0cf3aaa7982157e7ebca"},
{file = "deepdiff-8.1.1.tar.gz", hash = "sha256:dd7bc7d5c8b51b5b90f01b0e2fe23c801fd8b4c6a7ee7e31c5a3c3663fcc7ceb"},
@@ -916,6 +959,7 @@
description = "serialize all of Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"},
{file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"},
@@ -931,6 +975,7 @@
description = "Docutils -- Python Documentation Utilities"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"},
{file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"},
@@ -942,6 +987,7 @@
description = "execnet: rapid multi-Python deployment"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"},
{file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"},
@@ -956,6 +1002,7 @@
description = "A list-like structure which implements collections.abc.MutableSequence"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"},
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"},
@@ -1057,6 +1104,7 @@
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
@@ -1071,6 +1119,7 @@
description = "Getting image size from png/jpeg/jpeg2000/gif file"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"},
{file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"},
@@ -1082,6 +1131,7 @@
description = "Read metadata from Python packages"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
{file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
@@ -1091,12 +1141,12 @@
zipp = ">=3.20"
[package.extras]
-check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
enabler = ["pytest-enabler (>=2.2)"]
perf = ["ipython"]
-test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
+test = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
type = ["pytest-mypy"]
[[package]]
@@ -1105,13 +1155,14 @@
description = "Read resources from Python packages"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"},
{file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"},
]
[package.extras]
-check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
enabler = ["pytest-enabler (>=2.2)"]
@@ -1124,6 +1175,7 @@
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -1135,6 +1187,7 @@
description = "A Python utility / library to sort Python imports."
optional = false
python-versions = ">=3.8.0"
+groups = ["main"]
files = [
{file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"},
{file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"},
@@ -1145,13 +1198,14 @@
[[package]]
name = "jinja2"
-version = "3.1.5"
+version = "3.1.6"
description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
- {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
+ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"},
+ {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"},
]
[package.dependencies]
@@ -1166,6 +1220,7 @@
description = "JSON Matching Expressions"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"},
{file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
@@ -1177,6 +1232,7 @@
description = "Python port of markdown-it. Markdown parsing, done right!"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
{file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
@@ -1201,6 +1257,7 @@
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
@@ -1271,6 +1328,7 @@
description = "McCabe checker, plugin for flake8"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
{file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
@@ -1282,6 +1340,7 @@
description = "Markdown URL utilities"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
@@ -1293,6 +1352,7 @@
description = "Rolling backport of unittest.mock for all Pythons"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "mock-4.0.3-py3-none-any.whl", hash = "sha256:122fcb64ee37cfad5b3f48d7a7d51875d7031aaf3d8be7c42e2bee25044eee62"},
{file = "mock-4.0.3.tar.gz", hash = "sha256:7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc"},
@@ -1309,6 +1369,7 @@
description = "multidict implementation"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"},
{file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"},
@@ -1410,6 +1471,7 @@
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.5"
+groups = ["main"]
files = [
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
@@ -1421,6 +1483,7 @@
description = "Orderly set"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "orderly_set-5.2.3-py3-none-any.whl", hash = "sha256:d357cedcf67f4ebff0d4cbd5b0997e98eeb65dd24fdf5c990a501ae9e82c7d34"},
{file = "orderly_set-5.2.3.tar.gz", hash = "sha256:571ed97c5a5fca7ddeb6b2d26c19aca896b0ed91f334d9c109edd2f265fb3017"},
@@ -1432,6 +1495,7 @@
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
@@ -1443,6 +1507,7 @@
description = "Utility library for gitignore style pattern matching of file paths."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
@@ -1454,6 +1519,7 @@
description = "A simple, Pythonic file format. Same interface as the"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "perky-0.9.3-py3-none-any.whl", hash = "sha256:ebe0c58ee35951b1b878d5acb98bda4aa3e2067cd397baf1a3721f7f7da5acd4"},
{file = "perky-0.9.3.tar.gz", hash = "sha256:ae847c4ff1f5e2bde74097eb7a29a1411bc22912142ba4c8cf08d77789823f08"},
@@ -1465,6 +1531,7 @@
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
@@ -1481,6 +1548,7 @@
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
@@ -1496,6 +1564,7 @@
description = "Accelerated property cache"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"},
{file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"},
@@ -1587,6 +1656,7 @@
description = "library with cross-python path, ini-parsing, io, code, log facilities"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+groups = ["main"]
files = [
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
@@ -1598,6 +1668,8 @@
description = "C parser in Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_python_implementation != \"PyPy\""
files = [
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
@@ -1609,6 +1681,7 @@
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"},
{file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"},
@@ -1621,7 +1694,7 @@
[package.extras]
email = ["email-validator (>=2.0.0)"]
-timezone = ["tzdata"]
+timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
[[package]]
name = "pydantic-core"
@@ -1629,6 +1702,7 @@
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
@@ -1741,6 +1815,7 @@
description = "Pygments is a syntax highlighting package written in Python."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"},
{file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"},
@@ -1755,6 +1830,7 @@
description = "python code static checker"
optional = false
python-versions = ">=3.9.0"
+groups = ["main"]
files = [
{file = "pylint-3.3.3-py3-none-any.whl", hash = "sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183"},
{file = "pylint-3.3.3.tar.gz", hash = "sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a"},
@@ -1779,6 +1855,7 @@
description = "NetBox API client library"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "pynetbox-7.4.1-py3-none-any.whl", hash = "sha256:f42ce4df6ce97765df91bb4cc0c0e315683d15135265270d78f595114dd20e2b"},
{file = "pynetbox-7.4.1.tar.gz", hash = "sha256:3f82b5964ca77a608aef6cc2fc48a3961f7667fbbdbb60646655373e3dae00c3"},
@@ -1794,6 +1871,7 @@
description = "Wrappers to call pyproject.toml-based build backend hooks."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913"},
{file = "pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8"},
@@ -1805,6 +1883,7 @@
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
{file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
@@ -1825,6 +1904,7 @@
description = "run tests in isolated forked subprocesses"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "pytest-forked-1.6.0.tar.gz", hash = "sha256:4dafd46a9a600f65d822b8f605133ecf5b3e1941ebb3588e943b4e3eb71a5a3f"},
{file = "pytest_forked-1.6.0-py3-none-any.whl", hash = "sha256:810958f66a91afb1a1e2ae83089d8dc1cd2437ac96b12963042fbb9fb4d16af0"},
@@ -1840,6 +1920,7 @@
description = "Thin-wrapper around the mock package for easier use with pytest"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"},
{file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"},
@@ -1857,6 +1938,7 @@
description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"},
{file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"},
@@ -1877,6 +1959,7 @@
description = "World timezone definitions, modern and historical"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"},
{file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"},
@@ -1888,6 +1971,7 @@
description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
@@ -1946,18 +2030,19 @@
[[package]]
name = "requests"
-version = "2.32.3"
+version = "2.32.4"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
- {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
+ {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"},
+ {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"},
]
[package.dependencies]
certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<4"
+charset_normalizer = ">=2,<4"
idna = ">=2.5,<4"
urllib3 = ">=1.21.1,<3"
@@ -1971,6 +2056,7 @@
description = "Resolve abstract dependencies into concrete ones"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf"},
{file = "resolvelib-1.0.1.tar.gz", hash = "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309"},
@@ -1988,6 +2074,7 @@
description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
optional = false
python-versions = ">=3.8.0"
+groups = ["main"]
files = [
{file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"},
{file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"},
@@ -2006,6 +2093,7 @@
description = "Checks syntax of reStructuredText and code blocks nested within it"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "rstcheck-6.2.4-py3-none-any.whl", hash = "sha256:23de2575ba0af1adcddea87a20d69187f0fb9dd8270f59eb98d63461c95375a7"},
{file = "rstcheck-6.2.4.tar.gz", hash = "sha256:384942563dfbfcc85903a587ecf050447217c46b51e266ed3fe51371bc599015"},
@@ -2020,7 +2108,7 @@
docs = ["myst-parser (>=3)", "sphinx (>=5.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-click (>=4.0.3)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-spelling (>=7.3)"]
sphinx = ["sphinx (>=5.0)"]
testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"]
-toml = ["tomli (>=2.0)"]
+toml = ["tomli (>=2.0) ; python_version <= \"3.10\""]
type-check = ["mypy (>=1.0)"]
[[package]]
@@ -2029,6 +2117,7 @@
description = "Checks syntax of reStructuredText and code blocks nested within it"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "rstcheck-core-1.2.1.tar.gz", hash = "sha256:9b330020d912e2864f23f332c1a0569463ca3b06b8fee7b7bdd201b055f7f831"},
{file = "rstcheck_core-1.2.1-py3-none-any.whl", hash = "sha256:1c100de418b6c9e14d9cf6558644d0ab103fdc447f891313882d02df3a3c52ba"},
@@ -2043,7 +2132,7 @@
docs = ["m2r2 (>=0.3.2)", "sphinx (>=5.0,!=7.2.5)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.15)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-apidoc (>=0.3)", "sphinxcontrib-spelling (>=7.3)"]
sphinx = ["sphinx (>=5.0)"]
testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-mock (>=3.7)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"]
-toml = ["tomli (>=2.0)"]
+toml = ["tomli (>=2.0) ; python_version <= \"3.10\""]
type-check = ["mypy (>=1.0)", "types-PyYAML (>=6.0.0)", "types-docutils (>=0.18)"]
yaml = ["pyyaml (>=6.0.0)"]
@@ -2053,13 +2142,14 @@
description = "A library implementing the 'SemVer' scheme."
optional = false
python-versions = ">=2.7"
+groups = ["main"]
files = [
{file = "semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177"},
{file = "semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c"},
]
[package.extras]
-dev = ["Django (>=1.11)", "check-manifest", "colorama (<=0.4.1)", "coverage", "flake8", "nose2", "readme-renderer (<25.0)", "tox", "wheel", "zest.releaser[recommended]"]
+dev = ["Django (>=1.11)", "check-manifest", "colorama (<=0.4.1) ; python_version == \"3.4\"", "coverage", "flake8", "nose2", "readme-renderer (<25.0) ; python_version == \"3.4\"", "tox", "wheel", "zest.releaser[recommended]"]
doc = ["Sphinx", "sphinx-rtd-theme"]
[[package]]
@@ -2068,6 +2158,7 @@
description = "Tool to Detect Surrounding Shell"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"},
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
@@ -2079,6 +2170,7 @@
description = "Python 2 and 3 compatibility utilities"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+groups = ["main"]
files = [
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
@@ -2090,6 +2182,7 @@
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
{file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
@@ -2101,6 +2194,7 @@
description = "Python documentation generator"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
files = [
{file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"},
{file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"},
@@ -2135,6 +2229,7 @@
description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"},
{file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"},
@@ -2151,6 +2246,7 @@
description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"},
{file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"},
@@ -2167,6 +2263,7 @@
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"},
{file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"},
@@ -2183,6 +2280,7 @@
description = "A sphinx extension which renders display math in HTML via JavaScript"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
files = [
{file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
{file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
@@ -2197,6 +2295,7 @@
description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"},
{file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"},
@@ -2213,6 +2312,7 @@
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"},
{file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"},
@@ -2229,6 +2329,7 @@
description = "Style preserving TOML library"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"},
{file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"},
@@ -2240,6 +2341,7 @@
description = "a Pythonic logger"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "Twiggy-0.5.1-py3-none-any.whl", hash = "sha256:014671fdff7538b7f2396ff01724937ef57e1ac0e08f688747afbbcdeec9f081"},
{file = "Twiggy-0.5.1.tar.gz", hash = "sha256:7938840275972f6ce89994a5bdfb0b84f0386301a043a960af6364952e78ffe4"},
@@ -2254,6 +2356,7 @@
description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"},
{file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"},
@@ -2271,6 +2374,7 @@
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
@@ -2278,17 +2382,18 @@
[[package]]
name = "urllib3"
-version = "2.3.0"
+version = "2.5.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
- {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
+ {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"},
+ {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"},
]
[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""]
h2 = ["h2 (>=4,<5)"]
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
zstd = ["zstandard (>=0.18.0)"]
@@ -2299,6 +2404,7 @@
description = "Yet another URL library"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"},
{file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"},
@@ -2395,20 +2501,21 @@
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"},
{file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"},
]
[package.extras]
-check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
enabler = ["pytest-enabler (>=2.2)"]
-test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
+test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
type = ["pytest-mypy"]
[metadata]
-lock-version = "2.0"
+lock-version = "2.1"
python-versions = "^3.13"
content-hash = "fb917643d30d83ca310e4698cbef9002738d2133ad33083418d0ad7f85e2161a"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.1/compare_inventory_json.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.1/compare_inventory_json.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.1/compare_inventory_json.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.1/compare_inventory_json.py 2025-09-09 00:14:19.000000000 +0000
@@ -141,7 +141,7 @@
if result:
# Dictionary is not empty - print differences
- print(json.dumps(result, sort_keys=True, indent=4))
+ print(result.to_json(indent=4))
sys.exit(1)
else:
# Success, no differences
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/compare_inventory_json.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/compare_inventory_json.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/compare_inventory_json.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.2/compare_inventory_json.py 2025-09-09 00:14:19.000000000 +0000
@@ -141,7 +141,7 @@
if result:
# Dictionary is not empty - print differences
- print(json.dumps(result, sort_keys=True, indent=4))
+ print(result.to_json(indent=4))
sys.exit(1)
else:
# Success, no differences
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/.gitignore 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1 @@
+runme_config
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/aliases 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1 @@
+# https://docs.ansible.com/ansible/devel/dev_guide/testing/sanity/integration-aliases.html
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/compare_inventory_json.py 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,152 @@
+#!/usr/bin/env python
+
+# Inspired by community.aws collection script_inventory_ec2 test
+# https://github.com/ansible-collections/community.aws/blob/master/tests/integration/targets/script_inventory_ec2/inventory_diff.py
+
+from __future__ import absolute_import, division, print_function
+
+__metaclass__ = type
+
+import argparse
+import json
+import sys
+from operator import itemgetter
+
+from deepdiff import DeepDiff
+
+# NetBox includes "created" and "last_updated" times on objects. These end up in the interfaces objects that are included verbatim from the NetBox API.
+# "url" may be different if local tests use a different host/port
+# Remove these from files saved in git as test data
+KEYS_REMOVE = frozenset(["created", "last_updated", "url"])
+
+# Ignore these when performing diffs as they will be different for each test run
+# (Was previously keys specific to NetBox 2.6)
+KEYS_IGNORE = frozenset()
+
+# Rack Groups became hierarchical in NetBox 2.8. Don't bother comparing against test data in NetBox 2.7
+KEYS_IGNORE_27 = frozenset(
+ [
+ "rack_groups", # host var
+ "rack_group_parent_rack_group", # group, group_names_raw = False
+ "parent_rack_group", # group, group_names_raw = True
+ ]
+)
+
+
+# Assume the object will not be recursive, as it originally came from JSON
+def remove_keys(obj, keys):
+ if isinstance(obj, dict):
+ keys_to_remove = keys.intersection(obj.keys())
+ for key in keys_to_remove:
+ del obj[key]
+
+ for key, value in obj.items():
+ remove_keys(value, keys)
+
+ elif isinstance(obj, list):
+ # Iterate over temporary copy, as we may remove items
+ for item in obj[:]:
+ if isinstance(item, str) and item in keys:
+ # List contains a string that we want to remove
+ # eg. a group name in list of groups
+ obj.remove(item)
+ remove_keys(item, keys)
+
+
+def sort_hostvar_arrays(obj):
+ meta = obj.get("_meta")
+ if not meta:
+ return
+
+ hostvars = meta.get("hostvars")
+ if not hostvars:
+ return
+
+ for _, host in hostvars.items(): # pylint: disable=disallowed-name
+ if interfaces := host.get("interfaces"):
+ host["interfaces"] = sorted(interfaces, key=itemgetter("id"))
+
+ if services := host.get("services"):
+ host["services"] = sorted(services, key=itemgetter("id"))
+
+
+def read_json(filename):
+ with open(filename, "r", encoding="utf-8") as file:
+ return json.loads(file.read())
+
+
+def write_json(filename, data):
+ with open(filename, "w", encoding="utf-8") as file:
+ json.dump(data, file, indent=4)
+
+
+def main():
+ parser = argparse.ArgumentParser(description="Diff Ansible inventory JSON output")
+ parser.add_argument(
+ "filename_a",
+ metavar="ORIGINAL.json",
+ type=str,
+ help="Original json to test against",
+ )
+ parser.add_argument(
+ "filename_b",
+ metavar="NEW.json",
+ type=str,
+ help="Newly generated json to compare against original",
+ )
+ parser.add_argument(
+ "--write",
+ action="store_true",
+ help=(
+ "When comparing files, various keys are removed. "
+ "This option will not compare the files, and instead writes ORIGINAL.json to NEW.json after removing these keys. "
+ "This is used to clean the test json files before saving to the git repo. "
+ "For example, this removes dates. "
+ ),
+ )
+ parser.add_argument(
+ "--netbox-version",
+ metavar="VERSION",
+ type=str,
+ help=(
+ "Apply comparison specific to NetBox version. "
+ "For example, rack_groups arrays will only contain a single item in v2.7, so are ignored in the comparison."
+ ),
+ )
+
+ args = parser.parse_args()
+
+ data_a = read_json(args.filename_a)
+
+ if args.write:
+ # When writing test data, only remove "remove_keys" that will change on every git commit.
+ # This makes diffs more easily readable to ensure changes to test data look correct.
+ remove_keys(data_a, KEYS_REMOVE)
+ sort_hostvar_arrays(data_a)
+ write_json(args.filename_b, data_a)
+
+ else:
+ data_b = read_json(args.filename_b)
+
+ # Ignore keys that we don't want to diff, in addition to the ones removed that change on every commit
+ keys = KEYS_REMOVE.union(KEYS_IGNORE)
+ remove_keys(data_a, keys)
+ remove_keys(data_b, keys)
+
+ sort_hostvar_arrays(data_a)
+ sort_hostvar_arrays(data_b)
+
+ # Perform the diff
+ result = DeepDiff(data_a, data_b, ignore_order=True)
+
+ if result:
+ # Dictionary is not empty - print differences
+ print(result.to_json(indent=4))
+ sys.exit(1)
+ else:
+ # Success, no differences
+ sys.exit(0)
+
+
+if __name__ == "__main__":
+ main()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1347 @@
+{
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [],
+ "manufacturer": "cisco",
+ "rack": "Test Rack Site 2",
+ "rack_role": "test-rack-role",
+ "regions": [],
+ "role": "core-switch",
+ "serial": "",
+ "services": [],
+ "site": "test-site2",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/11/",
+ "enabled": true,
+ "id": 11,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/12/",
+ "enabled": true,
+ "id": 12,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "config_context": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "site_test_site2",
+ "region_other_region",
+ "region_parent_region",
+ "site_group_other_site_group",
+ "site_group_parent_site_group",
+ "rack_Test_Rack_Site_2",
+ "rack_role_test_rack_role",
+ "role_core_switch",
+ "device_type_cisco_test",
+ "manufacturer_cisco",
+ "status_active",
+ "device_type_nexus_parent",
+ "service_telnet",
+ "rack_Test_Rack",
+ "service_ssh",
+ "service_http",
+ "cluster_Test_Cluster_2",
+ "cluster_type_test_cluster_type",
+ "is_virtual",
+ "cluster_Test_Cluster",
+ "cluster_group_test_cluster_group"
+ ]
+ },
+ "cluster_Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "cluster_group_test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_type_test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "device_type_cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_type_nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "location_parent_rack_group": {
+ "children": [
+ "location_test_rack_group"
+ ]
+ },
+ "location_test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "manufacturer_cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "rack_Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "rack_Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "rack_role_test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "region_parent_region": {
+ "children": [
+ "region_test_region"
+ ]
+ },
+ "region_test_region": {
+ "children": [
+ "site_test_site"
+ ]
+ },
+ "role_core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "service_http": {
+ "hosts": [
+ "test100"
+ ]
+ },
+ "service_ssh": {
+ "hosts": [
+ "test100",
+ "Test VM With Spaces"
+ ]
+ },
+ "service_telnet": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "site_group_parent_site_group": {
+ "children": [
+ "site_group_test_site_group"
+ ]
+ },
+ "site_test_site": {
+ "children": [
+ "location_parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "site_test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "status_active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-bearer-token.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,32 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token:
+ type: Token
+ value: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+config_context: true
+plurals: false
+interfaces: true
+services: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - services
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1170 @@
+{
+ "_meta": {
+ "hostvars": {
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "config_context": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "site_test_site2",
+ "region_other_region",
+ "region_parent_region",
+ "site_group_other_site_group",
+ "site_group_parent_site_group",
+ "role_core_switch",
+ "device_type_nexus_parent",
+ "manufacturer_cisco",
+ "service_telnet",
+ "status_active",
+ "rack_Test_Rack",
+ "device_type_cisco_test",
+ "service_ssh",
+ "service_http",
+ "cluster_Test_Cluster",
+ "cluster_group_test_cluster_group",
+ "cluster_type_test_cluster_type",
+ "is_virtual"
+ ]
+ },
+ "cluster_Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_group_test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_type_test_cluster_type": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "device_type_cisco_test": {
+ "hosts": [
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_type_nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "location_parent_rack_group": {
+ "children": [
+ "location_test_rack_group"
+ ]
+ },
+ "location_test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "manufacturer_cisco": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "rack_Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "region_parent_region": {
+ "children": [
+ "region_test_region"
+ ]
+ },
+ "region_test_region": {
+ "children": [
+ "site_test_site"
+ ]
+ },
+ "role_core_switch": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "service_http": {
+ "hosts": [
+ "test100"
+ ]
+ },
+ "service_ssh": {
+ "hosts": [
+ "test100"
+ ]
+ },
+ "service_telnet": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "site_group_parent_site_group": {
+ "children": [
+ "site_group_test_site_group"
+ ]
+ },
+ "site_test_site": {
+ "children": [
+ "location_parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "status_active": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2-filter.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,33 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+config_context: true
+plurals: false
+interfaces: true
+services: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - services
+ - status
+
+query_filters:
+ - site: "{{ 'TEST-SITE' | lower }}"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,390 @@
+{
+ "Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "locations": [],
+ "manufacturer": "cisco",
+ "rack": "Test Rack Site 2",
+ "rack_id": "1",
+ "rack_role": "test-rack-role",
+ "regions": [],
+ "role": "core-switch",
+ "serial": "",
+ "site": "test-site2",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "rack_id": "2",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "VC1": {
+ "ansible_host": "nexus.example.com",
+ "custom_fields": {},
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "local_context_data": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "disk": 170,
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "active": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "test_site2",
+ "other_region",
+ "parent_region",
+ "other_site_group",
+ "parent_site_group",
+ "Test_Rack_Site_2",
+ "test_rack_role",
+ "core_switch",
+ "cisco_test",
+ "cisco",
+ "active",
+ "nexus_parent",
+ "jinja_test_group",
+ "Test_Rack",
+ "Test_Cluster_2",
+ "test_cluster_type",
+ "is_virtual",
+ "Test_Cluster",
+ "test_cluster_group"
+ ]
+ },
+ "cisco": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "core_switch": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "jinja_test_group": {
+ "hosts": [
+ "TestDeviceR1",
+ "Test VM With Spaces"
+ ]
+ },
+ "nexus_parent": {
+ "hosts": [
+ "VC1"
+ ]
+ },
+ "parent_rack_group": {
+ "children": [
+ "test_rack_group"
+ ]
+ },
+ "parent_region": {
+ "children": [
+ "test_region"
+ ]
+ },
+ "parent_site_group": {
+ "children": [
+ "test_site_group"
+ ]
+ },
+ "test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "test_rack_group": {
+ "hosts": [
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "test_region": {
+ "children": [
+ "test_site"
+ ]
+ },
+ "test_site": {
+ "children": [
+ "parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-jinja2.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,62 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+# Cache is not for performance of tests, but to test the caching option works
+# Also set on test-inventory-plurals.yml so that we actually hit the cache on one of these runs
+cache: true
+cache_timeout: 3600
+cache_plugin: jsonfile
+cache_connection: /tmp/inventory_netbox
+
+config_context: false
+plurals: false
+interfaces: false
+services: false
+group_names_raw: true
+virtual_chassis_name: true
+dns_name: true
+ansible_host_dns_name: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
+
+query_filters: ""
+
+device_query_filters:
+ - role: "{{ 'CORE-SWITCH' | lower }}"
+
+vm_query_filters:
+ - cluster_type: "{{ 'TEST-CLUSTER-TYPE' | lower }}"
+
+# See Constructed for details
+# https://docs.ansible.com/ansible/latest/plugins/inventory/constructed.html
+
+compose:
+ rack_id: rack.id
+ ntp_servers: config_context.ntp_servers
+
+keyed_groups:
+ - prefix: rack
+ key: rack.name
+
+groups:
+ jinja_test_group: inventory_hostname.startswith('Test')
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,441 @@
+{
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "manufacturers": [
+ "cisco"
+ ],
+ "rack_role": "test-rack-role",
+ "racks": [
+ "Test Rack Site 2"
+ ],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site2"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "nexus-parent"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "racks": [
+ "Test Rack"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB12345678",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "disk": 170,
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped"
+ ]
+ },
+ "ungrouped": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-legacy.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,10 @@
+---
+# To generate the json result, I checked out nb_inventory.yml from the v0.2.0 release 2d6894b,
+# and then ran it against this inventory with the latest test data.
+
+# Checks that substantial work on the inventory does not diverge from what existing users are using by default.
+
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1377 @@
+{
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site2"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "nexus-parent"
+ ],
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/11/",
+ "enabled": true,
+ "id": 11,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/12/",
+ "enabled": true,
+ "id": 12,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB12345678",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "config_context": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "sites_test_site2",
+ "region_other_region",
+ "region_parent_region",
+ "site_group_other_site_group",
+ "site_group_parent_site_group",
+ "device_roles_core_switch",
+ "device_types_cisco_test",
+ "manufacturers_cisco",
+ "status_active",
+ "device_types_nexus_parent",
+ "cluster_Test_Cluster_2",
+ "cluster_type_test_cluster_type",
+ "is_virtual",
+ "cluster_Test_Cluster",
+ "cluster_group_test_cluster_group"
+ ]
+ },
+ "cluster_Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "cluster_group_test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_type_test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "device_roles_core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_types_cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_types_nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "location_parent_rack_group": {
+ "children": [
+ "location_test_rack_group"
+ ]
+ },
+ "location_test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "manufacturers_cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "region_parent_region": {
+ "children": [
+ "region_test_region"
+ ]
+ },
+ "region_test_region": {
+ "children": [
+ "sites_test_site"
+ ]
+ },
+ "site_group_parent_site_group": {
+ "children": [
+ "site_group_test_site_group"
+ ]
+ },
+ "sites_test_site": {
+ "children": [
+ "location_parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "sites_test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "status_active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-noracks.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,28 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+config_context: true
+plurals: true
+interfaces: true
+services: true
+racks: false
+
+group_by:
+ - sites
+ - tenants
+ - location
+ - tags
+ - device_roles
+ - device_types
+ - manufacturers
+ - platforms
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1302 @@
+{
+ "Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [],
+ "manufacturer": "cisco",
+ "rack": "Test Rack Site 2",
+ "rack_role": "test-rack-role",
+ "regions": [],
+ "role": "core-switch",
+ "serial": "",
+ "services": [],
+ "site": "test-site2",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/11/",
+ "enabled": true,
+ "id": 11,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/12/",
+ "enabled": true,
+ "id": 12,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "device_type": "cisco-test",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "ntp_servers": [
+ "pool.ntp.org"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "test_site2",
+ "other_region",
+ "parent_region",
+ "other_site_group",
+ "parent_site_group",
+ "Test_Rack_Site_2",
+ "test_rack_role",
+ "core_switch",
+ "cisco_test",
+ "cisco",
+ "active",
+ "nexus_parent",
+ "Test_Rack",
+ "Test_Cluster_2",
+ "test_cluster_type",
+ "is_virtual",
+ "Test_Cluster",
+ "test_cluster_group"
+ ]
+ },
+ "cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "parent_rack_group": {
+ "children": [
+ "test_rack_group"
+ ]
+ },
+ "parent_region": {
+ "children": [
+ "test_region"
+ ]
+ },
+ "parent_site_group": {
+ "children": [
+ "test_site_group"
+ ]
+ },
+ "test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "test_region": {
+ "children": [
+ "test_site"
+ ]
+ },
+ "test_site": {
+ "children": [
+ "parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options-flatten.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,41 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+# Use cache on this test to make sure interfaces is tested via the cache
+cache: true
+cache_timeout: 3600
+cache_plugin: jsonfile
+cache_connection: /tmp/inventory_netbox
+
+config_context: true
+flatten_config_context: true
+flatten_custom_fields: true
+flatten_local_context_data: true
+plurals: false
+interfaces: true
+services: true
+fetch_all: false
+max_uri_length: 0
+group_names_raw: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,390 @@
+{
+ "Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "locations": [],
+ "manufacturer": "cisco",
+ "rack": "Test Rack Site 2",
+ "rack_id": "1",
+ "rack_role": "test-rack-role",
+ "regions": [],
+ "role": "core-switch",
+ "serial": "",
+ "site": "test-site2",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "rack_id": "2",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "VC1": {
+ "ansible_host": "nexus.example.com",
+ "custom_fields": {},
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "is_virtual": false,
+ "local_context_data": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "disk": 170,
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "custom_fields": {},
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "active": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "test_site2",
+ "other_region",
+ "parent_region",
+ "other_site_group",
+ "parent_site_group",
+ "Test_Rack_Site_2",
+ "test_rack_role",
+ "core_switch",
+ "cisco_test",
+ "cisco",
+ "active",
+ "nexus_parent",
+ "jinja_test_group",
+ "Test_Rack",
+ "Test_Cluster_2",
+ "test_cluster_type",
+ "is_virtual",
+ "Test_Cluster",
+ "test_cluster_group"
+ ]
+ },
+ "cisco": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "core_switch": {
+ "hosts": [
+ "R1-Device",
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "jinja_test_group": {
+ "hosts": [
+ "TestDeviceR1",
+ "Test VM With Spaces"
+ ]
+ },
+ "nexus_parent": {
+ "hosts": [
+ "VC1"
+ ]
+ },
+ "parent_rack_group": {
+ "children": [
+ "test_rack_group"
+ ]
+ },
+ "parent_region": {
+ "children": [
+ "test_region"
+ ]
+ },
+ "parent_site_group": {
+ "children": [
+ "test_site_group"
+ ]
+ },
+ "test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "test_rack_group": {
+ "hosts": [
+ "VC1",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "test_region": {
+ "children": [
+ "test_site"
+ ]
+ },
+ "test_site": {
+ "children": [
+ "parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-options.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,62 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+# Cache is not for performance of tests, but to test the caching option works
+# Also set on test-inventory-plurals.yml so that we actually hit the cache on one of these runs
+cache: true
+cache_timeout: 3600
+cache_plugin: jsonfile
+cache_connection: /tmp/inventory_netbox
+
+config_context: false
+plurals: false
+interfaces: false
+services: false
+group_names_raw: true
+virtual_chassis_name: true
+dns_name: true
+ansible_host_dns_name: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
+
+query_filters: ""
+
+device_query_filters:
+ - role: core-switch
+
+vm_query_filters:
+ - cluster_type: test-cluster-type
+
+# See Constructed for details
+# https://docs.ansible.com/ansible/latest/plugins/inventory/constructed.html
+
+compose:
+ rack_id: rack.id
+ ntp_servers: config_context.ntp_servers
+
+keyed_groups:
+ - prefix: rack
+ key: rack.name
+
+groups:
+ jinja_test_group: inventory_hostname.startswith('Test')
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,446 @@
+{
+ "Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "manufacturers": [
+ "cisco"
+ ],
+ "rack_role": "test-rack-role",
+ "racks": [
+ "Test Rack Site 2"
+ ],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site2"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "nexus-parent"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "racks": [
+ "Test Rack"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB12345678",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "ntp_servers": [
+ "pool.ntp.org"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB01234567",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "disk": 170,
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "test_site2",
+ "other_region",
+ "parent_region",
+ "other_site_group",
+ "parent_site_group",
+ "Test_Rack_Site_2",
+ "test_rack_role",
+ "core_switch",
+ "cisco_test",
+ "cisco",
+ "active",
+ "nexus_parent",
+ "Test_Rack",
+ "Test_Cluster_2",
+ "test_cluster_type",
+ "is_virtual",
+ "Test_Cluster",
+ "test_cluster_group"
+ ]
+ },
+ "cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "parent_rack_group": {
+ "children": [
+ "test_rack_group"
+ ]
+ },
+ "parent_region": {
+ "children": [
+ "test_region"
+ ]
+ },
+ "parent_site_group": {
+ "children": [
+ "test_site_group"
+ ]
+ },
+ "test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "test_region": {
+ "children": [
+ "test_site"
+ ]
+ },
+ "test_site": {
+ "children": [
+ "parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals-flatten.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,33 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+config_context: true
+flatten_config_context: true
+flatten_custom_fields: true
+plurals: true
+interfaces: false
+services: false
+fetch_all: true
+group_names_raw: true
+
+group_by:
+ - sites
+ - tenants
+ - racks
+ - location
+ - rack_role
+ - tags
+ - device_roles
+ - device_types
+ - manufacturers
+ - platforms
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1421 @@
+{
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "manufacturers": [
+ "cisco"
+ ],
+ "rack_role": "test-rack-role",
+ "racks": [
+ "Test Rack Site 2"
+ ],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site2"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "nexus-parent"
+ ],
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/11/",
+ "enabled": true,
+ "id": 11,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/12/",
+ "enabled": true,
+ "id": 12,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "TestDeviceR1": {
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [],
+ "is_virtual": false,
+ "local_context_data": [
+ null
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "racks": [
+ "Test Rack"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB12345678",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "config_context": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "custom_fields": {},
+ "device_roles": [
+ "core-switch"
+ ],
+ "device_types": [
+ "cisco-test"
+ ],
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": [
+ {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ }
+ ],
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturers": [
+ "cisco"
+ ],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "sites": [
+ "test-site"
+ ],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": [
+ {}
+ ],
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "local_context_data": [
+ null
+ ],
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "sites_test_site2",
+ "region_other_region",
+ "region_parent_region",
+ "site_group_other_site_group",
+ "site_group_parent_site_group",
+ "racks_Test_Rack_Site_2",
+ "rack_role_test_rack_role",
+ "device_roles_core_switch",
+ "device_types_cisco_test",
+ "manufacturers_cisco",
+ "status_active",
+ "device_types_nexus_parent",
+ "racks_Test_Rack",
+ "cluster_Test_Cluster_2",
+ "cluster_type_test_cluster_type",
+ "is_virtual",
+ "cluster_Test_Cluster",
+ "cluster_group_test_cluster_group"
+ ]
+ },
+ "cluster_Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "cluster_group_test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_type_test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "device_roles_core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_types_cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_types_nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "location_parent_rack_group": {
+ "children": [
+ "location_test_rack_group"
+ ]
+ },
+ "location_test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "manufacturers_cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "rack_role_test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "racks_Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "racks_Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "region_parent_region": {
+ "children": [
+ "region_test_region"
+ ]
+ },
+ "region_test_region": {
+ "children": [
+ "sites_test_site"
+ ]
+ },
+ "site_group_parent_site_group": {
+ "children": [
+ "site_group_test_site_group"
+ ]
+ },
+ "sites_test_site": {
+ "children": [
+ "location_parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "sites_test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "status_active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory-plurals.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,38 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+cache: true
+cache_timeout: 3600
+cache_plugin: jsonfile
+cache_connection: /tmp/inventory_netbox
+
+config_context: true
+plurals: true
+interfaces: true
+services: true
+
+# Enough to fit only 2 devices, so tests chunking logic
+max_uri_length: 80
+fetch_all: false
+
+group_by:
+ - sites
+ - tenants
+ - racks
+ - location
+ - rack_role
+ - tags
+ - device_roles
+ - device_types
+ - manufacturers
+ - platforms
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.json 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,1423 @@
+{
+ "_meta": {
+ "hostvars": {
+ "R1-Device": {
+ "asset_tag": "345678901",
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [],
+ "manufacturer": "cisco",
+ "rack": "Test Rack Site 2",
+ "rack_role": "test-rack-role",
+ "regions": [],
+ "role": "core-switch",
+ "serial": "",
+ "services": [],
+ "site": "test-site2",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "Test Nexus One": {
+ "ansible_host": "172.16.180.12",
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "nexus-parent",
+ "dns_name": "nexus.example.com",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "Ethernet1/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/1/",
+ "duplex": null,
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.11/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.11/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/3/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 3,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet1/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus Child One",
+ "id": 5,
+ "name": "Test Nexus Child One"
+ },
+ "display": "Ethernet2/1",
+ "display_url": "http://localhost:32768/dcim/interfaces/2/",
+ "duplex": null,
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.12/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.12/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/4/",
+ "dns_name": "nexus.example.com",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 4,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "Ethernet2/1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/6/",
+ "duplex": null,
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "primary_ip4": "172.16.180.12",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "Test Nexus One",
+ "id": 4,
+ "name": "Test Nexus One"
+ },
+ "display": "telnet (TCP/23)",
+ "display_url": "http://localhost:32768/ipam/services/3/",
+ "id": 3,
+ "ipaddresses": [],
+ "name": "telnet",
+ "ports": [
+ 23
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "Test VM With Spaces": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/11/",
+ "enabled": true,
+ "id": 11,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/12/",
+ "enabled": true,
+ "id": 12,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": null,
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/4/",
+ "id": 4,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "Test VM With Spaces",
+ "id": 6,
+ "name": "Test VM With Spaces"
+ }
+ }
+ ],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "TestDeviceR1": {
+ "config_context": {},
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [],
+ "is_virtual": false,
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "rack": "Test Rack",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB12345678",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "test100": {
+ "asset_tag": "123456789",
+ "config_context": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "custom_fields": {},
+ "device_type": "cisco-test",
+ "interfaces": [
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet1",
+ "display_url": "http://localhost:32768/dcim/interfaces/3/",
+ "duplex": null,
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [
+ {
+ "address": "172.16.180.1/24",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "172.16.180.1/24",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/1/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 1,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "GigabitEthernet2",
+ "display_url": "http://localhost:32768/dcim/interfaces/4/",
+ "duplex": null,
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [
+ {
+ "address": "2001::1:1/64",
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "display": "2001::1:1/64",
+ "display_url": "http://localhost:32768/ipam/ip-addresses/2/",
+ "dns_name": "",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2,
+ "nat_inside": null,
+ "nat_outside": [],
+ "role": null,
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "tenant": null,
+ "vrf": null
+ }
+ ],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "GigabitEthernet2",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "1000BASE-T (1GE)",
+ "value": "1000base-t"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ },
+ {
+ "_occupied": false,
+ "bridge": null,
+ "cable": null,
+ "cable_end": "",
+ "connected_endpoints": null,
+ "connected_endpoints_reachable": null,
+ "connected_endpoints_type": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "wlink1",
+ "display_url": "http://localhost:32768/dcim/interfaces/5/",
+ "duplex": null,
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "label": "",
+ "lag": null,
+ "link_peers": [],
+ "link_peers_type": null,
+ "mac_address": null,
+ "mark_connected": false,
+ "mgmt_only": false,
+ "mode": null,
+ "module": null,
+ "mtu": null,
+ "name": "wlink1",
+ "parent": null,
+ "poe_mode": null,
+ "poe_type": null,
+ "rf_channel": null,
+ "rf_channel_frequency": null,
+ "rf_channel_width": null,
+ "rf_role": null,
+ "speed": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "tx_power": null,
+ "type": {
+ "label": "IEEE 802.11a",
+ "value": "ieee802.11a"
+ },
+ "untagged_vlan": null,
+ "vdcs": [],
+ "vrf": null,
+ "wireless_lans": [],
+ "wireless_link": null,
+ "wwn": null
+ }
+ ],
+ "is_virtual": false,
+ "local_context_data": {
+ "ntp_servers": [
+ "pool.ntp.org"
+ ]
+ },
+ "locations": [
+ "test-rack-group",
+ "parent-rack-group"
+ ],
+ "manufacturer": "cisco",
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "role": "core-switch",
+ "serial": "FAB01234567",
+ "services": [
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "ssh (TCP/22)",
+ "display_url": "http://localhost:32768/ipam/services/1/",
+ "id": 1,
+ "ipaddresses": [],
+ "name": "ssh",
+ "ports": [
+ 22
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ },
+ {
+ "comments": "",
+ "custom_fields": {},
+ "description": "",
+ "device": {
+ "description": "",
+ "display": "test100 (123456789)",
+ "id": 1,
+ "name": "test100"
+ },
+ "display": "http (TCP/80)",
+ "display_url": "http://localhost:32768/ipam/services/2/",
+ "id": 2,
+ "ipaddresses": [
+ {
+ "address": "172.16.180.1/24",
+ "description": "",
+ "display": "172.16.180.1/24",
+ "family": {
+ "label": "IPv4",
+ "value": 4
+ },
+ "id": 1
+ },
+ {
+ "address": "2001::1:1/64",
+ "description": "",
+ "display": "2001::1:1/64",
+ "family": {
+ "label": "IPv6",
+ "value": 6
+ },
+ "id": 2
+ }
+ ],
+ "name": "http",
+ "ports": [
+ 80
+ ],
+ "protocol": {
+ "label": "TCP",
+ "value": "tcp"
+ },
+ "tags": [],
+ "virtual_machine": null
+ }
+ ],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": [
+ {
+ "custom_fields": {},
+ "description": "",
+ "display": "disk1",
+ "display_url": "http://localhost:32768/virtualization/virtual-disks/1/",
+ "id": 1,
+ "name": "disk1",
+ "size": 60,
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ }
+ },
+ {
+ "custom_fields": {},
+ "description": "",
+ "display": "disk2",
+ "display_url": "http://localhost:32768/virtualization/virtual-disks/2/",
+ "id": 2,
+ "name": "disk2",
+ "size": 110,
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ }
+ }
+ ]
+ },
+ "test100-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "disk": 170,
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/1/",
+ "enabled": true,
+ "id": 1,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/2/",
+ "enabled": true,
+ "id": 2,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/3/",
+ "enabled": true,
+ "id": 3,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/4/",
+ "enabled": true,
+ "id": 4,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/5/",
+ "enabled": true,
+ "id": 5,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": [
+ {
+ "custom_fields": {},
+ "description": "",
+ "display": "disk1",
+ "display_url": "http://localhost:32768/virtualization/virtual-disks/1/",
+ "id": 1,
+ "name": "disk1",
+ "size": 60,
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ }
+ },
+ {
+ "custom_fields": {},
+ "description": "",
+ "display": "disk2",
+ "display_url": "http://localhost:32768/virtualization/virtual-disks/2/",
+ "id": 2,
+ "name": "disk2",
+ "size": 110,
+ "tags": [],
+ "virtual_machine": {
+ "description": "",
+ "display": "test100-vm",
+ "id": 1,
+ "name": "test100-vm"
+ }
+ }
+ ]
+ },
+ "test101-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth0",
+ "display_url": "http://localhost:32768/virtualization/interfaces/6/",
+ "enabled": true,
+ "id": 6,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth0",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth1",
+ "display_url": "http://localhost:32768/virtualization/interfaces/7/",
+ "enabled": true,
+ "id": 7,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth1",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth2",
+ "display_url": "http://localhost:32768/virtualization/interfaces/8/",
+ "enabled": true,
+ "id": 8,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth2",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth3",
+ "display_url": "http://localhost:32768/virtualization/interfaces/9/",
+ "enabled": true,
+ "id": 9,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth3",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ },
+ {
+ "bridge": null,
+ "count_fhrp_groups": 0,
+ "count_ipaddresses": 0,
+ "custom_fields": {},
+ "description": "",
+ "display": "Eth4",
+ "display_url": "http://localhost:32768/virtualization/interfaces/10/",
+ "enabled": true,
+ "id": 10,
+ "ip_addresses": [],
+ "l2vpn_termination": null,
+ "mac_address": null,
+ "mode": null,
+ "mtu": null,
+ "name": "Eth4",
+ "parent": null,
+ "tagged_vlans": [],
+ "tags": [],
+ "untagged_vlan": null,
+ "virtual_machine": {
+ "description": "",
+ "display": "test101-vm",
+ "id": 2,
+ "name": "test101-vm"
+ },
+ "vrf": null
+ }
+ ],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "test102-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "test103-vm": {
+ "cluster": "Test Cluster",
+ "cluster_group": "test-cluster-group",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [
+ "test-region",
+ "parent-region"
+ ],
+ "serial": "",
+ "services": [],
+ "site": "test-site",
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ },
+ "test104-vm": {
+ "cluster": "Test Cluster 2",
+ "cluster_type": "test-cluster-type",
+ "config_context": {},
+ "custom_fields": {},
+ "interfaces": [],
+ "is_virtual": true,
+ "locations": [],
+ "regions": [],
+ "serial": "",
+ "services": [],
+ "site_groups": [],
+ "status": {
+ "label": "Active",
+ "value": "active"
+ },
+ "tags": [],
+ "virtual_disks": []
+ }
+ }
+ },
+ "all": {
+ "children": [
+ "ungrouped",
+ "site_test_site2",
+ "region_other_region",
+ "region_parent_region",
+ "site_group_other_site_group",
+ "site_group_parent_site_group",
+ "rack_Test_Rack_Site_2",
+ "rack_role_test_rack_role",
+ "role_core_switch",
+ "device_type_cisco_test",
+ "manufacturer_cisco",
+ "status_active",
+ "device_type_nexus_parent",
+ "service_telnet",
+ "rack_Test_Rack",
+ "service_ssh",
+ "service_http",
+ "cluster_Test_Cluster_2",
+ "cluster_type_test_cluster_type",
+ "is_virtual",
+ "cluster_Test_Cluster",
+ "cluster_group_test_cluster_group"
+ ]
+ },
+ "cluster_Test_Cluster": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_Test_Cluster_2": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test104-vm"
+ ]
+ },
+ "cluster_group_test_cluster_group": {
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "cluster_type_test_cluster_type": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "device_type_cisco_test": {
+ "hosts": [
+ "R1-Device",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "device_type_nexus_parent": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "is_virtual": {
+ "hosts": [
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ },
+ "location_parent_rack_group": {
+ "children": [
+ "location_test_rack_group"
+ ]
+ },
+ "location_test_rack_group": {
+ "hosts": [
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "manufacturer_cisco": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "rack_Test_Rack": {
+ "hosts": [
+ "TestDeviceR1"
+ ]
+ },
+ "rack_Test_Rack_Site_2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "rack_role_test_rack_role": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "region_parent_region": {
+ "children": [
+ "region_test_region"
+ ]
+ },
+ "region_test_region": {
+ "children": [
+ "site_test_site"
+ ]
+ },
+ "role_core_switch": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100"
+ ]
+ },
+ "service_http": {
+ "hosts": [
+ "test100"
+ ]
+ },
+ "service_ssh": {
+ "hosts": [
+ "test100",
+ "Test VM With Spaces"
+ ]
+ },
+ "service_telnet": {
+ "hosts": [
+ "Test Nexus One"
+ ]
+ },
+ "site_group_parent_site_group": {
+ "children": [
+ "site_group_test_site_group"
+ ]
+ },
+ "site_test_site": {
+ "children": [
+ "location_parent_rack_group"
+ ],
+ "hosts": [
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm"
+ ]
+ },
+ "site_test_site2": {
+ "hosts": [
+ "R1-Device"
+ ]
+ },
+ "status_active": {
+ "hosts": [
+ "R1-Device",
+ "Test Nexus One",
+ "TestDeviceR1",
+ "test100",
+ "Test VM With Spaces",
+ "test100-vm",
+ "test101-vm",
+ "test102-vm",
+ "test103-vm",
+ "test104-vm"
+ ]
+ }
+}
\ No newline at end of file
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/files/test-inventory.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,31 @@
+---
+plugin: netbox.netbox.nb_inventory
+api_endpoint: http://localhost:32768
+token: "0123456789abcdef0123456789abcdef01234567"
+validate_certs: false
+
+config_context: true
+plurals: false
+interfaces: true
+virtual_disks: true
+services: true
+
+group_by:
+ - site
+ - tenant
+ - rack
+ - location
+ - rack_role
+ - tag
+ - role
+ - device_type
+ - manufacturer
+ - platform
+ - region
+ - site_group
+ - cluster
+ - cluster_group
+ - cluster_type
+ - is_virtual
+ - services
+ - status
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme.sh 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+
+set -o xtrace # Print commands as they're run
+set -o errexit # abort on nonzero exitstatus
+set -o nounset # abort on unbound variable
+set -o pipefail # don't hide errors within pipes
+
+# Directory of this script
+SCRIPT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
+RUNME_CONFIG="$SCRIPT_DIR/runme_config"
+INVENTORIES_DIR="$SCRIPT_DIR/files"
+
+# Load runme_config, if exists - the only way to pass environment when run through ansible-test
+if [[ -f "$RUNME_CONFIG" ]]
+then
+ source "$RUNME_CONFIG"
+fi
+
+declare -a COMPARE_OPTIONS # empty array
+
+# Check if NETBOX_VERSION has been set by runme_config, and if so, pass to compare_inventory_json.py
+if [[ "${NETBOX_VERSION:-}" == "v4.1" ]]
+then
+ COMPARE_OPTIONS+=(--netbox-version "${NETBOX_VERSION}")
+fi
+
+# OUTPUT_DIR is set by ansible-test
+# OUTPUT_INVENTORY_JSON is only set if running hacking/update_test_inventories.sh to update the test diff data
+if [[ -n "${OUTPUT_INVENTORY_JSON:-}" ]]
+then
+ OUTPUT_DIR="$OUTPUT_INVENTORY_JSON"
+
+ # Clean up JSON fields we don't want to store and compare against in tests (creation times, etc.)
+ COMPARE_OPTIONS+=(--write)
+fi
+
+echo OUTPUT_DIR="$OUTPUT_DIR"
+
+inventory () {
+ if [[ -n "${OUTPUT_INVENTORY_JSON:-}" ]]
+ then
+ # Running for the purpose of updating test data
+ ansible-inventory "$@"
+ else
+ # Running inside ansible-test
+ # Run through python.py just to make sure we've definitely got the coverage environment set up
+ # Just running ansible-inventory directly may not actually find the right one in PATH
+ python.py "$(command -v ansible-inventory)" "$@"
+ fi
+}
+
+
+RESULT=0
+
+for INVENTORY in "$INVENTORIES_DIR"/*.yml
+do
+ NAME="$(basename "$INVENTORY")"
+ NAME_WITHOUT_EXTENSION="${NAME%.yml}"
+
+ OUTPUT_JSON="$OUTPUT_DIR/$NAME_WITHOUT_EXTENSION.json"
+ inventory -vvvv --list --inventory "$INVENTORY" --output="$OUTPUT_JSON"
+
+ # Compare the output
+ if ! "$SCRIPT_DIR/compare_inventory_json.py" "${COMPARE_OPTIONS[@]}" "$INVENTORIES_DIR/$NAME_WITHOUT_EXTENSION.json" "$OUTPUT_JSON"
+ then
+ # Returned non-zero status
+ RESULT=1
+ fi
+
+done
+
+exit $RESULT
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/inventory-v4.3/runme_config.template 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,6 @@
+# runme_config is source'd by runme.sh to set environment variables used to modify the test against different versions of NetBox.
+# .travis.yml uses render_config.sh to generate it from runme_config.template
+# There is no other way to pass environment variables to a runme.sh integration test.
+# (integration_config.yml files are only helpful to ansible yaml-based tests)
+
+export NETBOX_VERSION=${VERSION}
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/regression-v4.3/tasks/main.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,284 @@
+---
+##
+##
+### TEST NETBOX CONNECTION FAILURE
+##
+##
+- name: TEST NETBOX CONNECTION FAILURE
+ connection: local
+ block:
+ - name: 1 - Device with required information
+ netbox.netbox.netbox_device:
+ netbox_url: http://some-random-invalid-URL
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ state: present
+ register: test_one
+ ignore_errors: true
+
+ - name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is failed
+ - test_one['msg'] == "Failed to establish connection to NetBox API"
+
+ - name: 2 - Check to see if netbox_prefix with parent defined will pass via check-mode
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ parent: 10.10.0.0/16
+ prefix_length: 24
+ first_available: true
+ state: present
+ register: test_two
+ check_mode: true
+
+ - name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_two is changed
+ - test_two['msg'] == "New prefix created within 10.10.0.0/16"
+
+ - name: "3 - Add device with tags - Setup device to test #242"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: issue-242
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ tags:
+ - slug: first
+ - slug: second
+
+ - name: "4 - Add device with tags out of order - shouldn't change - Tests #242 is fixed"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: issue-242
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ tags:
+ - slug: second
+ - slug: first
+ register: test_four
+ diff: true
+
+ - name: "4 - Assert not changed - Tests #242 is fixed"
+ ansible.builtin.assert:
+ that:
+ - not test_four["changed"]
+
+ - name: "5 - Add device with extra tag - Tests #242 is fixed"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: issue-242
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ asset_tag: "1234"
+ tags:
+ - slug: second
+ - slug: third
+ - slug: first
+ register: test_five
+ diff: true
+
+ - name: "5 - Assert added tag - Tests #242 is fixed"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five["diff"]["after"]["tags"] is defined
+ - test_five["device"]["tags"] is defined
+
+ - name: "6 - Loop through and add interface templates to different device interface templates - Fixes #282"
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: SFP+ (10GE)
+ type: SFP+ (10GE)
+ device_type: "{{ item }}"
+ register: test_six
+ loop:
+ - Cisco Test
+ - Arista Test
+ - Nexus Child
+ - Nexus Parent
+
+ - name: "6 - Assert device type is correct - Fixes #282"
+ ansible.builtin.assert:
+ that:
+ - test_six.results[0]["diff"]["before"]["state"] == "absent"
+ - test_six.results[0]["diff"]["after"]["state"] == "present"
+ - test_six.results[0]["interface_template"]["device_type"] == 1
+ - test_six.results[1]["diff"]["before"]["state"] == "absent"
+ - test_six.results[1]["diff"]["after"]["state"] == "present"
+ - test_six.results[1]["interface_template"]["device_type"] == 2
+ - test_six.results[2]["diff"]["before"]["state"] == "absent"
+ - test_six.results[2]["diff"]["after"]["state"] == "present"
+ - test_six.results[2]["interface_template"]["device_type"] == 4
+ - test_six.results[3]["diff"]["before"]["state"] == "absent"
+ - test_six.results[3]["diff"]["after"]["state"] == "present"
+ - test_six.results[3]["interface_template"]["device_type"] == 3
+
+ - name: 7 - Don't prevent updates to other params if tags are specified
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: issue-242
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ asset_tag: "Null"
+ tags:
+ # Changed these for issue #407 to be IDs
+ - 2
+ - 3
+ - 1
+ register: test_seven
+
+ - name: "5 - Assert added tag - Tests #242 is fixed"
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven["diff"]["after"]["asset_tag"] == "Null"
+ - test_seven["device"]["asset_tag"] == "Null"
+
+ - name: Add ip address to netbox and don't assign it to a device (Issue 372)
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 10.255.255.1/24
+ query_params:
+ - address
+ - vrf
+ state: present
+
+ - name: Update same ip address to attach to a device interface (Issue 372)
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 10.255.255.1/24
+ assigned_object:
+ device: test100
+ name: GigabitEthernet1
+ query_params:
+ - address
+ - vrf
+ state: present
+ register: query_params_372
+
+ - name: Assert ip address was updated and added to device interface
+ ansible.builtin.assert:
+ that:
+ - query_params_372 is changed
+ - query_params_372['msg'] == 'ip_address 10.255.255.1/24 updated'
+ - query_params_372['diff']['after']['assigned_object'] == 3
+ - query_params_372['diff']['after']['assigned_object_id'] == 3
+ - query_params_372['diff']['after']['assigned_object_type'] == 'dcim.interface'
+
+ - name: Validate failure due to invalid child params provided by user
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.interface
+ termination_a:
+ device: test100
+ name: GigabitEthernet1
+ termination_b_type: circuits.circuittermination
+ termination_b:
+ name: XYZ987
+ ignore_errors: true
+ register: test_results
+
+ - name: "Issue #415 - Assert failure message shows the allowed params and what the user provided"
+ ansible.builtin.assert:
+ that:
+ - test_results is failed
+ - 'test_results["msg"] == "One or more of the kwargs provided are invalid for circuits.circuittermination, provided kwargs: name. Acceptable kwargs: circuit,
+ term_side"'
+
+ - name: "Issue #432 - Make sure same IPs get assigned to different device interfaces"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data: "{{ item }}"
+ loop: "{{ data }}"
+ register: test_results
+ vars:
+ data:
+ - address: 121.121.121.121/32
+ assigned_object:
+ device: Test Nexus One
+ name: Ethernet1/1
+ description: ansible-netbox-1.2.1
+ dns_name: ansible-netbox-1.2.1
+ role: HSRP
+ status: Active
+ - address: 121.121.121.121/32
+ assigned_object:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ description: ansible-netbox-1.2.1
+ dns_name: ansible-netbox-1.2.1
+ role: HSRP
+ status: Active
+ - address: 1.121.121.121/32
+ assigned_object:
+ device: Test Nexus One
+ name: Ethernet1/1
+ description: ansible-netbox-1.2.1
+ dns_name: ansible-netbox-1.2.1
+ role: HSRP
+ status: Active
+ - address: 1.121.121.121/32
+ assigned_object:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ description: ansible-netbox-1.2.1
+ dns_name: ansible-netbox-1.2.1
+ role: HSRP
+ status: Active
+
+ - name: "ASSERT Issue #432 changes reflect correct device"
+ ansible.builtin.assert:
+ that:
+ - test_results | community.general.json_query('results[?ip_address.address==`1.121.121.121/32`]') | length == 2
+ - test_results | community.general.json_query('results[?ip_address.address==`121.121.121.121/32`]') | length == 2
+
+ - name: "Issue #958 - Make sure we can add same location with different sites"
+ netbox.netbox.netbox_location:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Office Building
+ site: "{{ item }}"
+ loop:
+ - Test Site
+ - Test Site2
+ register: test_results
+
+ - name: "ASSERT ISSUE #957 - Location has different IDs"
+ ansible.builtin.assert:
+ that:
+ - test_results.results.0.location.id != test_results.results.1.location.id
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_circuit_termination.yml 2025-09-09 00:14:19.000000000 +0000
@@ -4,6 +4,25 @@
### NETBOX_CIRCUIT_TERMINATION
##
##
+- name: "NETBOX_CIRCUIT_TERMINATION 0: Create provider network within NetBox with only required information"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ state: present
+ register: test_one
+
+- name: "NETBOX_CIRCUIT_TERMINATION 0: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['provider_network']['name'] == "Test Provider Network One"
+ - test_one['msg'] == "provider_network Test Provider Network One created"
+
- name: "NETBOX_CIRCUIT_TERMINATION 1: Create provider within NetBox with only required information"
netbox.netbox.netbox_circuit_termination:
netbox_url: http://localhost:32768
@@ -11,7 +30,8 @@
data:
circuit: Test Circuit
term_side: A
- site: Test Site
+ termination_id: 2
+ termination_type: circuits.providernetwork
port_speed: 10000
state: present
register: test_one
@@ -22,9 +42,10 @@
- test_one is changed
- test_one['diff']['before']['state'] == "absent"
- test_one['diff']['after']['state'] == "present"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
- test_one['circuit_termination']['circuit'] == 1
- test_one['circuit_termination']['term_side'] == "A"
- - test_one['circuit_termination']['site'] == 1
- test_one['circuit_termination']['port_speed'] == 10000
- test_one['msg'] == "circuit_termination test_circuit_a created"
@@ -42,9 +63,10 @@
ansible.builtin.assert:
that:
- not test_two['changed']
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
- test_two['circuit_termination']['circuit'] == 1
- test_two['circuit_termination']['term_side'] == "A"
- - test_two['circuit_termination']['site'] == 1
- test_two['circuit_termination']['port_speed'] == 10000
- test_two['msg'] == "circuit_termination test_circuit_a already exists"
@@ -66,13 +88,14 @@
ansible.builtin.assert:
that:
- test_three is changed
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
- test_three['diff']['after']['upstream_speed'] == 1000
- test_three['diff']['after']['xconnect_id'] == "10X100"
- test_three['diff']['after']['pp_info'] == "PP10-24"
- test_three['diff']['after']['description'] == "Test description"
- test_three['circuit_termination']['circuit'] == 1
- test_three['circuit_termination']['term_side'] == "A"
- - test_three['circuit_termination']['site'] == 1
- test_three['circuit_termination']['port_speed'] == 10000
- test_three['circuit_termination']['upstream_speed'] == 1000
- test_three['circuit_termination']['xconnect_id'] == "10X100"
@@ -87,7 +110,8 @@
data:
circuit: Test Circuit
term_side: Z
- site: Test Site
+ termination_id: 2
+ termination_type: circuits.providernetwork
port_speed: 10000
state: present
register: test_four
@@ -98,9 +122,10 @@
- test_four is changed
- test_four['diff']['before']['state'] == "absent"
- test_four['diff']['after']['state'] == "present"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
- test_four['circuit_termination']['circuit'] == 1
- test_four['circuit_termination']['term_side'] == "Z"
- - test_four['circuit_termination']['site'] == 1
- test_four['circuit_termination']['port_speed'] == 10000
- test_four['msg'] == "circuit_termination test_circuit_z created"
@@ -120,10 +145,11 @@
- test_five is changed
- test_five['circuit_termination']['circuit'] == 1
- test_five['circuit_termination']['term_side'] == "A"
- - test_five['circuit_termination']['site'] == 1
- test_five['circuit_termination']['port_speed'] == 10000
- test_five['circuit_termination']['upstream_speed'] == 1000
- test_five['circuit_termination']['xconnect_id'] == "10X100"
- test_five['circuit_termination']['pp_info'] == "PP10-24"
- test_five['circuit_termination']['description'] == "Test description"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
- test_five['msg'] == "circuit_termination test_circuit_a deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_service.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_service.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_service.yml 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_service.yml 2025-09-09 00:14:19.000000000 +0000
@@ -178,7 +178,7 @@
netbox_token: "0123456789abcdef0123456789abcdef01234567"
data:
virtual_machine: test100-vm
- name: node-exporter
+ name: node-exporter-vm
port: 9100
protocol: TCP
state: present
@@ -188,9 +188,9 @@
ansible.builtin.assert:
that:
- test_service_create_vm is changed
- - test_service_create_vm['services']['name'] == "node-exporter"
+ - test_service_create_vm['services']['name'] == "node-exporter-vm"
- test_service_create_vm['services']['ports'] == [9100]
- test_service_create_vm['services']['protocol'] == "tcp"
- test_service_create_vm['diff']['after']['state'] == "present"
- test_service_create_vm['diff']['before']['state'] == "absent"
- - test_service_create_vm['msg'] == "services node-exporter created"
+ - test_service_create_vm['msg'] == "services node-exporter-vm created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_tag.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_tag.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_tag.yml 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.2/tasks/netbox_tag.yml 2025-09-09 00:14:19.000000000 +0000
@@ -12,6 +12,8 @@
name: Test Tag 1
description: Tag 1 test
color: "0000ff"
+ object_types:
+ - ipam.prefix
state: present
register: test_one
@@ -25,6 +27,7 @@
- test_one['tags']['description'] == "Tag 1 test"
- test_one['tags']['name'] == "Test Tag 1"
- test_one['tags']['slug'] == "test-tag-1"
+ - test_one['tags']['object_types'][0] == "ipam.prefix"
- test_one['msg'] == "tags Test Tag 1 created"
- name: "TAG 2: Create duplicate"
@@ -53,6 +56,8 @@
name: Test Tag 1
description: Tag 1 update test
color: "00ff00"
+ object_types:
+ - ipam.asn
state: present
register: test_three
@@ -65,6 +70,7 @@
- test_three['tags']['name'] == "Test Tag 1"
- test_three['tags']['description'] == "Tag 1 update test"
- test_three['tags']['color'] == "00ff00"
+ - test_three['tags']['object_types'][0] == "ipam.asn"
- test_three['msg'] == "tags Test Tag 1 updated"
- name: "TAG 4: ASSERT - Delete"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/main.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,743 @@
+---
+- name: NETBOX_DEVICE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device.yml
+ apply:
+ tags:
+ - netbox_device
+ tags:
+ - netbox_device
+
+- name: NETBOX_DEVICE_INTERFACE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_interface.yml
+ apply:
+ tags:
+ - netbox_device_interface
+ tags:
+ - netbox_device_interface
+
+- name: NETBOX_DEVICE_INTERFACE_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_interface_template.yml
+ apply:
+ tags:
+ - netbox_device_interface_template
+ tags:
+ - netbox_device_interface_template
+
+- name: NETBOX_IP_ADDRESS TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_ip_address.yml
+ apply:
+ tags:
+ - netbox_ip_address
+ tags:
+ - netbox_ip_address
+
+- name: NETBOX_PREFIX TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_prefix.yml
+ apply:
+ tags:
+ - netbox_prefix
+ tags:
+ - netbox_prefix
+
+- name: NETBOX_SITE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_site.yml
+ apply:
+ tags:
+ - netbox_site
+ tags:
+ - netbox_site
+
+- name: NETBOX_SITE_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_site_group.yml
+ apply:
+ tags:
+ - netbox_site_group
+ tags:
+ - netbox_site_group
+
+- name: NETBOX_CONTACT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_contact.yml
+ apply:
+ tags:
+ - netbox_contact
+ tags:
+ - netbox_contact
+
+- name: NETBOX_CONTACT_ROLE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_contact_role.yml
+ apply:
+ tags:
+ - netbox_contact_role
+ tags:
+ - netbox_contact_role
+
+- name: NETBOX_TENTANT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_tenant.yml
+ apply:
+ tags:
+ - netbox_tenant
+ tags:
+ - netbox_tenant
+
+- name: NETBOX_TENTANT_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_tenant_group.yml
+ apply:
+ tags:
+ - netbox_tenant_group
+ tags:
+ - netbox_tenant_group
+
+- name: NETBOX_RACK TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_rack.yml
+ apply:
+ tags:
+ - netbox_rack
+ tags:
+ - netbox_rack
+
+- name: NETBOX_RACK_ROLE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_rack_role.yml
+ apply:
+ tags:
+ - netbox_rack_role
+ tags:
+ - netbox_rack_role
+
+- name: NETBOX_LOCATION TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_location.yml
+ apply:
+ tags:
+ - netbox_location
+ tags:
+ - netbox_location
+
+- name: NETBOX_MANUFACTURER TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_manufacturer.yml
+ apply:
+ tags:
+ - netbox_manufacturer
+ tags:
+ - netbox_manufacturer
+
+- name: NETBOX_PLATFORM TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_platform.yml
+ apply:
+ tags:
+ - netbox_platform
+ tags:
+ - netbox_platform
+
+- name: NETBOX_DEVICE_TYPE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_type.yml
+ apply:
+ tags:
+ - netbox_device_type
+ tags:
+ - netbox_device_type
+
+- name: NETBOX_DEVICE_ROLE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_role.yml
+ apply:
+ tags:
+ - netbox_device_role
+ tags:
+ - netbox_device_role
+
+- name: NETBOX_IPAM_ROLE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_ipam_role.yml
+ apply:
+ tags:
+ - netbox_ipam_role
+ tags:
+ - netbox_ipam_role
+
+- name: NETBOX_VLAN_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_vlan_group.yml
+ apply:
+ tags:
+ - netbox_vlan_group
+ tags:
+ - netbox_vlan_group
+
+- name: NETBOX_VLAN TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_vlan.yml
+ apply:
+ tags:
+ - netbox_vlan
+ tags:
+ - netbox_vlan
+
+- name: NETBOX_VRF TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_vrf.yml
+ apply:
+ tags:
+ - netbox_vrf
+ tags:
+ - netbox_vrf
+
+- name: NETBOX_RIR TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_rir.yml
+ apply:
+ tags:
+ - netbox_rir
+ tags:
+ - netbox_rir
+
+- name: NETBOX_AGGREGATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_aggregate.yml
+ apply:
+ tags:
+ - netbox_aggregate
+ tags:
+ - netbox_aggregate
+
+- name: NETBOX_REGION TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_region.yml
+ apply:
+ tags:
+ - netbox_region
+ tags:
+ - netbox_region
+
+- name: NETBOX_DEVICE_BAY TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_bay.yml
+ apply:
+ tags:
+ - netbox_device_bay
+ tags:
+ - netbox_device_bay
+
+- name: NETBOX_DEVICE_BAY_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_device_bay_template.yml
+ apply:
+ tags:
+ - netbox_device_bay_template
+ tags:
+ - netbox_device_bay_template
+
+- name: NETBOX_INVENTORY_ITEM TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_inventory_item.yml
+ apply:
+ tags:
+ - netbox_inventory_item
+ tags:
+ - netbox_inventory_item
+
+- name: NETBOX_VIRTUAL_MACHINE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_virtual_machine.yml
+ apply:
+ tags:
+ - netbox_virtual_machine
+ tags:
+ - netbox_virtual_machine
+
+- name: NETBOX_CLUSTER TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_cluster.yml
+ apply:
+ tags:
+ - netbox_cluster
+ tags:
+ - netbox_cluster
+
+- name: NETBOX_CLUSTER_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_cluster_group.yml
+ apply:
+ tags:
+ - netbox_cluster_group
+ tags:
+ - netbox_cluster_group
+
+- name: NETBOX_CLUSTER_TYPE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_cluster_type.yml
+ apply:
+ tags:
+ - netbox_cluster_type
+ tags:
+ - netbox_cluster_type
+
+- name: NETBOX_VM_INTERFACE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_vm_interface.yml
+ apply:
+ tags:
+ - netbox_vm_interface
+ tags:
+ - netbox_vm_interface
+
+- name: NETBOX_PROVIDER TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_provider.yml
+ apply:
+ tags:
+ - netbox_provider
+ tags:
+ - netbox_provider
+
+- name: NETBOX_PROVIDER_NETWORK TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_provider_network.yml
+ apply:
+ tags:
+ - netbox_provider_network
+ tags:
+ - netbox_provider_network
+
+- name: NETBOX_CIRCUIT_TYPE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_circuit_type.yml
+ apply:
+ tags:
+ - netbox_circuit_type
+ tags:
+ - netbox_circuit_type
+
+- name: NETBOX_CIRCUIT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_circuit.yml
+ apply:
+ tags:
+ - netbox_circuit
+ tags:
+ - netbox_circuit
+
+- name: NETBOX_REAR_PORT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_rear_port.yml
+ apply:
+ tags:
+ - netbox_rear_port
+ tags:
+ - netbox_rear_port
+
+- name: NETBOX_REAR_PORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_rear_port_template.yml
+ apply:
+ tags:
+ - netbox_rear_port_template
+ tags:
+ - netbox_rear_port_template
+
+- name: NETBOX_FRONT_PORT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_front_port.yml
+ apply:
+ tags:
+ - netbox_front_port
+ tags:
+ - netbox_front_port
+
+- name: NETBOX_FRONT_PORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_front_port_template.yml
+ apply:
+ tags:
+ - netbox_front_port_template
+ tags:
+ - netbox_front_port_template
+
+- name: NETBOX_CONSOLE_PORT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_console_port.yml
+ apply:
+ tags:
+ - netbox_console_port
+ tags:
+ - netbox_console_port
+
+- name: NETBOX_CONSOLE_PORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_console_port_template.yml
+ apply:
+ tags:
+ - netbox_console_port_template
+ tags:
+ - netbox_console_port_template
+
+- name: NETBOX_CONSOLE_SERVER_PORT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_console_server_port.yml
+ apply:
+ tags:
+ - netbox_console_server_port
+ tags:
+ - netbox_console_server_port
+
+- name: NETBOX_CONSOLE_SERVER_PORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_console_server_port_template.yml
+ apply:
+ tags:
+ - netbox_console_server_port_template
+ tags:
+ - netbox_console_server_port_template
+
+- name: NETBOX_POWER_PANEL TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_panel.yml
+ apply:
+ tags:
+ - netbox_power_panel
+ tags:
+ - netbox_power_panel
+
+- name: NETBOX_POWER_FEED TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_feed.yml
+ apply:
+ tags:
+ - netbox_power_feed
+ tags:
+ - netbox_power_feed
+
+- name: NETBOX_POWER_PORT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_port.yml
+ apply:
+ tags:
+ - netbox_power_port
+ tags:
+ - netbox_power_port
+
+- name: NETBOX_POWER_PORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_port_template.yml
+ apply:
+ tags:
+ - netbox_power_port_template
+ tags:
+ - netbox_power_port_template
+
+- name: NETBOX_POWER_OUTLET TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_outlet.yml
+ apply:
+ tags:
+ - netbox_power_outlet
+ tags:
+ - netbox_power_outlet
+
+- name: NETBOX_POWER_OUTLET_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_power_outlet_template.yml
+ apply:
+ tags:
+ - netbox_power_outlet_template
+ tags:
+ - netbox_power_outlet_template
+
+- name: NETBOX_VIRTUAL_CHASSIS TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_virtual_chassis.yml
+ apply:
+ tags:
+ - netbox_virtual_chassis
+ tags:
+ - netbox_virtual_chassis
+
+- name: NETBOX_USER_TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_user.yml
+ apply:
+ tags:
+ - netbox_user
+ tags:
+ - netbox_user
+
+- name: NETBOX_USER_GROUP_TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_user_group.yml
+ apply:
+ tags:
+ - netbox_user_group
+ tags:
+ - netbox_user_group
+
+- name: NETBOX_PERMISSION TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_permission.yml
+ apply:
+ tags:
+ - netbox_permission
+ tags:
+ - netbox_permission
+
+- name: NETBOX_TOKEN_TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_token.yml
+ apply:
+ tags:
+ - netbox_token
+ tags:
+ - netbox_token
+
+# Module has to be updated for 3.3
+# - name: "NETBOX_CABLE TESTS"
+# include_tasks: "netbox_cable.yml"
+
+- name: NETBOX_SERVICE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_service.yml
+ apply:
+ tags:
+ - netbox_service
+ tags:
+ - netbox_service
+
+- name: NETBOX_LOOKUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_lookup.yml
+ apply:
+ tags:
+ - netbox_lookup
+ tags:
+ - netbox_lookup
+
+- name: NETBOX_TAG_TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_tag.yml
+ apply:
+ tags:
+ - netbox_tag
+ tags:
+ - netbox_tag
+
+- name: NETBOX_ROUTE_TARGET_TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_route_target.yml
+ apply:
+ tags:
+ - netbox_route_target
+ tags:
+ - netbox_route_target
+
+- name: NETBOX_WIRELESS_LAN TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_wireless_lan.yml
+ apply:
+ tags:
+ - netbox_wireless_lan
+ tags:
+ - netbox_wireless_lan
+
+- name: NETBOX_WIRELESS_LAN_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_wireless_lan_group.yml
+ apply:
+ tags:
+ - netbox_wireless_lan_group
+ tags:
+ - netbox_wireless_lan_group
+
+- name: NETBOX_WIRELESS_LINK TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_wireless_link.yml
+ apply:
+ tags:
+ - netbox_wireless_link
+ tags:
+ - netbox_wireless_link
+
+- name: NETBOX_CUSTOM_FIELD TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_custom_field.yml
+ apply:
+ tags:
+ - netbox_custom_field
+ tags:
+ - netbox_custom_field
+
+- name: NETBOX_CUSTOM_LINK TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_custom_link.yml
+ apply:
+ tags:
+ - netbox_custom_link
+ tags:
+ - netbox_custom_link
+
+- name: NETBOX_EXPORT_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_export_template.yml
+ apply:
+ tags:
+ - netbox_export_template
+ tags:
+ - netbox_export_template
+
+# Must update for 3.7
+# - name: "NETBOX_WEBHOOK TESTS"
+# include_tasks:
+# file: "netbox_webhook.yml"
+# apply:
+# tags:
+# - netbox_webhook
+# tags:
+# - netbox_webhook
+
+# - name: "NETBOX_L2VPN TESTS"
+# include_tasks:
+# file: "netbox_l2vpn.yml"
+# apply:
+# tags:
+# - netbox_l2vpn
+# tags:
+# - netbox_l2vpn
+
+# - name: "NETBOX_L2VPN_TERMINATION TESTS"
+# include_tasks:
+# file: "netbox_l2vpn_termination.yml"
+# apply:
+# tags:
+# - netbox_l2vpn_termination
+# tags:
+# - netbox_l2vpn_termination
+
+- name: NETBOX_INVENTORY_ITEM_ROLE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_inventory_item_role.yml
+ apply:
+ tags:
+ - netbox_inventory_item_role
+ tags:
+ - netbox_inventory_item_role
+
+- name: NETBOX_MODULE_TYPE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_module_type.yml
+ apply:
+ tags:
+ - netbox_module_type
+ tags:
+ - netbox_module_type
+
+- name: NETBOX_SERVICE_TEMPLATE TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_service_template.yml
+ apply:
+ tags:
+ - netbox_service_template
+ tags:
+ - netbox_service_template
+
+- name: NETBOX_ASN TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_asn.yml
+ apply:
+ tags:
+ - netbox_asn
+ tags:
+ - netbox_asn
+
+- name: NETBOX_FHRP_GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_fhrp_group.yml
+ apply:
+ tags:
+ - netbox_fhrp_group
+ tags:
+ - netbox_fhrp_group
+
+- name: NETBOX_JOURNAL_ENTRY TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_journal_entry.yml
+ apply:
+ tags:
+ - netbox_journal_entry
+ tags:
+ - netbox_journal_entry
+
+- name: NETBOX_FHRP_GROUP_ASSIGNMENT TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_fhrp_group_assignment.yml
+ apply:
+ tags:
+ - netbox_fhrp_group_assignmen
+ tags:
+ - netbox_fhrp_group_assignmen
+
+- name: NETBOX_CONFIG_TEMPLATE
+ ansible.builtin.include_tasks:
+ file: netbox_config_template.yml
+ apply:
+ tags:
+ - netbox_config_template
+ tags:
+ - netbox_config_template
+
+- name: NETBOX_VIRTUAL_DISK
+ ansible.builtin.include_tasks:
+ file: netbox_virtual_disk.yml
+ apply:
+ tags:
+ - netbox_virtual_disk
+ tags:
+ - netbox_virtual_disk
+
+- name: NETBOX_TUNNEL TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_tunnel.yml
+ apply:
+ tags:
+ - netbox_tunnel
+ tags:
+ - netbox_tunnel
+
+- name: NETBOX_TUNNEL GROUP TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_tunnel_group.yml
+ apply:
+ tags:
+ - netbox_tunnel_group
+ tags:
+ - netbox_tunnel_group
+
+- name: NETBOX_MAC_ADDRESS TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_mac_address.yml
+ apply:
+ tags:
+ - netbox_mac_address
+ tags:
+ - netbox_mac_address
+
+- name: NETBOX_CIRCUIT_TERMINATION TESTS
+ ansible.builtin.include_tasks:
+ file: netbox_circuit_termination.yml
+ apply:
+ tags:
+ - netbox_circuit_termination
+ tags:
+ - netbox_circuit_termination
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_aggregate.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,115 @@
+---
+##
+##
+### NETBOX_AGGEGATE
+##
+##
+- name: "AGGREGATE 1: Necessary info creation"
+ netbox.netbox.netbox_aggregate:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.0.0.0/8
+ rir: Example RIR
+ state: present
+ register: test_one
+
+- name: "AGGREGATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['aggregate']['prefix'] == "10.0.0.0/8"
+ # - test_one['aggregate']['family'] == 4
+ - test_one['aggregate']['rir'] == 1
+ - test_one['msg'] == "aggregate 10.0.0.0/8 created"
+
+- name: "AGGREGATE 2: Create duplicate"
+ netbox.netbox.netbox_aggregate:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.0.0.0/8
+ state: present
+ register: test_two
+
+- name: "AGGREGATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['aggregate']['prefix'] == "10.0.0.0/8"
+ - test_two['aggregate']['family'] == 4
+ - test_two['aggregate']['rir'] == 1
+ - test_two['msg'] == "aggregate 10.0.0.0/8 already exists"
+
+- name: "AGGREGATE 3: ASSERT - Update"
+ netbox.netbox.netbox_aggregate:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.0.0.0/8
+ rir: Example RIR
+ date_added: "1989-01-18"
+ description: Test Description
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "AGGREGATE 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['date_added'] == "1989-01-18"
+ - test_three['diff']['after']['description'] == "Test Description"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['aggregate']['prefix'] == "10.0.0.0/8"
+ - test_three['aggregate']['family'] == 4
+ - test_three['aggregate']['rir'] == 1
+ - test_three['aggregate']['date_added'] == "1989-01-18"
+ - test_three['aggregate']['description'] == "Test Description"
+ - test_three['aggregate']['tags'][0] == 4
+ - test_three['msg'] == "aggregate 10.0.0.0/8 updated"
+
+- name: "AGGREGATE 4: ASSERT - Delete"
+ netbox.netbox.netbox_aggregate:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.0.0.0/8
+ state: absent
+ register: test_four
+
+- name: "AGGREGATE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['aggregate']['prefix'] == "10.0.0.0/8"
+ - test_four['aggregate']['family'] == 4
+ - test_four['aggregate']['rir'] == 1
+ - test_four['aggregate']['date_added'] == "1989-01-18"
+ - test_four['aggregate']['description'] == "Test Description"
+ - test_four['aggregate']['tags'][0] == 4
+ - test_four['msg'] == "aggregate 10.0.0.0/8 deleted"
+
+- name: "AGGREGATE 5: Necessary info creation"
+ netbox.netbox.netbox_aggregate:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 2001::/32
+ rir: Example RIR
+ state: present
+ register: test_five
+
+- name: "AGGREGATE 5: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['aggregate']['prefix'] == "2001::/32"
+ # - test_five['aggregate']['family'] == 6
+ - test_five['aggregate']['rir'] == 1
+ - test_five['msg'] == "aggregate 2001::/32 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_asn.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,88 @@
+---
+##
+##
+### NETBOX_ASN
+##
+##
+- name: "ASN 1: Test ASN creation"
+ netbox.netbox.netbox_asn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ asn: 1111111111
+ rir: Example RIR
+ state: present
+ register: test_one
+
+- name: "ASN 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['asn']['asn'] == 1111111111
+ - test_one['asn']['rir'] == 1
+ - test_one['msg'] == "asn 1111111111 created"
+
+- name: "ASN 2: Create duplicate"
+ netbox.netbox.netbox_asn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ asn: 1111111111
+ rir: Example RIR
+ state: present
+ register: test_two
+
+- name: "ASN 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['asn']['asn'] == 1111111111
+ - test_two['asn']['rir'] == 1
+ - test_two['msg'] == "asn 1111111111 already exists"
+
+- name: "ASN 3: Update ASN with other fields"
+ netbox.netbox.netbox_asn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ asn: 1111111111
+ rir: Example RIR
+ tenant: Test Tenant
+ description: Test description
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "ASN 3: ASSERT - Update ASN with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['tenant'] == 1
+ - test_three['diff']['after']['description'] == "Test description"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['asn']['asn'] == 1111111111
+ - test_three['asn']['rir'] == 1
+ - test_three['asn']['tenant'] == 1
+ - test_three['asn']['description'] == "Test description"
+ - test_three['asn']['tags'][0] == 4
+ - test_three['msg'] == "asn 1111111111 updated"
+
+- name: "ASN 4: ASSERT - Delete"
+ netbox.netbox.netbox_asn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ asn: 1111111111
+ state: absent
+ register: test_four
+
+- name: "ASN 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "asn 1111111111 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cable.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,193 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_CABLE
+##
+##
+- name: "CABLE 1: Necessary info creation"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.interface
+ termination_a:
+ device: Test Nexus Child One
+ name: Ethernet2/2
+ termination_b_type: dcim.interface
+ termination_b:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ state: present
+ register: test_one
+
+- name: "CABLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['cable']['termination_a_type'] == "dcim.interface"
+ - test_one['cable']['termination_a_id'] == 15
+ - test_one['cable']['termination_b_type'] == "dcim.interface"
+ - test_one['cable']['termination_b_id'] == 2
+ - test_one['msg'] == "cable dcim.interface Ethernet2/2 <> dcim.interface Ethernet2/1 created"
+
+- name: "CABLE 2: Create duplicate"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.interface
+ termination_a:
+ device: Test Nexus Child One
+ name: Ethernet2/2
+ termination_b_type: dcim.interface
+ termination_b:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ state: present
+ register: test_two
+
+- name: "CABLE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['cable']['termination_a_type'] == "dcim.interface"
+ - test_two['cable']['termination_a_id'] == 15
+ - test_two['cable']['termination_b_type'] == "dcim.interface"
+ - test_two['cable']['termination_b_id'] == 2
+ - test_two['msg'] == "cable dcim.interface Ethernet2/2 <> dcim.interface Ethernet2/1 already exists"
+
+- name: "CABLE 3: Update Cable with other fields"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.interface
+ termination_a:
+ device: Test Nexus Child One
+ name: Ethernet2/2
+ termination_b_type: dcim.interface
+ termination_b:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ type: mmf-om4
+ status: planned
+ label: label123
+ color: abcdef
+ length: 30
+ length_unit: m
+ tags:
+ - Schnozzberry
+ tenant: Test Tenant
+ state: present
+ register: test_three
+
+- name: "CABLE 3: ASSERT - Update Cable with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "mmf-om4"
+ - test_three['diff']['after']['status'] == "planned"
+ - test_three['diff']['after']['label'] == "label123"
+ - test_three['diff']['after']['color'] == "abcdef"
+ - test_three['diff']['after']['length'] == 30
+ - test_three['diff']['after']['length_unit'] == "m"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['diff']['after']['tenant'] == 1
+ - test_three['cable']['termination_a_type'] == "dcim.interface"
+ - test_three['cable']['termination_a_id'] == 15
+ - test_three['cable']['termination_b_type'] == "dcim.interface"
+ - test_three['cable']['termination_b_id'] == 2
+ - test_three['cable']['type'] == "mmf-om4"
+ - test_three['cable']['status'] == "planned"
+ - test_three['cable']['label'] == "label123"
+ - test_three['cable']['color'] == "abcdef"
+ - test_three['cable']['length'] == 30
+ - test_three['cable']['length_unit'] == "m"
+ - test_three['cable']['tags'][0] == 4
+ - test_three['cable']['tenant'] == 1
+ - test_three['msg'] == "cable dcim.interface Ethernet2/2 <> dcim.interface Ethernet2/1 updated"
+
+- name: "CABLE 4: ASSERT - Delete"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.interface
+ termination_a:
+ device: Test Nexus Child One
+ name: Ethernet2/2
+ termination_b_type: dcim.interface
+ termination_b:
+ device: Test Nexus Child One
+ name: Ethernet2/1
+ state: absent
+ register: test_four
+
+- name: "CABLE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "cable dcim.interface Ethernet2/2 <> dcim.interface Ethernet2/1 deleted"
+
+- name: "CABLE 5: Connect Console Port and Console Server Port"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: dcim.consoleserverport
+ termination_a:
+ name: Console Server Port
+ device: test100
+ termination_b_type: dcim.consoleport
+ termination_b:
+ name: Console Port
+ device: test100
+ state: present
+ register: test_five
+
+- name: "CABLE 5: ASSERT - Connect Console Port and Console Server Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['cable']['termination_a_type'] == "dcim.consoleserverport"
+ - test_five['cable']['termination_a_id'] == 1
+ - test_five['cable']['termination_b_type'] == "dcim.consoleport"
+ - test_five['cable']['termination_b_id'] == 1
+ - test_five['msg'] == "cable dcim.consoleserverport Console Server Port <> dcim.consoleport Console Port created"
+
+- name: "CABLE 6: Circuits Termination as side A"
+ netbox.netbox.netbox_cable:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ termination_a_type: circuits.circuittermination
+ termination_a:
+ circuit: Test Circuit Two
+ term_side: A
+ termination_b_type: dcim.interface
+ termination_b:
+ device: test100
+ name: GigabitEthernet2
+ state: present
+ register: test_six
+
+- name: "CABLE 6: ASSERT - Circuits Termination as side A"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['cable']['termination_a_type'] == "circuits.circuittermination"
+ - test_six['cable']['termination_a_id'] == 1
+ - test_six['cable']['termination_b_type'] == "dcim.interface"
+ - test_six['cable']['termination_b_id'] == 4
+ - test_six['msg'] == "cable circuits.circuittermination 1 <> dcim.interface GigabitEthernet2 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,109 @@
+---
+##
+##
+### NETBOX_CIRCUIT
+##
+##
+- name: "NETBOX_CIRCUIT 1: Create provider within NetBox with only required information"
+ netbox.netbox.netbox_circuit:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ cid: Test Circuit One
+ provider: Test Provider
+ circuit_type: Test Circuit Type
+ state: present
+ register: test_one
+
+- name: "NETBOX_CIRCUIT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['circuit']['cid'] == "Test Circuit One"
+ - test_one['circuit']['provider'] == 1
+ - test_one['circuit']['type'] == 1
+ - test_one['msg'] == "circuit Test Circuit One created"
+
+- name: "NETBOX_CIRCUIT 2: Duplicate"
+ netbox.netbox.netbox_circuit:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ cid: Test Circuit One
+ provider: Test Provider
+ circuit_type: Test Circuit Type
+ state: present
+ register: test_two
+
+- name: "NETBOX_CIRCUIT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['circuit']['cid'] == "Test Circuit One"
+ - test_two['circuit']['provider'] == 1
+ - test_two['circuit']['type'] == 1
+ - test_two['msg'] == "circuit Test Circuit One already exists"
+
+- name: "NETBOX_CIRCUIT 3: Update provider with other fields"
+ netbox.netbox.netbox_circuit:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ cid: Test Circuit One
+ provider: Test Provider
+ circuit_type: Test Circuit Type
+ status: Planned
+ tenant: Test Tenant
+ install_date: "2018-12-25"
+ commit_rate: 10000
+ description: "Test circuit "
+ comments: FAST CIRCUIT
+ state: present
+ register: test_three
+
+- name: "NETBOX_CIRCUIT 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['status'] == "planned"
+ - test_three['diff']['after']['tenant'] == 1
+ - test_three['diff']['after']['install_date'] == "2018-12-25"
+ - test_three['diff']['after']['commit_rate'] == 10000
+ - test_three['diff']['after']['description'] == "Test circuit"
+ - test_three['diff']['after']['comments'] == "FAST CIRCUIT"
+ - test_three['circuit']['cid'] == "Test Circuit One"
+ - test_three['circuit']['provider'] == 1
+ - test_three['circuit']['type'] == 1
+ - test_three['circuit']['status'] == "planned"
+ - test_three['circuit']['tenant'] == 1
+ - test_three['circuit']['install_date'] == "2018-12-25"
+ - test_three['circuit']['commit_rate'] == 10000
+ - test_three['circuit']['description'] == "Test circuit"
+ - test_three['circuit']['comments'] == "FAST CIRCUIT"
+ - test_three['msg'] == "circuit Test Circuit One updated"
+
+- name: "NETBOX_CIRCUIT 4: Delete provider within netbox"
+ netbox.netbox.netbox_circuit:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ cid: Test Circuit One
+ state: absent
+ register: test_four
+
+- name: "NETBOX_CIRCUIT 4 : ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['circuit']['cid'] == "Test Circuit One"
+ - test_four['circuit']['provider'] == 1
+ - test_four['circuit']['type'] == 1
+ - test_four['circuit']['status'] == "planned"
+ - test_four['circuit']['tenant'] == 1
+ - test_four['circuit']['install_date'] == "2018-12-25"
+ - test_four['circuit']['commit_rate'] == 10000
+ - test_four['circuit']['description'] == "Test circuit"
+ - test_four['circuit']['comments'] == "FAST CIRCUIT"
+ - test_four['msg'] == "circuit Test Circuit One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_termination.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,155 @@
+---
+##
+##
+### NETBOX_CIRCUIT_TERMINATION
+##
+##
+- name: "NETBOX_CIRCUIT_TERMINATION 0: Create provider network within NetBox with only required information"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ state: present
+ register: test_one
+
+- name: "NETBOX_CIRCUIT_TERMINATION 0: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['provider_network']['name'] == "Test Provider Network One"
+ - test_one['msg'] == "provider_network Test Provider Network One created"
+
+- name: "NETBOX_CIRCUIT_TERMINATION 1: Create provider within NetBox with only required information"
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ circuit: Test Circuit
+ term_side: A
+ termination_id: 2
+ termination_type: circuits.providernetwork
+ port_speed: 10000
+ state: present
+ register: test_one
+
+- name: "NETBOX_CIRCUIT_TERMINATION 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
+ - test_one['circuit_termination']['circuit'] == 1
+ - test_one['circuit_termination']['term_side'] == "A"
+ - test_one['circuit_termination']['port_speed'] == 10000
+ - test_one['msg'] == "circuit_termination test_circuit_a created"
+
+- name: "NETBOX_CIRCUIT_TERMINATION 2: Duplicate"
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ circuit: Test Circuit
+ term_side: A
+ state: present
+ register: test_two
+
+- name: "NETBOX_CIRCUIT_TERMINATION 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
+ - test_two['circuit_termination']['circuit'] == 1
+ - test_two['circuit_termination']['term_side'] == "A"
+ - test_two['circuit_termination']['port_speed'] == 10000
+ - test_two['msg'] == "circuit_termination test_circuit_a already exists"
+
+- name: "NETBOX_CIRCUIT_TERMINATION 3: Update provider with other fields"
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ circuit: Test Circuit
+ term_side: A
+ upstream_speed: 1000
+ xconnect_id: 10X100
+ pp_info: PP10-24
+ description: Test description
+ state: present
+ register: test_three
+
+- name: "NETBOX_CIRCUIT_TERMINATION 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
+ - test_three['diff']['after']['upstream_speed'] == 1000
+ - test_three['diff']['after']['xconnect_id'] == "10X100"
+ - test_three['diff']['after']['pp_info'] == "PP10-24"
+ - test_three['diff']['after']['description'] == "Test description"
+ - test_three['circuit_termination']['circuit'] == 1
+ - test_three['circuit_termination']['term_side'] == "A"
+ - test_three['circuit_termination']['port_speed'] == 10000
+ - test_three['circuit_termination']['upstream_speed'] == 1000
+ - test_three['circuit_termination']['xconnect_id'] == "10X100"
+ - test_three['circuit_termination']['pp_info'] == "PP10-24"
+ - test_three['circuit_termination']['description'] == "Test description"
+ - test_three['msg'] == "circuit_termination test_circuit_a updated"
+
+- name: "NETBOX_CIRCUIT_TERMINATION 4: Create Z Side"
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ circuit: Test Circuit
+ term_side: Z
+ termination_id: 2
+ termination_type: circuits.providernetwork
+ port_speed: 10000
+ state: present
+ register: test_four
+
+- name: "NETBOX_CIRCUIT_TERMINATION 4: ASSERT - Create Z Side"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
+ - test_four['circuit_termination']['circuit'] == 1
+ - test_four['circuit_termination']['term_side'] == "Z"
+ - test_four['circuit_termination']['port_speed'] == 10000
+ - test_four['msg'] == "circuit_termination test_circuit_z created"
+
+- name: "NETBOX_CIRCUIT_TERMINATION 5: Delete provider within netbox"
+ netbox.netbox.netbox_circuit_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ circuit: Test Circuit
+ term_side: A
+ state: absent
+ register: test_five
+
+- name: "NETBOX_CIRCUIT_TERMINATION 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['circuit_termination']['circuit'] == 1
+ - test_five['circuit_termination']['term_side'] == "A"
+ - test_five['circuit_termination']['port_speed'] == 10000
+ - test_five['circuit_termination']['upstream_speed'] == 1000
+ - test_five['circuit_termination']['xconnect_id'] == "10X100"
+ - test_five['circuit_termination']['pp_info'] == "PP10-24"
+ - test_five['circuit_termination']['description'] == "Test description"
+ - test_one['circuit_termination']['termination_type'] == "circuits.providernetwork"
+ - test_one['circuit_termination']['termination_id'] == 2
+ - test_five['msg'] == "circuit_termination test_circuit_a deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_circuit_type.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,96 @@
+---
+##
+##
+### NETBOX_CIRCUIT_TYPE
+##
+##
+- name: "CIRCUIT_TYPE 1: Necessary info creation"
+ netbox.netbox.netbox_circuit_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Circuit Type One
+ state: present
+ register: test_one
+
+- name: "CIRCUIT_TYPE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['circuit_type']['name'] == "Test Circuit Type One"
+ - test_one['circuit_type']['slug'] == "test-circuit-type-one"
+ - test_one['msg'] == "circuit_type Test Circuit Type One created"
+
+- name: "CIRCUIT_TYPE 2: Create duplicate"
+ netbox.netbox.netbox_circuit_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Circuit Type One
+ state: present
+ register: test_two
+
+- name: "CIRCUIT_TYPE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['circuit_type']['name'] == "Test Circuit Type One"
+ - test_two['circuit_type']['slug'] == "test-circuit-type-one"
+ - test_two['msg'] == "circuit_type Test Circuit Type One already exists"
+
+- name: "CIRCUIT_TYPE 3: User specified slug"
+ netbox.netbox.netbox_circuit_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Circuit Type Two
+ slug: test-circuit-type-2
+ state: present
+ register: test_three
+
+- name: "CIRCUIT_TYPE 3: ASSERT - User specified slug"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['circuit_type']['name'] == "Test Circuit Type Two"
+ - test_three['circuit_type']['slug'] == "test-circuit-type-2"
+ - test_three['msg'] == "circuit_type Test Circuit Type Two created"
+
+- name: "CIRCUIT_TYPE 4: ASSERT - Delete"
+ netbox.netbox.netbox_circuit_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Circuit Type One
+ state: absent
+ register: test_four
+
+- name: "CIRCUIT_TYPE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['circuit_type']['name'] == "Test Circuit Type One"
+ - test_four['circuit_type']['slug'] == "test-circuit-type-one"
+ - test_four['msg'] == "circuit_type Test Circuit Type One deleted"
+
+- name: "CIRCUIT_TYPE 5: ASSERT - Delete"
+ netbox.netbox.netbox_circuit_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Circuit Type Two
+ slug: test-circuit-type-2
+ state: absent
+ register: test_five
+
+- name: "CIRCUIT_TYPE 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['circuit_type']['name'] == "Test Circuit Type Two"
+ - test_five['circuit_type']['slug'] == "test-circuit-type-2"
+ - test_five['msg'] == "circuit_type Test Circuit Type Two deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,102 @@
+---
+##
+##
+### NETBOX_CLUSTER
+##
+##
+- name: "CLUSTER 1: Necessary info creation"
+ netbox.netbox.netbox_cluster:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster One
+ cluster_type: Test Cluster Type
+ state: present
+ register: test_one
+
+- name: "CLUSTER 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['cluster']['name'] == "Test Cluster One"
+ - test_one['cluster']['type'] == 1
+ - test_one['msg'] == "cluster Test Cluster One created"
+
+- name: "CLUSTER 2: Create duplicate"
+ netbox.netbox.netbox_cluster:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster One
+ cluster_type: Test Cluster Type
+ state: present
+ register: test_two
+
+- name: "CLUSTER 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['cluster']['name'] == "Test Cluster One"
+ - test_two['cluster']['type'] == 1
+ - test_two['msg'] == "cluster Test Cluster One already exists"
+
+- name: "CLUSTER 3: Update"
+ netbox.netbox.netbox_cluster:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster One
+ cluster_type: Test Cluster Type
+ cluster_group: Test Cluster Group
+ scope_type: "dcim.site"
+ scope: Test Site
+ comments: Updated cluster
+ tenant: Test Tenant
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "CLUSTER 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['group'] == 1
+ - test_three['diff']['after']['scope'] == 1
+ - test_three['diff']['after']['scope_type'] == "dcim.site"
+ - test_three['diff']['after']['comments'] == "Updated cluster"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['diff']['after']['tenant'] == 1
+ - test_three['cluster']['name'] == "Test Cluster One"
+ - test_three['cluster']['type'] == 1
+ - test_three['cluster']['group'] == 1
+ - test_three['cluster']['scope'] == 1
+ - test_three['cluster']['scope_type'] == "dcim.site"
+ - test_three['cluster']['comments'] == "Updated cluster"
+ - test_three['cluster']['tags'][0] == 4
+ - test_three['cluster']['tenant'] == 1
+ - test_three['msg'] == "cluster Test Cluster One updated"
+
+- name: "CLUSTER 4: Delete"
+ netbox.netbox.netbox_cluster:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster One
+ state: absent
+ register: test_four
+
+- name: "CLUSTER 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['cluster']['name'] == "Test Cluster One"
+ - test_four['cluster']['type'] == 1
+ - test_four['cluster']['group'] == 1
+ - test_four['cluster']['scope'] == 1
+ - test_four['cluster']['scope_type'] == "dcim.site"
+ - test_four['cluster']['comments'] == "Updated cluster"
+ - test_four['cluster']['tags'][0] == 4
+ - test_four['msg'] == "cluster Test Cluster One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,96 @@
+---
+##
+##
+### NETBOX_CLUSTER_GROUP
+##
+##
+- name: "CLUSTER_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_cluster_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Group One
+ state: present
+ register: test_one
+
+- name: "CLUSTER_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['cluster_group']['name'] == "Test Cluster Group One"
+ - test_one['cluster_group']['slug'] == "test-cluster-group-one"
+ - test_one['msg'] == "cluster_group Test Cluster Group One created"
+
+- name: "CLUSTER_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_cluster_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Group One
+ state: present
+ register: test_two
+
+- name: "CLUSTER_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['cluster_group']['name'] == "Test Cluster Group One"
+ - test_two['cluster_group']['slug'] == "test-cluster-group-one"
+ - test_two['msg'] == "cluster_group Test Cluster Group One already exists"
+
+- name: "CLUSTER_GROUP 3: User specified slug"
+ netbox.netbox.netbox_cluster_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Group Two
+ slug: test-cluster-group-2
+ state: present
+ register: test_three
+
+- name: "CLUSTER_GROUP 3: ASSERT - User specified slug"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['cluster_group']['name'] == "Test Cluster Group Two"
+ - test_three['cluster_group']['slug'] == "test-cluster-group-2"
+ - test_three['msg'] == "cluster_group Test Cluster Group Two created"
+
+- name: "CLUSTER_GROUP 4: ASSERT - Delete"
+ netbox.netbox.netbox_cluster_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Group One
+ state: absent
+ register: test_four
+
+- name: "CLUSTER_GROUP 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['cluster_group']['name'] == "Test Cluster Group One"
+ - test_four['cluster_group']['slug'] == "test-cluster-group-one"
+ - test_four['msg'] == "cluster_group Test Cluster Group One deleted"
+
+- name: "CLUSTER_GROUP 5: ASSERT - Delete"
+ netbox.netbox.netbox_cluster_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Group Two
+ slug: test-cluster-group-2
+ state: absent
+ register: test_five
+
+- name: "CLUSTER_GROUP 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['cluster_group']['name'] == "Test Cluster Group Two"
+ - test_five['cluster_group']['slug'] == "test-cluster-group-2"
+ - test_five['msg'] == "cluster_group Test Cluster Group Two deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_cluster_type.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,96 @@
+---
+##
+##
+### NETBOX_CLUSTER_TYPE
+##
+##
+- name: "CLUSTER_TYPE 1: Necessary info creation"
+ netbox.netbox.netbox_cluster_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Type One
+ state: present
+ register: test_one
+
+- name: "CLUSTER_TYPE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['cluster_type']['name'] == "Test Cluster Type One"
+ - test_one['cluster_type']['slug'] == "test-cluster-type-one"
+ - test_one['msg'] == "cluster_type Test Cluster Type One created"
+
+- name: "CLUSTER_TYPE 2: Create duplicate"
+ netbox.netbox.netbox_cluster_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Type One
+ state: present
+ register: test_two
+
+- name: "CLUSTER_TYPE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['cluster_type']['name'] == "Test Cluster Type One"
+ - test_two['cluster_type']['slug'] == "test-cluster-type-one"
+ - test_two['msg'] == "cluster_type Test Cluster Type One already exists"
+
+- name: "CLUSTER_TYPE 3: User specified slug"
+ netbox.netbox.netbox_cluster_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Type Two
+ slug: test-cluster-type-2
+ state: present
+ register: test_three
+
+- name: "CLUSTER_TYPE 3: ASSERT - User specified slug"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['cluster_type']['name'] == "Test Cluster Type Two"
+ - test_three['cluster_type']['slug'] == "test-cluster-type-2"
+ - test_three['msg'] == "cluster_type Test Cluster Type Two created"
+
+- name: "CLUSTER_TYPE 4: ASSERT - Delete"
+ netbox.netbox.netbox_cluster_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Type One
+ state: absent
+ register: test_four
+
+- name: "CLUSTER_TYPE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['cluster_type']['name'] == "Test Cluster Type One"
+ - test_four['cluster_type']['slug'] == "test-cluster-type-one"
+ - test_four['msg'] == "cluster_type Test Cluster Type One deleted"
+
+- name: "CLUSTER_TYPE 5: ASSERT - Delete"
+ netbox.netbox.netbox_cluster_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Cluster Type Two
+ slug: test-cluster-type-2
+ state: absent
+ register: test_five
+
+- name: "CLUSTER_TYPE 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['cluster_type']['name'] == "Test Cluster Type Two"
+ - test_five['cluster_type']['slug'] == "test-cluster-type-2"
+ - test_five['msg'] == "cluster_type Test Cluster Type Two deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_context.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,107 @@
+---
+##
+##
+### NETBOX_CONFIG_CONTEXTS
+##
+##
+- name: "CONFIG_CONTEXT 1: Necessary info creation"
+ netbox.netbox.netbox_config_context:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_context
+ description: Test context
+ data: '{ "testkey": { "testsubkey": [ "testvaule" ] } }'
+ state: present
+ register: test_one
+
+- name: "CONFIG_CONTEXT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['config_context']['name'] == "test_context"
+ - test_one['config_context']['description'] == "Test context"
+ - test_one['config_context']['is_active'] == true
+ - test_one['config_context']['weight'] == 1000
+ - test_one['config_context']['data'].testkey.testsubkey[0] == "testvaule"
+ - test_one['msg'] == "config_context test_context created"
+
+- name: "CONFIG_CONTEXT 2: Create duplicate"
+ netbox.netbox.netbox_config_context:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_context
+ description: Test context
+ data: '{ "testkey": { "testsubkey": [ "testvaule" ] } }'
+ state: present
+ register: test_two
+
+- name: "CONFIG_CONTEXT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['config_context']['name'] == "test_context"
+ - test_two['msg'] == "config_context test_context already exists"
+
+- name: "CONFIG_CONTEXT 3: Update data and attach to site"
+ netbox.netbox.netbox_config_context:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_context
+ description: Updated test context
+ data: '{ "testkey": { "testsubkey": [ "updatedvaule" ] } }'
+ weight: 100
+ sites: [test-site]
+ state: present
+ register: test_three
+
+- name: "CONFIG_CONTEXT 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['data'].testkey.testsubkey[0] == "updatedvaule"
+ - test_three['diff']['after']['description'] == "Updated test context"
+ - test_three['diff']['after']['weight'] == 100
+ - test_three['diff']['after']['sites'][0] == 1
+ - test_three['config_context']['name'] == "test_context"
+ - test_three['msg'] == "config_context test_context updated"
+
+- name: "CONFIG_CONTEXT 4: Detach from site"
+ netbox.netbox.netbox_config_context:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_context
+ data: '{ "testkey": { "testsubkey": [ "updatedvaule" ] } }'
+ sites: []
+ state: present
+ register: test_four
+
+- name: "CONFIG_CONTEXT 4: ASSERT - Detached"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['sites']|length == 0
+ - test_four['config_context']['name'] == "test_context"
+ - test_four['msg'] == "config_context test_context updated"
+
+- name: "CONFIG_CONTEXT 5: Delete"
+ netbox.netbox.netbox_config_context:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_context
+ state: absent
+ register: test_five
+
+- name: "CONFIG_CONTEXT 5: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['config_context']['name'] == "test_context"
+ - test_five['msg'] == "config_context test_context deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_config_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,82 @@
+---
+##
+##
+### NETBOX_CONFIG_TEMPLATES
+##
+##
+- name: "CONFIG_TEMPLATES 1: Necessary info creation"
+ netbox.netbox.netbox_config_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_template
+ description: Test template
+ template_code: test template
+ state: present
+ register: test_one
+
+- name: "CONFIG_TEMPLATES 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['config_template']['name'] == "test_template"
+ - test_one['config_template']['description'] == "Test template"
+ - test_one['config_template']['template_code'] == "test template"
+ - test_one['msg'] == "config_template test_template created"
+
+- name: "CONFIG_TEMPLATES 2: Create duplicate"
+ netbox.netbox.netbox_config_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_template
+ description: Test template
+ template_code: test template
+ state: present
+ register: test_two
+
+- name: "CONFIG_TEMPLATES 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['config_template']['name'] == "test_template"
+ - test_two['msg'] == "config_template test_template already exists"
+
+- name: "CONFIG_TEMPLATES 3: Update data"
+ netbox.netbox.netbox_config_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_template
+ description: Updated test template
+ template_code: updated test template
+ state: present
+ register: test_three
+
+- name: "CONFIG_TEMPLATES 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['template_code'] == "updated test template"
+ - test_three['diff']['after']['description'] == "Updated test template"
+ - test_three['config_template']['name'] == "test_template"
+ - test_three['msg'] == "config_template test_template updated"
+
+- name: "CONFIG_TEMPLATES 4: Delete"
+ netbox.netbox.netbox_config_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test_template
+ state: absent
+ register: test_four
+
+- name: "CONFIG_TEMPLATES 4: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['config_template']['name'] == "test_template"
+ - test_four['msg'] == "config_template test_template deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,108 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_CONSOLE_PORT
+##
+##
+- name: "CONSOLE_PORT 1: Necessary info creation"
+ netbox.netbox.netbox_console_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port
+ device: test100
+ state: present
+ register: test_one
+
+- name: "CONSOLE_PORT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['console_port']['name'] == "Console Port"
+ - test_one['console_port']['device'] == 1
+ - test_one['msg'] == "console_port Console Port created"
+
+- name: "CONSOLE_PORT 2: Create duplicate"
+ netbox.netbox.netbox_console_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port
+ device: test100
+ state: present
+ register: test_two
+
+- name: "CONSOLE_PORT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['console_port']['name'] == "Console Port"
+ - test_two['console_port']['device'] == 1
+ - test_two['msg'] == "console_port Console Port already exists"
+
+- name: "CONSOLE_PORT 3: Update Console Port with other fields"
+ netbox.netbox.netbox_console_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port
+ device: test100
+ type: usb-a
+ description: test description
+ state: present
+ register: test_three
+
+- name: "CONSOLE_PORT 3: ASSERT - Update Console Port with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "usb-a"
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['console_port']['name'] == "Console Port"
+ - test_three['console_port']['device'] == 1
+ - test_three['console_port']['type'] == "usb-a"
+ - test_three['console_port']['description'] == "test description"
+ - test_three['msg'] == "console_port Console Port updated"
+
+- name: "CONSOLE_PORT 4: Create Console Port for Delete Test"
+ netbox.netbox.netbox_console_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port 2
+ device: test100
+ state: present
+ register: test_four
+
+- name: "CONSOLE_PORT 4: ASSERT - Create Console Port for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['console_port']['name'] == "Console Port 2"
+ - test_four['console_port']['device'] == 1
+ - test_four['msg'] == "console_port Console Port 2 created"
+
+- name: "CONSOLE_PORT 5: Delete Console Port"
+ netbox.netbox.netbox_console_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port 2
+ device: test100
+ state: absent
+ register: test_five
+
+- name: "CONSOLE_PORT 5: ASSERT - Delete Console Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "console_port Console Port 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_port_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_CONSOLE_PORT_TEMPLATE
+##
+##
+- name: "CONSOLE_PORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_console_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port Template
+ device_type: Cisco Test
+ state: present
+ register: test_one
+
+- name: "CONSOLE_PORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['console_port_template']['name'] == "Console Port Template"
+ - test_one['console_port_template']['device_type'] == 1
+ - test_one['msg'] == "console_port_template Console Port Template created"
+
+- name: "CONSOLE_PORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_console_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port Template
+ device_type: Cisco Test
+ state: present
+ register: test_two
+
+- name: "CONSOLE_PORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['console_port_template']['name'] == "Console Port Template"
+ - test_two['console_port_template']['device_type'] == 1
+ - test_two['msg'] == "console_port_template Console Port Template already exists"
+
+- name: "CONSOLE_PORT_TEMPLATE 3: Update Console Port Template with other fields"
+ netbox.netbox.netbox_console_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port Template
+ device_type: Cisco Test
+ type: usb-a
+ state: present
+ register: test_three
+
+- name: "CONSOLE_PORT_TEMPLATE 3: ASSERT - Update Console Port Template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "usb-a"
+ - test_three['console_port_template']['name'] == "Console Port Template"
+ - test_three['console_port_template']['device_type'] == 1
+ - test_three['console_port_template']['type'] == "usb-a"
+ - test_three['msg'] == "console_port_template Console Port Template updated"
+
+- name: "CONSOLE_PORT_TEMPLATE 4: Create Console Port Template for Delete Test"
+ netbox.netbox.netbox_console_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port Template 2
+ device_type: Cisco Test
+ state: present
+ register: test_four
+
+- name: "CONSOLE_PORT_TEMPLATE 4: ASSERT - Create Console Port Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['console_port_template']['name'] == "Console Port Template 2"
+ - test_four['console_port_template']['device_type'] == 1
+ - test_four['msg'] == "console_port_template Console Port Template 2 created"
+
+- name: "CONSOLE_PORT_TEMPLATE 5: Delete Console Port Template"
+ netbox.netbox.netbox_console_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Port Template 2
+ device_type: Cisco Test
+ state: absent
+ register: test_five
+
+- name: "CONSOLE_PORT_TEMPLATE 5: ASSERT - Delete Console Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "console_port_template Console Port Template 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,108 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_CONSOLE_SERVER_PORT
+##
+##
+- name: "CONSOLE_SERVER_PORT 1: Necessary info creation"
+ netbox.netbox.netbox_console_server_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port
+ device: test100
+ state: present
+ register: test_one
+
+- name: "CONSOLE_SERVER_PORT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['console_server_port']['name'] == "Console Server Port"
+ - test_one['console_server_port']['device'] == 1
+ - test_one['msg'] == "console_server_port Console Server Port created"
+
+- name: "CONSOLE_SERVER_PORT 2: Create duplicate"
+ netbox.netbox.netbox_console_server_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port
+ device: test100
+ state: present
+ register: test_two
+
+- name: "CONSOLE_SERVER_PORT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['console_server_port']['name'] == "Console Server Port"
+ - test_two['console_server_port']['device'] == 1
+ - test_two['msg'] == "console_server_port Console Server Port already exists"
+
+- name: "CONSOLE_SERVER_PORT 3: Update Console Server Port with other fields"
+ netbox.netbox.netbox_console_server_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port
+ device: test100
+ type: usb-a
+ description: test description
+ state: present
+ register: test_three
+
+- name: "CONSOLE_SERVER_PORT 3: ASSERT - Update Console Server Port with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "usb-a"
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['console_server_port']['name'] == "Console Server Port"
+ - test_three['console_server_port']['device'] == 1
+ - test_three['console_server_port']['type'] == "usb-a"
+ - test_three['console_server_port']['description'] == "test description"
+ - test_three['msg'] == "console_server_port Console Server Port updated"
+
+- name: "CONSOLE_SERVER_PORT 4: Create Console Server Port for Delete Test"
+ netbox.netbox.netbox_console_server_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port 2
+ device: test100
+ state: present
+ register: test_four
+
+- name: "CONSOLE_SERVER_PORT 4: ASSERT - Create Console Server Port for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['console_server_port']['name'] == "Console Server Port 2"
+ - test_four['console_server_port']['device'] == 1
+ - test_four['msg'] == "console_server_port Console Server Port 2 created"
+
+- name: "CONSOLE_SERVER_PORT 5: Delete Console Server Port"
+ netbox.netbox.netbox_console_server_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port 2
+ device: test100
+ state: absent
+ register: test_five
+
+- name: "CONSOLE_SERVER_PORT 5: ASSERT - Delete Console Server Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "console_server_port Console Server Port 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_console_server_port_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_CONSOLE_SERVER_PORT_TEMPLATE
+##
+##
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_console_server_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port Template
+ device_type: Cisco Test
+ state: present
+ register: test_one
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['console_server_port_template']['name'] == "Console Server Port Template"
+ - test_one['console_server_port_template']['device_type'] == 1
+ - test_one['msg'] == "console_server_port_template Console Server Port Template created"
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_console_server_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port Template
+ device_type: Cisco Test
+ state: present
+ register: test_two
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['console_server_port_template']['name'] == "Console Server Port Template"
+ - test_two['console_server_port_template']['device_type'] == 1
+ - test_two['msg'] == "console_server_port_template Console Server Port Template already exists"
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 3: Update Console Server Port Template with other fields"
+ netbox.netbox.netbox_console_server_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port Template
+ device_type: Cisco Test
+ type: usb-a
+ state: present
+ register: test_three
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 3: ASSERT - Update Console Server Port Template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "usb-a"
+ - test_three['console_server_port_template']['name'] == "Console Server Port Template"
+ - test_three['console_server_port_template']['device_type'] == 1
+ - test_three['console_server_port_template']['type'] == "usb-a"
+ - test_three['msg'] == "console_server_port_template Console Server Port Template updated"
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 4: Create Console Server Port Template for Delete Test"
+ netbox.netbox.netbox_console_server_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port Template 2
+ device_type: Cisco Test
+ state: present
+ register: test_four
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 4: ASSERT - Create Console Server Port Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['console_server_port_template']['name'] == "Console Server Port Template 2"
+ - test_four['console_server_port_template']['device_type'] == 1
+ - test_four['msg'] == "console_server_port_template Console Server Port Template 2 created"
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 5: Delete Console Server Port Template"
+ netbox.netbox.netbox_console_server_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Console Server Port Template 2
+ device_type: Cisco Test
+ state: absent
+ register: test_five
+
+- name: "CONSOLE_SERVER_PORT_TEMPLATE 5: ASSERT - Delete Console Server Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "console_server_port_template Console Server Port Template 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,100 @@
+---
+##
+##
+### NETBOX_CONTACT
+##
+##
+- name: 1 - Test contact creation
+ netbox.netbox.netbox_contact:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Contact ABC
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['contact']['name'] == "Contact ABC"
+ - test_one['msg'] == "contact Contact ABC created"
+
+- name: Test duplicate contact
+ netbox.netbox.netbox_contact:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Contact ABC
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['contact']['name'] == "Contact ABC"
+ - test_two['msg'] == "contact Contact ABC already exists"
+
+- name: 3 - Test update
+ netbox.netbox.netbox_contact:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Contact ABC
+ title: New Title
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['title'] == "New Title"
+ - test_three['contact']['name'] == "Contact ABC"
+ - test_three['contact']['title'] == "New Title"
+ - test_three['msg'] == "contact Contact ABC updated"
+
+- name: 4 - Test delete
+ netbox.netbox.netbox_contact:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Contact ABC
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "contact Contact ABC deleted"
+
+- name: 5 - Create contact with all parameters
+ netbox.netbox.netbox_contact:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Contact ABC
+ title: Fancy title
+ phone: "12345678"
+ email: contact@contact.com
+ tags:
+ - tagA
+ - tagB
+ - tagC
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['contact']['name'] == "Contact ABC"
+ - test_five['contact']['title'] == "Fancy title"
+ - test_five['contact']['phone'] == "12345678"
+ - test_five['contact']['tags'] | length == 3
+ - test_five['msg'] == "contact Contact ABC created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_contact_role.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,94 @@
+---
+##
+##
+### NETBOX_CONTACT_ROLE
+##
+##
+- name: "CONTACT_ROLE 1: Necessary info creation"
+ netbox.netbox.netbox_contact_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Contact Role
+ state: present
+ register: test_one
+
+- name: "CONTACT_ROLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['contact_role']['name'] == "Test Contact Role"
+ - test_one['contact_role']['slug'] == "test-contact-role"
+ - test_one['msg'] == "contact_role Test Contact Role created"
+
+- name: "CONTACT_ROLE 2: Create duplicate"
+ netbox.netbox.netbox_contact_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Contact Role
+ state: present
+ register: test_two
+
+- name: "CONTACT ROLE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['contact_role']['name'] == "Test Contact Role"
+ - test_two['contact_role']['slug'] == "test-contact-role"
+ - test_two['msg'] == "contact_role Test Contact Role already exists"
+
+- name: "CONTACT_ROLE 3: ASSERT - Update"
+ netbox.netbox.netbox_contact_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Contact Role
+ description: Update description
+ state: present
+ register: test_three
+
+- name: "IPAM_ROLE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "Update description"
+ - test_three['contact_role']['name'] == "Test Contact Role"
+ - test_three['contact_role']['slug'] == "test-contact-role"
+ - test_three['contact_role']['description'] == "Update description"
+ - test_three['msg'] == "contact_role Test Contact Role updated"
+
+- name: "CONTACT_ROLE 4: ASSERT - Delete"
+ netbox.netbox.netbox_contact_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Contact Role
+ state: absent
+ register: test_four
+
+- name: "CONTACT_ROLE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "contact_role Test Contact Role deleted"
+
+- name: "CONTACT_ROLE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_contact_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Contact Role
+ state: absent
+ register: test_five
+
+- name: "CONTACT_ROLE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['contact_role'] == None
+ - test_five['msg'] == "contact_role Test Contact Role already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_field.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,129 @@
+---
+##
+##
+### NETBOX_CUSTOM_FIELD
+##
+##
+- name: "CUSTOM_FIELD 1: Necessary info creation"
+ netbox.netbox.netbox_custom_field:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: A_CustomField
+ type: text
+ state: present
+ register: test_one
+
+- name: "CUSTOM_FIELD 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['custom_field']['name'] == "A_CustomField"
+ - test_one['custom_field']['required'] == false
+ - test_one['custom_field']['object_types'] == ["dcim.device"]
+ - test_one['custom_field']['type'] == "text"
+ - test_one['custom_field']['weight'] == 100
+ - test_one['msg'] == "custom_field A_CustomField created"
+
+- name: "CUSTOM_FIELD 2: Create duplicate"
+ netbox.netbox.netbox_custom_field:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: A_CustomField
+ state: present
+ register: test_two
+
+- name: "CUSTOM_FIELD 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['custom_field']['name'] == "A_CustomField"
+ - test_two['msg'] == "custom_field A_CustomField already exists"
+
+- name: "CUSTOM_FIELD 3: Update data and make it required"
+ netbox.netbox.netbox_custom_field:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: A_CustomField
+ description: Added a description
+ required: true
+ state: present
+ register: test_three
+
+- name: "CUSTOM_FIELD 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "Added a description"
+ - test_three['diff']['after']['required'] == true
+ - test_three['custom_field']['name'] == "A_CustomField"
+ - test_three['msg'] == "custom_field A_CustomField updated"
+
+- name: "CUSTOM_FIELD 4: Change content type"
+ netbox.netbox.netbox_custom_field:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - virtualization.virtualmachine
+ name: A_CustomField
+ description: Added a description
+ required: true
+ state: present
+ register: test_four
+
+- name: "CUSTOM_FIELD 4: ASSERT - Change content type"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
+ - test_four['custom_field']['name'] == "A_CustomField"
+ - test_four['msg'] == "custom_field A_CustomField updated"
+
+- name: "CUSTOM_FIELD 5: Delete"
+ netbox.netbox.netbox_custom_field:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: A_CustomField
+ state: absent
+ register: test_five
+
+- name: "CUSTOM_FIELD 5: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['custom_field']['name'] == "A_CustomField"
+ - test_five['msg'] == "custom_field A_CustomField deleted"
+
+# Change in NetBox 3.7
+# - name: "CUSTOM_FIELD 6: UI Visibility (hidden-ifunset)"
+# netbox.netbox.netbox_custom_field:
+# netbox_url: http://localhost:32768
+# netbox_token: 0123456789abcdef0123456789abcdef01234567
+# data:
+# object_types:
+# - "dcim.device"
+# name: A_CustomField
+# type: text
+# ui_visibility: hidden-ifunset
+# state: present
+# register: test_six
+
+# - name: "CUSTOM_FIELD 6: UI Visibility (hidden-ifunset)"
+# assert:
+# that:
+# - test_six is changed
+# - test_six['custom_field']['name'] == "A_CustomField"
+# - test_six['custom_field']['ui_visibility'] == "hidden-ifunset"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_custom_link.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,113 @@
+---
+##
+##
+### NETBOX_CUSTOM_LINK
+##
+##
+- name: "CUSTOM_LINK 1: Necessary info creation"
+ netbox.netbox.netbox_custom_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Custom Link
+ link_text: Open Web management
+ link_url: !unsafe https://{{ obj.name }}.domain.local/
+ state: present
+ register: test_one
+
+- name: "CUSTOM_LINK 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['custom_link']['name'] == "Custom Link"
+ - test_one['custom_link']['object_types'] == ["dcim.device"]
+ - test_one['custom_link']['link_text'] == "Open Web management"
+ - test_one['msg'] == "custom_link Custom Link created"
+
+- name: "CUSTOM_LINK 2: Create duplicate"
+ netbox.netbox.netbox_custom_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Custom Link
+ link_text: Open Web management
+ link_url: !unsafe https://{{ obj.name }}.domain.local/
+ state: present
+ register: test_two
+
+- name: "CUSTOM_LINK 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['custom_link']['name'] == "Custom Link"
+ - test_two['msg'] == "custom_link Custom Link already exists"
+
+- name: "CUSTOM_FIELD 3: Update data and add weight"
+ netbox.netbox.netbox_custom_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Custom Link
+ link_text: Open Web management
+ link_url: !unsafe https://{{ obj.name }}.domain.local/
+ weight: 50
+ state: present
+ register: test_three
+
+- name: "CUSTOM_FIELD 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['weight'] == 50
+ - test_three['custom_link']['name'] == "Custom Link"
+ - test_three['msg'] == "custom_link Custom Link updated"
+
+- name: "CUSTOM_LINK 4: Change content type"
+ netbox.netbox.netbox_custom_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - virtualization.virtualmachine
+ name: Custom Link
+ link_text: Open Web management
+ link_url: !unsafe https://{{ obj.name }}.domain.local/
+ state: present
+ register: test_four
+
+- name: "CUSTOM_LINK 4: ASSERT - Change content type"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
+ - test_four['custom_link']['name'] == "Custom Link"
+ - test_four['msg'] == "custom_link Custom Link updated"
+
+- name: "CUSTOM_LINK 5: Delete"
+ netbox.netbox.netbox_custom_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - virtualization.virtualmachine
+ name: Custom Link
+ link_text: Open Web management
+ link_url: !unsafe https://{{ obj.name }}.domain.local/
+ state: absent
+ register: test_five
+
+- name: "CUSTOM_LINK 5: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['custom_link']['name'] == "Custom Link"
+ - test_five['msg'] == "custom_link Custom Link deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,243 @@
+---
+##
+##
+### NETBOX_DEVICE
+##
+##
+- name: 1 - Device with required information
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1
+ device_type:
+ id: "1"
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ state: present
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == 'absent'
+ - test_one['diff']['after']['state'] == 'present'
+ - test_one['device']['name'] == "R1"
+ - test_one['device']['role'] == 1
+ - test_one['device']['device_type'] == 1
+ - test_one['device']['site'] == 1
+ - test_one['device']['status'] == "staged"
+ - test_one['device']['name'] == "R1"
+ - test_one['msg'] == "device R1 created"
+
+- name: 2 - Duplicate device
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ state: present
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['device']['name'] == "R1"
+ - test_two['device']['role'] == 1
+ - test_two['device']['device_type'] == 1
+ - test_two['device']['site'] == 1
+ - test_two['device']['status'] == "staged"
+ - test_two['msg'] == "device R1 already exists"
+
+- name: 3 - Update device
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1
+ serial: FXS1001
+ local_context_data:
+ bgp_as: "65412"
+ virtual_chassis: VC1
+ vc_position: 3
+ vc_priority: 15
+ location: Test Rack Group
+ state: present
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['serial'] == "FXS1001"
+ - test_three['diff']['after']['local_context_data']["bgp_as"] == "65412"
+ - test_three['diff']['after']['virtual_chassis'] == 1
+ - test_three['diff']['after']['vc_position'] == 3
+ - test_three['diff']['after']['vc_priority'] == 15
+ - test_three['device']['name'] == "R1"
+ - test_three['device']['role'] == 1
+ - test_three['device']['device_type'] == 1
+ - test_three['device']['site'] == 1
+ - test_three['device']['status'] == "staged"
+ - test_three['device']['serial'] == "FXS1001"
+ - test_three['device']['local_context_data']["bgp_as"] == "65412"
+ - test_three['device']['virtual_chassis'] == 1
+ - test_three['device']['vc_position'] == 3
+ - test_three['device']['vc_priority'] == 15
+ - test_three['device']['location'] == 1
+ - test_three['msg'] == "device R1 updated"
+
+- name: 3.1 - Update device name using query_params
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1-changed-name
+ serial: FXS1001
+ query_params:
+ - serial
+ state: present
+ register: test_three_dot_one
+
+- name: 3.1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three_dot_one is changed
+ - test_three_dot_one['diff']['after']['name'] == "R1-changed-name"
+ - test_three_dot_one['device']['role'] == 1
+ - test_three_dot_one['device']['device_type'] == 1
+ - test_three_dot_one['device']['site'] == 1
+ - test_three_dot_one['device']['status'] == "staged"
+ - test_three_dot_one['device']['serial'] == "FXS1001"
+ - test_three_dot_one['device']['local_context_data']["bgp_as"] == "65412"
+ - test_three_dot_one['msg'] == "device R1-changed-name updated"
+
+- name: 4 - Create device with tags and assign to rack
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: TestR1
+ device_type: "1841"
+ device_role: Core Switch
+ site: Test Site2
+ rack: Test Rack Site 2
+ position: 35.5
+ face: Front
+ tags:
+ - schnozzberry
+ tenant: Test Tenant
+ asset_tag: "1234"
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['device']['name'] == "TestR1"
+ - test_four['device']['role'] == 1
+ - test_four['device']['device_type'] == 5
+ - test_four['device']['site'] == 2
+ - test_four['device']['status'] == "active"
+ - test_four['device']['rack'] == 1
+ - test_four['device']['tags'][0] == 4
+ - test_four['device']['tenant'] == 1
+ - test_four['device']['asset_tag'] == '1234'
+ - test_four['msg'] == "device TestR1 created"
+
+- name: 5 - Delete previous device
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: TestR1
+ state: absent
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "device TestR1 deleted"
+
+- name: 6 - Delete R1
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: R1-changed-name
+ state: absent
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "present"
+ - test_six['diff']['after']['state'] == "absent"
+ - test_six['msg'] == "device R1-changed-name deleted"
+
+- name: 7 - Add primary_ip4/6 to test100
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test100
+ primary_ip4: 172.16.180.1/24
+ primary_ip6: 2001::1:1/64
+ state: present
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven['diff']['after']['primary_ip4'] == 1
+ - test_seven['diff']['after']['primary_ip6'] == 2
+ - test_seven['device']['name'] == "test100"
+ - test_seven['device']['role'] == 1
+ - test_seven['device']['device_type'] == 1
+ - test_seven['device']['site'] == 1
+ - test_seven['device']['status'] == "active"
+ - test_seven['device']['primary_ip4'] == 1
+ - test_seven['device']['primary_ip6'] == 2
+ - test_seven['msg'] == "device test100 updated"
+
+- name: 8 - Device with empty string name
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: ""
+ device_type:
+ id: 1
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ state: present
+ register: test_eight
+
+- name: 8 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['diff']['before']['state'] == 'absent'
+ - test_eight['diff']['after']['state'] == 'present'
+ - test_eight['device']['role'] == 1
+ - test_eight['device']['device_type'] == 1
+ - test_eight['device']['site'] == 1
+ - test_eight['device']['status'] == "staged"
+ - "'-' in test_eight['device']['name']"
+ - test_eight['device']['name'] | length == 36
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,87 @@
+---
+##
+##
+### NETBOX_DEVICE_BAY
+##
+##
+- name: "DEVICE_BAY 1: Necessary info creation"
+ netbox.netbox.netbox_device_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus One
+ name: Device Bay One
+ state: present
+ register: test_one
+
+- name: "DEVICE_BAY 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['device_bay']['name'] == "Device Bay One"
+ - test_one['device_bay']['device'] == 4
+ - test_one['msg'] == "device_bay Device Bay One created"
+
+- name: "DEVICE_BAY 2: Create duplicate"
+ netbox.netbox.netbox_device_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus One
+ name: Device Bay One
+ state: present
+ register: test_two
+
+- name: "DEVICE_BAY 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['device_bay']['name'] == "Device Bay One"
+ - test_two['device_bay']['device'] == 4
+ - test_two['msg'] == "device_bay Device Bay One already exists"
+
+- name: "DEVICE_BAY 3: ASSERT - Update"
+ netbox.netbox.netbox_device_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus One
+ name: Device Bay One
+ installed_device: Test Nexus Child One
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "DEVICE_BAY 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['installed_device'] == 5
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['device_bay']['name'] == "Device Bay One"
+ - test_three['device_bay']['device'] == 4
+ - test_three['device_bay']['installed_device'] == 5
+ - test_three['device_bay']['tags'][0] == 4
+ - test_three['msg'] == "device_bay Device Bay One updated"
+
+- name: "DEVICE_BAY 4: ASSERT - Delete"
+ netbox.netbox.netbox_device_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Device Bay One
+ state: absent
+ register: test_four
+
+- name: "DEVICE_BAY 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['device_bay']['name'] == "Device Bay One"
+ - test_four['device_bay']['device'] == 4
+ - test_four['device_bay']['installed_device'] == 5
+ - test_four['device_bay']['tags'][0] == 4
+ - test_four['msg'] == "device_bay Device Bay One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_bay_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,81 @@
+---
+##
+##
+### NETBOX_DEVICE_BAY_TEMPLATE
+##
+##
+- name: "DEVICE_BAY_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_device_bay_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: WS Test 3850
+ name: Device Bay Template One
+ state: present
+ register: test_one
+
+- name: "DEVICE_BAY_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['device_bay_template']['name'] == "Device Bay Template One"
+ - test_one['device_bay_template']['device_type'] == 7
+ - test_one['msg'] == "device_bay_template Device Bay Template One created"
+
+- name: "DEVICE_BAY_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_device_bay_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: WS Test 3850
+ name: Device Bay Template One
+ state: present
+ register: test_two
+
+- name: "DEVICE_BAY_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['device_bay_template']['name'] == "Device Bay Template One"
+ - test_two['device_bay_template']['device_type'] == 7
+ - test_two['msg'] == "device_bay_template Device Bay Template One already exists"
+
+- name: "DEVICE_BAY_TEMPLATE 3: ASSERT - Create Device Bay Template for Delete Test"
+ netbox.netbox.netbox_device_bay_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: WS Test 3850
+ name: Device Bay Template Two
+ state: present
+ register: test_three
+
+- name: "DEVICE_BAY_TEMPLATE 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['device_bay_template']['name'] == "Device Bay Template Two"
+ - test_three['device_bay_template']['device_type'] == 7
+ - test_three['msg'] == "device_bay_template Device Bay Template Two created"
+
+- name: "DEVICE_BAY_TEMPLATE 4: ASSERT - Delete"
+ netbox.netbox.netbox_device_bay_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Device Bay Template Two
+ device_type: WS Test 3850
+ state: absent
+ register: test_four
+
+- name: "DEVICE_BAY_TEMPLATE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['device_bay_template']['name'] == "Device Bay Template Two"
+ - test_four['device_bay_template']['device_type'] == 7
+ - test_four['msg'] == "device_bay_template Device Bay Template Two deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,332 @@
+---
+# NETBOX_DEVICE_INTERFACE
+
+- name: 1 - Interface with required information
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet3
+ type: 1000Base-T (1GE)
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['msg'] == "interface GigabitEthernet3 created"
+ - test_one['diff']['before']['state'] == 'absent'
+ - test_one['diff']['after']['state'] == 'present'
+ - test_one['interface']['name'] == "GigabitEthernet3"
+ - test_one['interface']['device'] == 1
+
+- name: 2 - Update test100 - GigabitEthernet3
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet3
+ mtu: 1600
+ enabled: false
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_two is changed
+ - test_two['msg'] == "interface GigabitEthernet3 updated"
+ - test_two['diff']['after']['enabled'] == false
+ - test_two['diff']['after']['mtu'] == 1600
+ - test_two['interface']['name'] == "GigabitEthernet3"
+ - test_two['interface']['device'] == 1
+ - test_two['interface']['enabled'] == false
+ - test_two['interface']['mtu'] == 1600
+
+- name: 3 - Delete interface test100 - GigabitEthernet3
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet3
+ state: absent
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['msg'] == "interface GigabitEthernet3 deleted"
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+
+- name: 4 - Create LAG with several specified options
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: port-channel1
+ type: Link Aggregation Group (LAG)
+ mtu: 1600
+ mgmt_only: false
+ mode: Access
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['msg'] == "interface port-channel1 created"
+ - test_four['diff']['before']['state'] == 'absent'
+ - test_four['diff']['after']['state'] == 'present'
+ - test_four['interface']['name'] == "port-channel1"
+ - test_four['interface']['device'] == 1
+ - test_four['interface']['enabled'] == true
+ - test_four['interface']['type'] == "lag"
+ - test_four['interface']['mgmt_only'] == false
+ - test_four['interface']['mode'] == "access"
+ - test_four['interface']['mtu'] == 1600
+
+- name: 5 - Create interface and assign it to parent LAG
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet3
+ enabled: false
+ type: 1000Base-T (1GE)
+ lag:
+ name: port-channel1
+ mtu: 1600
+ mgmt_only: false
+ mode: Access
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['msg'] == "interface GigabitEthernet3 created"
+ - test_five['diff']['before']['state'] == 'absent'
+ - test_five['diff']['after']['state'] == 'present'
+ - test_five['interface']['name'] == "GigabitEthernet3"
+ - test_five['interface']['device'] == 1
+ - test_five['interface']['enabled'] == false
+ - test_five['interface']['type'] == "1000base-t"
+ - test_five['interface']['mgmt_only'] == false
+ - test_five['interface']['lag'] == test_four["interface"]["id"]
+ - test_five['interface']['mode'] == "access"
+ - test_five['interface']['mtu'] == 1600
+
+- name: 6 - Create interface as trunk port
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet21
+ enabled: false
+ type: 1000Base-T (1GE)
+ untagged_vlan:
+ name: Wireless
+ site: Test Site
+ tagged_vlans:
+ - name: Data
+ site: Test Site
+ - name: VoIP
+ site: Test Site
+ mtu: 1600
+ mgmt_only: true
+ mode: Tagged
+ state: present
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['msg'] == "interface GigabitEthernet21 created"
+ - test_six['diff']['before']['state'] == 'absent'
+ - test_six['diff']['after']['state'] == 'present'
+ - test_six['interface']['name'] == "GigabitEthernet21"
+ - test_six['interface']['device'] == 1
+ - test_six['interface']['enabled'] == false
+ - test_six['interface']['type'] == "1000base-t"
+ - test_six['interface']['mgmt_only'] == true
+ - test_six['interface']['mode'] == "tagged"
+ - test_six['interface']['mtu'] == 1600
+ - test_six['interface']['tagged_vlans'] == [2, 3]
+ - test_six['interface']['untagged_vlan'] == 1
+
+- name: 7 - Duplicate Interface
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet1
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_seven['changed']
+ - test_seven['msg'] == "interface GigabitEthernet1 already exists"
+ - test_seven['interface']['name'] == "GigabitEthernet1"
+ - test_seven['interface']['device'] == 1
+
+- name: Add port-channel1 to R1 to test finding proper port-channel1
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: R1-Device
+ name: port-channel1
+ type: Link Aggregation Group (LAG)
+
+- name: 8 - Create interface and assign it to parent LAG - non dict
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet4
+ enabled: false
+ type: 1000Base-T (1GE)
+ lag: port-channel1
+ mtu: 1600
+ mgmt_only: false
+ mode: Access
+ state: present
+ register: test_eight
+
+- name: 8 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['msg'] == "interface GigabitEthernet4 created"
+ - test_eight['diff']['before']['state'] == 'absent'
+ - test_eight['diff']['after']['state'] == 'present'
+ - test_eight['interface']['name'] == "GigabitEthernet4"
+ - test_eight['interface']['device'] == 1
+ - test_eight['interface']['enabled'] == false
+ - test_eight['interface']['type'] == "1000base-t"
+ - test_eight['interface']['mgmt_only'] == false
+ - test_eight['interface']['lag'] == 10
+ - test_eight['interface']['mode'] == "access"
+ - test_eight['interface']['mtu'] == 1600
+
+- name: 9 - Create interface on VC child
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus Child One
+ name: Ethernet2/2
+ type: 1000Base-T (1GE)
+ state: present
+ register: test_nine
+
+- name: 9 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_nine is changed
+ - test_nine['msg'] == "interface Ethernet2/2 created"
+ - test_nine['diff']['before']['state'] == 'absent'
+ - test_nine['diff']['after']['state'] == 'present'
+ - test_nine['interface']['name'] == "Ethernet2/2"
+ - test_nine['interface']['device'] == 5
+ - test_nine['interface']['enabled'] == true
+ - test_nine['interface']['type'] == "1000base-t"
+
+- name: 10 - Update interface on VC child
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus One
+ name: Ethernet2/2
+ description: Updated child interface from parent device
+ type: 1000Base-T (1GE)
+ update_vc_child: true
+ state: present
+ register: test_ten
+
+- name: 10 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_ten is changed
+ - test_ten['msg'] == "interface Ethernet2/2 updated"
+ - test_ten['diff']['after']['description'] == 'Updated child interface from parent device'
+ - test_ten['interface']['name'] == "Ethernet2/2"
+ - test_ten['interface']['device'] == 5
+ - test_ten['interface']['enabled'] == true
+ - test_ten['interface']['type'] == "1000base-t"
+ - test_ten['interface']['description'] == 'Updated child interface from parent device'
+
+- name: 11 - Update interface on VC child w/o update_vc_child
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: Test Nexus One
+ name: Ethernet2/2
+ description: Updated child interface from parent device - test
+ type: 1000Base-T (1GE)
+ state: present
+ ignore_errors: true
+ register: test_eleven
+
+- name: 11 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eleven is failed
+ - test_eleven['msg'] == "Must set update_vc_child to True to allow child device interface modification"
+
+- name: 12 - Create interface and mark it as connected
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet5
+ type: 1000Base-T (1GE)
+ mark_connected: true
+ register: test_twelve
+
+- name: 12- ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_twelve is changed
+ - test_twelve['msg'] == "interface GigabitEthernet5 created"
+ - test_twelve['diff']['before']['state'] == 'absent'
+ - test_twelve['diff']['after']['state'] == 'present'
+ - test_twelve['interface']['name'] == "GigabitEthernet5"
+ - test_twelve['interface']['device'] == 1
+ - test_twelve['interface']['mark_connected'] == true
+
+- name: "13 - Update interface primary MAC address"
+ netbox.netbox.netbox_device_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: GigabitEthernet2
+ primary_mac_address: "AA:AB:CC:DD:EE:FF"
+ state: present
+ register: test_thirteen
+
+- name: "13 - ASSERT"
+ ansible.builtin.assert:
+ that:
+ - test_thirteen is changed
+ - test_thirteen['msg'] == "interface GigabitEthernet2 updated"
+ - test_thirteen['interface']['name'] == "GigabitEthernet2"
+ - test_thirteen['interface']['device'] == 1
+ - test_thirteen['interface']['primary_mac_address'] == 2
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_interface_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,109 @@
+---
+##
+##
+### NETBOX_DEVICE_INTERFACE_TEMPLATE
+##
+##
+- name: 1 - Interface with required information
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: Arista Test
+ name: 10GBASE-T (10GE)
+ type: 10gbase-t
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['msg'] == "interface_template 10GBASE-T (10GE) created"
+ - test_one['diff']['before']['state'] == 'absent'
+ - test_one['diff']['after']['state'] == 'present'
+ - test_one['interface_template']['name'] == "10GBASE-T (10GE)"
+ - test_one['interface_template']['device_type'] == 2
+ - test_one['interface_template']['type'] == '10gbase-t'
+
+- name: 2 - Update 10GBASE-T (10GE)
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: Arista Test
+ name: 10GBASE-T (10GE)
+ type: 10gbase-t
+ mgmt_only: true
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_two is changed
+ - test_two['msg'] == "interface_template 10GBASE-T (10GE) updated"
+ - test_two['diff']['after']['mgmt_only'] == true
+ - test_two['interface_template']['name'] == "10GBASE-T (10GE)"
+ - test_two['interface_template']['device_type'] == 2
+ - test_two['interface_template']['mgmt_only'] == true
+
+- name: 3 - Delete interface template 10GBASE-T (10GE)
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: Arista Test
+ name: 10GBASE-T (10GE)
+ type: 10gbase-t
+ state: absent
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['msg'] == "interface_template 10GBASE-T (10GE) deleted"
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+
+- name: 4 - Create LAG with several specified options
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: Arista Test
+ name: port channel template
+ type: lag
+ mgmt_only: false
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['msg'] == "interface_template port channel template created"
+ - test_four['diff']['before']['state'] == 'absent'
+ - test_four['diff']['after']['state'] == 'present'
+ - test_four['interface_template']['name'] == "port channel template"
+ - test_four['interface_template']['device_type'] == 2
+ - test_four['interface_template']['type'] == "lag"
+ - test_four['interface_template']['mgmt_only'] == false
+
+- name: 5 - Duplicate Interface Template port channel template
+ netbox.netbox.netbox_device_interface_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device_type: Arista Test
+ name: port channel template
+ type: lag
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['msg'] == "interface_template port channel template already exists"
+ - test_five['interface_template']['name'] == "port channel template"
+ - test_five['interface_template']['device_type'] == 2
+ - test_five['interface_template']['type'] == "lag"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_role.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,101 @@
+---
+##
+##
+### NETBOX_DEVICE_ROLE
+##
+##
+- name: "DEVICE_ROLE 1: Necessary info creation"
+ netbox.netbox.netbox_device_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Device Role
+ color: FFFFFF
+ state: present
+ register: test_one
+
+- name: "DEVICE_ROLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['device_role']['name'] == "Test Device Role"
+ - test_one['device_role']['slug'] == "test-device-role"
+ - test_one['device_role']['color'] == "ffffff"
+ - test_one['msg'] == "device_role Test Device Role created"
+
+- name: "DEVICE_ROLE 2: Create duplicate"
+ netbox.netbox.netbox_device_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Device Role
+ color: FFFFFF
+ state: present
+ register: test_two
+
+- name: "DEVICE_ROLE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['device_role']['name'] == "Test Device Role"
+ - test_two['device_role']['slug'] == "test-device-role"
+ - test_two['device_role']['color'] == "ffffff"
+ - test_two['msg'] == "device_role Test Device Role already exists"
+
+- name: "DEVICE_ROLE 3: ASSERT - Update"
+ netbox.netbox.netbox_device_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Device Role
+ color: "003EFF"
+ vm_role: false
+ state: present
+ register: test_three
+
+- name: "DEVICE_ROLE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['color'] == "003eff"
+ - test_three['diff']['after']['vm_role'] == false
+ - test_three['device_role']['name'] == "Test Device Role"
+ - test_three['device_role']['slug'] == "test-device-role"
+ - test_three['device_role']['color'] == "003eff"
+ - test_three['device_role']['vm_role'] == false
+ - test_three['msg'] == "device_role Test Device Role updated"
+
+- name: "DEVICE_ROLE 4: ASSERT - Delete"
+ netbox.netbox.netbox_device_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Device Role
+ state: absent
+ register: test_four
+
+- name: "DEVICE_ROLE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "device_role Test Device Role deleted"
+
+- name: "DEVICE_ROLE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_device_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Device Role
+ state: absent
+ register: test_five
+
+- name: "DEVICE_ROLE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['device_role'] == None
+ - test_five['msg'] == "device_role Test Device Role already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_device_type.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,132 @@
+---
+##
+##
+### NETBOX_DEVICE_TYPE
+##
+##
+- name: "DEVICE_TYPE 1: Necessary info creation"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ slug: test-device-type
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ state: present
+ register: test_one
+
+- name: "DEVICE_TYPE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['device_type']['slug'] == "test-device-type"
+ - test_one['device_type']['model'] == "ws-test-3750"
+ - test_one['device_type']['manufacturer'] == 3
+ - test_one['msg'] == "device_type test-device-type created"
+
+- name: "DEVICE_TYPE 2: Create duplicate"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ slug: test-device-type
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ state: present
+ register: test_two
+
+- name: "DEVICE_TYPE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_one['device_type']['slug'] == "test-device-type"
+ - test_one['device_type']['model'] == "ws-test-3750"
+ - test_one['device_type']['manufacturer'] == 3
+ - test_two['msg'] == "device_type test-device-type already exists"
+
+- name: "DEVICE_TYPE 3: ASSERT - Update"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ slug: test-device-type
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ part_number: ws-3750g-v2
+ u_height: 1.5
+ is_full_depth: false
+ subdevice_role: parent
+ state: present
+ register: test_three
+
+- name: "DEVICE_TYPE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['is_full_depth'] == false
+ - test_three['diff']['after']['part_number'] == "ws-3750g-v2"
+ - test_three['diff']['after']['subdevice_role'] == "parent"
+ - test_three['device_type']['slug'] == "test-device-type"
+ - test_three['device_type']['model'] == "ws-test-3750"
+ - test_three['device_type']['manufacturer'] == 3
+ - test_three['device_type']['is_full_depth'] == false
+ - test_three['device_type']['part_number'] == "ws-3750g-v2"
+ - test_three['device_type']['subdevice_role'] == "parent"
+ - test_three['msg'] == "device_type test-device-type updated"
+
+- name: "DEVICE_TYPE 4: ASSERT - Delete"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: test-device-type
+ state: absent
+ register: test_four
+
+- name: "DEVICE_TYPE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "device_type test-device-type deleted"
+
+- name: "DEVICE_TYPE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: Test Device Type
+ state: absent
+ register: test_five
+
+- name: "DEVICE_TYPE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['device_type'] == None
+ - test_five['msg'] == "device_type Test Device Type already absent"
+
+- name: "DEVICE_TYPE 6: Without Slug"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: WS Test 3850
+ manufacturer: Test Manufacturer
+ subdevice_role: parent
+ state: present
+ register: test_six
+
+- name: "DEVICE_TYPE 6: ASSERT - Without Slug"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['device_type']['slug'] == "ws-test-3850"
+ - test_six['device_type']['model'] == "WS Test 3850"
+ - test_six['device_type']['manufacturer'] == 3
+ - test_six['msg'] == "device_type WS Test 3850 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_export_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,118 @@
+---
+##
+##
+### NETBOX_EXPORT_TEMPLATE
+##
+##
+- name: "EXPORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_export_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Example Export Template
+ description: Export Devices
+ template_code: !unsafe >-
+ {% for obj in queryset %}{{ obj.name }}{% endfor %}
+ state: present
+ register: test_one
+
+- name: "EXPORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['export_template']['name'] == "Example Export Template"
+ - test_one['export_template']['object_types'] == ["dcim.device"]
+ - test_one['export_template']['description'] == "Export Devices"
+ - test_one['msg'] == "export_template Example Export Template created"
+
+- name: "EXPORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_export_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Example Export Template
+ description: Export Devices
+ template_code: !unsafe >-
+ {% for obj in queryset %}{{ obj.name }}{% endfor %}
+ state: present
+ register: test_two
+
+- name: "EXPORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['export_template']['name'] == "Example Export Template"
+ - test_two['msg'] == "export_template Example Export Template already exists"
+
+- name: "EXPORT_TEMPLATE 3: Update data and remove as_attachment"
+ netbox.netbox.netbox_export_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - dcim.device
+ name: Example Export Template
+ description: Export Devices
+ template_code: !unsafe >-
+ {% for obj in queryset %}{{ obj.name }}{% endfor %}
+ as_attachment: false
+ state: present
+ register: test_three
+
+- name: "EXPORT_TEMPLATE 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['as_attachment'] == false
+ - test_three['export_template']['name'] == "Example Export Template"
+ - test_three['msg'] == "export_template Example Export Template updated"
+
+- name: "EXPORT_TEMPLATE 4: Change content type"
+ netbox.netbox.netbox_export_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - virtualization.virtualmachine
+ name: Example Export Template
+ description: Export Devices
+ template_code: !unsafe >-
+ {% for obj in queryset %}{{ obj.name }}{% endfor %}
+ state: present
+ register: test_four
+
+- name: "EXPORT_TEMPLATE 4: ASSERT - Change content type"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
+ - test_four['export_template']['name'] == "Example Export Template"
+ - test_four['msg'] == "export_template Example Export Template updated"
+
+- name: "EXPORT_TEMPLATE 5: Delete"
+ netbox.netbox.netbox_export_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ object_types:
+ - virtualization.virtualmachine
+ name: Example Export Template
+ description: Export Devices
+ template_code: !unsafe >-
+ {% for obj in queryset %}{{ obj.name }}{% endfor %}
+ state: absent
+ register: test_five
+
+- name: "EXPORT_TEMPLATE 5: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['export_template']['name'] == "Example Export Template"
+ - test_five['msg'] == "export_template Example Export Template deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,91 @@
+---
+##
+##
+### NETBOX_FHRP_GROUP
+##
+##
+- name: "FHRP group 1: Test FHRP group creation"
+ netbox.netbox.netbox_fhrp_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ protocol: glbp
+ group_id: 111
+ state: present
+ register: test_one
+
+- name: "FHRP group: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['fhrp_group']['group_id'] == 111
+ - test_one['fhrp_group']['protocol'] == "glbp"
+ - test_one['msg'] == "fhrp_group 111 created"
+
+- name: "FHRP group 2: Create duplicate"
+ netbox.netbox.netbox_fhrp_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ protocol: glbp
+ group_id: 111
+ state: present
+ register: test_two
+
+- name: "FHRP group 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['fhrp_group']['group_id'] == 111
+ - test_two['fhrp_group']['protocol'] == "glbp"
+ - test_two['msg'] == "fhrp_group 111 already exists"
+
+- name: "FHRP group 3: Update FHRP group with other fields"
+ netbox.netbox.netbox_fhrp_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ protocol: glbp
+ group_id: 111
+ auth_type: md5
+ auth_key: 11111
+ description: Test description
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "FHRP group 3: ASSERT - Update FHRP group with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['auth_type'] == "md5"
+ - test_three['diff']['after']['auth_key'] == "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
+ - test_three['diff']['after']['description'] == "Test description"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['fhrp_group']['group_id'] == 111
+ - test_three['fhrp_group']['protocol'] == "glbp"
+ - test_three['fhrp_group']['auth_type'] == "md5"
+ - test_three['fhrp_group']['auth_key'] == "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
+ - test_three['fhrp_group']['description'] == "Test description"
+ - test_three['fhrp_group']['tags'][0] == 4
+ - test_three['msg'] == "fhrp_group 111 updated"
+
+- name: "FHRP group 4: ASSERT - Delete"
+ netbox.netbox.netbox_fhrp_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ group_id: 111
+ state: absent
+ register: test_four
+
+- name: "FHRP group 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "fhrp_group 111 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_fhrp_group_assignment.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,92 @@
+---
+##
+##
+### NETBOX_FHRP_GROUP_ASSIGNMENT
+##
+##
+- name: "FHRP group assignment 1: Test FHRP group assignment creation"
+ netbox.netbox.netbox_fhrp_group_assignment:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ fhrp_group: 1
+ interface_type: dcim.interface
+ interface_id: 1
+ priority: 1
+ state: present
+ register: test_one
+
+- name: "FHRP group assignment: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['fhrp_group_assignment']['group'] == 1
+ - test_one['fhrp_group_assignment']['interface_type'] == "dcim.interface"
+ - test_one['fhrp_group_assignment']['interface_id'] == 1
+ - test_one['fhrp_group_assignment']['priority'] == 1
+ - test_one['msg'] == "fhrp_group_assignment fhrp_group 1 > dcim.interface 1 created"
+
+- name: "FHRP group assignment 2: Create duplicate"
+ netbox.netbox.netbox_fhrp_group_assignment:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ fhrp_group: 1
+ interface_type: dcim.interface
+ interface_id: 1
+ priority: 1
+ state: present
+ register: test_two
+
+- name: "FHRP group assignment 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['fhrp_group_assignment']['group'] == 1
+ - test_two['fhrp_group_assignment']['interface_type'] == "dcim.interface"
+ - test_two['fhrp_group_assignment']['interface_id'] == 1
+ - test_two['fhrp_group_assignment']['priority'] == 1
+ - test_two['msg'] == "fhrp_group_assignment fhrp_group 1 > dcim.interface 1 already exists"
+
+- name: "FHRP group assignment 3: Update FHRP group assignment"
+ netbox.netbox.netbox_fhrp_group_assignment:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ fhrp_group: 1
+ interface_type: dcim.interface
+ interface_id: 1
+ priority: 2
+ state: present
+ register: test_three
+
+- name: "FHRP group assignment 3: ASSERT - Update FHRP group assignment"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['fhrp_group_assignment']['group'] == 1
+ - test_three['fhrp_group_assignment']['interface_type'] == "dcim.interface"
+ - test_three['fhrp_group_assignment']['interface_id'] == 1
+ - test_three['fhrp_group_assignment']['priority'] == 2
+ - test_three['msg'] == "fhrp_group_assignment fhrp_group 1 > dcim.interface 1 updated"
+
+- name: "FHRP group assignment 4: Delete FHRP group assignment"
+ netbox.netbox.netbox_fhrp_group_assignment:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ fhrp_group: 1
+ interface_type: dcim.interface
+ interface_id: 1
+ state: absent
+ register: test_four
+
+- name: "FHRP group assignment 3: ASSERT - Delete FHRP group assignment"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "fhrp_group_assignment fhrp_group 1 > dcim.interface 1 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,150 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_FRONT_PORT
+##
+##
+- name: "FRONT_PORT 1: Necessary info creation"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port
+ device: test100
+ type: bnc
+ rear_port: Rear Port
+ state: present
+ register: test_one
+
+- name: "FRONT_PORT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['front_port']['name'] == "Front Port"
+ - test_one['front_port']['device'] == 1
+ - test_one['front_port']['type'] == "bnc"
+ - test_one['front_port']['rear_port'] == 1
+ - test_one['msg'] == "front_port Front Port created"
+
+- name: "FRONT_PORT 2: Create duplicate"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port
+ device: test100
+ type: bnc
+ rear_port: Rear Port
+ state: present
+ register: test_two
+
+- name: "FRONT_PORT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['front_port']['name'] == "Front Port"
+ - test_two['front_port']['device'] == 1
+ - test_two['front_port']['type'] == "bnc"
+ - test_two['front_port']['rear_port'] == 1
+ - test_two['msg'] == "front_port Front Port already exists"
+
+- name: "FRONT_PORT 3: Update Front Port with other fields"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port
+ device: test100
+ type: bnc
+ rear_port: Rear Port
+ rear_port_position: 5
+ description: test description
+ state: present
+ register: test_three
+
+- name: "FRONT_PORT 3: ASSERT - Update Front Port with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['rear_port_position'] == 5
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['front_port']['name'] == "Front Port"
+ - test_three['front_port']['device'] == 1
+ - test_three['front_port']['type'] == "bnc"
+ - test_three['front_port']['rear_port'] == 1
+ - test_three['front_port']['rear_port_position'] == 5
+ - test_three['front_port']['description'] == "test description"
+ - test_three['msg'] == "front_port Front Port updated"
+
+- name: "FRONT_PORT 4: Create Front Port for Delete Test"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port 2
+ device: test100
+ type: bnc
+ rear_port: Rear Port
+ state: present
+ register: test_four
+
+- name: "FRONT_PORT 4: ASSERT - Create Front Port for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['front_port']['name'] == "Front Port 2"
+ - test_four['front_port']['device'] == 1
+ - test_four['front_port']['type'] == "bnc"
+ - test_four['front_port']['rear_port'] == 1
+ - test_four['msg'] == "front_port Front Port 2 created"
+
+- name: "FRONT_PORT 5: Delete Front Port"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port 2
+ device: test100
+ type: bnc
+ rear_port: Rear Port
+ state: absent
+ register: test_five
+
+- name: "FRONT_PORT 5: ASSERT - Delete Front Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "front_port Front Port 2 deleted"
+
+- name: "FRONT_PORT 6: Create duplicate with rear_port dictionary"
+ netbox.netbox.netbox_front_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port
+ device: test100
+ type: bnc
+ rear_port:
+ device: test100
+ name: Rear Port
+ state: present
+ register: test_six
+
+- name: "FRONT_PORT 6: ASSERT - Create duplicate with rear_port dictionary"
+ ansible.builtin.assert:
+ that:
+ - not test_six['changed']
+ - test_six['front_port']['name'] == "Front Port"
+ - test_six['front_port']['device'] == 1
+ - test_six['front_port']['type'] == "bnc"
+ - test_six['front_port']['rear_port'] == 1
+ - test_six['msg'] == "front_port Front Port already exists"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_front_port_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,147 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_FRONT_PORT_TEMPLATE
+##
+##
+- name: "FRONT_PORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template: Rear Port Template
+ state: present
+ register: test_one
+
+- name: "FRONT_PORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['front_port_template']['name'] == "Front Port Template"
+ - test_one['front_port_template']['device_type'] == 1
+ - test_one['front_port_template']['type'] == "bnc"
+ - test_one['front_port_template']['rear_port'] == 1
+ - test_one['msg'] == "front_port_template Front Port Template created"
+
+- name: "FRONT_PORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template: Rear Port Template
+ state: present
+ register: test_two
+
+- name: "FRONT_PORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['front_port_template']['name'] == "Front Port Template"
+ - test_two['front_port_template']['device_type'] == 1
+ - test_two['front_port_template']['type'] == "bnc"
+ - test_two['front_port_template']['rear_port'] == 1
+ - test_two['msg'] == "front_port_template Front Port Template already exists"
+
+- name: "FRONT_PORT_TEMPLATE 3: Update Front Port Template with other fields"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template: Rear Port Template
+ rear_port_template_position: 5
+ state: present
+ register: test_three
+
+- name: "FRONT_PORT_TEMPLATE 3: ASSERT - Update Front Port Template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['rear_port_position'] == 5
+ - test_three['front_port_template']['name'] == "Front Port Template"
+ - test_three['front_port_template']['device_type'] == 1
+ - test_three['front_port_template']['type'] == "bnc"
+ - test_three['front_port_template']['rear_port_position'] == 5
+ - test_three['front_port_template']['rear_port'] == 1
+ - test_three['msg'] == "front_port_template Front Port Template updated"
+
+- name: "FRONT_PORT_TEMPLATE 4: Create Front Port Template for Delete Test"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template 2
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template: Rear Port Template
+ state: present
+ register: test_four
+
+- name: "FRONT_PORT_TEMPLATE 4: ASSERT - Create Front Port Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['front_port_template']['name'] == "Front Port Template 2"
+ - test_four['front_port_template']['device_type'] == 1
+ - test_four['front_port_template']['type'] == "bnc"
+ - test_four['front_port_template']['rear_port'] == 1
+ - test_four['msg'] == "front_port_template Front Port Template 2 created"
+
+- name: "FRONT_PORT_TEMPLATE 5: Delete Front Port Template"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template 2
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template: Rear Port Template
+ state: absent
+ register: test_five
+
+- name: "FRONT_PORT_TEMPLATE 5: ASSERT - Delete Front Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "front_port_template Front Port Template 2 deleted"
+
+- name: "FRONT_PORT 6: Create duplicate with rear_port_template dictionary"
+ netbox.netbox.netbox_front_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Front Port Template
+ device_type: Cisco Test
+ type: bnc
+ rear_port_template:
+ device: Cisco Test
+ name: Rear Port Template
+ state: present
+ register: test_six
+
+- name: "FRONT_PORT 6: ASSERT - Create duplicate with rear_port_template dictionary"
+ ansible.builtin.assert:
+ that:
+ - not test_six['changed']
+ - test_six['front_port_template']['name'] == "Front Port Template"
+ - test_six['front_port_template']['device_type'] == 1
+ - test_six['front_port_template']['type'] == "bnc"
+ - test_six['front_port_template']['rear_port'] == 1
+ - test_six['msg'] == "front_port_template Front Port Template already exists"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,203 @@
+---
+##
+##
+### NETBOX_INVENTORY_ITEM
+##
+##
+- name: "INVENTORY_ITEM 1: Necessary info creation"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: 10G-SFP+
+ state: present
+ register: test_one
+
+- name: "INVENTORY_ITEM 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one.diff.before.state == "absent"
+ - test_one.diff.after.state == "present"
+ - test_one.inventory_item.name == "10G-SFP+"
+ - test_one.inventory_item.device == 1
+ - test_one.msg == "inventory_item 10G-SFP+ created"
+
+- name: "INVENTORY_ITEM 2: Create duplicate"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: 10G-SFP+
+ state: present
+ register: test_two
+
+- name: "INVENTORY_ITEM 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two.changed
+ - test_two.inventory_item.name == "10G-SFP+"
+ - test_two.inventory_item.device == 1
+ - test_two.msg == "inventory_item 10G-SFP+ already exists"
+
+- name: "INVENTORY_ITEM 3: Update properties"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: 10G-SFP+
+ manufacturer: Cisco
+ part_id: 10G-SFP+
+ serial: "1234"
+ asset_tag: "1234"
+ description: New SFP
+ discovered: true
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "INVENTORY_ITEM 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three.diff.after.asset_tag == "1234"
+ - test_three.diff.after.serial == "1234"
+ - test_three.diff.after.description == "New SFP"
+ - test_three.diff.after.manufacturer == 1
+ - test_three.diff.after.part_id == "10G-SFP+"
+ - test_three.diff.after.tags[0] == 4
+ - test_three.diff.after.discovered == True
+ - test_three.inventory_item.name == "10G-SFP+"
+ - test_three.inventory_item.device == 1
+ - test_three.inventory_item.asset_tag == "1234"
+ - test_three.inventory_item.serial == "1234"
+ - test_three.inventory_item.description == "New SFP"
+ - test_three.inventory_item.manufacturer == 1
+ - test_three.inventory_item.part_id == "10G-SFP+"
+ - test_three.inventory_item.tags[0] == 4
+ - test_three.inventory_item.discovered == True
+ - test_three.msg == "inventory_item 10G-SFP+ updated"
+
+- name: "INVENTORY_ITEM 4: Delete inventory item"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: 10G-SFP+
+ state: absent
+ register: test_four
+
+- name: "INVENTORY_ITEM 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four.inventory_item.name == "10G-SFP+"
+ - test_four.inventory_item.device == 1
+ - test_four.inventory_item.asset_tag == "1234"
+ - test_four.inventory_item.serial == "1234"
+ - test_four.inventory_item.description == "New SFP"
+ - test_four.inventory_item.manufacturer == 1
+ - test_four.inventory_item.part_id == "10G-SFP+"
+ - test_four.inventory_item.tags[0] == 4
+ - test_four.msg == "inventory_item 10G-SFP+ deleted"
+
+- name: "INVENTORY_ITEM 5: PREWORK - Create inventory item role"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Processor
+ color: FFFFFF
+ state: present
+ register: test_five_prework
+
+- name: "INVENTORY_ITEM 5: Create inventory item with role"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: test_processor
+ inventory_item_role: Processor
+ state: present
+ register: test_five
+
+- name: "INVENTORY_ITEM 5: ASSERT - Inventory item creation with role"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five.diff.before.state == "absent"
+ - test_five.diff.after.state == "present"
+ - test_five.inventory_item.name == "test_processor"
+ - test_five.inventory_item.role == test_five_prework.inventory_item_role.id
+ - test_five.inventory_item.device == 1
+ - test_five.msg == "inventory_item test_processor created"
+
+- name: "INVENTORY_ITEM 6: Create inventory item with missing role"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: test_processor
+ inventory_item_role: Foo
+ state: present
+ ignore_errors: true
+ register: test_six
+
+- name: "INVENTORY_ITEM 6: ASSERT - Inventory item creation with missing role"
+ ansible.builtin.assert:
+ that:
+ - test_six.failed
+ - test_six.msg == "Could not resolve id of inventory_item_role: Foo"
+
+- name: "INVENTORY_ITEM 7: Create inventory item with component"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: test_component
+ component_type: dcim.interface
+ component:
+ name: GigabitEthernet2
+ device: test100
+ state: present
+ register: test_seven
+
+- name: "INVENTORY_ITEM 7: ASSERT - Inventory item creation with component"
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven.diff.before.state == "absent"
+ - test_seven.diff.after.state == "present"
+ - test_seven.inventory_item.name == "test_component"
+ - test_seven.inventory_item.component_type == "dcim.interface"
+ - test_seven.inventory_item.component_id == 4
+ - test_seven.inventory_item.device == 1
+ - test_seven.msg == "inventory_item test_component created"
+
+- name: "INVENTORY_ITEM 8: Create inventory item with missing component_type"
+ netbox.netbox.netbox_inventory_item:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: test_component
+ component:
+ name: GigabitEthernet2
+ device: test100
+ state: present
+ ignore_errors: true
+ register: test_eight
+
+- name: "INVENTORY_ITEM 8: ASSERT - Inventory item creation with missing component_type"
+ ansible.builtin.assert:
+ that:
+ - test_eight.failed
+ - test_eight.msg == "parameters are required together: component_type, component"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_inventory_item_role.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,98 @@
+---
+##
+##
+### NETBOX_INVENTORY_ITEM_ROLE
+##
+##
+- name: "INVENTORY_ITEM_ROLE 1: Necessary info creation"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Inventory Item Role
+ color: FFFFFF
+ state: present
+ register: test_one
+
+- name: "INVENTORY_ITEM_ROLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['inventory_item_role']['name'] == "Test Inventory Item Role"
+ - test_one['inventory_item_role']['slug'] == "test-inventory-item-role"
+ - test_one['inventory_item_role']['color'] == "ffffff"
+ - test_one['msg'] == "inventory_item_role Test Inventory Item Role created"
+
+- name: "INVENTORY_ITEM_ROLE 2: Create duplicate"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Inventory Item Role
+ color: FFFFFF
+ state: present
+ register: test_two
+
+- name: "INVENTORY_ITEM_ROLE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['inventory_item_role']['name'] == "Test Inventory Item Role"
+ - test_two['inventory_item_role']['slug'] == "test-inventory-item-role"
+ - test_two['inventory_item_role']['color'] == "ffffff"
+ - test_two['msg'] == "inventory_item_role Test Inventory Item Role already exists"
+
+- name: "INVENTORY_ITEM_ROLE 3: ASSERT - Update"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Inventory Item Role
+ color: "003EFF"
+ state: present
+ register: test_three
+
+- name: "INVENTORY_ITEM_ROLE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['color'] == "003eff"
+ - test_three['inventory_item_role']['name'] == "Test Inventory Item Role"
+ - test_three['inventory_item_role']['slug'] == "test-inventory-item-role"
+ - test_three['inventory_item_role']['color'] == "003eff"
+ - test_three['msg'] == "inventory_item_role Test Inventory Item Role updated"
+
+- name: "INVENTORY_ITEM_ROLE 4: ASSERT - Delete"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Inventory Item Role
+ state: absent
+ register: test_four
+
+- name: "INVENTORY_ITEM_ROLE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "inventory_item_role Test Inventory Item Role deleted"
+
+- name: "INVENTORY_ITEM_ROLE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_inventory_item_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Inventory Item Role
+ state: absent
+ register: test_five
+
+- name: "INVENTORY_ITEM_ROLE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['inventory_item_role'] == None
+ - test_five['msg'] == "inventory_item_role Test Inventory Item Role already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ip_address.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,401 @@
+---
+##
+##
+### NETBOX_IP_ADDRESS
+##
+##
+- name: "1 - Create IP address within NetBox with only required information - State: Present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.1.10/30
+ state: present
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['msg'] == "ip_address 192.168.1.10/30 created"
+ - test_one['ip_address']['address'] == "192.168.1.10/30"
+
+- name: 2 - Update 192.168.1.10/30
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.1.10/30
+ description: Updated ip address
+ tags:
+ - Updated
+ state: present
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_two is changed
+ - test_two['diff']['after']['description'] == "Updated ip address"
+ - test_two['diff']['after']['tags'][0] == 10
+ - test_two['msg'] == "ip_address 192.168.1.10/30 updated"
+ - test_two['ip_address']['address'] == "192.168.1.10/30"
+ - test_two['ip_address']['tags'][0] == 10
+ - test_two['ip_address']['description'] == "Updated ip address"
+
+- name: "3 - Delete IP - 192.168.1.10 - State: Absent"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.1.10/30
+ state: absent
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+ - test_three['msg'] == "ip_address 192.168.1.10/30 deleted"
+
+- name: "4 - Create IP in global VRF - 192.168.1.20/30 - State: Present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.1.20/30
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['msg'] == "ip_address 192.168.1.20/30 created"
+ - test_four['ip_address']['address'] == "192.168.1.20/30"
+
+# Enforce uniqueness in NetBox 3.7
+# - name: "5 - Create IP in global VRF - 192.168.1.20/30 - State: New"
+# netbox.netbox.netbox_ip_address:
+# netbox_url: http://localhost:32768
+# netbox_token: 0123456789abcdef0123456789abcdef01234567
+# data:
+# address: 192.168.1.20/30
+# state: new
+# register: test_five
+
+# - name: "5 - ASSERT"
+# assert:
+# that:
+# - test_five is changed
+# - test_five['diff']['before']['state'] == "absent"
+# - test_five['diff']['after']['state'] == "present"
+# - test_five['msg'] == "ip_address 192.168.1.20/30 created"
+# - test_five['ip_address']['address'] == "192.168.1.20/30"
+
+- name: "6 - Create new address with only prefix specified - State: new"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 192.168.100.0/24
+ state: new
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['msg'] == "ip_address 192.168.100.1/24 created"
+ - test_six['ip_address']['address'] == "192.168.100.1/24"
+
+- name: 7 - Create IP address with several specified
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ address: 172.16.1.20/24
+ vrf: Test VRF
+ tenant: Test Tenant
+ status: Reserved
+ role: Loopback
+ description: Test description
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven['diff']['before']['state'] == "absent"
+ - test_seven['diff']['after']['state'] == "present"
+ - test_seven['msg'] == "ip_address 172.16.1.20/24 created"
+ - test_seven['ip_address']['address'] == "172.16.1.20/24"
+ - test_seven['ip_address']['description'] == "Test description"
+ - test_seven['ip_address']['family'] == 4
+ - test_seven['ip_address']['role'] == "loopback"
+ - test_seven['ip_address']['status'] == "reserved"
+ - test_seven['ip_address']['tags'][0] == 4
+ - test_seven['ip_address']['tenant'] == 1
+ - test_seven['ip_address']['vrf'] == 1
+
+- name: 8 - Create IP address and assign a nat_inside IP
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ address: 10.10.1.30/16
+ vrf: Test VRF
+ nat_inside:
+ address: 172.16.1.20
+ vrf: Test VRF
+ register: test_eight
+
+- name: 8 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['diff']['before']['state'] == "absent"
+ - test_eight['diff']['after']['state'] == "present"
+ - test_eight['msg'] == "ip_address 10.10.1.30/16 created"
+ - test_eight['ip_address']['address'] == "10.10.1.30/16"
+ - test_eight['ip_address']['family'] == 4
+ - test_eight['ip_address'].get('nat_inside')
+ - test_eight['ip_address']['vrf'] == 1
+
+- name: "9 - Create IP address on GigabitEthernet2 - test100 - State: present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ address: 10.10.200.30/16
+ assigned_object:
+ name: GigabitEthernet2
+ device: test100
+ register: test_nine
+
+- name: 9 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_nine is changed
+ - test_nine['diff']['before']['state'] == "absent"
+ - test_nine['diff']['after']['state'] == "present"
+ - test_nine['msg'] == "ip_address 10.10.200.30/16 created"
+ - test_nine['ip_address']['address'] == "10.10.200.30/16"
+ - test_nine['ip_address']['family'] == 4
+ - test_nine['ip_address']['assigned_object_type'] == "dcim.interface"
+ - test_nine['ip_address']['assigned_object_id'] == 4
+
+- name: "10 - Create IP address on GigabitEthernet2 - test100 - State: new"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ prefix: 10.10.0.0/16
+ assigned_object:
+ name: GigabitEthernet2
+ device: test100
+ state: new
+ register: test_ten
+
+- name: 10 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_ten is changed
+ - test_ten['diff']['before']['state'] == "absent"
+ - test_ten['diff']['after']['state'] == "present"
+ - test_ten['msg'] == "ip_address 10.10.0.1/16 created"
+ - test_ten['ip_address']['address'] == "10.10.0.1/16"
+ - test_ten['ip_address']['family'] == 4
+ - test_ten['ip_address']['assigned_object_type'] == "dcim.interface"
+ - test_ten['ip_address']['assigned_object_id'] == 4
+
+- name: "11 - Create IP address on GigabitEthernet2 - test100 - State: present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ prefix: 192.168.100.0/24
+ assigned_object:
+ name: GigabitEthernet2
+ device: test100
+ state: present
+ register: test_eleven
+
+- name: 11 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eleven is changed
+ - test_eleven['diff']['before']['state'] == "absent"
+ - test_eleven['diff']['after']['state'] == "present"
+ - test_eleven['msg'] == "ip_address 192.168.100.2/24 created"
+ - test_eleven['ip_address']['address'] == "192.168.100.2/24"
+
+- name: 12 - Duplicate - 192.168.100.2/24 on interface
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.100.2/24
+ assigned_object:
+ name: GigabitEthernet2
+ device: test100
+ state: present
+ register: test_twelve
+
+- name: 12 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_twelve['changed']
+ - test_twelve['msg'] == "ip_address 192.168.100.2/24 already exists"
+ - test_twelve['ip_address']['address'] == "192.168.100.2/24"
+ - test_twelve['ip_address']['assigned_object_type'] == "dcim.interface"
+ - test_twelve['ip_address']['assigned_object_id'] == 4
+
+- name: 13 - Duplicate - 192.168.100.2/24
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 192.168.100.2/24
+ state: present
+ register: test_thirteen
+
+- name: 13 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_thirteen['changed']
+ - test_thirteen['msg'] == "ip_address 192.168.100.2/24 already exists"
+ - test_thirteen['ip_address']['address'] == "192.168.100.2/24"
+
+- name: "14 - Create IP address on Eth0 - test100-vm - State: present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ address: 10.188.1.100/24
+ assigned_object:
+ name: Eth0
+ virtual_machine: test100-vm
+ register: test_fourteen
+
+- name: 14 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_fourteen is changed
+ - test_fourteen['diff']['before']['state'] == "absent"
+ - test_fourteen['diff']['after']['state'] == "present"
+ - test_fourteen['msg'] == "ip_address 10.188.1.100/24 created"
+ - test_fourteen['ip_address']['address'] == "10.188.1.100/24"
+ - test_fourteen['ip_address']['family'] == 4
+ - test_fourteen['ip_address']['assigned_object_type'] == "virtualization.vminterface"
+ - test_fourteen['ip_address']['assigned_object_id'] == 1
+
+# Enforce uniqueness in NetBox 3.7
+# - name: "15 - Create same IP address on Eth0 - test101-vm - State: present"
+# netbox.netbox.netbox_ip_address:
+# netbox_url: http://localhost:32768
+# netbox_token: 0123456789abcdef0123456789abcdef01234567
+# data:
+# family: 4
+# address: 10.188.1.100/24
+# assigned_object:
+# name: Eth0
+# virtual_machine: test101-vm
+# state: "present"
+# register: test_fifteen
+
+# - name: "15 - ASSERT"
+# assert:
+# that:
+# - test_fifteen is changed
+# - test_fifteen['diff']['before']['state'] == "absent"
+# - test_fifteen['diff']['after']['state'] == "present"
+# - test_fifteen['msg'] == "ip_address 10.188.1.100/24 created"
+# - test_fifteen['ip_address']['address'] == "10.188.1.100/24"
+# - test_fifteen['ip_address']['family'] == 4
+# - test_fifteen['ip_address']['assigned_object_type'] == "virtualization.vminterface"
+# - test_fifteen['ip_address']['assigned_object_id'] == 6
+
+- name: "16 - Create IP address with no mask - State: Present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ address: 10.120.10.1
+ state: present
+ register: test_sixteen
+
+- name: 16 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_sixteen is changed
+ - test_sixteen['diff']['before']['state'] == "absent"
+ - test_sixteen['diff']['after']['state'] == "present"
+ - test_sixteen['msg'] == "ip_address 10.120.10.1/32 created"
+ - test_sixteen['ip_address']['address'] == "10.120.10.1/32"
+
+- name: "17 - Create IP address on GigabitEthernet2 - test100 with interface value - State: present"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ address: 10.10.200.31/16
+ interface:
+ device: test100
+ name: GigabitEthernet2
+ register: test_seventeen
+
+- name: 17 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seventeen is changed
+ - test_seventeen['diff']['before']['state'] == "absent"
+ - test_seventeen['diff']['after']['state'] == "present"
+ - test_seventeen['msg'] == "ip_address 10.10.200.31/16 created"
+ - test_seventeen['ip_address']['address'] == "10.10.200.31/16"
+ - test_seventeen['ip_address']['family'] == 4
+ - test_seventeen['ip_address']['assigned_object_type'] == "dcim.interface"
+ - test_seventeen['ip_address']['assigned_object_id'] == 4
+
+- name: "18 - Create IP address on GigabitEthernet2 - test100 with interface value - State: new"
+ netbox.netbox.netbox_ip_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ prefix: 10.10.0.0/16
+ interface:
+ name: GigabitEthernet2
+ device: test100
+ state: new
+ register: test_eighteen
+
+- name: 18 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eighteen is changed
+ - test_eighteen['diff']['before']['state'] == "absent"
+ - test_eighteen['diff']['after']['state'] == "present"
+ - test_eighteen['msg'] == "ip_address 10.10.0.2/16 created"
+ - test_eighteen['ip_address']['address'] == "10.10.0.2/16"
+ - test_eighteen['ip_address']['family'] == 4
+ - test_eighteen['ip_address']['assigned_object_type'] == "dcim.interface"
+ - test_eighteen['ip_address']['assigned_object_id'] == 4
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_ipam_role.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,94 @@
+---
+##
+##
+### NETBOX_IPAM_ROLE
+##
+##
+- name: "IPAM_ROLE 1: Necessary info creation"
+ netbox.netbox.netbox_ipam_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test IPAM Role
+ state: present
+ register: test_one
+
+- name: "IPAM_ROLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['role']['name'] == "Test IPAM Role"
+ - test_one['role']['slug'] == "test-ipam-role"
+ - test_one['msg'] == "role Test IPAM Role created"
+
+- name: "IPAM_ROLE 2: Create duplicate"
+ netbox.netbox.netbox_ipam_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test IPAM Role
+ state: present
+ register: test_two
+
+- name: "IPAM_ROLE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['role']['name'] == "Test IPAM Role"
+ - test_two['role']['slug'] == "test-ipam-role"
+ - test_two['msg'] == "role Test IPAM Role already exists"
+
+- name: "IPAM_ROLE 3: ASSERT - Update"
+ netbox.netbox.netbox_ipam_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test IPAM Role
+ weight: 4096
+ state: present
+ register: test_three
+
+- name: "IPAM_ROLE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['weight'] == 4096
+ - test_three['role']['name'] == "Test IPAM Role"
+ - test_three['role']['slug'] == "test-ipam-role"
+ - test_three['role']['weight'] == 4096
+ - test_three['msg'] == "role Test IPAM Role updated"
+
+- name: "IPAM_ROLE 4: ASSERT - Delete"
+ netbox.netbox.netbox_ipam_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test IPAM Role
+ state: absent
+ register: test_four
+
+- name: "IPAM_ROLE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "role Test IPAM Role deleted"
+
+- name: "IPAM_ROLE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_ipam_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test IPAM Role
+ state: absent
+ register: test_five
+
+- name: "IPAM_ROLE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['role'] == None
+ - test_five['msg'] == "role Test IPAM Role already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_journal_entry.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,26 @@
+---
+##
+##
+### NETBOX_JOURNAL_ENTRY
+##
+##
+- name: "JOURNAL ENTRY 1: Creation"
+ netbox.netbox.netbox_journal_entry:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ assigned_object_type: dcim.device
+ assigned_object_id: 1
+ comments: |
+ Comment on device
+ state: new
+ register: test_one
+
+- name: "JOURNAL_ENTRY 1: ASSERT - Creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['journal_entry']['kind'] == "info"
+ - test_one['msg'] == "journal_entry created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,99 @@
+---
+##
+##
+### NETBOX_L2VPN
+##
+##
+- name: "L2VPN 1: Necessary info creation"
+ netbox.netbox.netbox_l2vpn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test L2VPN
+ type: vxlan
+ state: present
+ register: test_one
+
+- name: "L2VPN 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['l2vpn']['name'] == "Test L2VPN"
+ - test_one['l2vpn']['type'] == "vxlan"
+ - test_one['msg'] == "l2vpn Test L2VPN created"
+
+- name: "L2VPN 2: Create duplicate"
+ netbox.netbox.netbox_l2vpn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test L2VPN
+ type: vxlan
+ state: present
+ register: test_two
+
+- name: "L2VPN 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['l2vpn']['name'] == "Test L2VPN"
+ - test_two['l2vpn']['type'] == "vxlan"
+ - test_two['msg'] == "l2vpn Test L2VPN already exists"
+
+- name: "L2VPN 4: ASSERT - Update"
+ netbox.netbox.netbox_l2vpn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test L2VPN
+ type: vxlan
+ tenant: Test Tenant
+ description: Updated description
+ import_targets:
+ - 4000:4000
+ - 5000:5000
+ export_targets:
+ - 6000:6000
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_four
+
+- name: "L2VPN: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['description'] == "Updated description"
+ - test_four['diff']['after']['import_targets'] == [1, 2]
+ - test_four['diff']['after']['export_targets'] == [3]
+ - test_four['diff']['after']['tags'][0] == 4
+ - test_four['l2vpn']['name'] == "Test L2VPN"
+ - test_four['l2vpn']['tenant'] == 1
+ - test_four['l2vpn']['import_targets'] == [1, 2]
+ - test_four['l2vpn']['export_targets'] == [3]
+ - test_four['l2vpn']['description'] == "Updated description"
+ - test_four['l2vpn']['tags'][0] == 4
+ - test_four['msg'] == "l2vpn Test L2VPN updated"
+
+- name: "L2VPN: ASSERT - Delete"
+ netbox.netbox.netbox_l2vpn:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test L2VPN
+ type: vxlan
+ state: absent
+ register: test_six
+
+- name: "L2VPN 6: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['l2vpn']['name'] == "Test L2VPN"
+ - test_six['l2vpn']['tenant'] == 1
+ - test_six['l2vpn']['type'] == "vxlan"
+ - test_six['l2vpn']['description'] == "Updated description"
+ - test_six['l2vpn']['tags'][0] == 4
+ - test_six['msg'] == "l2vpn Test L2VPN deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_l2vpn_termination.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,94 @@
+---
+##
+##
+### NETBOX_L2VPN_TERMINATION
+##
+##
+- name: "L2VPN_TERMINATION 1: Necessary info creation"
+ netbox.netbox.netbox_l2vpn_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ l2vpn: 1
+ assigned_object_type: dcim.interface
+ assigned_object_id: 1
+ state: present
+ register: test_one
+
+- name: "L2VPN_TERMINATION 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['l2vpn_termination']['l2vpn'] == 1
+ - test_one['l2vpn_termination']['assigned_object_type'] == "dcim.interface"
+ - test_one['l2vpn_termination']['assigned_object_id'] == 1
+ - test_one['msg'] == "l2vpn_termination l2vpn 1 <> dcim.interface 1 created"
+
+- name: "L2VPN_TERMINATION 2: Create duplicate"
+ netbox.netbox.netbox_l2vpn_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ l2vpn: 1
+ assigned_object_type: dcim.interface
+ assigned_object_id: 1
+ state: present
+ register: test_two
+
+- name: "L2VPN_TERMINATION 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['l2vpn_termination']['l2vpn'] == 1
+ - test_two['l2vpn_termination']['assigned_object_type'] == "dcim.interface"
+ - test_two['l2vpn_termination']['assigned_object_id'] == 1
+ - test_two['msg'] == "l2vpn_termination l2vpn 1 <> dcim.interface 1 already exists"
+
+- name: "L2VPN_TERMINATION 3: Update"
+ netbox.netbox.netbox_l2vpn_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ l2vpn: 1
+ assigned_object_type: dcim.interface
+ assigned_object_id: 1
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "L2VPN_TERMINATION 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['l2vpn_termination']['l2vpn'] == 1
+ - test_three['l2vpn_termination']['assigned_object_type'] == "dcim.interface"
+ - test_three['l2vpn_termination']['assigned_object_id'] == 1
+ - test_three['l2vpn_termination']['tags'][0] == 4
+ - test_three['msg'] == "l2vpn_termination l2vpn 1 <> dcim.interface 1 updated"
+
+- name: "L2VPN_TERMINATION 4: Delete"
+ netbox.netbox.netbox_l2vpn_termination:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ l2vpn: 1
+ assigned_object_type: dcim.interface
+ assigned_object_id: 1
+ state: absent
+ register: test_four
+
+- name: "L2VPN_TERMINATION 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['l2vpn_termination']['l2vpn'] == 1
+ - test_four['l2vpn_termination']['assigned_object_type'] == "dcim.interface"
+ - test_four['l2vpn_termination']['assigned_object_id'] == 1
+ - test_four['l2vpn_termination']['tags'][0] == 4
+ - test_four['msg'] == "l2vpn_termination l2vpn 1 <> dcim.interface 1 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_location.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,85 @@
+---
+##
+##
+### NETBOX_LOCATION
+##
+##
+- name: "LOCATION 1: Necessary info creation"
+ netbox.netbox.netbox_location:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Location
+ site: Test Site
+ state: present
+ register: test_one
+
+- name: "LOCATION 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['location']['name'] == "Location"
+ - test_one['location']['slug'] == "location"
+ - test_one['location']['site'] == 1
+ - test_one['msg'] == "location Location created"
+
+- name: "LOCATION 2: Create duplicate"
+ netbox.netbox.netbox_location:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Location
+ site: Test Site
+ state: present
+ register: test_two
+
+- name: "LOCATION 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['location']['name'] == "Location"
+ - test_two['location']['slug'] == "location"
+ - test_two['location']['site'] == 1
+ - test_two['msg'] == "location Location already exists"
+
+- name: "LOCATION 3: Update"
+ netbox.netbox.netbox_location:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Location
+ parent_location: Parent Rack Group
+ description: This is a location
+ state: present
+ register: test_three
+
+- name: "LOCATION 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['parent'] == 2
+ - test_three['diff']['after']['description'] == "This is a location"
+ - test_three['location']['name'] == "Location"
+ - test_three['location']['slug'] == "location"
+ - test_three['location']['parent'] == 2
+ - test_three['location']['description'] == "This is a location"
+ - test_three['msg'] == "location Location updated"
+
+- name: "LOCATION 4: Delete"
+ netbox.netbox.netbox_location:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Location
+ state: absent
+ register: test_four
+
+- name: "LOCATION 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "location Location deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_lookup.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+##
+##
+### NETBOX_LOOKUP
+##
+##
+- name: "NETBOX_LOOKUP 1: Lookup returns exactly two sites"
+ ansible.builtin.assert:
+ that: query_result == "3"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'sites', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567') | count }}"
+
+- name: "NETBOX_LOOKUP 2: Query doesn't return Wibble (sanity check json_query)"
+ ansible.builtin.assert:
+ that: query_result == "0"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567') | community.general.json_query('[?value.display==`Wibble`]')
+ | count }}"
+
+- name: "NETBOX_LOOKUP 3: Device query returns exactly one TestDeviceR1"
+ ansible.builtin.assert:
+ that: query_result == "1"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567') | community.general.json_query('[?value.display==`TestDeviceR1`]')
+ | count }}"
+
+- name: "NETBOX_LOOKUP 4: VLAN ID 400 can be queried and is named 'Test VLAN'"
+ ansible.builtin.assert:
+ that: query_result == 'Test VLAN'
+ vars:
+ query_result: "{{ (query('netbox.netbox.nb_lookup', 'vlans', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567') | community.general.json_query('[?value.vid==`400`].value.name'))[0]
+ }}"
+
+- name: "NETBOX_LOOKUP 5: Add one of two devices for lookup filter test."
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: L1
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ tags:
+ - nolookup
+ state: present
+
+- name: "NETBOX_LOOKUP 6: Add two of two devices for lookup filter test."
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: L2
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site2
+ status: Staged
+ tags:
+ - lookup
+ state: present
+
+- name: "NETBOX_LOOKUP 7: Device query returns exactly the L2 device"
+ ansible.builtin.assert:
+ that: query_result == "1"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_filter='role=core-switch tag=lookup', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567')
+ | community.general.json_query('[?value.display==`L2`]') | count }}"
+
+- name: "NETBOX_LOOKUP 8: Device query specifying raw data returns payload without key/value dict"
+ ansible.builtin.assert:
+ that: query_result == "1"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_filter='role=core-switch tag=lookup', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567',
+ raw_data=True) | community.general.json_query('[?display==`L2`]') | count }}"
+
+- name: "NETBOX_LOOKUP 9: Device query specifying multiple sites, Make sure L1 and L2 are in the results"
+ ansible.builtin.assert:
+ that:
+ - "'L1' in query_result"
+ - "'L2' in query_result"
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_filter='role=core-switch site=test-site site=test-site2', api_endpoint='http://localhost:32768',
+ token='0123456789abcdef0123456789abcdef01234567', raw_data=True) | community.general.json_query('[*].display') }}"
+
+- name: "NETBOX_LOOKUP 10: Device query by ID"
+ ansible.builtin.assert:
+ that: query_result
+ vars:
+ query_result: "{{ query('netbox.netbox.nb_lookup', 'devices', api_filter='id=1', api_endpoint='http://localhost:32768', token='0123456789abcdef0123456789abcdef01234567')
+ }}"
+
+- name: "NETBOX_LOOKUP 11: Device query by ansible variable"
+ ansible.builtin.set_fact:
+ hostname: "L2"
+
+- name: "NETBOX LOOKUP 11.1: Obtain details of a single device from NetBox"
+ ansible.builtin.debug:
+ msg: >
+ "Device {{item.0.value.display}} (ID: {{item.0.key}}) was
+ manufactured by {{ item.0.value.device_type.manufacturer.name }}"
+ loop:
+ - '{{ query("netbox.netbox.nb_lookup", "devices",
+ api_filter="name=" ~hostname,
+ api_endpoint="http://localhost:32768",
+ token="0123456789abcdef0123456789abcdef01234567") }}'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_mac_address.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,70 @@
+---
+##
+##
+### NETBOX_MAC_ADDRESS
+##
+##
+- name: "MAC 1: Create MAC address with required parameters"
+ netbox.netbox.netbox_mac_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ mac_address: "00:11:22:33:44:55"
+ state: present
+ register: test_one
+
+- name: "MAC 1: ASSERT - Create MAC address"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['mac_address']['mac_address'] == "00:11:22:33:44:55"
+ - test_one['msg'] == "mac_address 00:11:22:33:44:55 created"
+
+- name: "MAC 2: Create MAC address with all parameters"
+ netbox.netbox.netbox_mac_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ mac_address: "AA:BB:CC:DD:EE:F0"
+ assigned_object:
+ device: Test Nexus One
+ name: Ethernet1/1
+ description: "Test MAC address"
+ comments: "Test MAC address comment"
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_two
+
+- name: "MAC 2: ASSERT - Create MAC address with all parameters"
+ ansible.builtin.assert:
+ that:
+ - test_two is changed
+ - test_two['diff']['before']['state'] == "absent"
+ - test_two['diff']['after']['state'] == "present"
+ - test_two['mac_address']['mac_address'] == "AA:BB:CC:DD:EE:F0"
+ - test_two['mac_address']['assigned_object_type'] == "dcim.interface"
+ - test_two['mac_address']['assigned_object_id'] == 1
+ - test_two['mac_address']['description'] == "Test MAC address"
+ - test_two['mac_address']['comments'] == "Test MAC address comment"
+ - test_two['mac_address']['tags'][0] == 4
+ - test_two['msg'] == "mac_address AA:BB:CC:DD:EE:F0 created"
+
+- name: "MAC 3: Delete MAC address"
+ netbox.netbox.netbox_mac_address:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ mac_address: "00:11:22:33:44:55"
+ state: absent
+ register: test_three
+
+- name: "MAC 3: ASSERT - Delete MAC address"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+ - test_three['msg'] == "mac_address 00:11:22:33:44:55 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_manufacturer.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,91 @@
+---
+##
+##
+### NETBOX_MANUFACTURER
+##
+##
+- name: "MANUFACTURER 1: Necessary info creation"
+ netbox.netbox.netbox_manufacturer:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Manufacturer Two
+ state: present
+ register: test_one
+
+- name: "MANUFACTURER 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['manufacturer']['name'] == "Test Manufacturer Two"
+ - test_one['manufacturer']['slug'] == "test-manufacturer-two"
+ - test_one['msg'] == "manufacturer Test Manufacturer Two created"
+
+- name: "MANUFACTURER 2: Create duplicate"
+ netbox.netbox.netbox_manufacturer:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Manufacturer Two
+ state: present
+ register: test_two
+
+- name: "MANUFACTURER 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['manufacturer']['name'] == "Test Manufacturer Two"
+ - test_two['manufacturer']['slug'] == "test-manufacturer-two"
+ - test_two['msg'] == "manufacturer Test Manufacturer Two already exists"
+
+- name: "MANUFACTURER 3: Update"
+ netbox.netbox.netbox_manufacturer:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test manufacturer two
+ state: present
+ register: test_three
+
+- name: "MANUFACTURER 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three['changed']
+ - test_three['manufacturer']['name'] == "test manufacturer two"
+ - test_three['manufacturer']['slug'] == "test-manufacturer-two"
+ - test_three['msg'] == "manufacturer test manufacturer two updated"
+
+- name: "MANUFACTURER 4: ASSERT - Delete"
+ netbox.netbox.netbox_manufacturer:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: test manufacturer two
+ state: absent
+ register: test_four
+
+- name: "MANUFACTURER 3: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "manufacturer test manufacturer two deleted"
+
+- name: "MANUFACTURER 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_manufacturer:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Manufacturer Two
+ state: absent
+ register: test_five
+
+- name: "MANUFACTURER 5: ASSERT - Delete non existing"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['manufacturer'] == None
+ - test_five['msg'] == "manufacturer Test Manufacturer Two already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,107 @@
+---
+##
+##
+### NETBOX_MODULE
+##
+##
+- name: "MODULE 1: Necessary info creation"
+ netbox.netbox.netbox_module:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ module_bay: Network Module
+ module_type: C9300-NM-8X
+ state: present
+ register: test_one
+
+- name: "MODULE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['module']['device'] == "C9300-DEMO"
+ - test_one['module']['module_bay'] == "Network Module"
+ - test_one['module']['module_type'] == "C9300-NM-8X"
+ - test_one['msg'] == "module ws-test-3750 created"
+
+- name: "MODULE 2: Create duplicate"
+ netbox.netbox.netbox_module:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ module_bay: Network Module
+ module_type: C9300-NM-8X
+ state: present
+ register: test_two
+
+- name: "MODULE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['module']['device'] == "C9300-DEMO"
+ - test_two['module']['module_bay'] == "Network Module"
+ - test_two['module']['module_type'] == "C9300-NM-8X"
+ - test_two['msg'] == "module C9300-NM-8X already exists in slot Network Module of C9300-DEMO"
+
+- name: "MODULE 3: ASSERT - Update"
+ netbox.netbox.netbox_module:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ module_bay: Network Module
+ module_type: C9300-NM-8X
+ serial: XXXNNNNXXXX
+ state: present
+ register: test_three
+
+- name: "MODULE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['serial'] == "XXXNNNNXXXX"
+ - test_three['module']['device'] == "C9300-DEMO"
+ - test_three['module']['module_bay'] == "Network Module"
+ - test_three['module']['module_type'] == "C9300-NM-8X"
+ - test_three['module']['serial'] == "XXXNNNNXXXX"
+ - test_three['msg'] == "module C9300-DEMO - Network Module - C9300-NM-8X updated"
+
+- name: "MODULE 4: ASSERT - Delete"
+ netbox.netbox.netbox_module:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ module_bay: Network Module
+ module_type: C9300-NM-8X
+ state: absent
+ register: test_four
+
+- name: "MODULE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "module C9300-NM-8X deleted in slot Network Module of C9300-DEMO"
+
+- name: "MODULE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_module:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ module_bay: Network Module
+ module_type: C9300-NM-2Y
+ state: absent
+ register: test_five
+
+- name: "MODULE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['module'] == None
+ - test_five['msg'] == "module Test Module Type already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_bay.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+##
+##
+### NETBOX_MODULE_BAY
+##
+##
+- name: "MODULE 1: Necessary info creation"
+ netbox.netbox.netbox_module_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ name: Network Module
+ position: 0
+ state: present
+ register: test_one
+
+- name: "MODULE BAY 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['module_bay']['device'] == "C9300-DEMO"
+ - test_one['module_bay']['name'] == "Network Module"
+ - test_one['module_bay']['position'] == "0"
+ - test_one['msg'] == "module_bay Network Module in C9300-DEMO position 0 created"
+
+- name: "MODULE BAY 2: Create duplicate"
+ netbox.netbox.netbox_module_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ name: Network Module
+ position: 0
+ state: present
+ register: test_two
+
+- name: "MODULE BAY 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['module_bay']['device'] == "C9300-DEMO"
+ - test_two['module_bay']['name'] == "Network Module"
+ - test_two['module_bay']['position'] == "0"
+ - test_two['msg'] == "module_bay Network Module in C9300-DEMO position 0 already exists"
+
+- name: "MODULE BAY 3: ASSERT - Update"
+ netbox.netbox.netbox_module_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ name: Network Module
+ position: 0
+ label: TEST
+ state: present
+ register: test_three
+
+- name: "MODULE BAY 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['label'] == "TEST"
+ - test_three['module_bay']['device'] == "C9300-DEMO"
+ - test_three['module_bay']['name'] == "Network Module"
+ - test_three['module_bay']['position'] == "0"
+ - test_three['module_bay']['label'] == "TEST"
+ - test_three['msg'] == "module_bay Network Module in C9300-DEMO position 0 updated with label TEST"
+
+- name: "MODULE BAY 4: ASSERT - Delete"
+ netbox.netbox.netbox_module_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ name: Network Module
+ state: absent
+ register: test_four
+
+- name: "MODULE BAY 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "module_bay Network Module in C9300-DEMO position 0 deleted"
+
+- name: "MODULE BAY 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_module_bay:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: C9300-DEMO
+ name: Network Module
+ state: absent
+ register: test_five
+
+- name: "MODULE BAY 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['module_bay'] == None
+ - test_five['msg'] == "module_bay Network Module already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_module_type.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,97 @@
+---
+##
+##
+### NETBOX_MODULE_TYPE
+##
+##
+- name: "MODULE_TYPE 1: Necessary info creation"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ state: present
+ register: test_one
+
+- name: "MODULE_TYPE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['module_type']['model'] == "ws-test-3750"
+ - test_one['module_type']['manufacturer'] == 3
+ - test_one['msg'] == "module_type ws-test-3750 created"
+
+- name: "MODULE_TYPE 2: Create duplicate"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ state: present
+ register: test_two
+
+- name: "MODULE_TYPE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_one['module_type']['model'] == "ws-test-3750"
+ - test_one['module_type']['manufacturer'] == 3
+ - test_two['msg'] == "module_type ws-test-3750 already exists"
+
+- name: "MODULE_TYPE 3: ASSERT - Update"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: ws-test-3750
+ manufacturer: Test Manufacturer
+ part_number: ws-3750g-v2
+ state: present
+ register: test_three
+
+- name: "MODULE_TYPE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['part_number'] == "ws-3750g-v2"
+ - test_three['module_type']['model'] == "ws-test-3750"
+ - test_three['module_type']['manufacturer'] == 3
+ - test_three['module_type']['part_number'] == "ws-3750g-v2"
+ - test_three['msg'] == "module_type ws-test-3750 updated"
+
+- name: "MODULE_TYPE 4: ASSERT - Delete"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: ws-test-3750
+ state: absent
+ register: test_four
+
+- name: "MODULE_TYPE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "module_type ws-test-3750 deleted"
+
+- name: "MODULE_TYPE 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: Test Module Type
+ state: absent
+ register: test_five
+
+- name: "MODULE_TYPE 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['module_type'] == None
+ - test_five['msg'] == "module_type Test Module Type already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_permission.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,169 @@
+---
+##
+##
+### NETBOX_PERMISSION
+##
+##
+- name: "PERMISSION 1: Necessary info creation"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission
+ actions:
+ - view
+ object_types: []
+ state: present
+ register: test_one
+
+- name: "PERMISSION 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['permission']['name'] == "Test Permission"
+ - test_one['msg'] == "permission Test Permission created"
+
+- name: "PERMISSION 2: Create duplicate"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission
+ actions:
+ - view
+ object_types: []
+ state: present
+ register: test_two
+
+- name: "PERMISSION 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['permission']['name'] == "Test Permission"
+ - test_two['msg'] == "permission Test Permission already exists"
+
+- name: "PERMISSION 3: Update"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission
+ description: The test permission
+ enabled: false
+ actions:
+ - view
+ - add
+ - change
+ - delete
+ - extreme_administration
+ object_types:
+ - vpn.tunneltermination
+ - wireless.wirelesslan
+ constraints:
+ name: Foo
+ state: present
+ register: test_three
+
+- name: "PERMISSION 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "The test permission"
+ - test_three['permission']['name'] == "Test Permission"
+ - test_three['permission']['description'] == "The test permission"
+ - test_three['permission']['enabled'] == False
+ - test_three['permission']['actions'] == ["view", "add", "change", "delete", "extreme_administration"]
+ - test_three['permission']['object_types'] == ["vpn.tunneltermination", "wireless.wirelesslan"]
+ - test_three['permission']['constraints']["name"] == "Foo"
+ - test_three['msg'] == "permission Test Permission updated"
+
+- name: "PERMISSION 4: Create second permission"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission 2
+ actions:
+ - view
+ object_types: []
+ state: present
+ register: test_four
+
+- name: "PERMISSION 4: Create second permission"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['permission']['name'] == "Test Permission 2"
+ - test_four['msg'] == "permission Test Permission 2 created"
+
+- name: "PERMISSION 5: Add permission to group"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ permissions:
+ - Test Permission
+ state: present
+ register: test_five
+
+- name: "PERMISSION 5: ASSERT - Add permission to group"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['user_group']['permissions'] == [1]
+
+- name: "PERMISSION 6: Add permission to user"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword2
+ permissions:
+ - Test Permission 2
+ state: present
+ register: test_six
+
+- name: "PERMISSION 6: ASSERT - Add permission to user"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['user']['permissions'] == [2]
+
+- name: "PERMISSION 7: Delete"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission
+ state: absent
+ register: test_seven
+
+- name: "PERMISSION 7: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven['diff']['before']['state'] == "present"
+ - test_seven['diff']['after']['state'] == "absent"
+ - test_seven['msg'] == "permission Test Permission deleted"
+
+- name: "PERMISSION 8: Delete non existing"
+ netbox.netbox.netbox_permission:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Permission
+ state: absent
+ register: test_eight
+
+- name: "PERMISSION 8: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_eight['changed']
+ - test_eight['permission'] == None
+ - test_eight['msg'] == "permission Test Permission already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_platform.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,92 @@
+---
+##
+##
+### NETBOX_PLATFORM
+##
+##
+- name: "PLATFORM 1: Necessary info creation"
+ netbox.netbox.netbox_platform:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Platform
+ state: present
+ register: test_one
+
+- name: "PLATFORM 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['platform']['name'] == "Test Platform"
+ - test_one['platform']['slug'] == "test-platform"
+ - test_one['msg'] == "platform Test Platform created"
+
+- name: "PLATFORM 2: Create duplicate"
+ netbox.netbox.netbox_platform:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Platform
+ state: present
+ register: test_two
+
+- name: "PLATFORM 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['platform']['name'] == "Test Platform"
+ - test_two['platform']['slug'] == "test-platform"
+ - test_two['msg'] == "platform Test Platform already exists"
+
+- name: "PLATFORM 3: ASSERT - Update"
+ netbox.netbox.netbox_platform:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Platform
+ manufacturer: Test Manufacturer
+ state: present
+ register: test_three
+
+- name: "PLATFORM 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['manufacturer'] == 3
+ - test_three['platform']['manufacturer'] == 3
+ - test_three['msg'] == "platform Test Platform updated"
+
+- name: "PLATFORM 4: ASSERT - Delete"
+ netbox.netbox.netbox_platform:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Platform
+ state: absent
+ register: test_four
+
+- name: "PLATFORM 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "platform Test Platform deleted"
+
+- name: "PLATFORM 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_platform:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Platform
+ state: absent
+ register: test_five
+
+- name: "PLATFORM 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['platform'] == None
+ - test_five['msg'] == "platform Test Platform already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_feed.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,126 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_FEED
+##
+##
+- name: "POWER_FEED 1: Necessary info creation"
+ netbox.netbox.netbox_power_feed:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Feed
+ power_panel: Power Panel
+ state: present
+ register: test_one
+
+- name: "POWER_FEED 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_feed']['name'] == "Power Feed"
+ - test_one['power_feed']['power_panel'] == 1
+ - test_one['msg'] == "power_feed Power Feed created"
+
+- name: "POWER_FEED 2: Create duplicate"
+ netbox.netbox.netbox_power_feed:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Feed
+ power_panel: Power Panel
+ state: present
+ register: test_two
+
+- name: "POWER_FEED 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_feed']['name'] == "Power Feed"
+ - test_two['power_feed']['power_panel'] == 1
+ - test_two['msg'] == "power_feed Power Feed already exists"
+
+- name: "POWER_FEED 3: Update power_feed with other fields"
+ netbox.netbox.netbox_power_feed:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Feed
+ power_panel: Power Panel
+ status: offline
+ type: redundant
+ supply: dc
+ phase: three-phase
+ voltage: 400
+ amperage: 32
+ max_utilization: 25
+ comments: totally normal power feed
+ state: present
+ register: test_three
+
+- name: "POWER_FEED 3: ASSERT - Update power_feed with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['status'] == "offline"
+ - test_three['diff']['after']['type'] == "redundant"
+ - test_three['diff']['after']['supply'] == "dc"
+ - test_three['diff']['after']['phase'] == "three-phase"
+ - test_three['diff']['after']['voltage'] == 400
+ - test_three['diff']['after']['amperage'] == 32
+ - test_three['diff']['after']['max_utilization'] == 25
+ - test_three['diff']['after']['comments'] == "totally normal power feed"
+ - test_three['power_feed']['name'] == "Power Feed"
+ - test_three['power_feed']['power_panel'] == 1
+ - test_three['power_feed']['status'] == "offline"
+ - test_three['power_feed']['type'] == "redundant"
+ - test_three['power_feed']['supply'] == "dc"
+ - test_three['power_feed']['phase'] == "three-phase"
+ - test_three['power_feed']['voltage'] == 400
+ - test_three['power_feed']['amperage'] == 32
+ - test_three['power_feed']['max_utilization'] == 25
+ - test_three['power_feed']['comments'] == "totally normal power feed"
+ - test_three['msg'] == "power_feed Power Feed updated"
+
+- name: "POWER_FEED 4: Create Power Feed for Delete Test"
+ netbox.netbox.netbox_power_feed:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Feed 2
+ power_panel: Power Panel
+ state: present
+ register: test_four
+
+- name: "POWER_FEED 4: ASSERT - Create Power Feed for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_feed']['name'] == "Power Feed 2"
+ - test_four['power_feed']['power_panel'] == 1
+ - test_four['msg'] == "power_feed Power Feed 2 created"
+
+- name: "POWER_FEED 5: Delete Power Feed"
+ netbox.netbox.netbox_power_feed:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Feed 2
+ power_panel: Power Panel
+ state: absent
+ register: test_five
+
+- name: "POWER_FEED 5: ASSERT - Delete Power Feed"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_feed Power Feed 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,114 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_OUTLET
+##
+##
+- name: "POWER_OUTLET 1: Necessary info creation"
+ netbox.netbox.netbox_power_outlet:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet
+ device: Device Power Tests
+ state: present
+ register: test_one
+
+- name: "POWER_OUTLET 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_outlet']['name'] == "Power Outlet"
+ - test_one['power_outlet']['device'] == 10
+ - test_one['msg'] == "power_outlet Power Outlet created"
+
+- name: "POWER_OUTLET 2: Create duplicate"
+ netbox.netbox.netbox_power_outlet:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet
+ device: Device Power Tests
+ state: present
+ register: test_two
+
+- name: "POWER_OUTLET 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_outlet']['name'] == "Power Outlet"
+ - test_two['power_outlet']['device'] == 10
+ - test_two['msg'] == "power_outlet Power Outlet already exists"
+
+- name: "POWER_OUTLET 3: Update power_outlet with other fields"
+ netbox.netbox.netbox_power_outlet:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet
+ device: Device Power Tests
+ type: ita-e
+ power_port: Power Port
+ feed_leg: B
+ description: test description
+ state: present
+ register: test_three
+
+- name: "POWER_OUTLET 3: ASSERT - Update power_outlet with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "ita-e"
+ - test_three['diff']['after']['power_port'] == 1
+ - test_three['diff']['after']['feed_leg'] == "B"
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['power_outlet']['name'] == "Power Outlet"
+ - test_three['power_outlet']['device'] == 10
+ - test_three['power_outlet']['type'] == "ita-e"
+ - test_three['power_outlet']['power_port'] == 1
+ - test_three['power_outlet']['feed_leg'] == "B"
+ - test_three['power_outlet']['description'] == "test description"
+ - test_three['msg'] == "power_outlet Power Outlet updated"
+
+- name: "POWER_OUTLET 4: Create Power Outlet for Delete Test"
+ netbox.netbox.netbox_power_outlet:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet 2
+ device: Device Power Tests
+ state: present
+ register: test_four
+
+- name: "POWER_OUTLET 4: ASSERT - Create Power Outlet for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_outlet']['name'] == "Power Outlet 2"
+ - test_four['power_outlet']['device'] == 10
+ - test_four['msg'] == "power_outlet Power Outlet 2 created"
+
+- name: "POWER_OUTLET 5: Delete Power Outlet"
+ netbox.netbox.netbox_power_outlet:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet 2
+ device: Device Power Tests
+ state: absent
+ register: test_five
+
+- name: "POWER_OUTLET 5: ASSERT - Delete Power Outlet"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_outlet Power Outlet 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_outlet_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,111 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_OUTLET_TEMPLATE
+##
+##
+- name: "POWER_OUTLET_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_power_outlet_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet Template
+ device_type: Device Type Power Tests
+ state: present
+ register: test_one
+
+- name: "POWER_OUTLET_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_outlet_template']['name'] == "Power Outlet Template"
+ - test_one['power_outlet_template']['device_type'] == 8
+ - test_one['msg'] == "power_outlet_template Power Outlet Template created"
+
+- name: "POWER_OUTLET_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_power_outlet_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet Template
+ device_type: Device Type Power Tests
+ state: present
+ register: test_two
+
+- name: "POWER_OUTLET_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_outlet_template']['name'] == "Power Outlet Template"
+ - test_two['power_outlet_template']['device_type'] == 8
+ - test_two['msg'] == "power_outlet_template Power Outlet Template already exists"
+
+- name: "POWER_OUTLET_TEMPLATE 3: Update power_outlet_template with other fields"
+ netbox.netbox.netbox_power_outlet_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet Template
+ device_type: Device Type Power Tests
+ type: ita-e
+ power_port_template: Power Port Template
+ feed_leg: B
+ state: present
+ register: test_three
+
+- name: "POWER_OUTLET_TEMPLATE 3: ASSERT - Update power_outlet_template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "ita-e"
+ - test_three['diff']['after']['power_port'] == 1
+ - test_three['diff']['after']['feed_leg'] == "B"
+ - test_three['power_outlet_template']['name'] == "Power Outlet Template"
+ - test_three['power_outlet_template']['device_type'] == 8
+ - test_three['power_outlet_template']['type'] == "ita-e"
+ - test_three['power_outlet_template']['power_port'] == 1
+ - test_three['power_outlet_template']['feed_leg'] == "B"
+ - test_three['msg'] == "power_outlet_template Power Outlet Template updated"
+
+- name: "POWER_OUTLET_TEMPLATE 4: Create Power Outlet Template for Delete Test"
+ netbox.netbox.netbox_power_outlet_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet Template 2
+ device_type: Device Type Power Tests
+ state: present
+ register: test_four
+
+- name: "POWER_OUTLET_TEMPLATE 4: ASSERT - Create Power Outlet Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_outlet_template']['name'] == "Power Outlet Template 2"
+ - test_four['power_outlet_template']['device_type'] == 8
+ - test_four['msg'] == "power_outlet_template Power Outlet Template 2 created"
+
+- name: "POWER_OUTLET_TEMPLATE 5: Delete Power Outlet Template"
+ netbox.netbox.netbox_power_outlet_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Outlet Template 2
+ device_type: Device Type Power Tests
+ state: absent
+ register: test_five
+
+- name: "POWER_OUTLET_TEMPLATE 5: ASSERT - Delete Power Outlet Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_outlet_template Power Outlet Template 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_panel.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_PANEL
+##
+##
+- name: "POWER_PANEL 1: Necessary info creation"
+ netbox.netbox.netbox_power_panel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Panel
+ site: Test Site
+ state: present
+ register: test_one
+
+- name: "POWER_PANEL 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_panel']['name'] == "Power Panel"
+ - test_one['power_panel']['site'] == 1
+ - test_one['msg'] == "power_panel Power Panel created"
+
+- name: "POWER_PANEL 2: Create duplicate"
+ netbox.netbox.netbox_power_panel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Panel
+ site: Test Site
+ state: present
+ register: test_two
+
+- name: "POWER_PANEL 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_panel']['name'] == "Power Panel"
+ - test_two['power_panel']['site'] == 1
+ - test_two['msg'] == "power_panel Power Panel already exists"
+
+- name: "POWER_PANEL 3: Update power_panel with other fields"
+ netbox.netbox.netbox_power_panel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Panel
+ site: Test Site
+ location: Test Rack Group
+ state: present
+ register: test_three
+
+- name: "POWER_PANEL 3: ASSERT - Update power_panel with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['location'] == 1
+ - test_three['power_panel']['name'] == "Power Panel"
+ - test_three['power_panel']['site'] == 1
+ - test_three['power_panel']['location'] == 1
+ - test_three['msg'] == "power_panel Power Panel updated"
+
+- name: "POWER_PANEL 4: Create Power Panel for Delete Test"
+ netbox.netbox.netbox_power_panel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Panel 2
+ site: Test Site
+ state: present
+ register: test_four
+
+- name: "POWER_PANEL 4: ASSERT - Create Power Panel for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_panel']['name'] == "Power Panel 2"
+ - test_four['power_panel']['site'] == 1
+ - test_four['msg'] == "power_panel Power Panel 2 created"
+
+- name: "POWER_PANEL 5: Delete Power Panel"
+ netbox.netbox.netbox_power_panel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Panel 2
+ site: Test Site
+ state: absent
+ register: test_five
+
+- name: "POWER_PANEL 5: ASSERT - Delete Power Panel"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_panel Power Panel 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,125 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_PORT
+##
+##
+- name: "POWER_PORT 0: Create device for testing power ports"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Device Power Tests
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ state: present
+
+- name: "POWER_PORT 1: Necessary info creation"
+ netbox.netbox.netbox_power_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port
+ device: Device Power Tests
+ state: present
+ register: test_one
+
+- name: "POWER_PORT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_port']['name'] == "Power Port"
+ - test_one['power_port']['device'] == 10
+ - test_one['msg'] == "power_port Power Port created"
+
+- name: "POWER_PORT 2: Create duplicate"
+ netbox.netbox.netbox_power_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port
+ device: Device Power Tests
+ state: present
+ register: test_two
+
+- name: "POWER_PORT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_port']['name'] == "Power Port"
+ - test_two['power_port']['device'] == 10
+ - test_two['msg'] == "power_port Power Port already exists"
+
+- name: "POWER_FEED 3: Update power_port with other fields"
+ netbox.netbox.netbox_power_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port
+ device: Device Power Tests
+ type: ita-e
+ allocated_draw: 10
+ maximum_draw: 20
+ description: test description
+ state: present
+ register: test_three
+
+- name: "POWER_FEED 3: ASSERT - Update power_port with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "ita-e"
+ - test_three['diff']['after']['allocated_draw'] == 10
+ - test_three['diff']['after']['maximum_draw'] == 20
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['power_port']['name'] == "Power Port"
+ - test_three['power_port']['device'] == 10
+ - test_three['power_port']['type'] == "ita-e"
+ - test_three['power_port']['allocated_draw'] == 10
+ - test_three['power_port']['maximum_draw'] == 20
+ - test_three['power_port']['description'] == "test description"
+ - test_three['msg'] == "power_port Power Port updated"
+
+- name: "POWER_PORT 4: Create Power Port for Delete Test"
+ netbox.netbox.netbox_power_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port 2
+ device: Device Power Tests
+ state: present
+ register: test_four
+
+- name: "POWER_PORT 4: ASSERT - Create Power Port for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_port']['name'] == "Power Port 2"
+ - test_four['power_port']['device'] == 10
+ - test_four['msg'] == "power_port Power Port 2 created"
+
+- name: "POWER_PORT 5: Delete Power Port"
+ netbox.netbox.netbox_power_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port 2
+ device: Device Power Tests
+ state: absent
+ register: test_five
+
+- name: "POWER_PORT 5: ASSERT - Delete Power Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_port Power Port 2 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_power_port_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,212 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_POWER_PORT_TEMPLATE
+##
+##
+- name: "POWER_PORT_TEMPLATE 0.1: Create device type for testing power ports on device types"
+ netbox.netbox.netbox_device_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: Device Type Power Tests
+ manufacturer: Test Manufacturer
+ state: present
+
+- name: "POWER_PORT_TEMPLATE 0.2: Create module type for testing power ports on module types"
+ netbox.netbox.netbox_module_type:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ model: Module Type Power Tests
+ manufacturer: Test Manufacturer
+ state: present
+
+- name: "POWER_PORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port Template
+ device_type: Device Type Power Tests
+ state: present
+ register: test_one
+
+- name: "POWER_PORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['power_port_template']['name'] == "Power Port Template"
+ - test_one['power_port_template']['device_type'] == 8
+ - test_one['msg'] == "power_port_template Power Port Template created"
+
+- name: "POWER_PORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port Template
+ device_type: Device Type Power Tests
+ state: present
+ register: test_two
+
+- name: "POWER_PORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['power_port_template']['name'] == "Power Port Template"
+ - test_two['power_port_template']['device_type'] == 8
+ - test_two['msg'] == "power_port_template Power Port Template already exists"
+
+- name: "POWER_PORT_TEMPLATE 3: Update power_port_template with other fields"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port Template
+ device_type: Device Type Power Tests
+ type: ita-e
+ allocated_draw: 10
+ maximum_draw: 20
+ state: present
+ register: test_three
+
+- name: "POWER_PORT_TEMPLATE 3: ASSERT - Update power_port_template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['type'] == "ita-e"
+ - test_three['diff']['after']['allocated_draw'] == 10
+ - test_three['diff']['after']['maximum_draw'] == 20
+ - test_three['power_port_template']['name'] == "Power Port Template"
+ - test_three['power_port_template']['device_type'] == 8
+ - test_three['power_port_template']['type'] == "ita-e"
+ - test_three['power_port_template']['allocated_draw'] == 10
+ - test_three['power_port_template']['maximum_draw'] == 20
+ - test_three['msg'] == "power_port_template Power Port Template updated"
+
+- name: "POWER_PORT_TEMPLATE 4: Create Power Port Template for Delete Test"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port Template 2
+ device_type: Device Type Power Tests
+ state: present
+ register: test_four
+
+- name: "POWER_PORT_TEMPLATE 4: ASSERT - Create Power Port Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['power_port_template']['name'] == "Power Port Template 2"
+ - test_four['power_port_template']['device_type'] == 8
+ - test_four['msg'] == "power_port_template Power Port Template 2 created"
+
+- name: "POWER_PORT_TEMPLATE 5: Delete Power Port Template"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Power Port Template 2
+ device_type: Device Type Power Tests
+ state: absent
+ register: test_five
+
+- name: "POWER_PORT_TEMPLATE 5: ASSERT - Delete Power Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "power_port_template Power Port Template 2 deleted"
+
+- name: "POWER_PORT_TEMPLATE 6: Necessary info creation"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Module Power Port Template
+ module_type: Module Type Power Tests
+ state: present
+ register: test_six
+
+- name: "POWER_PORT_TEMPLATE 6: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['power_port_template']['name'] == "Module Power Port Template"
+ - test_six['power_port_template']['module_type'] == 1
+ - test_six['msg'] == "power_port_template Module Power Port Template created"
+
+- name: "POWER_PORT_TEMPLATE 7: Create duplicate"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Module Power Port Template
+ module_type: Module Type Power Tests
+ state: present
+ register: test_seven
+
+- name: "POWER_PORT_TEMPLATE 7: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_seven['changed']
+ - test_seven['power_port_template']['name'] == "Module Power Port Template"
+ - test_seven['power_port_template']['module_type'] == 1
+ - test_seven['msg'] == "power_port_template Module Power Port Template already exists"
+
+- name: "POWER_PORT_TEMPLATE 8: Update power_port_template with other fields"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Module Power Port Template
+ module_type: Module Type Power Tests
+ type: ita-e
+ allocated_draw: 10
+ maximum_draw: 20
+ state: present
+ register: test_eight
+
+- name: "POWER_PORT_TEMPLATE 8: ASSERT - Update power_port_template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['diff']['after']['type'] == "ita-e"
+ - test_eight['diff']['after']['allocated_draw'] == 10
+ - test_eight['diff']['after']['maximum_draw'] == 20
+ - test_eight['power_port_template']['name'] == "Module Power Port Template"
+ - test_eight['power_port_template']['module_type'] == 1
+ - test_eight['power_port_template']['type'] == "ita-e"
+ - test_eight['power_port_template']['allocated_draw'] == 10
+ - test_eight['power_port_template']['maximum_draw'] == 20
+ - test_eight['msg'] == "power_port_template Module Power Port Template updated"
+
+- name: "POWER_PORT_TEMPLATE 9: Delete Power Port Template"
+ netbox.netbox.netbox_power_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Module Power Port Template
+ module_type: Module Type Power Tests
+ state: absent
+ register: test_nine
+
+- name: "POWER_PORT_TEMPLATE 9: ASSERT - Delete Power Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_nine is changed
+ - test_nine['diff']['before']['state'] == "present"
+ - test_nine['diff']['after']['state'] == "absent"
+ - test_nine['msg'] == "power_port_template Module Power Port Template deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_prefix.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,254 @@
+---
+##
+##
+### NETBOX_PREFIX
+##
+##
+- name: 1 - Create prefix within NetBox with only required information
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.156.0.0/19
+ state: present
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['msg'] == "prefix 10.156.0.0/19 created"
+ - test_one['prefix']['prefix'] == "10.156.0.0/19"
+
+- name: 2 - Duplicate
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.156.0.0/19
+ state: present
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['msg'] == "prefix 10.156.0.0/19 already exists"
+ - test_two['prefix']['prefix'] == "10.156.0.0/19"
+
+- name: 3 - Update 10.156.0.0/19
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.156.0.0/19
+ scope_type: "dcim.site"
+ scope: Test Site
+ status: Reserved
+ description: This prefix has been updated
+ state: present
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['scope'] == 1
+ - test_three['diff']['after']['scope_type'] == "dcim.site"
+ - test_three['diff']['after']['status'] == "reserved"
+ - test_three['diff']['after']['description'] == "This prefix has been updated"
+ - test_three['msg'] == "prefix 10.156.0.0/19 updated"
+ - test_three['prefix']['prefix'] == "10.156.0.0/19"
+ - test_three['prefix']['scope'] == 1
+ - test_three['prefix']['scope_type'] == "dcim.site"
+ - test_three['prefix']['status'] == "reserved"
+ - test_three['prefix']['description'] == "This prefix has been updated"
+
+- name: 4 - Delete prefix within netbox
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.156.0.0/19
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "prefix 10.156.0.0/19 deleted"
+
+- name: 5 - Create prefix with several specified options
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ family: 4
+ prefix: 10.156.32.0/19
+ scope_type: "dcim.site"
+ scope: Test Site
+ vrf: Test VRF
+ tenant: Test Tenant
+ vlan:
+ name: Test VLAN
+ site: Test Site
+ tenant: Test Tenant
+ vlan_group: Test Vlan Group
+ status: Reserved
+ prefix_role: Network of care
+ description: Test description
+ is_pool: true
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['msg'] == "prefix 10.156.32.0/19 created"
+ - test_five['prefix']['prefix'] == "10.156.32.0/19"
+ - test_five['prefix']['family'] == 4
+ - test_five['prefix']['scope'] == 1
+ - test_five['prefix']['scope_type'] == "dcim.site"
+ - test_five['prefix']['vrf'] == 1
+ - test_five['prefix']['tenant'] == 1
+ - test_five['prefix']['vlan'] == 4
+ - test_five['prefix']['status'] == "reserved"
+ - test_five['prefix']['role'] == 1
+ - test_five['prefix']['description'] == "Test description"
+ - test_five['prefix']['is_pool'] == true
+ - test_five['prefix']['tags'][0] == 4
+
+- name: 6 - Get a new /24 inside 10.156.0.0/19 within NetBox - Parent doesn't exist
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ parent: 10.156.0.0/19
+ prefix_length: 24
+ state: present
+ first_available: true
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_six['changed']
+ - test_six['msg'] == "Parent prefix does not exist - 10.156.0.0/19"
+
+- name: 7 - Create prefix within NetBox with only required information
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.156.0.0/19
+ state: present
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven['diff']['before']['state'] == "absent"
+ - test_seven['diff']['after']['state'] == "present"
+ - test_seven['msg'] == "prefix 10.156.0.0/19 created"
+ - test_seven['prefix']['prefix'] == "10.156.0.0/19"
+
+- name: 8 - Get a new /24 inside 10.156.0.0/19 within NetBox
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ parent: 10.156.0.0/19
+ prefix_length: 24
+ state: present
+ first_available: true
+ register: test_eight
+
+- name: 8 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['diff']['before']['state'] == "absent"
+ - test_eight['diff']['after']['state'] == "present"
+ - test_eight['msg'] == "prefix 10.156.0.0/24 created"
+ - test_eight['prefix']['prefix'] == "10.156.0.0/24"
+
+- name: 9 - Create 10.157.0.0/19
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ prefix: 10.157.0.0/19
+ vrf: Test VRF
+ scope_type: "dcim.site"
+ scope: Test Site
+ state: present
+ register: test_nine
+
+- name: 9 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_nine is changed
+ - test_nine['diff']['before']['state'] == "absent"
+ - test_nine['diff']['after']['state'] == "present"
+ - test_nine['msg'] == "prefix 10.157.0.0/19 created"
+ - test_nine['prefix']['prefix'] == "10.157.0.0/19"
+ - test_nine['prefix']['scope'] == 1
+ - test_nine['prefix']['scope_type'] == "dcim.site"
+ - test_nine['prefix']['vrf'] == 1
+
+- name: 10 - Get a new /24 inside 10.157.0.0/19 within NetBox with additional values
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ parent: 10.157.0.0/19
+ prefix_length: 24
+ vrf: Test VRF
+ scope_type: "dcim.site"
+ scope: Test Site
+ state: present
+ first_available: true
+ register: test_ten
+
+- name: 10 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_ten is changed
+ - test_ten['diff']['before']['state'] == "absent"
+ - test_ten['diff']['after']['state'] == "present"
+ - test_ten['msg'] == "prefix 10.157.0.0/24 created"
+ - test_ten['prefix']['prefix'] == "10.157.0.0/24"
+ - test_ten['prefix']['scope'] == 1
+ - test_ten['prefix']['scope_type'] == "dcim.site"
+ - test_ten['prefix']['vrf'] == 1
+
+- name: 11 - Get a new /24 inside 10.156.0.0/19 within NetBox
+ netbox.netbox.netbox_prefix:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ parent: 10.156.0.0/19
+ prefix_length: 24
+ state: present
+ first_available: true
+ register: test_eleven
+
+- name: 11 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eleven is changed
+ - test_eleven['diff']['before']['state'] == "absent"
+ - test_eleven['diff']['after']['state'] == "present"
+ - test_eleven['msg'] == "prefix 10.156.1.0/24 created"
+ - test_eleven['prefix']['prefix'] == "10.156.1.0/24"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,79 @@
+---
+##
+##
+### NETBOX_PROVIDER
+##
+##
+- name: "NETBOX_PROVIDER 1: Create provider within NetBox with only required information"
+ netbox.netbox.netbox_provider:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Provider One
+ state: present
+ register: test_one
+
+- name: "NETBOX_PROVIDER 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['provider']['name'] == "Test Provider One"
+ - test_one['provider']['slug'] == "test-provider-one"
+ - test_one['msg'] == "provider Test Provider One created"
+
+- name: "NETBOX_PROVIDER 2: Duplicate"
+ netbox.netbox.netbox_provider:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Provider One
+ state: present
+ register: test_two
+
+- name: "NETBOX_PROVIDER 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['provider']['name'] == "Test Provider One"
+ - test_two['provider']['slug'] == "test-provider-one"
+ - test_two['msg'] == "provider Test Provider One already exists"
+
+- name: "NETBOX_PROVIDER 3: Update provider with other fields"
+ netbox.netbox.netbox_provider:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Provider One
+ comments: BAD PROVIDER
+ state: present
+ register: test_three
+
+- name: "NETBOX_PROVIDER 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['comments'] == "BAD PROVIDER"
+ - test_three['provider']['name'] == "Test Provider One"
+ - test_three['provider']['slug'] == "test-provider-one"
+ - test_three['provider']['comments'] == "BAD PROVIDER"
+ - test_three['msg'] == "provider Test Provider One updated"
+
+- name: "NETBOX_PROVIDER 4: Delete provider within netbox"
+ netbox.netbox.netbox_provider:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Provider One
+ state: absent
+ register: test_four
+
+- name: "NETBOX_PROVIDER 4 : ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['provider']['name'] == "Test Provider One"
+ - test_four['provider']['slug'] == "test-provider-one"
+ - test_four['provider']['comments'] == "BAD PROVIDER"
+ - test_four['msg'] == "provider Test Provider One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_provider_network.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,83 @@
+---
+##
+##
+### NETBOX_PROVIDER
+##
+##
+- name: "NETBOX_PROVIDER_NETWORK 1: Create provider network within NetBox with only required information"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ state: present
+ register: test_one
+
+- name: "NETBOX_PROVIDER_NETWORK 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['provider_network']['name'] == "Test Provider Network One"
+ - test_one['msg'] == "provider_network Test Provider Network One created"
+
+- name: "NETBOX_PROVIDER_NETWORK 2: Duplicate"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ state: present
+ register: test_two
+
+- name: "NETBOX_PROVIDER_NETWORK 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['provider_network']['name'] == "Test Provider Network One"
+ - test_two['msg'] == "provider_network Test Provider Network One already exists"
+
+- name: "NETBOX_PROVIDER_NETWORK 3: Update provider network with other fields"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ description: Describe a Provider Network
+ comments: A provider network
+ state: present
+ register: test_three
+
+- name: "NETBOX_PROVIDER_NETWORK 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['comments'] == "A provider network"
+ - test_three['diff']['after']['description'] == "Describe a Provider Network"
+ - test_three['provider_network']['name'] == "Test Provider Network One"
+ - test_three['provider_network']['comments'] == "A provider network"
+ - test_three['provider_network']['description'] == "Describe a Provider Network"
+ - test_three['msg'] == "provider_network Test Provider Network One updated"
+
+- name: "NETBOX_PROVIDER_NETWORK 4: Delete provider within netbox"
+ netbox.netbox.netbox_provider_network:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ provider: Test Provider
+ name: Test Provider Network One
+ state: absent
+ register: test_four
+
+- name: "NETBOX_PROVIDER_NETWORK 4 : ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['provider_network']['name'] == "Test Provider Network One"
+ - test_four['provider_network']['comments'] == "A provider network"
+ - test_four['provider_network']['description'] == "Describe a Provider Network"
+ - test_four['msg'] == "provider_network Test Provider Network One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,226 @@
+---
+##
+##
+### NETBOX_RACK
+##
+##
+- name: 1 - Test rack creation
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ site: Test Site
+ location: Test Rack Group
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rack']['name'] == "Test rack one"
+ - test_one['rack']['site'] == 1
+
+- name: Test duplicate rack
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rack']['name'] == "Test rack one"
+ - test_two['rack']['site'] == 1
+ - test_two['msg'] == "rack Test rack one already exists"
+
+- name: 3 - Create new rack with similar name
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack - Test Site
+ site: Test Site
+ state: present
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['rack']['name'] == "Test rack - Test Site"
+ - test_three['rack']['site'] == 1
+ - test_three['msg'] == "rack Test rack - Test Site created"
+
+- name: 4 - Attempt to create Test rack one again
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ site: Test Site
+ location: Test Rack Group
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_four['changed']
+ - test_four['rack']['name'] == "Test rack one"
+ - test_four['rack']['site'] == 1
+ - test_four['msg'] == "rack Test rack one already exists"
+
+- name: 5 - Update Test rack one with more options
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ site: Test Site
+ rack_role: Test Rack Role
+ location: Test Rack Group
+ facility_id: EQUI10291
+ tenant: Test Tenant
+ status: Available
+ serial: FXS10001
+ asset_tag: "1234"
+ width: 23
+ u_height: 48
+ type: 2-post frame
+ outer_width: 32
+ outer_depth: 24
+ outer_unit: Inches
+ comments: Just testing rack module
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['asset_tag'] == "1234"
+ - test_five['diff']['after']['comments'] == "Just testing rack module"
+ - test_five['diff']['after']['facility_id'] == "EQUI10291"
+ - test_five['diff']['after']['outer_depth'] == 24
+ - test_five['diff']['after']['outer_unit'] == "in"
+ - test_five['diff']['after']['outer_width'] == 32
+ - test_five['diff']['after']['role'] == 1
+ - test_five['diff']['after']['serial'] == "FXS10001"
+ - test_five['diff']['after']['status'] == "available"
+ - test_five['diff']['after']['tenant'] == 1
+ - test_five['diff']['after']['tags'][0] == 4
+ - test_five['diff']['after']['form_factor'] == "2-post-frame"
+ - test_five['diff']['after']['u_height'] == 48
+ - test_five['diff']['after']['width'] == 23
+ - test_five['rack']['name'] == "Test rack one"
+ - test_five['rack']['site'] == 1
+ - test_five['rack']['asset_tag'] == "1234"
+ - test_five['rack']['comments'] == "Just testing rack module"
+ - test_five['rack']['facility_id'] == "EQUI10291"
+ - test_five['rack']['location'] == 1
+ - test_five['rack']['outer_depth'] == 24
+ - test_five['rack']['outer_unit'] == "in"
+ - test_five['rack']['outer_width'] == 32
+ - test_five['rack']['role'] == 1
+ - test_five['rack']['serial'] == "FXS10001"
+ - test_five['rack']['status'] == "available"
+ - test_five['rack']['tenant'] == 1
+ - test_five['rack']['tags'][0] == 4
+ - test_five['rack']['form_factor'] == "2-post-frame"
+ - test_five['rack']['u_height'] == 48
+ - test_five['rack']['width'] == 23
+ - test_five['msg'] == "rack Test rack one updated"
+
+- name: 6 - Update Test rack one with same options
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ site: Test Site
+ rack_role: Test Rack Role
+ location: Test Rack Group
+ facility_id: EQUI10291
+ tenant: Test Tenant
+ status: Available
+ serial: FXS10001
+ asset_tag: "1234"
+ width: 23
+ u_height: 48
+ type: 2-post frame
+ outer_width: 32
+ outer_depth: 24
+ outer_unit: Inches
+ comments: Just testing rack module
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_six is not changed
+ - test_six['rack']['name'] == "Test rack one"
+ - test_six['rack']['site'] == 1
+ - test_six['rack']['asset_tag'] == "1234"
+ - test_six['rack']['comments'] == "Just testing rack module"
+ - test_six['rack']['facility_id'] == "EQUI10291"
+ - test_six['rack']['location'] == 1
+ - test_six['rack']['outer_depth'] == 24
+ - test_six['rack']['outer_unit'] == "in"
+ - test_six['rack']['outer_width'] == 32
+ - test_six['rack']['role'] == 1
+ - test_six['rack']['serial'] == "FXS10001"
+ - test_six['rack']['status'] == "available"
+ - test_six['rack']['tenant'] == 1
+ - test_six['rack']['tags'][0] == 4
+ - test_six['rack']['form_factor'] == "2-post-frame"
+ - test_six['rack']['u_height'] == 48
+ - test_six['rack']['width'] == 23
+
+- name: 7 - Create rack with same asset tag and serial number
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack two
+ site: Test Site
+ serial: FXS10001
+ asset_tag: "1234"
+ state: present
+ ignore_errors: true
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seven is failed
+ - "'asset tag already exists' in test_seven['msg']"
+
+- name: 8 - Test delete
+ netbox.netbox.netbox_rack:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test rack one
+ state: absent
+ register: test_eight
+
+- name: 8 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_eight is changed
+ - test_eight['diff']['before']['state'] == "present"
+ - test_eight['diff']['after']['state'] == "absent"
+ - test_eight['msg'] == "rack Test rack one deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,62 @@
+---
+##
+##
+### NETBOX_RACK_GROUP
+##
+##
+- name: "RACK_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_rack_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Group
+ site: Test Site
+ state: present
+ register: test_one
+
+- name: "RACK_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rack_group']['name'] == "Rack Group"
+ - test_one['rack_group']['slug'] == "rack-group"
+ - test_one['rack_group']['site'] == 1
+ - test_one['msg'] == "rack_group Rack Group created"
+
+- name: "RACK_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_rack_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Group
+ site: Test Site
+ state: present
+ register: test_two
+
+- name: "RACK_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rack_group']['name'] == "Rack Group"
+ - test_two['rack_group']['slug'] == "rack-group"
+ - test_two['rack_group']['site'] == 1
+ - test_two['msg'] == "rack_group Rack Group already exists"
+
+- name: "RACK_GROUP 3: ASSERT - Delete"
+ netbox.netbox.netbox_rack_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Group
+ state: absent
+ register: test_three
+
+- name: "RACK_GROUP 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+ - test_three['msg'] == "rack_group Rack Group deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rack_role.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,81 @@
+---
+##
+##
+### NETBOX_RACK_ROLE
+##
+##
+- name: "RACK_ROLE 1: Necessary info creation"
+ netbox.netbox.netbox_rack_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Role
+ color: ffffff
+ state: present
+ register: test_one
+
+- name: "RACK_ROLE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rack_role']['name'] == "Rack Role"
+ - test_one['rack_role']['slug'] == "rack-role"
+ - test_one['rack_role']['color'] == "ffffff"
+ - test_one['msg'] == "rack_role Rack Role created"
+
+- name: "RACK_ROLE 2: Create duplicate"
+ netbox.netbox.netbox_rack_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Role
+ state: present
+ register: test_two
+
+- name: "RACK_ROLE 1: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rack_role']['name'] == "Rack Role"
+ - test_two['rack_role']['slug'] == "rack-role"
+ - test_two['rack_role']['color'] == "ffffff"
+ - test_two['msg'] == "rack_role Rack Role already exists"
+
+- name: "RACK_ROLE 3: Update"
+ netbox.netbox.netbox_rack_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Role
+ color: "003EFF"
+ state: present
+ register: test_three
+
+- name: "RACK_ROLE 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['color'] == "003eff"
+ - test_three['rack_role']['name'] == "Rack Role"
+ - test_three['rack_role']['slug'] == "rack-role"
+ - test_three['rack_role']['color'] == "003eff"
+ - test_three['msg'] == "rack_role Rack Role updated"
+
+- name: "RACK_ROLE 4: Delete"
+ netbox.netbox.netbox_rack_role:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rack Role
+ state: absent
+ register: test_four
+
+- name: "RACK_ROLE 4: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "rack_role Rack Role deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,139 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_REAR_PORT
+##
+##
+- name: "REAR_PORT 1: Necessary info creation"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port
+ device: test100
+ type: bnc
+ state: present
+ register: test_one
+
+- name: "REAR_PORT 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rear_port']['name'] == "Rear Port"
+ - test_one['rear_port']['device'] == 1
+ - test_one['rear_port']['type'] == "bnc"
+ - test_one['msg'] == "rear_port Rear Port created"
+
+- name: "REAR_PORT 2: Create duplicate"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port
+ device: test100
+ type: bnc
+ state: present
+ register: test_two
+
+- name: "REAR_PORT 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rear_port']['name'] == "Rear Port"
+ - test_two['rear_port']['device'] == 1
+ - test_two['rear_port']['type'] == "bnc"
+ - test_two['msg'] == "rear_port Rear Port already exists"
+
+- name: "REAR_PORT 3: Update Rear Port with other fields"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port
+ device: test100
+ type: bnc
+ positions: 5
+ description: test description
+ state: present
+ register: test_three
+
+- name: "REAR_PORT 3: ASSERT - Update Rear Port with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['positions'] == 5
+ - test_three['diff']['after']['description'] == "test description"
+ - test_three['rear_port']['name'] == "Rear Port"
+ - test_three['rear_port']['device'] == 1
+ - test_three['rear_port']['type'] == "bnc"
+ - test_three['rear_port']['positions'] == 5
+ - test_three['rear_port']['description'] == "test description"
+ - test_three['msg'] == "rear_port Rear Port updated"
+
+- name: "REAR_PORT 4: Create Rear Port for Delete Test"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port 2
+ device: test100
+ type: bnc
+ state: present
+ register: test_four
+
+- name: "REAR_PORT 4: ASSERT - Create Rear Port for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['rear_port']['name'] == "Rear Port 2"
+ - test_four['rear_port']['device'] == 1
+ - test_four['rear_port']['type'] == "bnc"
+ - test_four['msg'] == "rear_port Rear Port 2 created"
+
+- name: "REAR_PORT 5: Delete Rear Port"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port 2
+ device: test100
+ type: bnc
+ state: absent
+ register: test_five
+
+- name: "REAR_PORT 5: ASSERT - Delete Rear Port"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "rear_port Rear Port 2 deleted"
+
+- name: "REAR_PORT 6: Create second Rear Port"
+ netbox.netbox.netbox_rear_port:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port
+ device: Test Nexus One
+ type: bnc
+ state: present
+ register: test_six
+
+- name: "REAR_PORT 6: ASSERT - Create second Rear Port"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['rear_port']['name'] == "Rear Port"
+ - test_six['rear_port']['device'] == 4
+ - test_six['rear_port']['type'] == "bnc"
+ - test_six['msg'] == "rear_port Rear Port created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rear_port_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,136 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_REAR_PORT_TEMPLATE
+##
+##
+- name: "REAR_PORT_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template
+ device_type: Cisco Test
+ type: bnc
+ state: present
+ register: test_one
+
+- name: "REAR_PORT_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rear_port_template']['name'] == "Rear Port Template"
+ - test_one['rear_port_template']['device_type'] == 1
+ - test_one['rear_port_template']['type'] == "bnc"
+ - test_one['msg'] == "rear_port_template Rear Port Template created"
+
+- name: "REAR_PORT_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template
+ device_type: Cisco Test
+ type: bnc
+ state: present
+ register: test_two
+
+- name: "REAR_PORT_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rear_port_template']['name'] == "Rear Port Template"
+ - test_two['rear_port_template']['device_type'] == 1
+ - test_two['rear_port_template']['type'] == "bnc"
+ - test_two['msg'] == "rear_port_template Rear Port Template already exists"
+
+- name: "REAR_PORT_TEMPLATE 3: Update Rear Port Template with other fields"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template
+ device_type: Cisco Test
+ type: bnc
+ positions: 5
+ state: present
+ register: test_three
+
+- name: "REAR_PORT_TEMPLATE 3: ASSERT - Update Rear Port Template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['positions'] == 5
+ - test_three['rear_port_template']['name'] == "Rear Port Template"
+ - test_three['rear_port_template']['device_type'] == 1
+ - test_three['rear_port_template']['type'] == "bnc"
+ - test_three['rear_port_template']['positions'] == 5
+ - test_three['msg'] == "rear_port_template Rear Port Template updated"
+
+- name: "REAR_PORT_TEMPLATE 4: Create Rear Port Template for Delete Test"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template 2
+ device_type: Cisco Test
+ type: bnc
+ state: present
+ register: test_four
+
+- name: "REAR_PORT_TEMPLATE 4: ASSERT - Create Rear Port Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['rear_port_template']['name'] == "Rear Port Template 2"
+ - test_four['rear_port_template']['device_type'] == 1
+ - test_four['rear_port_template']['type'] == "bnc"
+ - test_four['msg'] == "rear_port_template Rear Port Template 2 created"
+
+- name: "REAR_PORT_TEMPLATE 5: Delete Rear Port Template"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template 2
+ device_type: Cisco Test
+ type: bnc
+ state: absent
+ register: test_five
+
+- name: "REAR_PORT_TEMPLATE 5: ASSERT - Delete Rear Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "rear_port_template Rear Port Template 2 deleted"
+
+- name: "REAR_PORT_TEMPLATE 6: Create second Rear Port Template"
+ netbox.netbox.netbox_rear_port_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Rear Port Template 2
+ device_type: Arista Test
+ type: bnc
+ state: present
+ register: test_six
+
+- name: "REAR_PORT_TEMPLATE 6: ASSERT - Create second Rear Port Template"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "absent"
+ - test_six['diff']['after']['state'] == "present"
+ - test_six['rear_port_template']['name'] == "Rear Port Template 2"
+ - test_six['rear_port_template']['device_type'] == 2
+ - test_six['rear_port_template']['type'] == "bnc"
+ - test_six['msg'] == "rear_port_template Rear Port Template 2 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_region.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,79 @@
+---
+##
+##
+### NETBOX_REGION
+##
+##
+- name: "REGION 1: Necessary info creation"
+ netbox.netbox.netbox_region:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Region One
+ state: present
+ register: test_one
+
+- name: "REGION 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['region']['name'] == "Test Region One"
+ - test_one['region']['slug'] == "test-region-one"
+ - test_one['msg'] == "region Test Region One created"
+
+- name: "REGION 2: Create duplicate"
+ netbox.netbox.netbox_region:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Region One
+ state: present
+ register: test_two
+
+- name: "REGION 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['region']['name'] == "Test Region One"
+ - test_two['region']['slug'] == "test-region-one"
+ - test_two['msg'] == "region Test Region One already exists"
+
+- name: "REGION 3: ASSERT - Update"
+ netbox.netbox.netbox_region:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Region One
+ parent_region: Test Region
+ state: present
+ register: test_three
+
+- name: "REGION 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['parent'] == 1
+ - test_three['region']['name'] == "Test Region One"
+ - test_three['region']['slug'] == "test-region-one"
+ - test_three['region']['parent'] == 1
+ - test_three['msg'] == "region Test Region One updated"
+
+- name: "REGION 4: ASSERT - Delete"
+ netbox.netbox.netbox_region:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Region One
+ state: absent
+ register: test_four
+
+- name: "REGION 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['region']['name'] == "Test Region One"
+ - test_four['region']['slug'] == "test-region-one"
+ - test_four['region']['parent'] == 1
+ - test_four['msg'] == "region Test Region One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_rir.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,79 @@
+---
+##
+##
+### NETBOX_RIR
+##
+##
+- name: "RIR 1: Necessary info creation"
+ netbox.netbox.netbox_rir:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test RIR One
+ state: present
+ register: test_one
+
+- name: "RIR 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['rir']['name'] == "Test RIR One"
+ - test_one['rir']['slug'] == "test-rir-one"
+ - test_one['msg'] == "rir Test RIR One created"
+
+- name: "RIR 2: Create duplicate"
+ netbox.netbox.netbox_rir:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test RIR One
+ state: present
+ register: test_two
+
+- name: "RIR 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['rir']['name'] == "Test RIR One"
+ - test_two['rir']['slug'] == "test-rir-one"
+ - test_two['msg'] == "rir Test RIR One already exists"
+
+- name: "RIR 3: ASSERT - Update"
+ netbox.netbox.netbox_rir:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test RIR One
+ is_private: true
+ state: present
+ register: test_three
+
+- name: "RIR 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['is_private'] == true
+ - test_three['rir']['name'] == "Test RIR One"
+ - test_three['rir']['slug'] == "test-rir-one"
+ - test_three['rir']['is_private'] == true
+ - test_three['msg'] == "rir Test RIR One updated"
+
+- name: "RIR 4: ASSERT - Delete"
+ netbox.netbox.netbox_rir:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test RIR One
+ state: absent
+ register: test_four
+
+- name: "RIR 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['rir']['name'] == "Test RIR One"
+ - test_four['rir']['slug'] == "test-rir-one"
+ - test_four['rir']['is_private'] == true
+ - test_four['msg'] == "rir Test RIR One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_route_target.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,204 @@
+---
+#
+# ADD (CHECK MODE)
+- name: "NETBOX_ROUTE_TARGET_ADD: Check Mode - Add all fields except description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ tenant: Test Tenant
+ tags:
+ - first
+ - second
+ check_mode: true
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_ADD: (ASSERT) Check Mode - Add all fields except description"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['diff']['after']['state'] == "present"
+ - test_results['diff']['before']['state'] == "absent"
+ - test_results['msg'] == "route_target 65000:65001 created"
+
+# ADD
+- name: "NETBOX_ROUTE_TARGET_ADD: Add all fields except description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ tenant: Test Tenant
+ tags:
+ - first
+ - second
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_ADD: (ASSERT) Add all fields except description"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['diff']['after']['state'] == "present"
+ - test_results['diff']['before']['state'] == "absent"
+ - test_results['msg'] == "route_target 65000:65001 created"
+
+# ADD (IDEMPOTENT)
+- name: "NETBOX_ROUTE_TARGET_ADD_IDEM: (IDEMPOTENT) Add all fields except description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ tenant: Test Tenant
+ tags:
+ - first
+ - second
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_ADD_IDEM: (IDEMPOTENT) Add all fields except description"
+ ansible.builtin.assert:
+ that:
+ - test_results is not changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['msg'] == "route_target 65000:65001 already exists"
+
+#
+# UPDATE (CHECK MODE)
+- name: "NETBOX_ROUTE_TARGET_UPDATE: Check Mode - Update description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ description: NEW DESCRIPTION
+ tenant: Test Tenant
+ tags:
+ - first
+ - second
+ check_mode: true
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_UPDATE: (ASSERT) Check Mode - Update description"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['route_target']['description'] == "NEW DESCRIPTION"
+ - test_results['diff']['after']['description'] == "NEW DESCRIPTION"
+ - test_results['diff']['before']['description'] == ""
+ - test_results['msg'] == "route_target 65000:65001 updated"
+
+# UPDATE
+- name: "NETBOX_ROUTE_TARGET_UPDATE: Update description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ tenant: Test Tenant
+ description: NEW DESCRIPTION
+ tags:
+ - first
+ - second
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_UPDATE: (ASSERT) Update description"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['route_target']['description'] == "NEW DESCRIPTION"
+ - test_results['diff']['after']['description'] == "NEW DESCRIPTION"
+ - test_results['diff']['before']['description'] == ""
+ - test_results['msg'] == "route_target 65000:65001 updated"
+
+# UPDATE (IDEMPOTENT)
+- name: "NETBOX_ROUTE_TARGET_UPDATE_IDEM: (IDEMPOTENT) Update description"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ tenant: Test Tenant
+ description: NEW DESCRIPTION
+ tags:
+ - first
+ - second
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_UPDATE_IDEM: (IDEMPOTENT) Update description"
+ ansible.builtin.assert:
+ that:
+ - test_results is not changed
+ - test_results['route_target']['name'] == "65000:65001"
+ - test_results['route_target']['tenant'] == 1
+ - test_results['route_target']['tags'] | length == 2
+ - test_results['route_target']['description'] == "NEW DESCRIPTION"
+ - test_results['msg'] == "route_target 65000:65001 already exists"
+
+#
+# DELETE (CHECK MODE)
+- name: "NETBOX_ROUTE_TARGET_DELETE: Check Mode - Delete route target"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ state: absent
+ check_mode: true
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_DELETE: (ASSERT) Check Mode - Delete route target"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['diff']['after']['state'] == "absent"
+ - test_results['diff']['before']['state'] == "present"
+ - test_results['msg'] == "route_target 65000:65001 deleted"
+
+# DELETE
+- name: "NETBOX_ROUTE_TARGET_DELETE: Delete route target"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ state: absent
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_DELETE: (ASSERT) Delete route target"
+ ansible.builtin.assert:
+ that:
+ - test_results is changed
+ - test_results['diff']['after']['state'] == "absent"
+ - test_results['diff']['before']['state'] == "present"
+ - test_results['msg'] == "route_target 65000:65001 deleted"
+
+# DELETE (IDEMPOTENT)
+- name: "NETBOX_ROUTE_TARGET_DELETE_IDEM: (IDEMPOTENT) Delete route target"
+ netbox.netbox.netbox_route_target:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: 65000:65001
+ state: absent
+ register: test_results
+
+- name: "NETBOX_ROUTE_TARGET_DELETE_IDEM: (IDEMPOTENT) Delete route target"
+ ansible.builtin.assert:
+ that:
+ - test_results is not changed
+ - test_results['msg'] == "route_target 65000:65001 already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,196 @@
+---
+##
+##
+### NETBOX_SERVICE
+##
+##
+- name: 1 - Device with required information needs to add new service
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: FOR_SERVICE
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ status: Staged
+ state: present
+
+- name: "NETBOX_SERVICE: Create new service"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: FOR_SERVICE
+ name: node-exporter
+ port: 9100
+ protocol: TCP
+ state: present
+ register: test_service_create
+
+- name: NETBOX_SERVICE ASSERT - Create
+ ansible.builtin.assert:
+ that:
+ - test_service_create is changed
+ - test_service_create['services']['name'] == "node-exporter"
+ - test_service_create['services']['ports'] == [9100]
+ - test_service_create['services']['protocol'] == "tcp"
+ - test_service_create['diff']['after']['state'] == "present"
+ - test_service_create['diff']['before']['state'] == "absent"
+ - test_service_create['msg'] == "services node-exporter created"
+
+- name: "NETBOX_SERVICE: Test idempotence"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: FOR_SERVICE
+ name: node-exporter
+ port: 9100
+ protocol: TCP
+ state: present
+ register: test_service_idempotence
+
+- name: NETBOX_SERVICE ASSERT - Not changed
+ ansible.builtin.assert:
+ that:
+ - test_service_idempotence['services']['name'] == "node-exporter"
+ - test_service_idempotence['services']['ports'] == [9100]
+ - test_service_idempotence['services']['protocol'] == "tcp"
+ - test_service_idempotence['msg'] == "services node-exporter already exists"
+
+- name: "NETBOX_SERVICE: Test update"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: FOR_SERVICE
+ name: node-exporter
+ ports:
+ - 9100
+ - 9200
+ protocol: TCP
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_service_update
+
+- name: NETBOX_SERVICE ASSERT - Service has been updated
+ ansible.builtin.assert:
+ that:
+ - test_service_update is changed
+ - test_service_update['diff']['after']['tags'][0] == 4
+ - test_service_update['diff']['after']['ports'] == [9100, 9200]
+ - test_service_update['msg'] == "services node-exporter updated"
+
+- name: "NETBOX_SERVICE: Test same details, but different protocol - Create"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: FOR_SERVICE
+ name: node-exporter
+ port: 9100
+ protocol: UDP
+ state: present
+ register: test_service_protocol
+
+- name: NETBOX_SERVICE ASSERT - Different protocol - Create
+ ansible.builtin.assert:
+ that:
+ - test_service_protocol is changed
+ - test_service_protocol['diff']['after']['state'] == "present"
+ - test_service_protocol['diff']['before']['state'] == "absent"
+ - test_service_protocol['services']['name'] == "node-exporter"
+ - test_service_protocol['services']['ports'] == [9100]
+ - test_service_protocol['services']['protocol'] == "udp"
+ - test_service_protocol['msg'] == "services node-exporter created"
+
+- name: "NETBOX_SERVICE: Test service deletion"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: FOR_SERVICE
+ name: node-exporter
+ port: 9100
+ protocol: UDP
+ state: absent
+ register: test_service_delete
+
+- name: NETBOX_SERVICE ASSERT - Service has been deleted
+ ansible.builtin.assert:
+ that:
+ - test_service_delete is changed
+ - test_service_delete['diff']['after']['state'] == "absent"
+ - test_service_delete['diff']['before']['state'] == "present"
+ - test_service_delete['msg'] == "services node-exporter deleted"
+
+- name: "NETBOX_SERVICE: Test service IP addresses"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ device: test100
+ name: node-exporter
+ port: 9100
+ protocol: UDP
+ ipaddresses:
+ - address: 172.16.180.1/24
+ state: present
+ register: test_service_ip_addresses
+
+- name: NETBOX_SERVICE ASSERT - Service has been created with IP address
+ ansible.builtin.assert:
+ that:
+ - test_service_ip_addresses is changed
+ - test_service_ip_addresses['diff']['after']['state'] == "present"
+ - test_service_ip_addresses['diff']['before']['state'] == "absent"
+ - test_service_ip_addresses['services']['name'] == "node-exporter"
+ - test_service_ip_addresses['services']['ports'] == [9100]
+ - test_service_ip_addresses['services']['protocol'] == "udp"
+ - test_service_ip_addresses['services']['ipaddresses'] is defined
+ - test_service_ip_addresses['msg'] == "services node-exporter created"
+
+- name: "NETBOX_SERVICE: Missing both device & virtual_machine options - Tests required_one_of"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: node-exporter
+ port: 9100
+ protocol: UDP
+ ipaddresses:
+ - address: 172.16.180.1/24
+ state: present
+ ignore_errors: true
+ register: test_service_required_one_of
+
+- name: NETBOX_SERVICE ASSERT - Failed due to missing arguments
+ ansible.builtin.assert:
+ that:
+ - test_service_required_one_of is failed
+ - 'test_service_required_one_of["msg"] == "one of the following is required: device, virtual_machine"'
+
+- name: "NETBOX_SERVICE: Create new service on virtual_machine"
+ netbox.netbox.netbox_service:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: node-exporter-vm
+ port: 9100
+ protocol: TCP
+ state: present
+ register: test_service_create_vm
+
+- name: NETBOX_SERVICE ASSERT - Create
+ ansible.builtin.assert:
+ that:
+ - test_service_create_vm is changed
+ - test_service_create_vm['services']['name'] == "node-exporter-vm"
+ - test_service_create_vm['services']['ports'] == [9100]
+ - test_service_create_vm['services']['protocol'] == "tcp"
+ - test_service_create_vm['diff']['after']['state'] == "present"
+ - test_service_create_vm['diff']['before']['state'] == "absent"
+ - test_service_create_vm['msg'] == "services node-exporter-vm created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_service_template.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,115 @@
+---
+##
+##
+### NETBOX_SERVICE_TEMPLATE
+##
+##
+- name: "SERVICE_TEMPLATE 1: Necessary info creation"
+ netbox.netbox.netbox_service_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Service Template for SSH
+ ports:
+ - 22
+ protocol: tcp
+ state: present
+ register: test_one
+
+- name: "SERVICE_TEMPLATE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['service_template']['name'] == "Service Template for SSH"
+ - test_one['service_template']['ports'] == [22]
+ - test_one['service_template']['protocol'] == "tcp"
+ - test_one['msg'] == "service_template Service Template for SSH created"
+
+- name: "SERVICE_TEMPLATE 2: Create duplicate"
+ netbox.netbox.netbox_service_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Service Template for SSH
+ ports:
+ - 22
+ protocol: tcp
+ state: present
+ register: test_two
+
+- name: "SERVICE_TEMPLATE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['service_template']['name'] == "Service Template for SSH"
+ - test_two['service_template']['ports'] == [22]
+ - test_two['service_template']['protocol'] == "tcp"
+ - test_two['msg'] == "service_template Service Template for SSH already exists"
+
+- name: "SERVICE_TEMPLATE 3: Update Service Template with other fields"
+ netbox.netbox.netbox_service_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Service Template for SSH
+ ports:
+ - 22
+ protocol: tcp
+ comments: For SSH service
+ state: present
+ register: test_three
+
+- name: "SERVICE_TEMPLATE 3: ASSERT - Update Service Template with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['comments'] == "For SSH service"
+ - test_three['service_template']['name'] == "Service Template for SSH"
+ - test_three['service_template']['ports'] == [22]
+ - test_three['service_template']['protocol'] == "tcp"
+ - test_three['service_template']['comments'] == "For SSH service"
+ - test_three['msg'] == "service_template Service Template for SSH updated"
+
+- name: "SERVICE_TEMPLATE 4: Create Service Template for Delete Test"
+ netbox.netbox.netbox_service_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Service Template for DNS
+ ports:
+ - 53
+ protocol: udp
+ comments: Domain Name System
+ state: present
+ register: test_four
+
+- name: "SERVICE_TEMPLATE 4: ASSERT - Create Service Template for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['service_template']['name'] == "Service Template for DNS"
+ - test_four['service_template']['ports'] == [53]
+ - test_four['service_template']['protocol'] == "udp"
+ - test_four['service_template']['comments'] == "Domain Name System"
+ - test_four['msg'] == "service_template Service Template for DNS created"
+
+- name: "SERVICE_TEMPLATE 5: Delete Service Template"
+ netbox.netbox.netbox_service_template:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Service Template for DNS
+ state: absent
+ register: test_five
+
+- name: "SERVICE_TEMPLATE 5: ASSERT - Delete Service Template"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "service_template Service Template for DNS deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,165 @@
+---
+##
+##
+### NETBOX_SITE
+##
+##
+- name: 1 - Create site within NetBox with only required information
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - Colorado
+ state: present
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['site']['name'] == "Test - Colorado"
+ - test_one['msg'] == "site Test - Colorado created"
+
+- name: 2 - Duplicate
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - Colorado
+ state: present
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['msg'] == "site Test - Colorado already exists"
+ - test_two['site']['name'] == "Test - Colorado"
+
+- name: 3 - Update Test - Colorado
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - Colorado
+ status: Planned
+ region: Test Region
+ state: present
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['status'] == "planned"
+ - test_three['diff']['after']['region'] == 1
+ - test_three['msg'] == "site Test - Colorado updated"
+ - test_three['site']['name'] == "Test - Colorado"
+ - test_three['site']['status'] == "planned"
+ - test_three['site']['region'] == 1
+
+- name: 4 - Create site with all parameters
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - California
+ status: Planned
+ region: Test Region
+ site_group: Test Site Group
+ tenant: Test Tenant
+ facility: EquinoxCA7
+ time_zone: America/Los Angeles
+ description: This is a test description
+ physical_address: Hollywood, CA, 90210
+ shipping_address: Hollywood, CA, 90210
+ latitude: "22.169141"
+ longitude: "-100.994041"
+ comments: "### Placeholder"
+ slug: test_california
+ state: present
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['site']['name'] == "Test - California"
+ - test_four['msg'] == "site Test - California created"
+ - test_four['site']['status'] == "planned"
+ - test_four['site']['region'] == 1
+ - test_four['site']['group'] == 4
+ - test_four['site']['tenant'] == 1
+ - test_four['site']['facility'] == "EquinoxCA7"
+ - test_four['site']['time_zone'] == "America/Los_Angeles"
+ - test_four['site']['description'] == "This is a test description"
+ - test_four['site']['physical_address'] == "Hollywood, CA, 90210"
+ - test_four['site']['shipping_address'] == "Hollywood, CA, 90210"
+ - test_four['site']['latitude'] == 22.169141
+ - test_four['site']['longitude'] == -100.994041
+ - test_four['site']['comments'] == "### Placeholder"
+ - test_four['site']['slug'] == "test_california"
+
+- name: "NETBOX_SITE_IDEM: Idempotency - Create duplicate site with all parameters"
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - California
+ status: Planned
+ region: Test Region
+ site_group: Test Site Group
+ tenant: Test Tenant
+ facility: EquinoxCA7
+ time_zone: America/Los Angeles
+ description: This is a test description
+ physical_address: Hollywood, CA, 90210
+ shipping_address: Hollywood, CA, 90210
+ latitude: "22.169141"
+ longitude: "-100.994041"
+ comments: "### Placeholder"
+ slug: test_california
+ state: present
+ register: test_results
+
+- name: "NETBOX_SITE_IDEM: (ASSERT) Idempotency - Duplicate device site with all parameters"
+ ansible.builtin.assert:
+ that:
+ - test_results is not changed
+ - test_results['site']['name'] == "Test - California"
+ - test_results['msg'] == "site Test - California already exists"
+ - test_results['site']['status'] == "planned"
+ - test_results['site']['region'] == 1
+ - test_results['site']['group'] == 4
+ - test_results['site']['tenant'] == 1
+ - test_results['site']['facility'] == "EquinoxCA7"
+ - test_results['site']['time_zone'] == "America/Los_Angeles"
+ - test_results['site']['description'] == "This is a test description"
+ - test_results['site']['physical_address'] == "Hollywood, CA, 90210"
+ - test_results['site']['shipping_address'] == "Hollywood, CA, 90210"
+ - test_results['site']['latitude'] == 22.169141
+ - test_results['site']['longitude'] == -100.994041
+ - test_results['site']['comments'] == "### Placeholder"
+ - test_results['site']['slug'] == "test_california"
+
+- name: 5 - Delete site within netbox
+ netbox.netbox.netbox_site:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test - Colorado
+ state: absent
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['site']['name'] == "Test - Colorado"
+ - test_five['msg'] == "site Test - Colorado deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_site_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,81 @@
+---
+##
+##
+### NETBOX_SITE_GROUP
+##
+##
+- name: "SITE_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_site_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Site Group
+ state: present
+ register: test_one
+
+- name: "SITE_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['site_group']['name'] == "Site Group"
+ - test_one['site_group']['slug'] == "site-group"
+ - test_one['msg'] == "site_group Site Group created"
+
+- name: "SITE_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_site_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Site Group
+ state: present
+ register: test_two
+
+- name: "SITE_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['site_group']['name'] == "Site Group"
+ - test_two['site_group']['slug'] == "site-group"
+ - test_two['msg'] == "site_group Site Group already exists"
+
+- name: "SITE_GROUP 3: Update"
+ netbox.netbox.netbox_site_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Site Group
+ parent_site_group: Test Site Group
+ description: This is a site group
+ state: present
+ register: test_three
+
+- name: "SITE_GROUP 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['parent'] == 4
+ - test_three['diff']['after']['description'] == "This is a site group"
+ - test_three['site_group']['name'] == "Site Group"
+ - test_three['site_group']['slug'] == "site-group"
+ - test_three['site_group']['parent'] == 4
+ - test_three['site_group']['description'] == "This is a site group"
+ - test_three['msg'] == "site_group Site Group updated"
+
+- name: "SITE_GROUP 4: Delete"
+ netbox.netbox.netbox_site_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Site Group
+ state: absent
+ register: test_four
+
+- name: "SITE_GROUP 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "site_group Site Group deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tag.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,110 @@
+---
+##
+##
+### NETBOX_TAGS
+##
+##
+- name: "TAG 1: ASSERT - Necessary info creation"
+ netbox.netbox.netbox_tag:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tag 1
+ description: Tag 1 test
+ color: "0000ff"
+ state: present
+ register: test_one
+
+- name: "TAG 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['tags']['color'] == "0000ff"
+ - test_one['tags']['description'] == "Tag 1 test"
+ - test_one['tags']['name'] == "Test Tag 1"
+ - test_one['tags']['slug'] == "test-tag-1"
+ - test_one['msg'] == "tags Test Tag 1 created"
+
+- name: "TAG 2: Create duplicate"
+ netbox.netbox.netbox_tag:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tag 1
+ description: Tag 1 test
+ color: "0000ff"
+ state: present
+ register: test_two
+
+- name: "TAG 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['tags']['name'] == "Test Tag 1"
+ - test_two['msg'] == "tags Test Tag 1 already exists"
+
+- name: "TAG 3: ASSERT - Update"
+ netbox.netbox.netbox_tag:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tag 1
+ description: Tag 1 update test
+ color: "00ff00"
+ state: present
+ register: test_three
+
+- name: "TAG 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['color'] == "00ff00"
+ - test_three['diff']['after']['description'] == "Tag 1 update test"
+ - test_three['tags']['name'] == "Test Tag 1"
+ - test_three['tags']['description'] == "Tag 1 update test"
+ - test_three['tags']['color'] == "00ff00"
+ - test_three['msg'] == "tags Test Tag 1 updated"
+
+- name: "TAG 4: ASSERT - Delete"
+ netbox.netbox.netbox_tag:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tag 1
+ state: absent
+ register: test_four
+
+- name: "TAG 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['tags']['name'] == "Test Tag 1"
+ - test_four['tags']['slug'] == "test-tag-1"
+ - test_four['msg'] == "tags Test Tag 1 deleted"
+
+- name: "TAG 5: ASSERT - Necessary info creation"
+ netbox.netbox.netbox_tag:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tag 5
+ slug: test-tag-five
+ description: Tag 5 test
+ color: "0000ff"
+ state: present
+ register: test_five
+
+- name: "TAG 5: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['tags']['color'] == "0000ff"
+ - test_five['tags']['description'] == "Tag 5 test"
+ - test_five['tags']['name'] == "Test Tag 5"
+ - test_five['tags']['slug'] == "test-tag-five"
+ - test_five['msg'] == "tags Test Tag 5 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,106 @@
+---
+##
+##
+### NETBOX_TENANT
+##
+##
+- name: 1 - Test tenant creation
+ netbox.netbox.netbox_tenant:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Tenant ABC
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['tenant']['name'] == "Tenant ABC"
+ - test_one['tenant']['slug'] == "tenant-abc"
+ - test_one['msg'] == "tenant Tenant ABC created"
+
+- name: Test duplicate tenant
+ netbox.netbox.netbox_tenant:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Tenant ABC
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['tenant']['name'] == "Tenant ABC"
+ - test_two['tenant']['slug'] == "tenant-abc"
+ - test_two['msg'] == "tenant Tenant ABC already exists"
+
+- name: 3 - Test update
+ netbox.netbox.netbox_tenant:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Tenant ABC
+ description: Updated description
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "Updated description"
+ - test_three['tenant']['name'] == "Tenant ABC"
+ - test_three['tenant']['slug'] == "tenant-abc"
+ - test_three['tenant']['description'] == "Updated description"
+ - test_three['msg'] == "tenant Tenant ABC updated"
+
+- name: 4 - Test delete
+ netbox.netbox.netbox_tenant:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Tenant ABC
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "tenant Tenant ABC deleted"
+
+- name: 5 - Create tenant with all parameters
+ netbox.netbox.netbox_tenant:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Tenant ABC
+ description: ABC Incorporated
+ comments: "### This tenant is super cool"
+ tenant_group: Test Tenant Group
+ slug: tenant_abc
+ tags:
+ - tagA
+ - tagB
+ - tagC
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['tenant']['name'] == "Tenant ABC"
+ - test_five['tenant']['slug'] == "tenant_abc"
+ - test_five['tenant']['description'] == "ABC Incorporated"
+ - test_five['tenant']['comments'] == "### This tenant is super cool"
+ - test_five['tenant']['group'] == 1
+ - test_five['tenant']['tags'] | length == 3
+ - test_five['msg'] == "tenant Tenant ABC created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tenant_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,129 @@
+---
+##
+##
+### NETBOX_TENANT_GROUP
+##
+##
+- name: 1 - Test tenant group creation
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tenant Group Two
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['tenant_group']['name'] == "Test Tenant Group Two"
+ - test_one['tenant_group']['slug'] == "test-tenant-group-two"
+ - test_one['msg'] == "tenant_group Test Tenant Group Two created"
+
+- name: Test duplicate tenant group
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tenant Group Two
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['tenant_group']['name'] == "Test Tenant Group Two"
+ - test_two['tenant_group']['slug'] == "test-tenant-group-two"
+ - test_two['msg'] == "tenant_group Test Tenant Group Two already exists"
+
+- name: 3 - Test delete
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tenant Group Two
+ state: absent
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "present"
+ - test_three['diff']['after']['state'] == "absent"
+ - test_three['msg'] == "tenant_group Test Tenant Group Two deleted"
+
+- name: 4 - Test tenant group creation with custom slug
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tenant Group ABC
+ slug: test_tenant_group_four
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['tenant_group']['name'] == "Test Tenant Group ABC"
+ - test_four['tenant_group']['slug'] == "test_tenant_group_four"
+ - test_four['msg'] == "tenant_group Test Tenant Group ABC created"
+
+- name: 5 - Test child tenant group creation
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Child Test Tenant Group
+ parent_tenant_group: "{{ test_four.tenant_group.slug }}"
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['tenant_group']['name'] == "Child Test Tenant Group"
+ - test_five['tenant_group']['parent'] == test_four.tenant_group.id
+ - test_five['msg'] == "tenant_group Child Test Tenant Group created"
+
+- name: 6 - Test child tenant group deletion
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Child Test Tenant Group
+ state: absent
+ register: test_six
+
+- name: 6 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "present"
+ - test_six['diff']['after']['state'] == "absent"
+ - test_six['msg'] == "tenant_group Child Test Tenant Group deleted"
+
+- name: 7 - Test deletion of the tenant group with custom slug
+ netbox.netbox.netbox_tenant_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tenant Group ABC
+ slug: test_tenant_group_four
+ state: absent
+ register: test_seven
+
+- name: 7 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_seven is changed
+ - test_seven['diff']['before']['state'] == "present"
+ - test_seven['diff']['after']['state'] == "absent"
+ - test_seven['msg'] == "tenant_group Test Tenant Group ABC deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_token.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,104 @@
+---
+##
+##
+### NETBOX_PERMISSION
+##
+##
+- name: "TOKEN: Set up user"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword2
+ state: present
+
+- name: "TOKEN 1: Necessary info creation"
+ netbox.netbox.netbox_token:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ user: TestUser
+ key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ state: present
+ register: test_one
+
+- name: "TOKEN 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['token']['user'] == 3
+ - test_one['msg'] == "token ******** created"
+
+- name: "TOKEN 2: Create duplicate"
+ netbox.netbox.netbox_token:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ user: TestUser
+ key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ state: present
+ register: test_two
+
+- name: "TOKEN 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['msg'] == "token ******** already exists"
+
+- name: "TOKEN 3: Update"
+ netbox.netbox.netbox_token:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ user: TestUser
+ key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ description: The test token
+ write_enabled: false
+ expires: 2024-08-26T14:49:01.345000+00:00
+ state: present
+ register: test_three
+
+- name: "TOKEN 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['token']['description'] == "The test token"
+ - test_three['token']['write_enabled'] == false
+ - test_three['token']['expires'] == "2024-08-26T14:49:01.345000+00:00"
+ - test_three['msg'] == "token ******** updated"
+
+- name: "TOKEN 4: Delete"
+ netbox.netbox.netbox_token:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ state: absent
+ register: test_four
+
+- name: "TOKEN 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "token ******** deleted"
+
+- name: "TOKEN 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_token:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ state: absent
+ register: test_five
+
+- name: "TOKEN 5: ASSERT - Delete non existing"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['token'] == None
+ - test_five['msg'] == "token ******** already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,96 @@
+---
+##
+##
+### NETBOX_TUNNEL
+##
+##
+- name: "TUNNEL 1: Necessary info creation"
+ netbox.netbox.netbox_tunnel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel
+ status: active
+ encapsulation: ipsec-tunnel
+ state: present
+ register: test_one
+
+- name: "TUNNEL 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['tunnel']['name'] == "Test Tunnel"
+ - test_one['tunnel']['status'] == "active"
+ - test_one['tunnel']['encapsulation'] == "ipsec-tunnel"
+ - test_one['msg'] == "tunnel Test Tunnel created"
+
+- name: "TUNNEL 2: Create duplicate"
+ netbox.netbox.netbox_tunnel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel
+ status: active
+ encapsulation: ipsec-tunnel
+ state: present
+ register: test_two
+
+- name: "TUNNEL 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['tunnel']['name'] == "Test Tunnel"
+ - test_two['tunnel']['status'] == "active"
+ - test_two['tunnel']['encapsulation'] == "ipsec-tunnel"
+ - test_two['msg'] == "tunnel Test Tunnel already exists"
+
+- name: "TUNNEL 3: Update Existing"
+ netbox.netbox.netbox_tunnel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel
+ encapsulation: ipsec-tunnel
+ description: Test Description
+ tenant: Test Tenant
+ tunnel_id: 200
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "TUNNEL: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "Test Description"
+ - test_three['diff']['after']['tenant'] == 1
+ - test_three['diff']['after']['tunnel_id'] == 200
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['tunnel']['name'] == "Test Tunnel"
+ - test_three['tunnel']['tenant'] == 1
+ - test_three['tunnel']['tunnel_id'] == 200
+ - test_three['tunnel']['description'] == "Test Description"
+ - test_three['tunnel']['tags'][0] == 4
+ - test_three['tunnel']['encapsulation'] == "ipsec-tunnel"
+ - test_three['msg'] == "tunnel Test Tunnel updated"
+
+- name: "TUNNEL 4: Delete"
+ netbox.netbox.netbox_tunnel:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel
+ encapsulation: ipsec-tunnel
+ state: absent
+ register: test_four
+
+- name: "TUNNEL 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "tunnel Test Tunnel deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_tunnel_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,81 @@
+---
+##
+##
+### NETBOX_TUNNEL GROUP
+##
+##
+- name: "TUNNEL_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_tunnel_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel Group
+ state: present
+ register: test_one
+
+- name: "TUNNEL_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['tunnel_group']['name'] == "Test Tunnel Group"
+ - test_one['tunnel_group']['slug'] == "test-tunnel-group"
+ - test_one['msg'] == "tunnel_group Test Tunnel Group created"
+
+- name: "TUNNEL_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_tunnel_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel Group
+ state: present
+ register: test_two
+
+- name: "TUNNEL_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['tunnel_group']['name'] == "Test Tunnel Group"
+ - test_two['tunnel_group']['slug'] == "test-tunnel-group"
+ - test_two['msg'] == "tunnel_group Test Tunnel Group already exists"
+
+- name: "TUNNEL_GROUP 3: Update Existing"
+ netbox.netbox.netbox_tunnel_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel Group
+ description: Test Description
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "TUNNEL_GROUP 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "Test Description"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['tunnel_group']['name'] == "Test Tunnel Group"
+ - test_three['tunnel_group']['description'] == "Test Description"
+ - test_three['tunnel_group']['tags'][0] == 4
+ - test_three['msg'] == "tunnel_group Test Tunnel Group updated"
+
+- name: "TUNNEL_GROUP 4: Delete"
+ netbox.netbox.netbox_tunnel_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test Tunnel Group
+ state: absent
+ register: test_four
+
+- name: "TUNNEL_GROUP 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "tunnel_group Test Tunnel Group deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,105 @@
+---
+##
+##
+### NETBOX_USER
+##
+##
+- name: "USER 1: Necessary info creation"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword1
+ state: present
+ register: test_one
+
+- name: "USESR 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['user']['username'] == "TestUser"
+ - test_one['user']['display'] == "TestUser"
+ - test_one['msg'] == "user TestUser created"
+
+- name: "USER 2: Update password"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword2
+ email: my@user.com
+ state: present
+ register: test_two
+
+- name: "USER 2: ASSERT - Update password"
+ ansible.builtin.assert:
+ that:
+ - test_two['changed']
+ - test_two['user']['username'] == "TestUser"
+ - test_two['msg'] == "user TestUser updated"
+
+- name: "USER 3: Update"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword1
+ email: test@user.com
+ first_name: Test
+ last_name: User
+ is_active: false
+ is_staff: true
+ state: present
+ register: test_three
+
+- name: "USER 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['first_name'] == "Test"
+ - test_three['diff']['after']['last_name'] == "User"
+ - test_three['user']['username'] == "TestUser"
+ - test_three['user']['email'] == "test@user.com"
+ - test_three['user']['first_name'] == "Test"
+ - test_three['user']['last_name'] == "User"
+ - test_three['user']['is_active'] == False
+ - test_three['user']['is_staff'] == True
+ - test_three['msg'] == "user TestUser updated"
+
+- name: "USER 4: Delete"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ state: absent
+ register: test_four
+
+- name: "USER 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "user TestUser deleted"
+
+- name: "USER 5: ASSERT - Delete non existing"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ state: absent
+ register: test_five
+
+- name: "USER 5: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_five['changed']
+ - test_five['user'] == None
+ - test_five['msg'] == "user TestUser already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_user_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,127 @@
+---
+##
+##
+### NETBOX_USER_GROUP
+##
+##
+- name: "USER_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ state: present
+ register: test_one
+
+- name: "USER_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['user_group']['name'] == "Test User Group"
+ - test_one['msg'] == "user_group Test User Group created"
+
+- name: "USER_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ state: present
+ register: test_two
+
+- name: "USER_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['user_group']['name'] == "Test User Group"
+ - test_two['msg'] == "user_group Test User Group already exists"
+
+- name: "USER_GROUP 3: Update"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ description: The test group
+ state: present
+ register: test_three
+
+- name: "USER_GROUP 3: ASSERT - Update"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "The test group"
+ - test_three['user_group']['name'] == "Test User Group"
+ - test_three['user_group']['description'] == "The test group"
+ - test_three['msg'] == "user_group Test User Group updated"
+
+- name: "USER_GROUP 4: Create second group"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group 2
+ state: present
+ register: test_four
+
+- name: "USER_GROUP 4: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['user_group']['name'] == "Test User Group 2"
+ - test_four['msg'] == "user_group Test User Group 2 created"
+
+- name: "USER_GROUP 5: Add user to group"
+ netbox.netbox.netbox_user:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ username: TestUser
+ password: TestPassword2
+ groups:
+ - Test User Group
+ state: present
+ register: test_five
+
+- name: "USER_GROUP 5: ASSERT - Add user to group"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['user']['groups'] == [1]
+
+- name: "USER_GROUP 6: Delete"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ state: absent
+ register: test_six
+
+- name: "USER_GROUP 6: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['diff']['before']['state'] == "present"
+ - test_six['diff']['after']['state'] == "absent"
+ - test_six['msg'] == "user_group Test User Group deleted"
+
+- name: "USER_GROUP 6: ASSERT - Delete non existing"
+ netbox.netbox.netbox_user_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test User Group
+ state: absent
+ register: test_seven
+
+- name: "USER_GROUP 7: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not test_seven['changed']
+ - test_seven['user_group'] == None
+ - test_seven['msg'] == "user_group Test User Group already absent"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_chassis.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,131 @@
+---
+# © 2020 Nokia
+# Licensed under the GNU General Public License v3.0 only
+# SPDX-License-Identifier: GPL-3.0-only
+##
+##
+### NETBOX_VIRTUAL_CHASSIS
+##
+##
+- name: "VIRTUAL_CHASSIS 0: Create device for testing virtual chassis"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Device Virtual Chassis Tests
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ vc_position: 1
+ vc_priority: 1
+ state: present
+
+- name: "VIRTUAL_CHASSIS 1: Necessary info creation"
+ netbox.netbox.netbox_virtual_chassis:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: First VC
+ master: Device Virtual Chassis Tests
+ state: present
+ register: test_one
+
+- name: "VIRTUAL_CHASSIS 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['virtual_chassis']['master'] == 11
+ - test_one['virtual_chassis']['name'] == "First VC"
+ - test_one['msg'] == "virtual_chassis First VC created"
+
+- name: "VIRTUAL_CHASSIS 2: Create duplicate"
+ netbox.netbox.netbox_virtual_chassis:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: First VC
+ master: Device Virtual Chassis Tests
+ state: present
+ register: test_two
+
+- name: "VIRTUAL_CHASSIS 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['virtual_chassis']['master'] == 11
+ - test_two['virtual_chassis']['name'] == "First VC"
+ - test_two['msg'] == "virtual_chassis First VC already exists"
+
+- name: "POWER_FEED 3: Update virtual_chassis with other fields"
+ netbox.netbox.netbox_virtual_chassis:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: First VC
+ master: Device Virtual Chassis Tests
+ domain: Domain Text
+ state: present
+ register: test_three
+
+- name: "POWER_FEED 3: ASSERT - Update virtual_chassis with other fields"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['domain'] == "Domain Text"
+ - test_three['virtual_chassis']['master'] == 11
+ - test_three['virtual_chassis']['domain'] == "Domain Text"
+ - test_three['virtual_chassis']['name'] == "First VC"
+ - test_three['msg'] == "virtual_chassis First VC updated"
+
+- name: "VIRTUAL_CHASSIS 4: Create device for testing virtual chassis deletion"
+ netbox.netbox.netbox_device:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Device Virtual Chassis Tests 2
+ device_type: Cisco Test
+ device_role: Core Switch
+ site: Test Site
+ vc_position: 1
+ vc_priority: 15
+ state: present
+
+- name: "VIRTUAL_CHASSIS 4: Create Virtual Chassis for Delete Test"
+ netbox.netbox.netbox_virtual_chassis:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Second VC
+ master: Device Virtual Chassis Tests 2
+ state: present
+ register: test_four
+
+- name: "VIRTUAL_CHASSIS 4: ASSERT - Create Virtual Chassis for Delete Test"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "absent"
+ - test_four['diff']['after']['state'] == "present"
+ - test_four['virtual_chassis']['master'] == 12
+ - test_four['virtual_chassis']['name'] == "Second VC"
+ - test_four['msg'] == "virtual_chassis Second VC created"
+
+- name: "VIRTUAL_CHASSIS 5: Delete Virtual Chassis"
+ netbox.netbox.netbox_virtual_chassis:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Second VC
+ master: Device Virtual Chassis Tests 2
+ state: absent
+ register: test_five
+
+- name: "VIRTUAL_CHASSIS 5: ASSERT - Delete Virtual Chassis"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "present"
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['msg'] == "virtual_chassis Second VC deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_disk.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,87 @@
+---
+##
+##
+### NETBOX_VIRTUAL_DISK
+##
+##
+- name: "NETBOX_VIRTUAL_DISK 1: Necessary info creation"
+ netbox.netbox.netbox_virtual_disk:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: disk0
+ size: 50
+ state: present
+ register: test_one
+
+- name: "NETBOX_VIRTUAL_DISK 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['virtual_disk']['name'] == "disk0"
+ - test_one['virtual_disk']['virtual_machine'] == 1
+ - test_one['msg'] == "virtual_disk disk0 created"
+
+- name: "NETBOX_VIRTUAL_DISK 2: Create duplicate"
+ netbox.netbox.netbox_virtual_disk:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: disk0
+ size: 50
+ state: present
+ register: test_two
+
+- name: "NETBOX_VIRTUAL_DISK 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['virtual_disk']['name'] == "disk0"
+ - test_two['virtual_disk']['virtual_machine'] == 1
+ - test_two['msg'] == "virtual_disk disk0 already exists"
+
+- name: "NETBOX_VIRTUAL_DISK 3: Update"
+ netbox.netbox.netbox_virtual_disk:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: disk0
+ size: 60
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "NETBOX_VIRTUAL_DISK 4: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['size'] == 60
+ - test_three['virtual_disk']['name'] == "disk0"
+ - test_three['virtual_disk']['virtual_machine'] == 1
+ - test_three['virtual_disk']['size'] == 60
+ - test_three['virtual_disk']['tags'][0] == 4
+ - test_three['msg'] == "virtual_disk disk0 updated"
+
+- name: "NETBOX_VIRTUAL_DISK 4: ASSERT - Delete"
+ netbox.netbox.netbox_virtual_disk:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: disk0
+ virtual_machine: test100-vm
+ state: absent
+ register: test_four
+
+- name: "NETBOX_VIRTUAL_DISK 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['virtual_disk']['name'] == "disk0"
+ - test_four['virtual_disk']['virtual_machine'] == 1
+ - test_four['msg'] == "virtual_disk disk0 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_virtual_machine.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,131 @@
+---
+##
+##
+### NETBOX_VIRTUAL_MACHINES
+##
+##
+- name: "VIRTUAL_MACHINE 1: Necessary info creation"
+ netbox.netbox.netbox_virtual_machine:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VM One
+ cluster: Test Cluster
+ state: present
+ register: test_one
+
+- name: "VIRTUAL_MACHINE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['virtual_machine']['name'] == "Test VM One"
+ - test_one['virtual_machine']['cluster'] == 1
+ - test_one['msg'] == "virtual_machine Test VM One created"
+
+- name: "VIRTUAL_MACHINE 2: Create duplicate"
+ netbox.netbox.netbox_virtual_machine:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VM One
+ cluster: Test Cluster
+ state: present
+ register: test_two
+
+- name: "VIRTUAL_MACHINE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['virtual_machine']['name'] == "Test VM One"
+ - test_two['virtual_machine']['cluster'] == 1
+ - test_two['msg'] == "virtual_machine Test VM One already exists"
+
+- name: "VIRTUAL_MACHINE 3: Update"
+ netbox.netbox.netbox_virtual_machine:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VM One
+ cluster: Test Cluster
+ serial: 12345678
+ vcpus: 8.5
+ memory: 8
+ status: Planned
+ virtual_machine_role: Test VM Role
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "VIRTUAL_MACHINE 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['vcpus'] == 8.5
+ - test_three['diff']['after']['memory'] == 8
+ - test_three['diff']['after']['status'] == "planned"
+ - test_three['diff']['after']['role'] == 2
+ - test_three['diff']['after']['serial'] == "12345678"
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['virtual_machine']['name'] == "Test VM One"
+ - test_three['virtual_machine']['cluster'] == 1
+ - test_three['virtual_machine']['vcpus'] == 8.5
+ - test_three['virtual_machine']['memory'] == 8
+ - test_three['virtual_machine']['status'] == "planned"
+ - test_three['virtual_machine']['role'] == 2
+ - test_three['virtual_machine']['serial'] == "12345678"
+ - test_three['virtual_machine']['tags'][0] == 4
+ - test_three['msg'] == "virtual_machine Test VM One updated"
+
+- name: "VIRTUAL_MACHINE 4: Test idempotence"
+ netbox.netbox.netbox_virtual_machine:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VM One
+ cluster: Test Cluster
+ vcpus: 8.5
+ memory: 8
+ status: Planned
+ virtual_machine_role: Test VM Role
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_four_idempotence
+
+- name: "VIRTUAL_MACHINE 4: ASSERT - Not changed"
+ ansible.builtin.assert:
+ that:
+ - test_four_idempotence is not changed
+ - test_four_idempotence['virtual_machine']['name'] == "Test VM One"
+ - test_four_idempotence['virtual_machine']['cluster'] == 1
+ - test_four_idempotence['virtual_machine']['vcpus'] == 8.5
+ - test_four_idempotence['virtual_machine']['memory'] == 8
+ - test_four_idempotence['virtual_machine']['status'] == "planned"
+ - test_four_idempotence['virtual_machine']['role'] == 2
+ - test_four_idempotence['virtual_machine']['tags'][0] == 4
+ - test_four_idempotence['msg'] == "virtual_machine Test VM One already exists"
+
+- name: "VIRTUAL_MACHINE 5: Delete"
+ netbox.netbox.netbox_virtual_machine:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VM One
+ state: absent
+ register: test_five
+
+- name: "VIRTUAL_MACHINE 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['virtual_machine']['name'] == "Test VM One"
+ - test_five['virtual_machine']['cluster'] == 1
+ - test_five['virtual_machine']['vcpus'] == 8.5
+ - test_five['virtual_machine']['memory'] == 8
+ - test_five['virtual_machine']['status'] == "planned"
+ - test_five['virtual_machine']['role'] == 2
+ - test_five['virtual_machine']['tags'][0] == 4
+ - test_five['msg'] == "virtual_machine Test VM One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,193 @@
+---
+##
+##
+### NETBOX_VLAN
+##
+##
+- name: "VLAN 1: Necessary info creation"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ state: present
+ register: test_one
+
+- name: "VLAN 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['vlan']['name'] == "Test VLAN 500"
+ - test_one['vlan']['vid'] == 500
+ - test_one['msg'] == "vlan Test VLAN 500 created"
+
+- name: "VLAN 2: Create duplicate"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ state: present
+ register: test_two
+
+- name: "VLAN 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['vlan']['name'] == "Test VLAN 500"
+ - test_two['vlan']['vid'] == 500
+ - test_two['msg'] == "vlan Test VLAN 500 already exists"
+
+- name: "VLAN 3: Create VLAN with same name, but different site"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ site: Test Site
+ tenant: Test Tenant
+ vlan_group: Test VLAN Group
+ state: present
+ register: test_three
+
+- name: "VLAN 3: ASSERT - Create VLAN with same name, but different site"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['vlan']['name'] == "Test VLAN 500"
+ - test_three['vlan']['vid'] == 500
+ - test_three['vlan']['site'] == 1
+ - test_three['vlan']['group'] == 1
+ - test_three['msg'] == "vlan Test VLAN 500 created"
+
+- name: "VLAN 4: ASSERT - Update"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ tenant: Test Tenant
+ vlan_group: Test VLAN Group
+ status: Reserved
+ vlan_role: Network of care
+ description: Updated description
+ site: Test Site
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_four
+
+- name: "VLAN 4: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['status'] == "reserved"
+ - test_four['diff']['after']['role'] == 1
+ - test_four['diff']['after']['description'] == "Updated description"
+ - test_four['diff']['after']['tags'][0] == 4
+ - test_four['vlan']['name'] == "Test VLAN 500"
+ - test_four['vlan']['tenant'] == 1
+ - test_four['vlan']['site'] == 1
+ - test_four['vlan']['group'] == 1
+ - test_four['vlan']['status'] == "reserved"
+ - test_four['vlan']['role'] == 1
+ - test_four['vlan']['description'] == "Updated description"
+ - test_four['vlan']['tags'][0] == 4
+ - test_four['msg'] == "vlan Test VLAN 500 updated"
+
+- name: "VLAN: ASSERT - IDEMPOTENT WITH VLAN_GROUP"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ tenant: Test Tenant
+ vlan_group: Test VLAN Group
+ status: Reserved
+ vlan_role: Network of care
+ description: Updated description
+ site: Test Site
+ tags:
+ - Schnozzberry
+ state: present
+ register: idempotent_vlan_group
+
+- name: "VLAN: ASSERT - IDEMPOTENT WITH VLAN_GROUP"
+ ansible.builtin.assert:
+ that:
+ - idempotent_vlan_group is not changed
+
+- name: "VLAN: Create VLAN with same name, but different vlan_group"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ vid: 500
+ site: Test Site
+ tenant: Test Tenant
+ vlan_group: Test VLAN Group 2
+ state: present
+ register: new_vlan_group
+
+- name: "VLAN: ASSERT - Create VLAN with same name, but different vlan_group"
+ ansible.builtin.assert:
+ that:
+ - new_vlan_group is changed
+ - new_vlan_group['diff']['before']['state'] == "absent"
+ - new_vlan_group['diff']['after']['state'] == "present"
+ - new_vlan_group['vlan']['name'] == "Test VLAN 500"
+ - new_vlan_group['vlan']['vid'] == 500
+ - new_vlan_group['vlan']['site'] == 1
+ - new_vlan_group['vlan']['group'] == 2
+ - new_vlan_group['msg'] == "vlan Test VLAN 500 created"
+
+- name: "VLAN 5: ASSERT - Delete more than one result"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ state: absent
+ ignore_errors: true
+ register: test_five
+
+- name: "VLAN 5: ASSERT - Delete more than one result"
+ ansible.builtin.assert:
+ that:
+ - test_five is failed
+ - test_five['msg'] == "More than one result returned for Test VLAN 500"
+
+- name: "VLAN 6: ASSERT - Delete"
+ netbox.netbox.netbox_vlan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VLAN 500
+ site: Test Site
+ vlan_group: Test VLAN Group
+ state: absent
+ register: test_six
+
+- name: "VLAN 6: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['vlan']['name'] == "Test VLAN 500"
+ - test_six['vlan']['tenant'] == 1
+ - test_six['vlan']['site'] == 1
+ - test_six['vlan']['group'] == 1
+ - test_six['vlan']['status'] == "reserved"
+ - test_six['vlan']['role'] == 1
+ - test_six['vlan']['description'] == "Updated description"
+ - test_six['vlan']['tags'][0] == 4
+ - test_six['msg'] == "vlan Test VLAN 500 deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,314 @@
+---
+##
+##
+### NETBOX_VLAN_GROUP
+##
+##
+- name: "VLAN_GROUP 1: Necessary info creation"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ scope_type: dcim.site
+ scope: Test Site
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "absent"
+ - results['diff']['after']['state'] == "present"
+ - results['vlan_group']['name'] == "VLAN Group One"
+ - results['vlan_group']['slug'] == "vlan-group-one"
+ - results['vlan_group']['scope_type'] == "dcim.site"
+ - results['vlan_group']['scope_id'] == 1
+ - results['msg'] == "vlan_group VLAN Group One created"
+
+- name: "VLAN_GROUP 2: Create duplicate"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ scope_type: dcim.site
+ scope: Test Site
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not results['changed']
+ - results['vlan_group']['name'] == "VLAN Group One"
+ - results['vlan_group']['slug'] == "vlan-group-one"
+ - results['vlan_group']['scope_type'] == "dcim.site"
+ - results['vlan_group']['scope_id'] == 1
+ - results['msg'] == "vlan_group VLAN Group One already exists"
+
+- name: "VLAN_GROUP 3: ASSERT - Create with same name, different site"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ scope_type: dcim.site
+ scope: Test Site2
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 3: ASSERT - Create with same name, different site"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['vlan_group']['name'] == "VLAN Group One"
+ - results['vlan_group']['slug'] == "vlan-group-one"
+ - results['vlan_group']['scope_type'] == "dcim.site"
+ - results['vlan_group']['scope_id'] == 2
+ - results['msg'] == "vlan_group VLAN Group One created"
+
+- name: "VLAN_GROUP 4: ASSERT - Create vlan group, no site"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ state: present
+ ignore_errors: true
+ register: results
+
+- name: "VLAN_GROUP 4: ASSERT - Create with same name, different site"
+ ansible.builtin.assert:
+ that:
+ - results is failed
+ - results['msg'] == "More than one result returned for VLAN Group One"
+
+- name: "VLAN_GROUP 5: ASSERT - Delete"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ scope_type: dcim.site
+ scope: Test Site2
+ state: absent
+ register: results
+
+- name: "VLAN_GROUP 5: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "present"
+ - results['diff']['after']['state'] == "absent"
+ - results['vlan_group']['name'] == "VLAN Group One"
+ - results['vlan_group']['slug'] == "vlan-group-one"
+ - results['vlan_group']['scope_type'] == "dcim.site"
+ - results['vlan_group']['scope_id'] == 2
+ - results['msg'] == "vlan_group VLAN Group One deleted"
+
+- name: "VLAN_GROUP 6: ASSERT - Delete non existing"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group One
+ scope_type: dcim.site
+ scope: Test Site2
+ state: absent
+ register: results
+
+- name: "VLAN_GROUP 6: ASSERT - Delete non existing`"
+ ansible.builtin.assert:
+ that:
+ - not results['changed']
+ - results['vlan_group'] == None
+ - results['msg'] == "vlan_group VLAN Group One already absent"
+
+- name: "VLAN_GROUP 7: Necessary info creation - scope_type: dcim.location"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Location
+ scope_type: dcim.location
+ scope: Test Rack Group
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 7: ASSERT - Necessary info creation - scope_type: dcim.location"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "absent"
+ - results['diff']['after']['state'] == "present"
+ - results['vlan_group']['name'] == "VLAN Group Location"
+ - results['vlan_group']['slug'] == "vlan-group-location"
+ - results['vlan_group']['scope_type'] == "dcim.location"
+ - results['vlan_group']['scope_id'] == 1
+ - results['msg'] == "vlan_group VLAN Group Location created"
+
+- name: "VLAN_GROUP 8: Necessary info creation - scope_type: dcim.rack"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Rack
+ scope_type: dcim.rack
+ scope: Test Rack
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 8: ASSERT - Necessary info creation - scope_type: dcim.rack"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "absent"
+ - results['diff']['after']['state'] == "present"
+ - results['vlan_group']['name'] == "VLAN Group Rack"
+ - results['vlan_group']['slug'] == "vlan-group-rack"
+ - results['vlan_group']['scope_type'] == "dcim.rack"
+ - results['vlan_group']['scope_id'] == 2
+ - results['msg'] == "vlan_group VLAN Group Rack created"
+
+- name: "VLAN_GROUP 9: Necessary info creation - scope_type: dcim.region"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Region
+ scope_type: dcim.region
+ scope: Test Region
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 9: ASSERT - Necessary info creation - scope_type: dcim.region"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "absent"
+ - results['diff']['after']['state'] == "present"
+ - results['vlan_group']['name'] == "VLAN Group Region"
+ - results['vlan_group']['slug'] == "vlan-group-region"
+ - results['vlan_group']['scope_type'] == "dcim.region"
+ - results['vlan_group']['scope_id'] == 1
+ - results['msg'] == "vlan_group VLAN Group Region created"
+
+- name: "VLAN_GROUP 10: Necessary info creation - scope_type: dcim.sitegroup"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Site Group
+ scope_type: dcim.sitegroup
+ scope: Test Site Group
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 10: ASSERT - Necessary info creation - scope_type: dcim.sitegroup"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['state'] == "absent"
+ - results['diff']['after']['state'] == "present"
+ - results['vlan_group']['name'] == "VLAN Group Site Group"
+ - results['vlan_group']['slug'] == "vlan-group-site-group"
+ - results['vlan_group']['scope_type'] == "dcim.sitegroup"
+ - results['vlan_group']['scope_id'] == 4
+ - results['msg'] == "vlan_group VLAN Group Site Group created"
+
+# Commented out due to invalid content type being reported back by API
+# - name: "VLAN_GROUP 11: Necessary info creation - scope_type: virtualization.cluster"
+# netbox.netbox.netbox_vlan_group:
+# netbox_url: http://localhost:32768
+# netbox_token: 0123456789abcdef0123456789abcdef01234567
+# data:
+# name: "VLAN Group Cluster"
+# scope_type: "virtualization.cluster"
+# scope: Test Cluster
+# state: present
+# register: results
+
+# - name: "VLAN_GROUP 11: ASSERT - Necessary info creation - scope_type: virtualization.cluster"
+# assert:
+# that:
+# - results is changed
+# - results['diff']['before']['state'] == "absent"
+# - results['diff']['after']['state'] == "present"
+# - results['vlan_group']['name'] == "VLAN Group Cluster"
+# - results['vlan_group']['slug'] == "vlan-group-cluster"
+# - results['vlan_group']['scope_type'] == "virtualization.cluster"
+# - results['vlan_group']['scope_id'] == 1
+# - results['msg'] == "vlan_group VLAN Group Cluster created"
+
+# - name: "VLAN_GROUP 12: Necessary info creation - scope_type: virtualization.clustergroup"
+# netbox.netbox.netbox_vlan_group:
+# netbox_url: http://localhost:32768
+# netbox_token: 0123456789abcdef0123456789abcdef01234567
+# data:
+# name: "VLAN Group Cluster Group"
+# scope_type: "virtualization.clustergroup"
+# scope: Test Cluster Group
+# state: present
+# register: results
+
+# - name: "VLAN_GROUP 12: ASSERT - Necessary info creation - scope_type: virtualization.clustergroup"
+# assert:
+# that:
+# - results is changed
+# - results['diff']['before']['state'] == "absent"
+# - results['diff']['after']['state'] == "present"
+# - results['vlan_group']['name'] == "VLAN Group Cluster Group"
+# - results['vlan_group']['slug'] == "vlan-group-cluster-group"
+# - results['vlan_group']['scope_type'] == "virtualization.clustergroup"
+# - results['vlan_group']['scope_id'] == 1
+# - results['msg'] == "vlan_group VLAN Group Cluster Group created"
+
+- name: "VLAN_GROUP 12: Update Description - scope_type: dcim.location"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Location
+ scope_type: dcim.location
+ scope: Test Rack Group
+ description: Ansible updated description
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 12: ASSERT - Update Description - scope_type: dcim.location"
+ ansible.builtin.assert:
+ that:
+ - results is changed
+ - results['diff']['before']['description'] == ""
+ - results['diff']['after']['description'] == "Ansible updated description"
+ - results['vlan_group']['name'] == "VLAN Group Location"
+ - results['vlan_group']['slug'] == "vlan-group-location"
+ - results['vlan_group']['scope_type'] == "dcim.location"
+ - results['vlan_group']['scope_id'] == 1
+ - results['vlan_group']['description'] == "Ansible updated description"
+ - results['msg'] == "vlan_group VLAN Group Location updated"
+
+- name: "VLAN_GROUP 12: Update Description (IDEM) - scope_type: dcim.location"
+ netbox.netbox.netbox_vlan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: VLAN Group Location
+ scope_type: dcim.location
+ scope: Test Rack Group
+ description: Ansible updated description
+ state: present
+ register: results
+
+- name: "VLAN_GROUP 12: ASSERT - Update Description (IDEM) - scope_type: dcim.location"
+ ansible.builtin.assert:
+ that:
+ - results is not changed
+ - results['vlan_group']['name'] == "VLAN Group Location"
+ - results['vlan_group']['slug'] == "vlan-group-location"
+ - results['vlan_group']['scope_type'] == "dcim.location"
+ - results['vlan_group']['scope_id'] == 1
+ - results['vlan_group']['description'] == "Ansible updated description"
+ - results['msg'] == "vlan_group VLAN Group Location already exists"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vm_interface.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,159 @@
+---
+##
+##
+### NETBOX_VM_INTERFACE
+##
+##
+- name: "NETBOX_VM_INTERFACE 1: Necessary info creation"
+ netbox.netbox.netbox_vm_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: Eth10
+ state: present
+ register: test_one
+
+- name: "NETBOX_VM_INTERFACE 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['interface']['name'] == "Eth10"
+ - test_one['interface']['virtual_machine'] == 1
+ - test_one['msg'] == "interface Eth10 created"
+
+- name: "NETBOX_VM_INTERFACE 2: Create duplicate"
+ netbox.netbox.netbox_vm_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: Eth10
+ state: present
+ register: test_two
+
+- name: "NETBOX_VM_INTERFACE 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['interface']['name'] == "Eth10"
+ - test_two['interface']['virtual_machine'] == 1
+ - test_two['msg'] == "interface Eth10 already exists"
+
+- name: "NETBOX_VM_INTERFACE 3: Updated"
+ netbox.netbox.netbox_vm_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: Eth10
+ enabled: false
+ mtu: 9000
+ mac_address: "00:00:00:AA:AA:01"
+ description: Updated test100-vm
+ mode: Tagged
+ # untagged_vlan:
+ # name: Wireless
+ # site: Test Site
+ # tagged_vlans:
+ # - name: Data
+ # site: Test Site
+ # - name: VoIP
+ # site: Test Site
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_three
+
+- name: "NETBOX_VM_INTERFACE 4: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['enabled'] == false
+ - test_three['diff']['after']['mtu'] == 9000
+ - test_three['diff']['after']['mac_address'] == "00:00:00:AA:AA:01"
+ - test_three['diff']['after']['description'] == "Updated test100-vm"
+ - test_three['diff']['after']['mode'] == "tagged"
+ # - test_three['diff']['after']['untagged_vlan'] == 1
+ # - test_three['diff']['after']['tagged_vlans'] == [2, 3]
+ - test_three['diff']['after']['tags'][0] == 4
+ - test_three['interface']['name'] == "Eth10"
+ - test_three['interface']['virtual_machine'] == 1
+ - test_three['interface']['enabled'] == false
+ - test_three['interface']['mtu'] == 9000
+ - test_three['interface']['mac_address'] == "00:00:00:AA:AA:01"
+ - test_three['interface']['description'] == "Updated test100-vm"
+ - test_three['interface']['mode'] == "tagged"
+ # - test_three['interface']['untagged_vlan'] == 1
+ # - test_three['interface']['tagged_vlans'] == [2, 3]
+ - test_three['interface']['tags'][0] == 4
+ - test_three['msg'] == "interface Eth10 updated"
+
+- name: "NETBOX_VM_INTERFACE 4: ASSERT - Delete"
+ netbox.netbox.netbox_vm_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Eth10
+ virtual_machine: test100-vm
+ state: absent
+ register: test_four
+
+- name: "NETBOX_VM_INTERFACE 4: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['interface']['name'] == "Eth10"
+ - test_four['interface']['virtual_machine'] == 1
+ - test_four['msg'] == "interface Eth10 deleted"
+
+- name: "NETBOX_VM_INTERFACE 5: Attempt to update interface with same name on other VMs"
+ netbox.netbox.netbox_vm_interface:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ virtual_machine: test100-vm
+ name: Eth0
+ enabled: false
+ mtu: 9000
+ mac_address: "00:00:00:AA:AA:01"
+ description: Updated test100-vm Eth0 intf
+ mode: Tagged
+ # untagged_vlan:
+ # name: Wireless
+ # site: Test Site
+ # tagged_vlans:
+ # - name: Data
+ # site: Test Site
+ # - name: VoIP
+ # site: Test Site
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_five
+
+- name: "NETBOX_VM_INTERFACE 5: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['enabled'] == false
+ - test_five['diff']['after']['mtu'] == 9000
+ - test_five['diff']['after']['mac_address'] == "00:00:00:AA:AA:01"
+ - test_five['diff']['after']['description'] == "Updated test100-vm Eth0 intf"
+ - test_five['diff']['after']['mode'] == "tagged"
+ # - test_five['diff']['after']['untagged_vlan'] == 1
+ # - test_five['diff']['after']['tagged_vlans'] == [2, 3]
+ - test_five['diff']['after']['tags'][0] == 4
+ - test_five['interface']['name'] == "Eth0"
+ - test_five['interface']['virtual_machine'] == 1
+ - test_five['interface']['enabled'] == false
+ - test_five['interface']['mtu'] == 9000
+ - test_five['interface']['mac_address'] == "00:00:00:AA:AA:01"
+ - test_five['interface']['description'] == "Updated test100-vm Eth0 intf"
+ - test_five['interface']['mode'] == "tagged"
+ # - test_five['interface']['untagged_vlan'] == 1
+ # - test_five['interface']['tagged_vlans'] == [2, 3]
+ - test_five['interface']['tags'][0] == 4
+ - test_five['msg'] == "interface Eth0 updated"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_vrf.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,137 @@
+---
+##
+##
+### NETBOX_VRF
+##
+##
+- name: "VRF 1: Necessary info creation"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ state: present
+ register: test_one
+
+- name: "VRF 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['vrf']['name'] == "Test VRF One"
+ - test_one['msg'] == "vrf Test VRF One created"
+
+- name: "VRF 2: Create duplicate"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ state: present
+ register: test_two
+
+- name: "VRF 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['vrf']['name'] == "Test VRF One"
+ - test_two['msg'] == "vrf Test VRF One already exists"
+
+- name: "VRF 3: Create VRF with same name, but different tenant"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ tenant: Test Tenant
+ state: present
+ register: test_three
+
+- name: "VRF 3: ASSERT - Create VRF with same name, but different site"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['before']['state'] == "absent"
+ - test_three['diff']['after']['state'] == "present"
+ - test_three['vrf']['name'] == "Test VRF One"
+ - test_three['vrf']['tenant'] == 1
+ - test_three['msg'] == "vrf Test VRF One created"
+
+- name: "VRF 4: ASSERT - Update"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ rd: "65001:1"
+ enforce_unique: false
+ tenant: Test Tenant
+ description: Updated description
+ import_targets:
+ - 4000:4000
+ - 5000:5000
+ export_targets:
+ - 5000:5000
+ tags:
+ - Schnozzberry
+ state: present
+ register: test_four
+
+- name: "VRF 4: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['rd'] == "65001:1"
+ - test_four['diff']['after']['enforce_unique'] == false
+ - test_four['diff']['after']['description'] == "Updated description"
+ - test_four['diff']['after']['tags'][0] == 4
+ - test_four['diff']['after']['import_targets'] | length == 2
+ - test_four['diff']['after']['export_targets'] | length == 1
+ - test_four['vrf']['name'] == "Test VRF One"
+ - test_four['vrf']['tenant'] == 1
+ - test_four['vrf']['rd'] == "65001:1"
+ - test_four['vrf']['enforce_unique'] == false
+ - test_four['vrf']['description'] == "Updated description"
+ - test_four['vrf']['tags'][0] == 4
+ - test_four['vrf']['import_targets'] | length == 2
+ - test_four['vrf']['export_targets'] | length == 1
+ - test_four['msg'] == "vrf Test VRF One updated"
+
+- name: "VRF 5: ASSERT - Delete more than one result"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ state: absent
+ ignore_errors: true
+ register: test_five
+
+- name: "VRF 5: ASSERT - Delete more than one result"
+ ansible.builtin.assert:
+ that:
+ - test_five is failed
+ - test_five['msg'] == "More than one result returned for Test VRF One"
+
+- name: "VRF 6: ASSERT - Delete"
+ netbox.netbox.netbox_vrf:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Test VRF One
+ tenant: Test Tenant
+ state: absent
+ register: test_six
+
+- name: "VRF 6: ASSERT - Delete"
+ ansible.builtin.assert:
+ that:
+ - test_six is changed
+ - test_six['vrf']['name'] == "Test VRF One"
+ - test_six['vrf']['tenant'] == 1
+ - test_six['vrf']['rd'] == "65001:1"
+ - test_six['vrf']['enforce_unique'] == false
+ - test_six['vrf']['description'] == "Updated description"
+ - test_six['vrf']['tags'][0] == 4
+ - test_six['msg'] == "vrf Test VRF One deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_webhook.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,121 @@
+---
+##
+##
+### NETBOX_WEBHOOK
+##
+##
+- name: "WEBHOOK 1: Necessary info creation"
+ netbox.netbox.netbox_webhook:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ content_types:
+ - dcim.device
+ name: Example Webhook
+ type_create: true
+ payload_url: https://payload.url
+ body_template: !unsafe >-
+ {{ data }}
+ state: present
+ register: test_one
+
+- name: "WEBHOOK 1: ASSERT - Necessary info creation"
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['webhook']['name'] == "Example Webhook"
+ - test_one['webhook']['type_create'] == True
+ - test_one['webhook']['payload_url'] == "https://payload.url"
+ - test_one['webhook']['content_types'] == ["dcim.device"]
+ - test_one['msg'] == "webhook Example Webhook created"
+
+- name: "WEBHOOK 2: Create duplicate"
+ netbox.netbox.netbox_webhook:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ content_types:
+ - dcim.device
+ name: Example Webhook
+ type_create: true
+ payload_url: https://payload.url
+ body_template: !unsafe >-
+ {{ data }}
+ state: present
+ register: test_two
+
+- name: "WEBHOOK 2: ASSERT - Create duplicate"
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['webhook']['name'] == "Example Webhook"
+ - test_two['msg'] == "webhook Example Webhook already exists"
+
+- name: "WEBHOOK 3: Update data and add on delete"
+ netbox.netbox.netbox_webhook:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ content_types:
+ - dcim.device
+ type_create: true
+ type_delete: true
+ name: Example Webhook
+ payload_url: https://payload.url
+ body_template: !unsafe >-
+ {{ data }}
+ state: present
+ register: test_three
+
+- name: "WEBHOOK 3: ASSERT - Updated"
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['webhook']['name'] == "Example Webhook"
+ - test_three['msg'] == "webhook Example Webhook updated"
+
+- name: "WEBHOOK 4: Change content type"
+ netbox.netbox.netbox_webhook:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ content_types:
+ - virtualization.virtualmachine
+ name: Example Webhook
+ payload_url: https://payload.url
+ body_template: !unsafe >-
+ {{ data }}
+ state: present
+ register: test_four
+
+- name: "WEBHOOK 4: ASSERT - Change content type"
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['after']['content_types'] == ["virtualization.virtualmachine"]
+ - test_four['webhook']['name'] == "Example Webhook"
+ - test_four['msg'] == "webhook Example Webhook updated"
+
+- name: "WEBHOOK 5: Delete"
+ netbox.netbox.netbox_webhook:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ content_types:
+ - virtualization.virtualmachine
+ name: Example Webhook
+ payload_url: https://payload.url
+ body_template: !unsafe >-
+ {{ data }}
+ state: absent
+ register: test_five
+
+- name: "WEBHOOK 5: ASSERT - Deleted"
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['after']['state'] == "absent"
+ - test_five['webhook']['name'] == "Example Webhook"
+ - test_five['msg'] == "webhook Example Webhook deleted"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,103 @@
+---
+##
+##
+### NETBOX_WIRELESS_LAN
+##
+##
+- name: 1 - Test wireless LAN creation
+ netbox.netbox.netbox_wireless_lan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ ssid: Wireless LAN One
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['wireless_lan']['ssid'] == "Wireless LAN One"
+ - test_one['msg'] == "wireless_lan Wireless LAN One created"
+
+- name: Test duplicate wireless LAN
+ netbox.netbox.netbox_wireless_lan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ ssid: Wireless LAN One
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['wireless_lan']['ssid'] == "Wireless LAN One"
+ - test_two['msg'] == "wireless_lan Wireless LAN One already exists"
+
+- name: 3 - Test update
+ netbox.netbox.netbox_wireless_lan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ ssid: Wireless LAN One
+ description: New Description
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "New Description"
+ - test_three['wireless_lan']['ssid'] == "Wireless LAN One"
+ - test_three['wireless_lan']['description'] == "New Description"
+ - test_three['msg'] == "wireless_lan Wireless LAN One updated"
+
+- name: 4 - Test delete
+ netbox.netbox.netbox_wireless_lan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ ssid: Wireless LAN One
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "wireless_lan Wireless LAN One deleted"
+
+- name: 5 - Create wireless LAN with all parameters
+ netbox.netbox.netbox_wireless_lan:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ ssid: Wireless Network One
+ description: Cool Wireless Network
+ auth_type: wpa-enterprise
+ auth_cipher: aes
+ auth_psk: psk123456
+ tags:
+ - tagA
+ - tagB
+ - tagC
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['wireless_lan']['ssid'] == "Wireless Network One"
+ - test_five['wireless_lan']['description'] == "Cool Wireless Network"
+ - test_five['wireless_lan']['auth_type'] == "wpa-enterprise"
+ - test_five['wireless_lan']['auth_cipher'] == "aes"
+ - test_five['wireless_lan']['auth_psk'] == "psk123456"
+ # - test_five['wireless_lan']['tags'] | length == 3
+ - test_five['msg'] == "wireless_lan Wireless Network One created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_lan_group.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,97 @@
+---
+##
+##
+### NETBOX_WIRELESS_LAN_GROUP
+##
+##
+- name: 1 - Test wireless LAN group creation
+ netbox.netbox.netbox_wireless_lan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Wireless LAN Group One
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['wireless_lan_group']['name'] == "Wireless LAN Group One"
+ - test_one['msg'] == "wireless_lan_group Wireless LAN Group One created"
+
+- name: Test duplicate wireless LAN group
+ netbox.netbox.netbox_wireless_lan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Wireless LAN Group One
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['wireless_lan_group']['name'] == "Wireless LAN Group One"
+ - test_two['msg'] == "wireless_lan_group Wireless LAN Group One already exists"
+
+- name: 3 - Test update
+ netbox.netbox.netbox_wireless_lan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Wireless LAN Group One
+ description: New Description
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['description'] == "New Description"
+ - test_three['wireless_lan_group']['name'] == "Wireless LAN Group One"
+ - test_three['wireless_lan_group']['description'] == "New Description"
+ - test_three['msg'] == "wireless_lan_group Wireless LAN Group One updated"
+
+- name: 4 - Test delete
+ netbox.netbox.netbox_wireless_lan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Wireless LAN Group One
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "wireless_lan_group Wireless LAN Group One deleted"
+
+- name: 5 - Create wireless LAN group with all parameters
+ netbox.netbox.netbox_wireless_lan_group:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ name: Wireless LAN Group One
+ description: Cool Wireless LAN Group
+ tags:
+ - tagA
+ - tagB
+ - tagC
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['wireless_lan_group']['name'] == "Wireless LAN Group One"
+ - test_five['wireless_lan_group']['description'] == "Cool Wireless LAN Group"
+ - test_five['wireless_lan_group']['tags'] | length == 3
+ - test_five['msg'] == "wireless_lan_group Wireless LAN Group One created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/integration/targets/v4.3/tasks/netbox_wireless_link.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,130 @@
+---
+##
+##
+### NETBOX_WIRELESS_LINK
+##
+##
+- name: 1 - Test wireless link creation
+ netbox.netbox.netbox_wireless_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ interface_a:
+ device: Test Nexus One
+ name: wlink1
+ interface_b:
+ device: test100
+ name: wlink1
+ register: test_one
+
+- name: 1 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_one is changed
+ - test_one['diff']['before']['state'] == "absent"
+ - test_one['diff']['after']['state'] == "present"
+ - test_one['wireless_link']['interface_a'] == 6
+ - test_one['wireless_link']['interface_b'] == 5
+ - test_one['msg'] == "wireless_link Test Nexus One wlink1 <> test100 wlink1 created"
+
+- name: Test duplicate wireless link
+ netbox.netbox.netbox_wireless_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ interface_a:
+ device: Test Nexus One
+ name: wlink1
+ interface_b:
+ device: test100
+ name: wlink1
+ register: test_two
+
+- name: 2 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - not test_two['changed']
+ - test_two['msg'] == "wireless_link Test Nexus One wlink1 <> test100 wlink1 already exists"
+
+- name: 3 - Test update
+ netbox.netbox.netbox_wireless_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ interface_a:
+ device: Test Nexus One
+ name: wlink1
+ interface_b:
+ device: test100
+ name: wlink1
+ status: planned
+ register: test_three
+
+- name: 3 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_three is changed
+ - test_three['diff']['after']['status'] == "planned"
+ - test_three['wireless_link']['status'] == "planned"
+ - test_three['msg'] == "wireless_link Test Nexus One wlink1 <> test100 wlink1 updated"
+
+- name: 4 - Test delete
+ netbox.netbox.netbox_wireless_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ interface_a:
+ device: Test Nexus One
+ name: wlink1
+ interface_b:
+ device: test100
+ name: wlink1
+ state: absent
+ register: test_four
+
+- name: 4 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_four is changed
+ - test_four['diff']['before']['state'] == "present"
+ - test_four['diff']['after']['state'] == "absent"
+ - test_four['msg'] == "wireless_link Test Nexus One wlink1 <> test100 wlink1 deleted"
+
+- name: 5 - Create wireless link with all parameters
+ netbox.netbox.netbox_wireless_link:
+ netbox_url: http://localhost:32768
+ netbox_token: "0123456789abcdef0123456789abcdef01234567"
+ data:
+ interface_a:
+ device: Test Nexus One
+ name: wlink1
+ interface_b:
+ device: test100
+ name: wlink1
+ ssid: Wireless Network One
+ description: Cool Wireless Network
+ auth_type: wpa-enterprise
+ auth_cipher: aes
+ auth_psk: psk123456
+ tags:
+ - tagA
+ - tagB
+ - tagC
+ state: present
+ register: test_five
+
+- name: 5 - ASSERT
+ ansible.builtin.assert:
+ that:
+ - test_five is changed
+ - test_five['diff']['before']['state'] == "absent"
+ - test_five['diff']['after']['state'] == "present"
+ - test_five['wireless_link']['ssid'] == "Wireless Network One"
+ - test_five['wireless_link']['description'] == "Cool Wireless Network"
+ - test_five['wireless_link']['interface_a'] == 6
+ - test_five['wireless_link']['interface_b'] == 5
+ - test_five['wireless_link']['auth_type'] == "wpa-enterprise"
+ - test_five['wireless_link']['auth_cipher'] == "aes"
+ - test_five['wireless_link']['auth_psk'] == "psk123456"
+ # - test_five['wireless_link']['tags'] | length == 3
+ - test_five['msg'] == "wireless_link Test Nexus One wlink1 <> test100 wlink1 created"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/netbox-docker/v4.3/docker-compose.override.yml 2025-09-09 00:14:19.000000000 +0000
@@ -0,0 +1,25 @@
+---
+version: "3.4"
+services:
+ netbox-worker: &netbox-override
+ image: netboxcommunity/netbox:v4.3
+ healthcheck:
+ start_period: 300s
+ timeout: 3s
+ interval: 15s
+ test: ps -aux | grep -v grep | grep -q rqworker || exit 1
+ netbox:
+ <<: *netbox-override
+ ports:
+ - 32768:8080
+ healthcheck:
+ start_period: 300s
+ timeout: 3s
+ interval: 15s
+ test: curl -f http://localhost:8080/login/ || exit 1
+ environment:
+ SKIP_SUPERUSER: "false"
+ SUPERUSER_API_TOKEN: "0123456789abcdef0123456789abcdef01234567"
+ SUPERUSER_EMAIL: admin@localhost.com
+ SUPERUSER_NAME: admin
+ SUPERUSER_PASSWORD: admin
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/unit/module_utils/test_netbox_base_class.py ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/unit/module_utils/test_netbox_base_class.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/netbox/netbox/tests/unit/module_utils/test_netbox_base_class.py 2025-03-04 22:42:07.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/netbox/netbox/tests/unit/module_utils/test_netbox_base_class.py 2025-09-09 00:14:19.000000000 +0000
@@ -63,6 +63,7 @@
"state": "present",
"validate_certs": False,
"cert": None,
+ "headers": None,
}
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/CHANGELOG.rst ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/CHANGELOG.rst
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/CHANGELOG.rst 2025-07-07 23:33:23.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/CHANGELOG.rst 2025-08-29 16:31:24.000000000 +0000
@@ -4,6 +4,19 @@
.. contents:: Topics
+v4.9.0
+======
+
+Major Changes
+-------------
+
+- Remove ``cloud.common`` as a dependency, so it will not be installed automatically anymore (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+
+Known Issues
+------------
+
+- The lookup plugins use ``cloud.common``, but this collection does not support ansible-core 2.19 or higher (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+
v4.8.1
======
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/FILES.json ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/FILES.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/FILES.json 2025-07-07 23:33:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/FILES.json 2025-08-29 16:31:40.000000000 +0000
@@ -190,10 +190,17 @@
"format": 1
},
{
+ "name": "changelogs/.plugin-cache.yaml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d1d4e2073eb67272ffd95c49cf05c620c159d792e9e227073fa08eed3ca3cf2b",
+ "format": 1
+ },
+ {
"name": "changelogs/changelog.yaml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de20a03215c7f33c4090e4894adb88cdfc0f7e5ca76342cb24216591889aff86",
+ "chksum_sha256": "0ab7a4a0953785c5782dae75f14ee918414a2d04741a58829921afeecaa710ad",
"format": 1
},
{
@@ -508,56 +515,56 @@
"name": "plugins/lookup/cluster_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0d9b3526fd330c16caa3671f62ba44f0f6c28ae1879b63582352d17e2c2d4eab",
+ "chksum_sha256": "dddc8e60b6907de7fccc2747cb750acef7c500f70f74517829677fd8ffddb275",
"format": 1
},
{
"name": "plugins/lookup/datacenter_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1e5af6aa72d05fe1dfa33afee39c1b7070ad9bb755374a4f25a1339f7d435393",
+ "chksum_sha256": "ce150bc993b56f8cde0eadc66d4ec4db4e3bab06161092b6c3da1082cc89761a",
"format": 1
},
{
"name": "plugins/lookup/datastore_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0a7e1dbda9cc426cc43af906405be5dd871ce3d61149cdd43b276635ae826744",
+ "chksum_sha256": "91d120e950468171c4222050403c78b8e4bf570946087e17540f56292b93b016",
"format": 1
},
{
"name": "plugins/lookup/folder_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bc8245ccbc7cb79700fa80d860771d646ee322f6782a32672723c9168a095bce",
+ "chksum_sha256": "f0e9fc5ba40f13fcedad5ac1c8234eec01ac6a4057ad57a2ef4eba074b71e0a5",
"format": 1
},
{
"name": "plugins/lookup/host_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d7d667a536822414884476b5c2a070769bc405089ce1f7ef00f1498405cb242",
+ "chksum_sha256": "822f54d2e5eaafbe5ba05d51b943faf519b93e9fcd974a0478daab0243ce5c15",
"format": 1
},
{
"name": "plugins/lookup/network_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5c9c85412e8306ddc7f915eb1ac7a75751919e16cc796e841590d4af36880eb6",
+ "chksum_sha256": "d5c9259a0412f3fb1a46db095ac4f876c46ffd9e5476efc782db56226dce5b48",
"format": 1
},
{
"name": "plugins/lookup/resource_pool_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e37c708d6a20a59571f3e93b09aa150b14e8416a78f6792c532771f3f1b8f5cc",
+ "chksum_sha256": "1769ca635b3782872aea858edf4aa0668998727bdf8512e5d60ee3d68211c07e",
"format": 1
},
{
"name": "plugins/lookup/vm_moid.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ed2bda981b7924091ae4b9d0a5d422ddbb1e588741ab7d6915d93480d2b1b566",
+ "chksum_sha256": "a13ea0624dfd4b1591bf2425bc4fea08243a2f60131b7394cab2fb9e8a08c1bc",
"format": 1
},
{
@@ -571,7 +578,7 @@
"name": "plugins/module_utils/vmware_rest.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "591d8700de98fb84e3450ccad3e494c0f0d9c95a9a25f79a087555446f2b1241",
+ "chksum_sha256": "90d1b8e1b06d41be988b9fba95fb52113bb28a89a005a95402c0cc376bcfa407",
"format": 1
},
{
@@ -585,938 +592,938 @@
"name": "plugins/modules/appliance_access_consolecli.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8fadb74ca670605ad426cafae43f9cff5fd2c6135a141d7da66644b95ca403d5",
+ "chksum_sha256": "ace7724b9235b3e0c2473eb7131367df99f500e9b7dc3465f57b710c16af9f93",
"format": 1
},
{
"name": "plugins/modules/appliance_access_consolecli_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8866f5d3b550b576e4a2a3496654440c269e4c7b3fc393a2b25b4216c82b0eb0",
+ "chksum_sha256": "2385bb517421a928c636d95745420ac6c56de19c4296d5ebf3e6d59bbea58038",
"format": 1
},
{
"name": "plugins/modules/appliance_access_dcui.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d38c16292cac98ce0bc5b9bd388648c1c5ccbd963ffba9a8dea9a42d38fa744f",
+ "chksum_sha256": "4f414ae5e0b73113801a8e8c3cc88024575847ba5164e1fc10ea971c29d64270",
"format": 1
},
{
"name": "plugins/modules/appliance_access_dcui_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9911782705e4f951a452f9684870205e6a5d1b1379066afe55d26311b88e01f0",
+ "chksum_sha256": "8e3fd3e1202f4b5f7b64ee23c5c921cc3a65a382d88b58320a4a1af3a04652c1",
"format": 1
},
{
"name": "plugins/modules/appliance_access_shell.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6d89a1fea585f4572f450fad115adbdd750e7073fa7765c8cf41df08fdd48623",
+ "chksum_sha256": "22762f5e1108ed7de247c07880e054a1ed7c6c1936acc6424bf6905cff9a1c1c",
"format": 1
},
{
"name": "plugins/modules/appliance_access_shell_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8dc4b5128c11e227dac06e1ce32b0f9238305dcf5dc8adc049c62024d2f05a0a",
+ "chksum_sha256": "f358c938b8e3bbe4771e432796c58b8c1de84132de40045a4080971190fe709b",
"format": 1
},
{
"name": "plugins/modules/appliance_access_ssh.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1f9996ba1f8574a5aa222561dafe02cd2225fdb48196460c16992e48656528e1",
+ "chksum_sha256": "88c86eb8e0d07246aae2b4a091fc45233df6a06f6fe40b8dfa92e7d14a905571",
"format": 1
},
{
"name": "plugins/modules/appliance_access_ssh_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d59088e068d499e07b6512fcc7f2423aeeeb11bc3f46e0b4762bf6459b301060",
+ "chksum_sha256": "1c7c7fe6cf4a17b1162d4b49b6180f47803a908dd0b75adc3eab3f2adddd657b",
"format": 1
},
{
"name": "plugins/modules/appliance_health_applmgmt_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7109a79889131221c4ed2fd5a35285ff9f3f38b52a5f0260493ef69a0a9defca",
+ "chksum_sha256": "017819061a38c0886a570a29f2eaa2d28ba07d9ec92d2afea5a6a1dc2ac9c649",
"format": 1
},
{
"name": "plugins/modules/appliance_health_database_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "61e9f32db51d538ab20e6e463d9f54652861ef6691f9d60754335947e1833d2f",
+ "chksum_sha256": "29db7f1247cc63e916579a0ed72731380753c8858ec5ce8b275ff7fbdbd1b870",
"format": 1
},
{
"name": "plugins/modules/appliance_health_databasestorage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7b4b251a9f272ccef6b35964f606f09585cb839bee8db6467c9f828caf50eae2",
+ "chksum_sha256": "a3865ff028e9d8887901cc4668c0306e0e9eff24ed9a491eafa173f351e9fbcd",
"format": 1
},
{
"name": "plugins/modules/appliance_health_load_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ff7e614f91b2b0fab1a8cfa59ca6ff0aa4854224c7d830c78fa2e42210b738ad",
+ "chksum_sha256": "be8074a73d881886a5e371aa22bbbb2414853ba72f6f5678da1f347b339da468",
"format": 1
},
{
"name": "plugins/modules/appliance_health_mem_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "443fe95cd2e22b9df733b47fa6820d597e9969848601091b9db259c77c005245",
+ "chksum_sha256": "fc26d05141e948224c0ffce7e412cdffcd56e862aabb6ce919b838552fd1a1d5",
"format": 1
},
{
"name": "plugins/modules/appliance_health_softwarepackages_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8f7001adc260bc866b740024feaf3c27f7edbce7a52bd750fb7a55656742b461",
+ "chksum_sha256": "8f2f1618a6a43ab20692b923a6688a29f3ce2ba402477e266d92ff645cf5e179",
"format": 1
},
{
"name": "plugins/modules/appliance_health_storage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1881ea06f0f36e015d717df8a1c7ec072c7e9dd68621315d5f6eb80cb22af7a5",
+ "chksum_sha256": "239279e43aa5cc620c0d9f05f359dd5466d09edad0c00d5b4798eec1b02acce0",
"format": 1
},
{
"name": "plugins/modules/appliance_health_swap_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "79fc1392a12be58563cc927ad174534e278aeafb7bc5136d74d17ea84251a5ce",
+ "chksum_sha256": "b295fb3c8a4ec0dd9926619c4a7b964c5b8248e215621f597a02cd0272cf9bdc",
"format": 1
},
{
"name": "plugins/modules/appliance_health_system_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2d10841a1103d03b0158b36f47f0c8780386101c1ce7352492a5e5a80681a11f",
+ "chksum_sha256": "d0c790b24da2336d54d12e73778cfb3342fa9057284d00f18acdb8a091dac321",
"format": 1
},
{
"name": "plugins/modules/appliance_infraprofile_configs.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "33952566d55349f287e76388cb18e8b52486f098e9d376aac1524361076d7965",
+ "chksum_sha256": "3daee0d68ae3cb11353ee7c6706a11e6f90829a0c79225d945dad9be290d0d19",
"format": 1
},
{
"name": "plugins/modules/appliance_infraprofile_configs_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "105d3cd2902b9f3fad87fcfa57f6928f8cfd8d6dfdeaaea3b01b1b202bac4931",
+ "chksum_sha256": "fa0a4ffead8d3a75bcca016351c2979539d0c455374ce557af8322c116f52d58",
"format": 1
},
{
"name": "plugins/modules/appliance_localaccounts_globalpolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "624d20556f99353b9f6269c838e3004fa12e881f5557300f3634e373ae8b83c0",
+ "chksum_sha256": "24454c8e0dfe00a0396fd36de34771e034becfe2b5cf038d80d42cf6588df624",
"format": 1
},
{
"name": "plugins/modules/appliance_localaccounts_globalpolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "73cabbab4d69b936f0a88755a6416d64a8b9b872076cc98df119fa8d00b3cbe8",
+ "chksum_sha256": "d687d8120d3719519f7c3b100cfa7ba97e9ea5d89300f0d5be629c1243667078",
"format": 1
},
{
"name": "plugins/modules/appliance_localaccounts_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "791be71d3abbba565f997d202ec33f3b9dc87069479345cebd404445ea8aebc8",
+ "chksum_sha256": "b513f0a878171cdff282c7b82aadc8117f129acb8467641d8a4802efd6d35490",
"format": 1
},
{
"name": "plugins/modules/appliance_monitoring_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fed0db11a182564bbce446e74415bbf65c20dc1d553c5a057a4a8b062f274245",
+ "chksum_sha256": "6b576982cc607a63f0181eafc374ce9d4d554a34bb459abae14bc121ccdb81ae",
"format": 1
},
{
"name": "plugins/modules/appliance_monitoring_query.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d5e753cb13e7c845e13e9cb99ab5db33c7aed7234333502196fcae62570f7677",
+ "chksum_sha256": "8cf1ee035fcda40dd407fb82704390a316053e453d44bf90d89a13713ff2c5d4",
"format": 1
},
{
"name": "plugins/modules/appliance_networking.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9014b96a4448aab9d776878c32a1e944e54558b73a2cf624f296eaa090c0c1c9",
+ "chksum_sha256": "c4d9e00e069688b4f8174eff6348bff866cf9e8f06c34339b44b56f9fdbe4744",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_domains.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "abc54aec35523301ae28270488d128ca3019e0d8b4290e5e31bc0ad87ad28111",
+ "chksum_sha256": "b296a6c56ac8c6f910063c066bb20eb8a026440928cb1908657e44c59f718f8c",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_domains_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "acf683f4d33f8958c71b40cd0591d4159795b3708dc64faf354b97b440444f79",
+ "chksum_sha256": "0e31ad57f7fe897e2b19bde28b07df8dbe34d6788d047da58189dc805a0fd515",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_hostname.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5937f1bc11370c2dc935eba688651eabcc0ba4d486ddc388add0742cd4ac2087",
+ "chksum_sha256": "442fb719b82792ba78dc53246769c13f6a422a29d187bb7662443ade05d009fc",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_hostname_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "97a4bc6e95910b0b9ea825353ce87dba14a305c8b37567f791be37b73d84f0f4",
+ "chksum_sha256": "a7a489e25b1337c2b844c5c72302627557314e6195b3caab45a07b378dd7f678",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_servers.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ddd891c4a72544c5212f8365458e07e60c11d423f6bd3113b1e769cb7e0d7a68",
+ "chksum_sha256": "2bbc6876b05be3c0faa9722417b4e94e3ccf562f92f76e1cd903fb5eef08f6e7",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_dns_servers_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d3a2fed6cdbc8159953f07f36c17b948ece8e4cbb94cac2b579036640a3aa7ba",
+ "chksum_sha256": "4ba6a53983fd32a54d069e70fac928d17e90344c521d3b2015e9a24731482b32",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_firewall_inbound.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c00e71bde060862b3e2815b782f34f57cd98ce7c404c7b594d6cc5e303a5756",
+ "chksum_sha256": "48b2448950f0b85e905a599db569d351885106818ef8ceebbc93c02c88520e80",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_firewall_inbound_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "86377013d249c88aa13d30b0c95e914f68b2a14885e2477e04f1669feb78e3c4",
+ "chksum_sha256": "323432fa62bc479476586866751ebd96c483726fd59e6a1ee11f4a4ad33f1ab2",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3528d996c69d241ceba58cb5cb9ffae187c0d9b33c4e72361d711a5b33f6ed41",
+ "chksum_sha256": "84e01749f8773a9642bd2a94a3813c47a73e3b487cdbe73eb3a8b0864a40a6d3",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_interfaces_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1e4e618a0eb1223d10c30b8b27c8d73da39988990376d2a7d963bae2cd7e13aa",
+ "chksum_sha256": "749cf223f504b99151eb1adf5e1ea62b2781789533899f404a787fb7ef1770b3",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_interfaces_ipv4.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eecfbe437250b7589f936fc252170d7f2a46efc31222e1bfaf16c75e655e6612",
+ "chksum_sha256": "1cbde118644a28c6500bc1cfd75775f3f2137133ea5c2c0ed738456a789ad9ff",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_interfaces_ipv4_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b450f90ea04eb0e0c189cab8194d33635b9a7842b8c7e6f17c99d99c02fa53ee",
+ "chksum_sha256": "5751f45ea9a6b27714be818857af65d9a3680ceec21eaa4592fa3493b176fe48",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_interfaces_ipv6.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "10b5867198c92d1d982f0e4b5a33ac2e3f89e2dac5f15504b99ff99af0d95a32",
+ "chksum_sha256": "9efc39ceb392570b364cb2d74a174fc195643d109067b9e4f1679b00842bf07c",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_interfaces_ipv6_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "87c257a928eee60cdb39dc1350b74e2242f3254be5450c9aa0b148fc911e2df3",
+ "chksum_sha256": "eb17b951ea9189f248da7d40331b46296d8a27989ea570e4149ac0e7e827619c",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_noproxy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "78b3ee3031a96d6b1fc7ebda0737a51323aef4e3876aedf47b9df01bdbcfad4d",
+ "chksum_sha256": "558f8dfe33a699cc3af41567757661360a7d872b4d207450c6054541d21aa33b",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_noproxy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6da940a428ad0abc308443278a603e091ee21afa5c5119e5899768503213de33",
+ "chksum_sha256": "ee56fcf025a557159c86be7d9ea122751411b55d562c5db5c8d2753e6cd547ab",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_proxy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7836ad1d61af58735b947701a286dcef51ded75d16e013a69af33723a870cece",
+ "chksum_sha256": "6a90c60ba591cb1257617af35cca8170439e9e0005c2c3216b1034c09b9b437d",
"format": 1
},
{
"name": "plugins/modules/appliance_networking_proxy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9257e0f7d4d721ced2840f74a99047f5f00ce45bf1df6e0d08525c3f2e02b942",
+ "chksum_sha256": "d003fc017b8b86ccadb7e537baaed1faa60f15597cc70455d2f244c959e42a1b",
"format": 1
},
{
"name": "plugins/modules/appliance_ntp.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6c87a3e4b29ba7d0b7399b55ee5d90b35b01fcd47d0c451fbecb29b90522a0d9",
+ "chksum_sha256": "9c0c936454a24fe8fce4dee507a5ce0c0334abd3284c1eca093f8d0d40038b31",
"format": 1
},
{
"name": "plugins/modules/appliance_ntp_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d79cb759184627bd0201d757ed9bd33c70b59e37e4a029ea31b3d7912274dcb4",
+ "chksum_sha256": "4ee993e6d83f6b4d3e8f3ff18e4fae5b8c3ca29e1688d5204ab82b149bb17af8",
"format": 1
},
{
"name": "plugins/modules/appliance_services.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "81d8e75b835d30dcd2714a37b9159120c86b584cc817a3ee3999c6c42737e82d",
+ "chksum_sha256": "aa7b6b40806fe097f022a455c2a916371bcae31a8ac4c978f52ef390609163c9",
"format": 1
},
{
"name": "plugins/modules/appliance_services_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "74933aa4d647706b8615448df7d72e3f484785a9aac32c0701a718e04a4cb251",
+ "chksum_sha256": "e2691d0b88e8f693cd3ab6347664b899e440ee9e5afc482408f80c427bcf0119",
"format": 1
},
{
"name": "plugins/modules/appliance_shutdown.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ef041a66866c46154c78c298d0c58e1c563709c4256f841cf1ab27cd7a2bf1e9",
+ "chksum_sha256": "01fa2b5f67cd02109b38da49276d87d387b8acb4a7847a50e76d124cf1c87bde",
"format": 1
},
{
"name": "plugins/modules/appliance_shutdown_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ec998bcfb99f4887f21653483dfa1c736ad59755cfaa3391d5b1d0451266651e",
+ "chksum_sha256": "b80defb202ed938a59720e86206ba6e6ed4720379b1bb8d21b6d3b0f706172c2",
"format": 1
},
{
"name": "plugins/modules/appliance_system_globalfips.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "721e1db881310691022c0da9a7c8f4ef982aca337713c7ccc999abcc43f2aff7",
+ "chksum_sha256": "d3451cd215db803ba6c35a62738f0ba41aa60cda87dfc47c0730b95a49c245c8",
"format": 1
},
{
"name": "plugins/modules/appliance_system_globalfips_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e8e258ef7e9e2d38c805ff0e6628a60664bb5c954d6fbd76aa9f416331a5e8d",
+ "chksum_sha256": "ee09b632ce51bdc8022b3c4868eab12c2b807d85dd371c05bda67aab14b0d06c",
"format": 1
},
{
"name": "plugins/modules/appliance_system_storage.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bc6dd0971f0cd7045ce6c0924603244544eb588a9f9ca2be4998799adb7f3a90",
+ "chksum_sha256": "435ad2649b360f5e7585a8edd9e85353d231a3986313a302d61329ca269326d0",
"format": 1
},
{
"name": "plugins/modules/appliance_system_storage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a2284d894a3621d9a87037c567c71c9b6ae0a8a05c20656e0ed9887d28011a4c",
+ "chksum_sha256": "354010eb3dfabd955a602dcbbe525267aafb125647fbb3ba0ec23889d252e970",
"format": 1
},
{
"name": "plugins/modules/appliance_system_time_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fcc65b5fb28cddf0d20fc43dfe5519f5b115c07f2844fa406471a579674ce8c5",
+ "chksum_sha256": "a761093a06a5b6976f3e5518e9df22bdd77306f1ae3e8da01bb0bdf70e313452",
"format": 1
},
{
"name": "plugins/modules/appliance_system_time_timezone.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c62803cd659373104d9752059c20dafc250b8efb09c9af068bf77924b13f837",
+ "chksum_sha256": "e1047738bb0f2a63dd5d1d4c6d3633845341540e2bb607fa90f161efffa8d954",
"format": 1
},
{
"name": "plugins/modules/appliance_system_time_timezone_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6e595335ca4c91a28cf9fd4377cebd313c349222a6ddf309ecf46aa7c7492cdb",
+ "chksum_sha256": "60a7cdc269d61b424aac88ffc53094d3a1a0272febb93df4a2d2db22ea9cf4a8",
"format": 1
},
{
"name": "plugins/modules/appliance_system_version_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "010582e8e131db7d187dcb3cafbe82fcbaf871440607ac43fabea1fbaabcdb9d",
+ "chksum_sha256": "07ee2ddd4102ee208ab79bf865fdb555fe47f4ba3cd7994a16fe7621e7fd1a64",
"format": 1
},
{
"name": "plugins/modules/appliance_timesync.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ba823f8077ace5f1b4b0bc1834720f7677b0b4b48c2d4ae4bc6046a93056b309",
+ "chksum_sha256": "65ccf44b9be6ee68c55db7072b9f18ed4a5da13eb1952e1400eb3cc72cb88072",
"format": 1
},
{
"name": "plugins/modules/appliance_timesync_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "30e8b03bcac37d321648fcc549e29ef4f101f8dda259f9e026649cf8aa0f36e7",
+ "chksum_sha256": "979326db4af3f59896ad85aa525f710414709f3f878ddd81e87e2a6af1371061",
"format": 1
},
{
"name": "plugins/modules/appliance_update_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6d70cf39524e9bbbe277bebb18c714f314cd1159d05da5c05a60bc38f7fd4826",
+ "chksum_sha256": "3966eee041da8be5609e9d8aed35f684fcf7d8f8b6a49911de07b5e8812c4d5d",
"format": 1
},
{
"name": "plugins/modules/appliance_vmon_service.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0b33c44e2fe05b7f80758d6b6091ea4f002fee4582019e7243e2d5d5f11834d4",
+ "chksum_sha256": "ade4ba97a7254dd5c16fabf00c990122c0603f3669754cf7a8659f2dbc67b589",
"format": 1
},
{
"name": "plugins/modules/appliance_vmon_service_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bc0c7ec74ba92a834677e97c58ba8c6c3f43633e1603dc075a2408959e9544c2",
+ "chksum_sha256": "f002893a50c478177d059ed0d0d887860a5c37d379dca15a7ac938e07e8e66d8",
"format": 1
},
{
"name": "plugins/modules/content_configuration.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b4ce68f30bd63c379222cac78d86dd336d3f17db9c7478ccc7e34209d2a9e89",
+ "chksum_sha256": "53d0bf9b02ada2f43b9faa69d3a7f585962cef2c32462129d66df694944b63b0",
"format": 1
},
{
"name": "plugins/modules/content_configuration_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e706687e5cc52fd6c8365194df8684d173ed18fded0867155b985f3faac23794",
+ "chksum_sha256": "88003fec33cf8a7cdad344a3581883c8fa398e41e83d20765c667e02a81bf38f",
"format": 1
},
{
"name": "plugins/modules/content_library_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d6bc654b45636e186f6cfd610f4d37ab84e878740a8d3efcff0c9390a220b385",
+ "chksum_sha256": "f4022379bee809d88daf33b5dc441fdeea1f4c7a7394092f6844ce3e887e5e0f",
"format": 1
},
{
"name": "plugins/modules/content_library_item_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "83f4463d98f923086246ea51a8aa313ab3f6dc1fa27f86ee2197b44ec9b5dc56",
+ "chksum_sha256": "5bb8bc03f62631923fb2f2816cbd0453a47b8afc85c9f2ea9f4b1447b99675e5",
"format": 1
},
{
"name": "plugins/modules/content_library_subscriptions_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bd5f48a39cfa6d918035328020db09a0e58892deca46a2816ee63e5a8e618fac",
+ "chksum_sha256": "df56061dc74aba5325eafbee8f4967fc0231c00fd4c1fe23cfd326f0cb0cdad4",
"format": 1
},
{
"name": "plugins/modules/content_locallibrary.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9a5bd02fc0a9138eb24b8e2a673fc56396500bdc0e39e63c806b6a04a365e9e3",
+ "chksum_sha256": "33b93d8e9f25f6dc1d8fd4d5ceba1ee0c5bb57e9598e2acb0eb0edd9ca3abebe",
"format": 1
},
{
"name": "plugins/modules/content_locallibrary_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "248e5aaccf99984c4de22c028694edf0a42d8046fe3b6607ac0506651a1a5dc0",
+ "chksum_sha256": "a144605bb3de1b8bf70e90a857ac2777f5b93572f418f343700b8392a0563e57",
"format": 1
},
{
"name": "plugins/modules/content_subscribedlibrary.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "be7f776fe7a191b0ea3ef4f5286c80997f449788a5f38b4b70c2cdc25257851c",
+ "chksum_sha256": "db748975700a646019afcd72ae83a1e12472ea3aefb5682a2ac2c7abf6e3f64e",
"format": 1
},
{
"name": "plugins/modules/content_subscribedlibrary_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0b855b2374db756ec2673f9b3a9633a34ae5e70ad3f2496c4e30fde28f19cbb6",
+ "chksum_sha256": "3d766dcfb5ff7d25ff03ccebda535f047278e4c3725e8544abdb2ba0c55be770",
"format": 1
},
{
"name": "plugins/modules/vcenter_cluster_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "129786cb0ad32f981683754d85da845630804ce5dac3902b839e5f75de4a24e6",
+ "chksum_sha256": "655df8b1f4ae089b3778a3931922bcb1c5346ea7d73024ee3682cc427a3550bb",
"format": 1
},
{
"name": "plugins/modules/vcenter_datacenter.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "409ac38a329e2b05676845acf5f4cadbf957d327c6854398170b26e9a0c432cf",
+ "chksum_sha256": "c2a38c30c9d1806d93c0a33a6314bc03dcdef46ee2cb93218dc2d735c97dd81a",
"format": 1
},
{
"name": "plugins/modules/vcenter_datacenter_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1817dae1e95ec2cd81e507814ed79d4dddc88178bc66ad8bc7d1b36ad218bc44",
+ "chksum_sha256": "349ed6784a81872564cda77becdbcadaec03a3f4a54faa719b7a7a8f8b1004c8",
"format": 1
},
{
"name": "plugins/modules/vcenter_datastore_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "492c28383a3e09a8f4534816748c7969235b2fcc1feb6dd02c254576a3061382",
+ "chksum_sha256": "0ca5d1e0c6f7d22306c6cdd048dcb6844ee7a71ec79e67d2eaa2849cbf75b43b",
"format": 1
},
{
"name": "plugins/modules/vcenter_folder_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f58293122c26f199b1ae0e50f28c18d35e5bf7e8fe1002fce7ce18c0fa019e28",
+ "chksum_sha256": "a10b393e34a536165ff3d340eff7d6d104c60cf2a43a0b6124034891911c806c",
"format": 1
},
{
"name": "plugins/modules/vcenter_host.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "41a85a5051a96fd649c068a0d4e5d5baf5586878ff288a84bdfddaea7a954aa0",
+ "chksum_sha256": "efb142734a8ccf913841fbe943679366c04e9ec908359700fdb0ca3335002bb0",
"format": 1
},
{
"name": "plugins/modules/vcenter_host_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "69448efff9454cff4e7af9839390153adc71936070c381eaf07954be3b137bde",
+ "chksum_sha256": "9019f66866cf225796cfcbf0ed784bb3aaf3d362e9d92752684a5b795177047a",
"format": 1
},
{
"name": "plugins/modules/vcenter_network_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fcc65a156ae0548dbce2e6bd829888c132d2dd4b2603a800e588e0d8576e9213",
+ "chksum_sha256": "83dca0ccf6f814ea8c028a9f0d1b16f7700afafd22e87a54a0906137b9f48531",
"format": 1
},
{
"name": "plugins/modules/vcenter_ovf_libraryitem.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6bead29947a7ecde44e18a79ddf911900c77705210b1751e095373bd2087681",
+ "chksum_sha256": "1e2788d455bd27a3258ddb4e085e5724023a2784b4f09d2279a9888cf4833ac7",
"format": 1
},
{
"name": "plugins/modules/vcenter_resourcepool.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aaa173ba6fa24ea6752b6e6bd39c6e091d7e12b7cd7c29f1e8f4f888ea080449",
+ "chksum_sha256": "d7713d9c68f87f672994026f52f1ea23c0ab18261d1f774430d73f6469592007",
"format": 1
},
{
"name": "plugins/modules/vcenter_resourcepool_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e10f6d637d24a07e4d3d95b7ddab4f17a6561d371df23fe42394ccbd01b04f90",
+ "chksum_sha256": "eb234c13fab262777446d537706aeb53aa45b71a604a29c334be0bbded4ed309",
"format": 1
},
{
"name": "plugins/modules/vcenter_storage_policies_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "24908f94117478d0de152c17f767d7c607d993a5f279403b8b140fc181d69d2d",
+ "chksum_sha256": "c27a319813c5cb2f9cc68174f2f37311c279fb279bbade0a04559fe472d42a31",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8217075c68c880c0d5a6b5f326e733b27ad7ef0b7bdbebf9ad3e6bea7d7d0ca8",
+ "chksum_sha256": "970cf6baab2fbb162120de943c46b5625cd56e69da0b40ecaf09eebce5af18f0",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_customization.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11208184c34d1e5aab35913080cb58758d80b4c1b6a3b0b95a7a97b8245fec45",
+ "chksum_sha256": "5be1f8b0947818b924a3b99c22395d3cdeb66020ef6636cc2e0f166885c5edcc",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_filesystem_directories.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb22bc2031295aa084a58942a3588d1687278b38db33227965be7c20b42acc81",
+ "chksum_sha256": "200d79bea7a3dfc3a12702e2a8d0506963dd26ecbf96b3ada1b9cf8d3b58f8ce",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_identity_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b2f21ceb8a98c8cc2963daf46870f89790d4d39e3840306419ca5a6bca256698",
+ "chksum_sha256": "7de939aad401ab001daca56d2766cf3f2c9396548500b0d44b6f7ab81cc72506",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_localfilesystem_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5844efb9e3ae8c1ec2494c9fd3decd8ede7de7aa68c69de6d2d67aaf9d659793",
+ "chksum_sha256": "97e6e3c5f9538339ee0c1cb3aed5cd0a1d029e0591fadf7d59822d0bdc8616b1",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_networking_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f4f3b567b216e8d2e1ac31f2482494e30606c2d16355ba4afc887dc8b73b7d5",
+ "chksum_sha256": "43f99ce5f7d1e4f5e8955f7f47019e72b901ee51acb925f623dd04bee8cb46c6",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_networking_interfaces_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c544f04346342cd1ffe1f5621e8ff1469db46f03e518378644a7c98096553f4f",
+ "chksum_sha256": "1def672c2e18f7425a4abfde83550006fad17c3d0a0ff99c87fdb5caaa1d60fc",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_networking_routes_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8972bf371bdffc6816794c94203409fda77988d446e6d7632fae54a6f48082ea",
+ "chksum_sha256": "ef659a440e1515c79cafb36149903dbb174550af889cbe3c307e26d147e48487",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_operations_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c0d6802bb5148f3a4bca6a8cb3963dfd4cc1172590df0591b34543ef942dd5db",
+ "chksum_sha256": "d62fe3874209c7c3fb39ac9626d81098a1ff4f1fa89a00386ccb50d7e2e9bed0",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_power.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c599f04c37a49930d6ec1b8ce8d7af2a56c6e4326f06f9648f0f16792230397f",
+ "chksum_sha256": "2c4d2acc7d4762dbd443911c6552461d24d4ce29d35c65030ef783f8888161ac",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_guest_power_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "54ade72a740dad0e320978b297d30899337d971ed931560d456bb6b188faa36e",
+ "chksum_sha256": "a6c40ce041a352929edf129fdf5dfb8c5d22c63c46f19c60fed9f5d5fa699c48",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09bf3b529d5f5a138df2e42337b7f8c06e7962dabfd6312bdaea32abaece41c",
+ "chksum_sha256": "f9a5a05139848c9a4cc409d7d4e3df069d812880a032a563051c7288e36c85dc",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_adapter_sata.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dd6b52f65b37e40c70c0c06dffd149b49a069d2d852321d88b003631c785bc58",
+ "chksum_sha256": "f08229b2188c683df1fee1e7b0e118f51439da829078c5c9fb36a06f423eeec8",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_adapter_sata_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a87624ba02a46d41b7b0d9731edaf1d0b72ffc5141b8d72685ba6f5fa2c4cdbf",
+ "chksum_sha256": "8ffdfd084068a00552239c3db22753c376b68b96a7f00ae23326685b7181ba0c",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_adapter_scsi.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6940e703b5ffa45773990f60bf30f93939ef1d688cb1e8ddbba81b59470a746c",
+ "chksum_sha256": "7fcc34008c3377aebcba86f79e9cb4413afbc7ed1cd78e7adce26e47af6254a8",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f5794978573fd80aaecaf5222d415ff32d13e0e97254a1cf338a511711facab9",
+ "chksum_sha256": "bfe7cd864efcdd6bf783fa059a14cf2ab747ef6e6e77b34bfe2fcde5cf991119",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_boot.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a24f2646a3b19688efc2d374393792d2526363039d1c95f16215c2494aa62251",
+ "chksum_sha256": "36fd42978c14f90fcbd5650a5bce6e3f464d286ead1f0558a88e172931f2aba0",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_boot_device.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "795ceee00f972aee48acf3c6a402797abdcc552b8635dfe6e5a7cf798fa2cd2c",
+ "chksum_sha256": "32fe857409e010b4eeb3b2ca860901ea640dc3742a1e234b16277e9c6c23051d",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_boot_device_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f24375bd4d8569a2d4c443ee70223f69b2b619f42313706d8a210ed52f39e5a8",
+ "chksum_sha256": "cf0fd0b738699a7c66317d6667553983646b6ad939f2164842e1d90f928cb0b8",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_boot_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fbcbd5aa42ce9a88e5203a7fb6a1217e8a84ca3ff4ed4209c626c7bee272d32d",
+ "chksum_sha256": "1df97ff2c72d82d19bd8b0bb9f18d229ffce674b699ae618b6ff8b6eb9fadd82",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_cdrom.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c82ac11f5c662adf70381f2ace7e1b792b7460afb68a00cbd51b9081b5c404f2",
+ "chksum_sha256": "eab2604ef0e8f2688c6661a6178ad9b80e13242ce989a3e5c14e08e2c3c94297",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_cdrom_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f8785e3f666eae97612930a44cd5141e003d67d7d79362ba02e985d77f722346",
+ "chksum_sha256": "7b568c06c8ff9a282f46d501296002c65973a85da96346deccf0557b509b37ee",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_cpu.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "18f082db1be550c976de52f8844c86f6aec620faa61f07ab687f43d140fb02aa",
+ "chksum_sha256": "2e2aa6eee3cf36f1277afdd489087922d91631eadd181c502833a5352579a522",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_cpu_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0c8e236da6cc73203e689358f93f9e8771872e6e8fe30d25756277c55c8a58d8",
+ "chksum_sha256": "4531317eb59b012c00f35733c5690dd90e5a538156ea91f2e2391e6aae03db7b",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_disk.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ade03549b854d8b7800efbf9acfbf26bd205586199ea39c1c4e4fb6620e37d26",
+ "chksum_sha256": "98528120f6d831beb661163306cf878c475e6863c5d3f3090734306e76ab2231",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_disk_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6cc7eb0d9b38143798268d1de3229a414baf5ad5af4d2b30debd718ba6b9ae4e",
+ "chksum_sha256": "e56a5625166b28c8d28ca6e0678a8ab625a425080f009b879e212dec2e665c42",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_ethernet.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "92261977ce07da0d6acc94cf14e814de1ffebf374605156022a63fc0d6dbdfa6",
+ "chksum_sha256": "4194056de1a63faece17901bb992f7461d0cb0cb3227ecbfe92f401c0533ed70",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_ethernet_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "785e4d94eff547270f3318e4251f83bd8de267d4ac2d8d0f85b31a75a1070c84",
+ "chksum_sha256": "e878839fa13713b639d25b34c6a2a770ab51327abf9b1781091a14110b848b85",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_floppy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05623a85e2f9434d4da7c8af39bab6880707861193b126e784e1db20f83bb15d",
+ "chksum_sha256": "6571500f459ab15b46e22e96529ece5ce9116252018f1c2785f7376c1325c802",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_floppy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "318016184fcbd94086593b4147c1cbb66638ed68954782817ad9992e6e3804e5",
+ "chksum_sha256": "24149b00ba0b6233a05776833561c3411b4a9379805f03a8a731f31641bfefdf",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a99878db1fa56132f3d87fb26f6841ef3b22b351c88faa17477814a39c5a812e",
+ "chksum_sha256": "7efff1e7ab3e3ad1a8c45aa0a0a03547d0948b7b8ee9504eed8659811005d117",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_memory.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1d1a4011bffe610a456e5a42522e021f56b144e871cb2cdc4ee87085006e7861",
+ "chksum_sha256": "45df9f1cf540a36e4c71a6f34c8be082847270eed1c2fc706974a8a8444f2b73",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_memory_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f719428c4af537264cd0ae3ce83cb902f1c19431d5a6613d22e4cbc9e5ba6978",
+ "chksum_sha256": "d282fa5c532f7d9fe7cc3c806915166d291a878d17b13a5399ad4feb4b29165b",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_parallel.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "72fa922e5cd64f12329d35ebc4d1d88c441c3afc6d13766d5cfaf53de45cd6eb",
+ "chksum_sha256": "481418312136520cb2816243749a4186d639cb749747c563d55df7c397e32d0d",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_parallel_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cd70dd7d46d2e77507f7f385cbdb63987c123758c0c8ac5b934590482697dc68",
+ "chksum_sha256": "7ce8253bffca0018d2504c9ec6c0069c4f9623ce4cc39be6ecf1ce12f7f04098",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_serial.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a08946b3983770fac111b8aa1e8be196f43d3307b1f679ed98aefe15cd4176b",
+ "chksum_sha256": "132f399e7b7601d6a23184b1ec693bbe0abfc5c5b4ab36ae5b6921e836721b46",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_hardware_serial_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b43d4bbd34e3a1364a72ceb335f803932612badf6b02be65666f0cbd37a1794f",
+ "chksum_sha256": "0455276d08352169e25f1d2004388866aec34cdd0da4f17bed04024a8d24041c",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a8699f4bc9a4c0189a5f8b926089c0f6e739d804d47b36e83e1799ae5ba8b58",
+ "chksum_sha256": "8ad408eb0208262f6e0185072309337afcf1ffecd8103b8c1c5fd5200c711560",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_libraryitem_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "792e1b7d4828a5df1d110dd083d3dd0227d47e0b42792dc0bd4dcb86a723adf5",
+ "chksum_sha256": "4ba2a2a7c43878707d3f795ec763598910e01aa718a2f24d497db12c9b13bcbc",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_power.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "721ccad67e2cb3ab16dc55b71df5514b1a3b2578c51d474feb3d5eb1c8d6ba86",
+ "chksum_sha256": "17c07bde82aba9a0c990890d385ce8edb560ff5a21fdc527b0977184e16ebffd",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_power_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f00c95cd8815dc3e629ab59a4debfdffa1e4a03219b1646c662289985176aff",
+ "chksum_sha256": "7a5f32df11b1457b942be8fa9717e2238ebf05173953c6dea758574e626eebeb",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_storage_policy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e948aeeaf131efbeccfd04776fe1424e7a5b69c2cf870c9af0d5ab6259ee2efc",
+ "chksum_sha256": "07c3da64324a657e0a3297331891c0a11c287c51d6fdebd4513ba2c23bf77ed2",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_storage_policy_compliance.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d555ef43f1d0cf30922931580463d98fcdc5086095f3dd8c3165b3d0bda30a5e",
+ "chksum_sha256": "8c18b0460623754f47f936e17a0fa9c7689ad3d34a0bdeaca6347dddc1696644",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_storage_policy_compliance_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "60f4bc4be4ffbbeef1347579ef9bdcf3ec3e0c9933cddca121b5a56c0d947e84",
+ "chksum_sha256": "84ca043d4bc7c348b058ad72078ed999de9668757a77ca0532df88ec7e955e8b",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_storage_policy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7c0c836d84c4f12045a41e656cfb4e92dea0dc1589c8aa95f18790933c442f15",
+ "chksum_sha256": "0a4e23cf39c60f1b2b356e205ce9bb528ed7bbec780a0dca731ab45ba5d82d90",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_tools.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d4ab76b69e57c9933805424d173de9e23c74460483265739759eb28a92f75a72",
+ "chksum_sha256": "a4a1ea6a1ebf2f43bf012f730b8fb49835c49490f3bc943dfbb635628dd4e5e8",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_tools_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d4fad28dcf4532c7765163b92a02b3e33316cc302d4e9718b80f71335c958ad3",
+ "chksum_sha256": "bcb8cb65d202120bd4c5a583a1ac406e1086e1885b149752e85c0258de2c8bd6",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_tools_installer.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9deabcea052edee0f7e57c944fd1b722123baf78d6b578d3da428ea98e315e74",
+ "chksum_sha256": "ade5767459d956f7b3cb27eb36625914b358eec458669d22dfde3930a7e5e4ce",
"format": 1
},
{
"name": "plugins/modules/vcenter_vm_tools_installer_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "360ea34cd40fa0f0fd0b92fcd69aa343edce2daccf612e528e290ec41901c753",
+ "chksum_sha256": "202bf75b7ae68d061934acabab973568f86ec22d899d409b5f562d851c4195ed",
"format": 1
},
{
"name": "plugins/modules/vcenter_vmtemplate_libraryitems.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2f68318a2a355231a856836e35f9423a64cdef3631aa652eef32ee6a44a2a9c1",
+ "chksum_sha256": "f5310ba42f84201c0f31ffc62990061cb03a3db07d88ce89381f2cf681338e54",
"format": 1
},
{
"name": "plugins/modules/vcenter_vmtemplate_libraryitems_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7f58d209bffd288133213f7240ce70b88262b994b7a92aa33f47507c6ce94082",
+ "chksum_sha256": "65f63f419437ed449836d7065deacbe0e0f6f105f89ce67aa921462e203b402e",
"format": 1
},
{
@@ -1719,7 +1726,7 @@
"name": "tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5c8ee544e13c5ffe946a0f5aca9061876f671da50465036a78aab1059ed50278",
+ "chksum_sha256": "84eedd73bac019626cdc47b9e6eb2d02f509a81b0bc56f337ffbab4bc12dcdd7",
"format": 1
},
{
@@ -1775,7 +1782,7 @@
"name": "tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "91a4a11700fc6f5166cafa360d76a23512a586ef764f48bac6b1c2cbac34f56b",
+ "chksum_sha256": "89eeabe29ea96bbe7cf475fd5277b3dd076e809a52f573502d8fb0bad6b1c098",
"format": 1
},
{
@@ -1866,7 +1873,7 @@
"name": "tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e92cd3e95d4b8059a99a91760345fbd6dc46a7ac7b738d74075c90dc236cfa42",
+ "chksum_sha256": "04ed7b91f9f7816054f975411edd37834fd5800e09ca1515b621148f993ce528",
"format": 1
},
{
@@ -1915,7 +1922,7 @@
"name": "tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7d47dd50d103b8996499202074a276c7af949c9f505704f84ba523ea646be880",
+ "chksum_sha256": "42ef3f1b08be7a3b199b013338231d68bdfa00fd716cbe77f7741469930a9e94",
"format": 1
},
{
@@ -1964,7 +1971,7 @@
"name": "tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b984e87f7934298a9879310c2fc53e580ab47d3fd3fafe6157cc40a54b8678ac",
+ "chksum_sha256": "8c59f043c606bc86f10c91c5c9288ac6a2447cc2800b1f2642db13f341fbb83b",
"format": 1
},
{
@@ -2073,13 +2080,6 @@
"format": 1
},
{
- "name": "tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "40f454acd5bf172e23b83c930332cf3e6408becc4f3b3c92070fed064a7f446f",
- "format": 1
- },
- {
"name": "tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/create_vm.yml",
"ftype": "file",
"chksum_type": "sha256",
@@ -2164,6 +2164,13 @@
"format": 1
},
{
+ "name": "tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6e8850ca1bb5f29f53055f934b35765279e12c0ab5d1d923c58ddf09cfc688db",
+ "format": 1
+ },
+ {
"name": "tests/integration/targets/vmware_rest_vcenter_vm_scenario/meta",
"ftype": "dir",
"chksum_type": null,
@@ -2244,7 +2251,7 @@
"name": "tests/integration/targets/prepare_vm/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "753e4e7582199e7d14cce211ef0ded14017689fc2f30a0ac241d4ee7209211ba",
+ "chksum_sha256": "17d02145acacb80ccb1f55bc7fb5b237ce9f40567577574402c4e2caeb8a5d5a",
"format": 1
},
{
@@ -2262,24 +2269,24 @@
"format": 1
},
{
- "name": "tests/integration/requirements.txt",
+ "name": "tests/integration/requirements.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "69d97ef58ec44c0500b30a327f6bf5c0ed56e86ea3bb7bb03e7e428aa34f8468",
+ "chksum_sha256": "b0bd07baca9f2fadd93ca228578cb895906ee23c40f592c830da424ddf86928a",
"format": 1
},
{
- "name": "tests/integration/requirements.yml",
+ "name": "tests/integration/run_eco_vcenter_ci.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0bd07baca9f2fadd93ca228578cb895906ee23c40f592c830da424ddf86928a",
+ "chksum_sha256": "4f8ec59cbba6f8de7e193107c2220fe34a9c0f8a83ce01f01e24e97f6874bcce",
"format": 1
},
{
- "name": "tests/integration/run_eco_vcenter_ci.sh",
+ "name": "tests/integration/requirements.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4f8ec59cbba6f8de7e193107c2220fe34a9c0f8a83ce01f01e24e97f6874bcce",
+ "chksum_sha256": "69d97ef58ec44c0500b30a327f6bf5c0ed56e86ea3bb7bb03e7e428aa34f8468",
"format": 1
},
{
@@ -2339,31 +2346,31 @@
"format": 1
},
{
- "name": "Makefile",
+ "name": "linters.requirements.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "23ea5d30cb9796aae7a725ebdfe2cf6c57cc04d12deb11c07a410c34d32ddd07",
+ "chksum_sha256": "b86283a95889732dd4432dc449a55e42566324c72937839d853e7216f8e4588b",
"format": 1
},
{
- "name": "linters.requirements.txt",
+ "name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b86283a95889732dd4432dc449a55e42566324c72937839d853e7216f8e4588b",
+ "chksum_sha256": "47782d61ff2c46420942733e933393dfd545027c80acf4d8d543c5769074db3a",
"format": 1
},
{
- "name": "README.md",
+ "name": "Makefile",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "47782d61ff2c46420942733e933393dfd545027c80acf4d8d543c5769074db3a",
+ "chksum_sha256": "21da90c2e0ac385bf03d7efe0e0a1c9aba8053da68d4cab972ca0444ae57bda8",
"format": 1
},
{
"name": "CHANGELOG.rst",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1fbbbe29a16a3324a6b05c426361d35bb9d519f07b9c7a34108faf5de3c36304",
+ "chksum_sha256": "5b9d55a4498f9e0f893809bd813fcecd80d5758ee974cb69bc2b00b8b6c3d8dd",
"format": 1
}
],
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/MANIFEST.json ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/MANIFEST.json
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/MANIFEST.json 2025-07-07 23:33:42.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/MANIFEST.json 2025-08-29 16:31:40.000000000 +0000
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "vmware",
"name": "vmware_rest",
- "version": "4.8.1",
+ "version": "4.9.0",
"authors": [
"Ansible (https://github.com/ansible)"
],
@@ -15,9 +15,7 @@
"description": "VMware collection for Ansible",
"license": [],
"license_file": "LICENSE",
- "dependencies": {
- "cloud.common": ">=4.1.0"
- },
+ "dependencies": {},
"repository": "https://github.com/ansible-collections/vmware.vmware_rest",
"documentation": null,
"homepage": "https://github.com/ansible-collections/vmware.vmware_rest",
@@ -27,7 +25,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d2fca70560370e2289710aec2d29ac0af11e9f48acdeefaec3ea7a2361068a51",
+ "chksum_sha256": "5cdca471e3a68b713830cf41eba2a44b0f51883df7ba6295dabd33b5036eee01",
"format": 1
},
"format": 1
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/Makefile ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/Makefile
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/Makefile 2025-05-27 13:44:06.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/Makefile 2025-08-29 13:23:03.000000000 +0000
@@ -30,6 +30,7 @@
.PHONY: eco-vcenter-ci
eco-vcenter-ci: tests/integration/integration_config.yml install-integration-reqs upgrade-collections
+ rm -rf ~/.ansible/collections/ansible_collections/cloud/common; \
cd ~/.ansible/collections/ansible_collections/vmware/vmware_rest; \
ansible --version; \
ansible-test --version; \
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/changelogs/.plugin-cache.yaml 2025-08-29 13:24:04.000000000 +0000
@@ -0,0 +1,748 @@
+objects:
+ role: {}
+plugins:
+ become: {}
+ cache: {}
+ callback: {}
+ cliconf: {}
+ connection: {}
+ filter: {}
+ httpapi: {}
+ inventory: {}
+ lookup:
+ cluster_moid:
+ description: Look up MoID for vSphere cluster objects using vCenter REST API
+ name: cluster_moid
+ version_added: 2.1.0
+ datacenter_moid:
+ description: Look up MoID for vSphere datacenter objects using vCenter REST
+ API
+ name: datacenter_moid
+ version_added: 2.1.0
+ datastore_moid:
+ description: Look up MoID for vSphere datastore objects using vCenter REST API
+ name: datastore_moid
+ version_added: 2.1.0
+ folder_moid:
+ description: Look up MoID for vSphere folder objects using vCenter REST API
+ name: folder_moid
+ version_added: 2.1.0
+ host_moid:
+ description: Look up MoID for vSphere host objects using vCenter REST API
+ name: host_moid
+ version_added: 2.1.0
+ network_moid:
+ description: Look up MoID for vSphere network objects using vCenter REST API
+ name: network_moid
+ version_added: 2.1.0
+ resource_pool_moid:
+ description: Look up MoID for vSphere resource pool objects using vCenter REST
+ API
+ name: resource_pool_moid
+ version_added: 2.1.0
+ vm_moid:
+ description: Look up MoID for vSphere vm objects using vCenter REST API
+ name: vm_moid
+ version_added: 2.1.0
+ module:
+ appliance_access_consolecli:
+ description: Set enabled state of the console-based controlled CLI (TTY1).
+ name: appliance_access_consolecli
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_consolecli_info:
+ description: Get enabled state of the console-based controlled CLI (TTY1).
+ name: appliance_access_consolecli_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_dcui:
+ description: Set enabled state of Direct Console User Interface (DCUI TTY2).
+ name: appliance_access_dcui
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_dcui_info:
+ description: Get enabled state of Direct Console User Interface (DCUI TTY2).
+ name: appliance_access_dcui_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_shell:
+ description: Set enabled state of BASH, that is, access to BASH from within
+ the controlled CLI.
+ name: appliance_access_shell
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_shell_info:
+ description: Get enabled state of BASH, that is, access to BASH from within
+ the controlled CLI.
+ name: appliance_access_shell_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_ssh:
+ description: Set enabled state of the SSH-based controlled CLI.
+ name: appliance_access_ssh
+ namespace: ''
+ version_added: 2.0.0
+ appliance_access_ssh_info:
+ description: Get enabled state of the SSH-based controlled CLI.
+ name: appliance_access_ssh_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_applmgmt_info:
+ description: Get health status of applmgmt services.
+ name: appliance_health_applmgmt_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_database_info:
+ description: Returns the health status of the database.
+ name: appliance_health_database_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_databasestorage_info:
+ description: Get database storage health.
+ name: appliance_health_databasestorage_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_load_info:
+ description: Get load health.
+ name: appliance_health_load_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_mem_info:
+ description: Get memory health.
+ name: appliance_health_mem_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_softwarepackages_info:
+ description: Get information on available software updates available in the
+ remote vSphere Update Manager repository
+ name: appliance_health_softwarepackages_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_storage_info:
+ description: Get storage health.
+ name: appliance_health_storage_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_swap_info:
+ description: Get swap health.
+ name: appliance_health_swap_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_health_system_info:
+ description: Get overall health of system.
+ name: appliance_health_system_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_infraprofile_configs:
+ description: Exports the desired profile specification.
+ name: appliance_infraprofile_configs
+ namespace: ''
+ version_added: 2.0.0
+ appliance_infraprofile_configs_info:
+ description: List all the profiles which are registered.
+ name: appliance_infraprofile_configs_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_localaccounts_globalpolicy:
+ description: Set the global password policy.
+ name: appliance_localaccounts_globalpolicy
+ namespace: ''
+ version_added: 2.0.0
+ appliance_localaccounts_globalpolicy_info:
+ description: Get the global password policy.
+ name: appliance_localaccounts_globalpolicy_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_localaccounts_info:
+ description: Get the local user account information.
+ name: appliance_localaccounts_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_monitoring_info:
+ description: Get monitored item info
+ name: appliance_monitoring_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_monitoring_query:
+ description: Get monitoring data.
+ name: appliance_monitoring_query
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking:
+ description: Reset and restarts network configuration on all interfaces, also
+ this will renew the DHCP lease for DHCP IP address.
+ name: appliance_networking
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_domains:
+ description: Set DNS search domains.
+ name: appliance_networking_dns_domains
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_domains_info:
+ description: Get list of DNS search domains.
+ name: appliance_networking_dns_domains_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_hostname:
+ description: Set the Fully Qualified Domain Name.
+ name: appliance_networking_dns_hostname
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_hostname_info:
+ description: Get the Fully Qualified Doman Name.
+ name: appliance_networking_dns_hostname_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_servers:
+ description: Set the DNS server configuration
+ name: appliance_networking_dns_servers
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_dns_servers_info:
+ description: Get DNS server configuration.
+ name: appliance_networking_dns_servers_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_firewall_inbound:
+ description: Set the ordered list of firewall rules to allow or deny traffic
+ from one or more incoming IP addresses
+ name: appliance_networking_firewall_inbound
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_firewall_inbound_info:
+ description: Get the ordered list of firewall rules
+ name: appliance_networking_firewall_inbound_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_info:
+ description: Get Networking information for all configured interfaces.
+ name: appliance_networking_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_interfaces_info:
+ description: Get information about a particular network interface.
+ name: appliance_networking_interfaces_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_interfaces_ipv4:
+ description: Set IPv4 network configuration for specific network interface.
+ name: appliance_networking_interfaces_ipv4
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_interfaces_ipv4_info:
+ description: Get IPv4 network configuration for specific NIC.
+ name: appliance_networking_interfaces_ipv4_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_interfaces_ipv6:
+ description: Set IPv6 network configuration for specific interface.
+ name: appliance_networking_interfaces_ipv6
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_interfaces_ipv6_info:
+ description: Get IPv6 network configuration for specific interface.
+ name: appliance_networking_interfaces_ipv6_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_noproxy:
+ description: Sets servers for which no proxy configuration should be applied
+ name: appliance_networking_noproxy
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_noproxy_info:
+ description: Returns servers for which no proxy configuration will be applied.
+ name: appliance_networking_noproxy_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_proxy:
+ description: Configures which proxy server to use for the specified protocol
+ name: appliance_networking_proxy
+ namespace: ''
+ version_added: 2.0.0
+ appliance_networking_proxy_info:
+ description: Gets the proxy configuration for a specific protocol.
+ name: appliance_networking_proxy_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_ntp:
+ description: Set NTP servers
+ name: appliance_ntp
+ namespace: ''
+ version_added: 2.0.0
+ appliance_ntp_info:
+ description: Get the NTP configuration status
+ name: appliance_ntp_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_services:
+ description: Restarts a service
+ name: appliance_services
+ namespace: ''
+ version_added: 2.0.0
+ appliance_services_info:
+ description: Returns the state of a service.
+ name: appliance_services_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_shutdown:
+ description: Cancel pending shutdown action.
+ name: appliance_shutdown
+ namespace: ''
+ version_added: 2.0.0
+ appliance_shutdown_info:
+ description: Get details about the pending shutdown action.
+ name: appliance_shutdown_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_globalfips:
+ description: Enable/Disable Global FIPS mode for the appliance
+ name: appliance_system_globalfips
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_globalfips_info:
+ description: Get current appliance FIPS settings.
+ name: appliance_system_globalfips_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_storage:
+ description: Resize all partitions to 100 percent of disk size.
+ name: appliance_system_storage
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_storage_info:
+ description: Get disk to partition mapping.
+ name: appliance_system_storage_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_time_info:
+ description: Get system time.
+ name: appliance_system_time_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_time_timezone:
+ description: Set time zone.
+ name: appliance_system_time_timezone
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_time_timezone_info:
+ description: Get time zone.
+ name: appliance_system_time_timezone_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_system_version_info:
+ description: Get the version.
+ name: appliance_system_version_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_timesync:
+ description: Set time synchronization mode.
+ name: appliance_timesync
+ namespace: ''
+ version_added: 2.0.0
+ appliance_timesync_info:
+ description: Get time synchronization mode.
+ name: appliance_timesync_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_update_info:
+ description: Gets the current status of the appliance update.
+ name: appliance_update_info
+ namespace: ''
+ version_added: 2.0.0
+ appliance_vmon_service:
+ description: Lists details of services managed by vMon.
+ name: appliance_vmon_service
+ namespace: ''
+ version_added: 2.0.0
+ appliance_vmon_service_info:
+ description: Returns the state of a service.
+ name: appliance_vmon_service_info
+ namespace: ''
+ version_added: 2.0.0
+ content_configuration:
+ description: Updates the configuration
+ name: content_configuration
+ namespace: ''
+ version_added: 2.0.0
+ content_configuration_info:
+ description: Retrieves the current configuration values.
+ name: content_configuration_info
+ namespace: ''
+ version_added: 2.0.0
+ content_library_info:
+ description: Returns a given LibraryModel.
+ name: content_library_info
+ namespace: ''
+ version_added: 4.0.0
+ content_library_item_info:
+ description: Returns the ItemModel with the given identifier.
+ name: content_library_item_info
+ namespace: ''
+ version_added: 2.0.0
+ content_library_subscriptions_info:
+ description: Returns information about the specified subscription of the published
+ library.
+ name: content_library_subscriptions_info
+ namespace: ''
+ version_added: 4.0.0
+ content_locallibrary:
+ description: Creates a new local library.
+ name: content_locallibrary
+ namespace: ''
+ version_added: 2.0.0
+ content_locallibrary_info:
+ description: Returns a given local library.
+ name: content_locallibrary_info
+ namespace: ''
+ version_added: 2.0.0
+ content_subscribedlibrary:
+ description: Creates a new subscribed library
+ name: content_subscribedlibrary
+ namespace: ''
+ version_added: 2.0.0
+ content_subscribedlibrary_info:
+ description: Returns a given subscribed library.
+ name: content_subscribedlibrary_info
+ namespace: ''
+ version_added: 2.0.0
+ vcenter_cluster_info:
+ description: Retrieves information about the cluster corresponding to cluster.
+ name: vcenter_cluster_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_datacenter:
+ description: Create a new datacenter in the vCenter inventory
+ name: vcenter_datacenter
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_datacenter_info:
+ description: Retrieves information about the datacenter corresponding to datacenter.
+ name: vcenter_datacenter_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_datastore_info:
+ description: Retrieves information about the datastore indicated by datastore.
+ name: vcenter_datastore_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_folder_info:
+ description: Returns information about at most 1000 visible (subject to permission
+ checks) folders in vCenter matching the Folder.FilterSpec.
+ name: vcenter_folder_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_host:
+ description: Add a new standalone host in the vCenter inventory
+ name: vcenter_host
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_host_info:
+ description: Returns information about at most 2500 visible (subject to permission
+ checks) hosts in vCenter matching the Host.FilterSpec.
+ name: vcenter_host_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_network_info:
+ description: Returns information about at most 1000 visible (subject to permission
+ checks) networks in vCenter matching the Network.FilterSpec.
+ name: vcenter_network_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_ovf_libraryitem:
+ description: Creates a library item in content library from a virtual machine
+ or virtual appliance
+ name: vcenter_ovf_libraryitem
+ namespace: ''
+ version_added: 2.0.0
+ vcenter_resourcepool:
+ description: Creates a resource pool.
+ name: vcenter_resourcepool
+ namespace: ''
+ version_added: 0.3.0
+ vcenter_resourcepool_info:
+ description: Retrieves information about the resource pool indicated by resourcePool.
+ name: vcenter_resourcepool_info
+ namespace: ''
+ version_added: 0.3.0
+ vcenter_storage_policies_info:
+ description: Returns information about at most 1024 visible (subject to permission
+ checks) storage solicies availabe in vCenter
+ name: vcenter_storage_policies_info
+ namespace: ''
+ version_added: 0.3.0
+ vcenter_vm:
+ description: Creates a virtual machine.
+ name: vcenter_vm
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_customization:
+ description: Applies a customization specification on the virtual machine
+ name: vcenter_vm_guest_customization
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_filesystem_directories:
+ description: Creates a directory in the guest operating system
+ name: vcenter_vm_guest_filesystem_directories
+ namespace: ''
+ version_added: 2.0.0
+ vcenter_vm_guest_identity_info:
+ description: Return information about the guest.
+ name: vcenter_vm_guest_identity_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_localfilesystem_info:
+ description: Returns details of the local file systems in the guest operating
+ system.
+ name: vcenter_vm_guest_localfilesystem_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_networking_info:
+ description: Returns information about the network configuration in the guest
+ operating system.
+ name: vcenter_vm_guest_networking_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_networking_interfaces_info:
+ description: Returns information about the networking interfaces in the guest
+ operating system.
+ name: vcenter_vm_guest_networking_interfaces_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_networking_routes_info:
+ description: Returns information about network routing in the guest operating
+ system.
+ name: vcenter_vm_guest_networking_routes_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_operations_info:
+ description: Get information about the guest operation status.
+ name: vcenter_vm_guest_operations_info
+ namespace: ''
+ version_added: 2.0.0
+ vcenter_vm_guest_power:
+ description: Issues a request to the guest operating system asking it to perform
+ a soft shutdown, standby (suspend) or soft reboot
+ name: vcenter_vm_guest_power
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_guest_power_info:
+ description: Returns information about the guest operating system power state.
+ name: vcenter_vm_guest_power_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware:
+ description: Updates the virtual hardware settings of a virtual machine.
+ name: vcenter_vm_hardware
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_adapter_sata:
+ description: Adds a virtual SATA adapter to the virtual machine.
+ name: vcenter_vm_hardware_adapter_sata
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_adapter_sata_info:
+ description: Returns information about a virtual SATA adapter.
+ name: vcenter_vm_hardware_adapter_sata_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_adapter_scsi:
+ description: Adds a virtual SCSI adapter to the virtual machine.
+ name: vcenter_vm_hardware_adapter_scsi
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_adapter_scsi_info:
+ description: Returns information about a virtual SCSI adapter.
+ name: vcenter_vm_hardware_adapter_scsi_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_boot:
+ description: Updates the boot-related settings of a virtual machine.
+ name: vcenter_vm_hardware_boot
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_boot_device:
+ description: Sets the virtual devices that will be used to boot the virtual
+ machine
+ name: vcenter_vm_hardware_boot_device
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_boot_device_info:
+ description: Returns an ordered list of boot devices for the virtual machine
+ name: vcenter_vm_hardware_boot_device_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_boot_info:
+ description: Returns the boot-related settings of a virtual machine.
+ name: vcenter_vm_hardware_boot_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_cdrom:
+ description: Adds a virtual CD-ROM device to the virtual machine.
+ name: vcenter_vm_hardware_cdrom
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_cdrom_info:
+ description: Returns information about a virtual CD-ROM device.
+ name: vcenter_vm_hardware_cdrom_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_cpu:
+ description: Updates the CPU-related settings of a virtual machine.
+ name: vcenter_vm_hardware_cpu
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_cpu_info:
+ description: Returns the CPU-related settings of a virtual machine.
+ name: vcenter_vm_hardware_cpu_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_disk:
+ description: Adds a thin provisioned virtual disk to the virtual machine
+ name: vcenter_vm_hardware_disk
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_disk_info:
+ description: Returns information about a virtual disk.
+ name: vcenter_vm_hardware_disk_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_ethernet:
+ description: Adds a virtual Ethernet adapter to the virtual machine.
+ name: vcenter_vm_hardware_ethernet
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_ethernet_info:
+ description: Returns information about a virtual Ethernet adapter.
+ name: vcenter_vm_hardware_ethernet_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_floppy:
+ description: Adds a virtual floppy drive to the virtual machine.
+ name: vcenter_vm_hardware_floppy
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_floppy_info:
+ description: Returns information about a virtual floppy drive.
+ name: vcenter_vm_hardware_floppy_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_info:
+ description: Returns the virtual hardware settings of a virtual machine.
+ name: vcenter_vm_hardware_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_memory:
+ description: Updates the memory-related settings of a virtual machine.
+ name: vcenter_vm_hardware_memory
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_memory_info:
+ description: Returns the memory-related settings of a virtual machine.
+ name: vcenter_vm_hardware_memory_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_parallel:
+ description: Adds a virtual parallel port to the virtual machine.
+ name: vcenter_vm_hardware_parallel
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_parallel_info:
+ description: Returns information about a virtual parallel port.
+ name: vcenter_vm_hardware_parallel_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_serial:
+ description: Adds a virtual serial port to the virtual machine.
+ name: vcenter_vm_hardware_serial
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_hardware_serial_info:
+ description: Returns information about a virtual serial port.
+ name: vcenter_vm_hardware_serial_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_info:
+ description: Returns information about a virtual machine.
+ name: vcenter_vm_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_libraryitem_info:
+ description: Returns the information about the library item associated with
+ the virtual machine.
+ name: vcenter_vm_libraryitem_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_power:
+ description: Operate a boot, hard shutdown, hard reset or hard suspend on a
+ guest.
+ name: vcenter_vm_power
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_power_info:
+ description: Returns the power state information of a virtual machine.
+ name: vcenter_vm_power_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_storage_policy:
+ description: Updates the storage policy configuration of a virtual machine and/or
+ its associated virtual hard disks.
+ name: vcenter_vm_storage_policy
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_storage_policy_compliance:
+ description: Returns the storage policy Compliance Compliance.Info of a virtual
+ machine after explicitly re-computing compliance check.
+ name: vcenter_vm_storage_policy_compliance
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_storage_policy_compliance_info:
+ description: Returns the cached storage policy compliance information of a virtual
+ machine.
+ name: vcenter_vm_storage_policy_compliance_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_storage_policy_info:
+ description: Returns Information about Storage Policy associated with a virtual
+ machine's home directory and/or its virtual hard disks.
+ name: vcenter_vm_storage_policy_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_tools:
+ description: Update the properties of VMware Tools.
+ name: vcenter_vm_tools
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_tools_info:
+ description: Get the properties of VMware Tools.
+ name: vcenter_vm_tools_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_tools_installer:
+ description: Connects the VMware Tools CD installer as a CD-ROM for the guest
+ operating system
+ name: vcenter_vm_tools_installer
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vm_tools_installer_info:
+ description: Get information about the VMware Tools installer.
+ name: vcenter_vm_tools_installer_info
+ namespace: ''
+ version_added: 0.1.0
+ vcenter_vmtemplate_libraryitems:
+ description: Creates a library item in content library from a virtual machine
+ name: vcenter_vmtemplate_libraryitems
+ namespace: ''
+ version_added: 2.2.0
+ vcenter_vmtemplate_libraryitems_info:
+ description: Returns information about a virtual machine template contained
+ in the library item specified by templateLibraryItem
+ name: vcenter_vmtemplate_libraryitems_info
+ namespace: ''
+ version_added: 2.2.0
+ netconf: {}
+ shell: {}
+ strategy: {}
+ test: {}
+ vars: {}
+version: 4.9.0
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml 2025-07-07 23:33:23.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/changelogs/changelog.yaml 2025-08-29 16:31:24.000000000 +0000
@@ -847,3 +847,14 @@
fragments:
- 614-cloud.common.yml
release_date: '2025-07-07'
+ 4.9.0:
+ changes:
+ known_issues:
+ - The lookup plugins use ``cloud.common``, but this collection does not support
+ ansible-core 2.19 or higher (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+ major_changes:
+ - Remove ``cloud.common`` as a dependency, so it will not be installed automatically
+ anymore (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+ fragments:
+ - 619-drop-cloud.common-requirement.yml
+ release_date: '2025-08-29'
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/cluster_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/cluster_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/cluster_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/cluster_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -129,9 +131,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datacenter_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datacenter_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datacenter_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datacenter_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -128,9 +130,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datastore_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datastore_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datastore_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/datastore_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -137,9 +139,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/folder_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/folder_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/folder_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/folder_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -132,9 +134,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/host_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/host_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/host_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/host_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -141,9 +143,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/network_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/network_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/network_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/network_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -22,6 +22,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -143,9 +145,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/resource_pool_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/resource_pool_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/resource_pool_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/resource_pool_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -130,9 +132,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/vm_moid.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/vm_moid.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/vm_moid.py 2025-05-28 16:28:46.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/lookup/vm_moid.py 2025-08-27 16:21:59.000000000 +0000
@@ -19,6 +19,8 @@
- vSphere 7.0.3 or greater
- python >= 3.6
- aiohttp
+notes:
+ - This plugin requires the cloud.common collection, which will not be installed automatically as a dependency.
extends_documentation_fragment:
- vmware.vmware_rest.moid
"""
@@ -115,9 +117,17 @@
"""
-from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
- TurboLookupBase as LookupBase,
-)
+from ansible.errors import AnsiblePluginError
+
+try:
+ from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import (
+ TurboLookupBase as LookupBase,
+ )
+except ImportError:
+ raise AnsiblePluginError(
+ message="This plugin requires the cloud.common collection."
+ )
+
from ansible_collections.vmware.vmware_rest.plugins.plugin_utils.lookup import Lookup
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/module_utils/vmware_rest.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/module_utils/vmware_rest.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/module_utils/vmware_rest.py 2025-01-17 17:12:36.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/module_utils/vmware_rest.py 2025-08-29 13:23:03.000000000 +0000
@@ -37,6 +37,13 @@
from ansible.module_utils.basic import missing_required_lib
from ansible.module_utils.parsing.convert_bool import boolean
+try:
+ from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
+ EmbeddedModuleFailure as ModuleFailureException,
+ )
+except ImportError:
+ ModuleFailureException = Exception
+
async def open_session(
vcenter_hostname=None,
@@ -58,16 +65,13 @@
if digest in open_session._pool:
return open_session._pool[digest]
- exceptions = importlib.import_module(
- "ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions"
- )
try:
aiohttp = importlib.import_module("aiohttp")
except ImportError:
- raise exceptions.EmbeddedModuleFailure(msg=missing_required_lib("aiohttp"))
+ raise ModuleFailureException(missing_required_lib("aiohttp"))
if not aiohttp:
- raise exceptions.EmbeddedModuleFailure(msg="Failed to import aiohttp")
+ raise ModuleFailureException("Failed to import aiohttp")
if log_file:
trace_config = aiohttp.TraceConfig()
@@ -103,14 +107,14 @@
auth=auth,
) as resp:
if resp.status != 200:
- raise exceptions.EmbeddedModuleFailure(
+ raise ModuleFailureException(
"Authentication failure. code: {0}, json: {1}".format(
resp.status, await resp.text()
)
)
json = await resp.json()
except aiohttp.client_exceptions.ClientConnectorError as e:
- raise exceptions.EmbeddedModuleFailure(f"Authentication failure: {e}")
+ raise ModuleFailureException(f"Authentication failure: {e}")
session_id = json["value"]
session = aiohttp.ClientSession(
@@ -151,16 +155,13 @@
def session_timeout(params):
- exceptions = importlib.import_module(
- "ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions"
- )
try:
aiohttp = importlib.import_module("aiohttp")
except ImportError:
- raise exceptions.EmbeddedModuleFailure(msg=missing_required_lib("aiohttp"))
+ raise ModuleFailureException(missing_required_lib("aiohttp"))
if not aiohttp:
- raise exceptions.EmbeddedModuleFailure(msg="Failed to import aiohttp")
+ raise ModuleFailureException("Failed to import aiohttp")
out = {}
if params.get("session_timeout"):
out["timeout"] = aiohttp.ClientTimeout(total=params.get("session_timeout"))
@@ -346,10 +347,7 @@
elif isinstance(device, list):
v = device
else:
- exceptions = importlib.import_module(
- "ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions"
- )
- raise exceptions.EmbeddedModuleFailure(msg="Unexpect type")
+ raise ModuleFailureException("Unexpect type")
if isinstance(k, int) or isinstance(v, str):
k = str(k)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli.py 2025-08-29 13:23:03.000000000 +0000
@@ -110,9 +110,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -197,8 +194,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_consolecli_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -96,9 +96,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -177,8 +174,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui.py 2025-08-29 13:23:03.000000000 +0000
@@ -108,9 +108,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -195,8 +192,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_dcui_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -96,9 +96,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -177,8 +174,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell.py 2025-08-29 13:23:03.000000000 +0000
@@ -129,9 +129,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -217,8 +214,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_shell_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -101,9 +101,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -182,8 +179,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh.py 2025-08-29 13:23:03.000000000 +0000
@@ -109,9 +109,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -196,8 +193,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_access_ssh_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_applmgmt_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_applmgmt_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_applmgmt_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_applmgmt_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_database_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_database_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_database_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_database_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -87,9 +87,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -168,8 +165,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_databasestorage_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_databasestorage_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_databasestorage_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_databasestorage_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_load_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_load_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_load_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_load_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_mem_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_mem_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_mem_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_mem_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -94,9 +94,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -175,8 +172,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_softwarepackages_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_softwarepackages_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_softwarepackages_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_softwarepackages_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -98,9 +98,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -179,8 +176,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_storage_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_storage_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_storage_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_storage_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_swap_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_swap_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_swap_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_swap_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_system_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_system_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_system_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_health_system_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs.py 2025-08-29 13:23:03.000000000 +0000
@@ -198,9 +198,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -287,8 +284,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_infraprofile_configs_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -99,9 +99,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -180,8 +177,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy.py 2025-08-29 13:23:03.000000000 +0000
@@ -125,9 +125,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -214,8 +211,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_globalpolicy_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -96,9 +96,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -177,8 +174,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_localaccounts_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -126,9 +126,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -211,8 +208,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -922,9 +922,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -1007,8 +1004,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_query.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_query.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_query.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_monitoring_query.py 2025-08-29 13:23:03.000000000 +0000
@@ -169,9 +169,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -267,8 +264,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking.py 2025-08-29 13:23:03.000000000 +0000
@@ -114,9 +114,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -205,8 +202,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains.py 2025-08-29 13:23:03.000000000 +0000
@@ -122,9 +122,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -214,8 +211,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_domains_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname.py 2025-08-29 13:23:03.000000000 +0000
@@ -116,9 +116,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -207,8 +204,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_hostname_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers.py 2025-08-29 13:23:03.000000000 +0000
@@ -156,9 +156,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -249,8 +246,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_dns_servers_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -100,9 +100,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -181,8 +178,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound.py 2025-08-29 13:23:03.000000000 +0000
@@ -148,9 +148,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -235,8 +232,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_firewall_inbound_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -100,9 +100,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -181,8 +178,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -120,9 +120,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -201,8 +198,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -129,9 +129,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -214,8 +211,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4.py 2025-08-29 13:23:03.000000000 +0000
@@ -161,9 +161,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -256,8 +253,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv4_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -105,9 +105,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -188,8 +185,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6.py 2025-08-29 13:23:03.000000000 +0000
@@ -159,9 +159,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -250,8 +247,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_interfaces_ipv6_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -109,9 +109,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -192,8 +189,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy.py 2025-08-29 13:23:03.000000000 +0000
@@ -123,9 +123,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -210,8 +207,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_noproxy_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy.py 2025-08-29 13:23:03.000000000 +0000
@@ -191,9 +191,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -289,8 +286,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_networking_proxy_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -114,9 +114,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -199,8 +196,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp.py 2025-08-29 13:23:03.000000000 +0000
@@ -129,9 +129,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -220,8 +217,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_ntp_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -105,9 +105,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -186,8 +183,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services.py 2025-08-29 13:23:03.000000000 +0000
@@ -124,9 +124,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -215,8 +212,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_services_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -108,9 +108,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -193,8 +190,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown.py 2025-08-29 13:23:03.000000000 +0000
@@ -136,9 +136,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -228,8 +225,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_shutdown_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -100,9 +100,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -181,8 +178,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips.py 2025-08-29 13:23:03.000000000 +0000
@@ -99,9 +99,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -187,8 +184,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_globalfips_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -88,9 +88,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -169,8 +166,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage.py 2025-08-29 13:23:03.000000000 +0000
@@ -111,9 +111,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -201,8 +198,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_storage_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -93,9 +93,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -174,8 +171,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone.py 2025-08-29 13:23:03.000000000 +0000
@@ -109,9 +109,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -196,8 +193,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_time_timezone_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_version_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_version_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_version_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_system_version_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -100,9 +100,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -181,8 +178,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync.py 2025-08-29 13:23:03.000000000 +0000
@@ -113,9 +113,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -204,8 +201,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_timesync_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_update_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_update_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_update_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_update_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -95,9 +95,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -176,8 +173,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service.py 2025-08-29 13:23:03.000000000 +0000
@@ -133,9 +133,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -228,8 +225,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/appliance_vmon_service_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -479,9 +479,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -562,8 +559,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration.py 2025-08-29 13:23:03.000000000 +0000
@@ -164,9 +164,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -255,8 +252,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_configuration_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -97,9 +97,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -178,8 +175,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -91,9 +91,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -176,8 +173,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_item_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_item_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_item_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_item_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -193,9 +193,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -279,8 +276,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_subscriptions_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_subscriptions_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_subscriptions_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_library_subscriptions_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -104,9 +104,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -190,8 +187,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary.py 2025-08-29 13:23:03.000000000 +0000
@@ -1493,9 +1493,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -1602,8 +1599,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -1665,9 +1665,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_locallibrary_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -327,9 +327,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -412,8 +409,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary.py 2025-08-29 13:23:03.000000000 +0000
@@ -692,9 +692,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -800,8 +797,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -867,9 +867,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/content_subscribedlibrary_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -117,9 +117,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -202,8 +199,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_cluster_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_cluster_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_cluster_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_cluster_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -161,9 +161,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -262,8 +259,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter.py 2025-08-29 13:23:03.000000000 +0000
@@ -173,9 +173,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -268,8 +265,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -348,9 +348,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datacenter_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -139,9 +139,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -239,8 +236,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datastore_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datastore_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datastore_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_datastore_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -170,9 +170,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -276,8 +273,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_folder_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_folder_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_folder_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_folder_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -166,9 +166,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -269,8 +266,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host.py 2025-08-29 13:23:03.000000000 +0000
@@ -187,9 +187,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -290,8 +287,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -395,9 +395,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_host_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -172,9 +172,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -275,8 +272,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_network_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_network_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_network_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_network_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -163,9 +163,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -266,8 +263,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_ovf_libraryitem.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_ovf_libraryitem.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_ovf_libraryitem.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_ovf_libraryitem.py 2025-08-29 13:23:03.000000000 +0000
@@ -380,9 +380,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -477,8 +474,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -547,9 +547,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool.py 2025-08-29 13:23:03.000000000 +0000
@@ -278,9 +278,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -374,8 +371,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -452,9 +452,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_resourcepool_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -197,9 +197,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -296,8 +293,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_storage_policies_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_storage_policies_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_storage_policies_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_storage_policies_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -140,9 +140,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -223,8 +220,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm.py 2025-08-29 13:23:03.000000000 +0000
@@ -1343,9 +1343,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -1695,8 +1692,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -1773,9 +1773,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
@@ -1844,9 +1842,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
@@ -1937,9 +1933,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_customization.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_customization.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_customization.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_customization.py 2025-08-29 13:23:03.000000000 +0000
@@ -463,9 +463,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -553,8 +550,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_filesystem_directories.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_filesystem_directories.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_filesystem_directories.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_filesystem_directories.py 2025-08-29 13:23:03.000000000 +0000
@@ -243,9 +243,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -343,8 +340,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -386,9 +386,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_identity_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_identity_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_identity_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_identity_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -118,9 +118,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -201,8 +198,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_localfilesystem_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_localfilesystem_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_localfilesystem_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_localfilesystem_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -120,9 +120,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -203,8 +200,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -121,9 +121,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -204,8 +201,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -121,9 +121,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -204,8 +201,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_routes_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_routes_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_routes_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_networking_routes_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -112,9 +112,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -195,8 +192,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_operations_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_operations_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_operations_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_operations_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -90,9 +90,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -173,8 +170,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power.py 2025-08-29 13:23:03.000000000 +0000
@@ -154,9 +154,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -245,8 +242,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_guest_power_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -134,9 +134,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -217,8 +214,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware.py 2025-08-29 13:23:03.000000000 +0000
@@ -182,9 +182,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -323,8 +320,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata.py 2025-08-29 13:23:03.000000000 +0000
@@ -170,9 +170,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -267,8 +264,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -347,9 +347,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -136,9 +136,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -223,8 +220,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi.py 2025-08-29 13:23:03.000000000 +0000
@@ -198,9 +198,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -302,8 +299,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -382,9 +382,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -124,9 +124,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -211,8 +208,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot.py 2025-08-29 13:23:03.000000000 +0000
@@ -186,9 +186,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -281,8 +278,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device.py 2025-08-29 13:23:03.000000000 +0000
@@ -154,9 +154,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -242,8 +239,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_device_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -118,9 +118,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -201,8 +198,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_boot_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -115,9 +115,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -198,8 +195,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom.py 2025-08-29 13:23:03.000000000 +0000
@@ -255,9 +255,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -355,8 +352,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -462,9 +462,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cdrom_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -123,9 +123,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -210,8 +207,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu.py 2025-08-29 13:23:03.000000000 +0000
@@ -172,9 +172,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -264,8 +261,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_cpu_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -119,9 +119,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -202,8 +199,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk.py 2025-08-29 13:23:03.000000000 +0000
@@ -282,9 +282,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -383,8 +380,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -463,9 +463,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_disk_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -143,9 +143,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -230,8 +227,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet.py 2025-08-29 13:23:03.000000000 +0000
@@ -343,9 +343,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -452,8 +449,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -559,9 +559,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_ethernet_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -128,9 +128,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -215,8 +212,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy.py 2025-08-29 13:23:03.000000000 +0000
@@ -205,9 +205,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -302,8 +299,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -409,9 +409,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_floppy_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -123,9 +123,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -210,8 +207,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -109,9 +109,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -192,8 +189,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory.py 2025-08-29 13:23:03.000000000 +0000
@@ -153,9 +153,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -243,8 +240,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_memory_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -117,9 +117,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -200,8 +197,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel.py 2025-08-29 13:23:03.000000000 +0000
@@ -197,9 +197,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -294,8 +291,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -401,9 +401,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_parallel_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -123,9 +123,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -210,8 +207,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial.py 2025-08-29 13:23:03.000000000 +0000
@@ -274,9 +274,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -372,8 +369,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -479,9 +479,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_hardware_serial_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -143,9 +143,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -230,8 +227,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -334,9 +334,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -439,8 +436,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_libraryitem_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_libraryitem_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_libraryitem_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_libraryitem_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -117,9 +117,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -200,8 +197,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power.py 2025-08-29 13:23:03.000000000 +0000
@@ -244,9 +244,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -335,8 +332,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_power_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -112,9 +112,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -195,8 +192,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy.py 2025-08-29 13:23:03.000000000 +0000
@@ -163,9 +163,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -253,8 +250,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance.py 2025-08-29 13:23:03.000000000 +0000
@@ -118,9 +118,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -207,8 +204,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_compliance_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -120,9 +120,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -203,8 +200,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_storage_policy_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -114,9 +114,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -197,8 +194,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools.py 2025-08-29 13:23:03.000000000 +0000
@@ -167,9 +167,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -263,8 +260,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -177,9 +177,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -260,8 +257,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer.py 2025-08-29 13:23:03.000000000 +0000
@@ -150,9 +150,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -241,8 +238,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vm_tools_installer_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -133,9 +133,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -216,8 +213,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems.py 2025-08-29 13:23:03.000000000 +0000
@@ -454,9 +454,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -557,8 +554,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
@@ -638,9 +638,7 @@
async with session.post(_url, json=payload, **session_timeout(params)) as resp:
if resp.status == 500:
text = await resp.text()
- raise EmbeddedModuleFailure(
- f"Request has failed: status={resp.status}, {text}"
- )
+ raise Exception(f"Request has failed: status={resp.status}, {text}")
try:
if resp.headers["Content-Type"] == "application/json":
_json = await resp.json()
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems_info.py ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems_info.py
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems_info.py 2025-07-01 12:50:28.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/plugins/modules/vcenter_vmtemplate_libraryitems_info.py 2025-08-29 13:23:03.000000000 +0000
@@ -100,9 +100,6 @@
if os.getenv("VMWARE_ENABLE_TURBO", False):
try:
- from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import (
- EmbeddedModuleFailure,
- )
from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
AnsibleTurboModule as AnsibleModule,
)
@@ -183,8 +180,11 @@
validate_certs=module.params["vcenter_validate_certs"],
log_file=module.params["vcenter_rest_log_file"],
)
- except EmbeddedModuleFailure as err:
- module.fail_json(err.get_message())
+ except Exception as err:
+ if hasattr(err, "get_message"):
+ module.fail_json(err.get_message())
+ else:
+ module.fail_json(str(err))
result = await entry_point(module, session)
module.exit_json(**result)
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/prepare_vm/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/prepare_vm/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/prepare_vm/tasks/main.yml 2025-05-22 14:06:59.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/prepare_vm/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -6,7 +6,7 @@
vmware.vmware_rest.vcenter_resourcepool:
name: "{{ resource_pool_name }}"
parent: >-
- {{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + resource_pool_parent_name,
+ {{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + resource_pool_parent_name,
**vmware_rest_auth_vars) }}
register: resource_pool_info
@@ -15,8 +15,8 @@
name: "{{ vm_name }}"
template_library_item: "{{ vcenter_test_vm_template.id }}"
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
state: deploy
register: vm_from_template
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml 2025-07-03 13:26:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_library_and_ovf_clone/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -11,15 +11,15 @@
- name: Create a generic resource pool
vmware.vmware_rest.vcenter_resourcepool:
name: "{{ resource_pool_name }}"
- parent: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
+ parent: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
register: resource_pool_info
- name: Create a VM with optimized settings
vmware.vmware_rest.vcenter_vm:
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ datastore: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
name: "{{ vm_name }}"
guest_OS: RHEL_9_64
@@ -42,7 +42,7 @@
published: true
authentication_method: "NONE"
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
state: present
register: nfs_lib
@@ -55,7 +55,7 @@
published: true
authentication_method: "NONE"
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
state: present
register: nfs_lib
@@ -78,7 +78,7 @@
published: true
authentication_method: "NONE"
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
state: present
loop: "{{ range(0, num_libraries_to_loop) | list }}" # Loop through the range dynamically based on num_libraries
@@ -92,7 +92,7 @@
- name: Check that created content libraries exist
assert:
that:
- - "'{{ library_name }}-{{ item }}' in (content_libraries.value | map(attribute='name') | list)"
+ - library_name + '-' + (item | string) in (content_libraries.value | map(attribute='name') | list)
fail_msg: "Content library '{{ library_name }}-{{ item }}' does not exist"
loop: "{{ range(0, num_libraries_to_loop) | list }}"
@@ -167,7 +167,7 @@
state: deploy
target:
resource_pool_id: "{{ resource_pool_info.id }}"
- folder_id: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_invalid_vm_folder, **vmware_rest_auth_vars) }}"
+ folder_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_invalid_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
deployment_spec:
name: "{{ vm_from_ovf_image_name }}"
accept_all_EULA: true
@@ -179,7 +179,7 @@
- name: Get random host info
vmware.vmware_rest.vcenter_host_info:
- hosts: "{{ lookup('vmware.vmware_rest.host_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/', **vmware_rest_auth_vars)[0] }}"
+ hosts: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/', type='host', wantlist=True, **vmware_rest_auth_vars)[0] }}"
register: vcenter_host_info
- name: Create a new VM from the OVF and specify the host and folder
@@ -189,7 +189,7 @@
state: deploy
target:
resource_pool_id: "{{ resource_pool_info.id }}"
- folder_id: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ folder_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
host_id: "{{ vcenter_host_info.value[0].host }}"
deployment_spec:
name: "{{ vm_from_ovf_image_on_host }}"
@@ -210,7 +210,7 @@
published: true
authentication_method: "NONE"
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
state: present
register: ds_lib
@@ -278,7 +278,7 @@
automatic_sync_enabled: false
on_demand: true
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
register: sub_lib
@@ -291,7 +291,7 @@
automatic_sync_enabled: false
on_demand: true
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
register: result
- name: Assert the resource has not been changed
@@ -358,20 +358,20 @@
- name: Delete test VM
vmware.vmware_rest.vcenter_vm:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vm_name, **vmware_rest_auth_vars) }}"
state: absent
- name: Delete VM from OVF image
vmware.vmware_rest.vcenter_vm:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vm_from_ovf_image_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vm_from_ovf_image_name, **vmware_rest_auth_vars) }}"
state: absent
- name: Delete VM from OVF image on specific host
vmware.vmware_rest.vcenter_vm:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vm_from_ovf_image_on_host, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vm_from_ovf_image_on_host, **vmware_rest_auth_vars) }}"
state: absent
- name: Delete resource pool
vmware.vmware_rest.vcenter_resourcepool:
- resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + resource_pool_name, **vmware_rest_auth_vars) }}"
+ resource_pool: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + resource_pool_name, **vmware_rest_auth_vars) }}"
state: absent
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml 2025-07-03 13:26:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_clone_on_library/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -16,7 +16,7 @@
published: true
authentication_method: "NONE"
storage_backings:
- - datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
+ - datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + eco_nfs_datastore_iso, **vmware_rest_auth_vars) }}"
type: "DATASTORE"
state: present
register: nfs_lib
@@ -24,15 +24,15 @@
- name: Create a generic resource pool
vmware.vmware_rest.vcenter_resourcepool:
name: "{{ resource_pool_name }}"
- parent: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
+ parent: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
register: resource_pool_info
- name: Create a VM
vmware.vmware_rest.vcenter_vm:
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + shared_storage_01, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ datastore: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + shared_storage_01, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
name: "{{ vm_name }}"
guest_OS: RHEL_9_64
@@ -44,7 +44,7 @@
- type: VMXNET3
backing:
type: DISTRIBUTED_PORTGROUP
- network: "{{ lookup('vmware.vmware_rest.network_moid', '/' + vcenter_datacenter + '/' + vm_network_name, **vmware_rest_auth_vars) }}"
+ network: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/network/' + vm_network_name, **vmware_rest_auth_vars) }}"
start_connected: true
cdroms:
- backing:
@@ -59,8 +59,8 @@
library: "{{ nfs_lib.id }}"
source_vm: "{{ test_vm.id }}"
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
register: nfs_lib_item
@@ -75,8 +75,8 @@
library: "{{ nfs_lib.id }}"
source_vm: "{{ test_vm.id }}"
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
register: _result
@@ -93,7 +93,7 @@
- name: Verify VM template name
ansible.builtin.assert:
that:
- - nfs_lib_items.library_item_info[0].name == "{{ vm_name }}-template"
+ - nfs_lib_items.library_item_info[0].name == vm_name + "-template"
- name: Deploy a new VM based on the template
vmware.vmware_rest.vcenter_vmtemplate_libraryitems:
@@ -101,8 +101,8 @@
library: "{{ nfs_lib.id }}"
template_library_item: "{{ nfs_lib_item.id }}"
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
state: deploy
register: vm_from_template
@@ -120,12 +120,12 @@
always:
- name: Delete test VM's
vmware.vmware_rest.vcenter_vm:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vm_name, **vmware_rest_auth_vars) }}"
state: absent
- name: Delete VM from template
vmware.vmware_rest.vcenter_vm:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vm_from_template_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vm_from_template_name, **vmware_rest_auth_vars) }}"
state: absent
- name: Delete nfs library
@@ -136,5 +136,5 @@
- name: Delete resource pool
vmware.vmware_rest.vcenter_resourcepool:
- resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + resource_pool_name, **vmware_rest_auth_vars) }}"
+ resource_pool: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + resource_pool_name, **vmware_rest_auth_vars) }}"
state: absent
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml 2025-07-03 13:26:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_cloning/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -11,7 +11,7 @@
- name: Create a generic resource pool
vmware.vmware_rest.vcenter_resourcepool:
name: "{{ resource_pool_name }}"
- parent: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
+ parent: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
register: resource_pool_info
- name: Deploy a new VM based on the template
@@ -19,8 +19,8 @@
name: "{{ vm1_name }}"
template_library_item: "{{ vcenter_test_vm_template.id }}"
placement:
- cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ cluster: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
state: deploy
register: vm_from_template
@@ -43,8 +43,8 @@
- name: Create an instant clone of VM
vmware.vmware_rest.vcenter_vm:
placement:
- datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + shared_storage_01, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ datastore: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + shared_storage_01, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
source: "{{ vm_from_template.value }}"
name: "{{ vm2_name }}"
@@ -60,8 +60,8 @@
- name: Create a clone of VM
vmware.vmware_rest.vcenter_vm:
placement:
- datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + shared_storage_01, **vmware_rest_auth_vars) }}"
- folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
+ datastore: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + shared_storage_01, **vmware_rest_auth_vars) }}"
+ folder: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
resource_pool: "{{ resource_pool_info.id }}"
source: "{{ vm_from_template.value }}"
name: "{{ vm3_name }}"
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml 2025-05-22 14:06:59.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_customize/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -17,14 +17,18 @@
resource_pool_parent_name: "{{ vcenter_resource_pool }}"
vm_name: "{{ test_vm_name }}"
+ - name: Lookup the VM ID
+ ansible.builtin.set_fact:
+ _test_vm_moid: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
+
- name: Power on VM
vmware.vmware_rest.vcenter_vm_power:
state: start
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
- name: Wait until VM is ready
vmware.vmware_rest.vcenter_vm_tools_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_tools_info
until:
- vm_tools_info is not failed
@@ -35,11 +39,11 @@
- name: Shut down the VM
vmware.vmware_rest.vcenter_vm_guest_power:
state: shutdown
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
- name: Wait until VM is off
vmware.vmware_rest.vcenter_vm_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_info
until:
- vm_info is not failed
@@ -49,7 +53,7 @@
- name: Read the power status of the VM
vmware.vmware_rest.vcenter_vm_guest_power_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_power_info
- name: Verify power status of the VM
@@ -60,7 +64,7 @@
- name: Customize the VM
vmware.vmware_rest.vcenter_vm_guest_customization:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
configuration_spec:
linux_config:
domain: testdomain
@@ -86,11 +90,11 @@
- name: Turn on the power of the VM
vmware.vmware_rest.vcenter_vm_power:
state: start
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
- name: Wait until VM is ready
vmware.vmware_rest.vcenter_vm_tools_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_tools_info
until:
- vm_tools_info is not failed
@@ -100,7 +104,7 @@
- name: Read the power status of the VM
vmware.vmware_rest.vcenter_vm_guest_power_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_power_info
- name: Verify power status of the VM
@@ -115,7 +119,7 @@
- name: Collect information about VM network
vmware.vmware_rest.vcenter_vm_guest_networking_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_dns_info
- name: Print VM network info
@@ -131,7 +135,7 @@
- name: Collect information about networking interface of VM
vmware.vmware_rest.vcenter_vm_guest_networking_interfaces_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_ip_info
- name: Verify IP adress of VM
@@ -141,7 +145,7 @@
- name: Get information about the vm-tools
vmware.vmware_rest.vcenter_vm_tools_installer_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_info
- ansible.builtin.assert:
@@ -149,12 +153,12 @@
- name: Update the vm-tools
vmware.vmware_rest.vcenter_vm_tools_installer:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
state: connect
- name: Get information about the vm-tools
vmware.vmware_rest.vcenter_vm_tools_installer_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_info
- ansible.builtin.assert:
@@ -166,9 +170,9 @@
name: prepare_vm
vars:
prepare_vm_state: absent
- vm_id: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm_id: "{{ _test_vm_moid }}"
- name: Delete resource pool
vmware.vmware_rest.vcenter_resourcepool:
- resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', test_resource_pool_name, **vmware_rest_auth_vars) }}"
+ resource_pool: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + test_resource_pool_name, **vmware_rest_auth_vars) }}"
state: absent
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml 2025-07-03 13:26:00.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_guest_filesystem_directories/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -17,14 +17,18 @@
resource_pool_parent_name: "{{ vcenter_resource_pool }}"
vm_name: "{{ test_vm_name }}"
+ - name: Lookup the VM ID
+ ansible.builtin.set_fact:
+ _test_vm_moid: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
+
- name: Power on VM
vmware.vmware_rest.vcenter_vm_power:
state: start
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
- name: Wait until VM is ready
vmware.vmware_rest.vcenter_vm_tools_info:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
register: vm_tools_info
until:
- vm_tools_info is not failed
@@ -34,7 +38,7 @@
- name: Create a directory in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
path: "{{ path_tmp.dir }}"
create_parents: true
credentials:
@@ -55,7 +59,7 @@
- name: Create directory with name duplication in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
path: "{{ path_tmp.dir }}"
create_parents: true
credentials:
@@ -77,7 +81,7 @@
- name: Move directory in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
path: "{{ path_tmp.dir }}"
new_path: "{{ path_tmp.new_dir }}"
create_parents: true
@@ -100,7 +104,7 @@
- name: Create a directory in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
path: "{{ path_tmp.dir }}"
create_parents: true
credentials:
@@ -121,7 +125,7 @@
- name: Create a temporary directory in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
suffix: test
prefix: test
credentials:
@@ -144,7 +148,7 @@
- name: Delete directories in /tmp
vmware.vmware_rest.vcenter_vm_guest_filesystem_directories:
- vm: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm: "{{ _test_vm_moid }}"
path: "{{ item }}"
credentials:
interactive_session: false
@@ -179,9 +183,9 @@
name: prepare_vm
vars:
prepare_vm_state: absent
- vm_id: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm_id: "{{ _test_vm_moid }}"
- name: Delete resource pool
vmware.vmware_rest.vcenter_resourcepool:
- resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', test_resource_pool_name, **vmware_rest_auth_vars) }}"
+ resource_pool: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + test_resource_pool_name, **vmware_rest_auth_vars) }}"
state: absent
diff -Nru ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml
--- ansible-12.0.0~b5+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml 2025-05-22 14:06:59.000000000 +0000
+++ ansible-12.0.0+dfsg/ansible_collections/vmware/vmware_rest/tests/integration/targets/vmware_rest_vcenter_vm_scenario/tasks/main.yml 2025-08-29 13:23:03.000000000 +0000
@@ -10,17 +10,17 @@
block:
- name: Set facts for tests
ansible.builtin.set_fact:
- cluster_id: "{{ lookup('vmware.vmware_rest.cluster_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
- folder_id: "{{ lookup('vmware.vmware_rest.folder_moid', '/' + vcenter_datacenter + '/' + vcenter_vm_folder, **vmware_rest_auth_vars) }}"
- datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/' + vcenter_datacenter + '/' + shared_storage_01, **vmware_rest_auth_vars) }}"
- resource_pool_parent_id: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
+ cluster_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name, **vmware_rest_auth_vars) }}"
+ folder_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder, type='folder', **vmware_rest_auth_vars) }}"
+ datastore_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/datastore/' + shared_storage_01, **vmware_rest_auth_vars) }}"
+ resource_pool_parent_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + vcenter_resource_pool, **vmware_rest_auth_vars) }}"
- include_tasks: verify_env_information.yml
- include_tasks: create_vm.yml
- name: Get test VM id
ansible.builtin.set_fact:
- test_vm_id: "{{ lookup('vmware.vmware_rest.vm_moid', '/' + vcenter_datacenter + '/' + vcenter_cluster_name + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
+ test_vm_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
- include_tasks: vm_info.yml
- include_tasks: vm_hardware_adapter_info.yml
@@ -49,9 +49,9 @@
name: prepare_vm
vars:
prepare_vm_state: absent
- vm_id: "{{ lookup('vmware.vmware_rest.vm_moid', test_vm_name, **vmware_rest_auth_vars) }}"
+ vm_id: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/vm/' + vcenter_vm_folder + '/' + test_vm_name, **vmware_rest_auth_vars) }}"
- name: Delete resource pool
vmware.vmware_rest.vcenter_resourcepool:
- resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', test_resource_pool_name, **vmware_rest_auth_vars) }}"
+ resource_pool: "{{ lookup('vmware.vmware.moid_from_path', '/' + vcenter_datacenter + '/host/' + vcenter_cluster_name + '/' + test_resource_pool_name, **vmware_rest_auth_vars) }}"
state: absent
diff -Nru ansible-12.0.0~b5+dfsg/build-ansible.sh ansible-12.0.0+dfsg/build-ansible.sh
--- ansible-12.0.0~b5+dfsg/build-ansible.sh 2025-08-26 19:32:33.000000000 +0000
+++ ansible-12.0.0+dfsg/build-ansible.sh 2025-09-09 13:44:56.000000000 +0000
@@ -5,7 +5,7 @@
set -e
-VERSION="12.0.0b5"
+VERSION="12.0.0"
MAJOR="12"
# For idempotency, remove build data or built output first
diff -Nru ansible-12.0.0~b5+dfsg/debian/changelog ansible-12.0.0+dfsg/debian/changelog
--- ansible-12.0.0~b5+dfsg/debian/changelog 2025-08-27 09:54:39.000000000 +0000
+++ ansible-12.0.0+dfsg/debian/changelog 2025-11-28 15:56:02.000000000 +0000
@@ -1,3 +1,21 @@
+ansible (12.0.0+dfsg-0+deb13u1) trixie; urgency=medium
+
+ * d/watch: Track 12.0.x releases for trixie
+ * New upstream version 12.0.0+dfsg, providing following security fixes:
+ - cloudscale_ch.cloud: Validate API tokens before passing them to Ansible,
+ to ensure that a badly formed one (i.e., one with newlines) is not
+ accidentally logged.
+ - community.general: keycloak_authentication - API calls did not properly
+ set the priority during update resulting in incorrectly sorted
+ authentication flows.
+ - community.general: keycloak_client - Sanitize saml.encryption.private.key
+ so it does not show in the logs
+ * Remove cloud-common-flaky-test.patch (dropped upstream)
+ * security fix: prevent keycloak_user from logging credentials (backported
+ from ansible 12.2.0)
+
+ -- Lee Garrett Fri, 28 Nov 2025 16:56:02 +0100
+
ansible (12.0.0~b5+dfsg-0+deb13u1) trixie; urgency=medium
* New upstream version 12.0.0~b5+dfsg
diff -Nru ansible-12.0.0~b5+dfsg/debian/patches/0004-no_log-keycloak_user-credentials.patch ansible-12.0.0+dfsg/debian/patches/0004-no_log-keycloak_user-credentials.patch
--- ansible-12.0.0~b5+dfsg/debian/patches/0004-no_log-keycloak_user-credentials.patch 1970-01-01 00:00:00.000000000 +0000
+++ ansible-12.0.0+dfsg/debian/patches/0004-no_log-keycloak_user-credentials.patch 2025-11-15 12:59:46.000000000 +0000
@@ -0,0 +1,28 @@
+Description: Fix credential leaking of keycloak_user
+Origin: upstream, https://github.com/ansible-collections/community.general/pull/11005
+Bug: https://github.com/ansible-collections/community.general/issues/11000
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/ansible_collections/community/general/changelogs/fragments/11005-keycloak_user.yml b/ansible_collections/community/general/changelogs/fragments/11005-keycloak_user.yml
+new file mode 100644
+index 0000000..d715ca8
+--- /dev/null
++++ b/ansible_collections/community/general/changelogs/fragments/11005-keycloak_user.yml
+@@ -0,0 +1,4 @@
++security_fixes:
++ - "keycloak_user - the parameter ``credentials[].value`` is now marked as ``no_log=true``. Before it was logged by Ansible, unless the task was marked as ``no_log: true``.
++ Since this parameter can be used for passwords, this resulted in credential leaking
++ (https://github.com/ansible-collections/community.general/issues/11000, https://github.com/ansible-collections/community.general/pull/11005)."
+diff --git a/ansible_collections/community/general/plugins/modules/keycloak_user.py b/ansible_collections/community/general/plugins/modules/keycloak_user.py
+index 2b3c838..ab038f9 100644
+--- a/ansible_collections/community/general/plugins/modules/keycloak_user.py
++++ b/ansible_collections/community/general/plugins/modules/keycloak_user.py
+@@ -357,7 +357,7 @@ def main():
+ argument_spec['auth_username']['aliases'] = []
+ credential_spec = dict(
+ type=dict(type='str', required=True),
+- value=dict(type='str', required=True),
++ value=dict(type='str', required=True, no_log=True),
+ temporary=dict(type='bool', default=False)
+ )
+ client_consents_spec = dict(
diff -Nru ansible-12.0.0~b5+dfsg/debian/patches/cloud-common-flaky-test.patch ansible-12.0.0+dfsg/debian/patches/cloud-common-flaky-test.patch
--- ansible-12.0.0~b5+dfsg/debian/patches/cloud-common-flaky-test.patch 2025-08-26 23:55:04.000000000 +0000
+++ ansible-12.0.0+dfsg/debian/patches/cloud-common-flaky-test.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-From: Colin Watson
-Date: Thu, 31 Oct 2024 00:32:54 +0000
-Subject: Make a test less flaky
-
-`test_start_daemon_with_no_mock` could be flaky on slow architectures,
-since it races with the startup of its test server process. Make it
-more tolerant.
-
-Last-Update: 2024-10-31
----
- .../plugins/module_utils/turbo/test_turbo_module.py | 20 ++++++++++++++++----
- 1 file changed, 16 insertions(+), 4 deletions(-)
-
-diff --git a/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py b/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py
-index 1d24d9b..c11a9cd 100644
---- a/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py
-+++ b/ansible_collections/cloud/common/tests/unit/plugins/module_utils/turbo/test_turbo_module.py
-@@ -88,10 +88,22 @@ def test_start_daemon_with_no_mock(tmp_path):
- my_socket = tmp_path / "socket"
- turbo_socket = turbo_common.AnsibleTurboSocket(socket_path=str(my_socket), ttl=1)
- assert turbo_socket.start_server()
-- time.sleep(0.5)
-- assert my_socket.is_socket()
-- time.sleep(0.8)
-- assert not my_socket.exists()
-+ # It might take the server a little while to finish starting up and bind
-+ # the socket.
-+ for _ in range(50):
-+ time.sleep(0.1)
-+ if my_socket.is_socket():
-+ break
-+ else:
-+ assert my_socket.is_socket()
-+ # Wait for the TTL to expire, plus a little in case it takes the server
-+ # some time to be scheduled back in.
-+ for _ in range(20):
-+ time.sleep(0.1)
-+ if not my_socket.exists():
-+ break
-+ else:
-+ assert not my_socket.exists()
-
-
- def test_connect(monkeypatch):
diff -Nru ansible-12.0.0~b5+dfsg/debian/patches/series ansible-12.0.0+dfsg/debian/patches/series
--- ansible-12.0.0~b5+dfsg/debian/patches/series 2025-08-27 09:51:00.000000000 +0000
+++ ansible-12.0.0+dfsg/debian/patches/series 2025-11-15 11:38:46.000000000 +0000
@@ -1,2 +1,2 @@
0003-fix-libvirt-path-resolution.patch
-cloud-common-flaky-test.patch
+0004-no_log-keycloak_user-credentials.patch
diff -Nru ansible-12.0.0~b5+dfsg/debian/watch ansible-12.0.0+dfsg/debian/watch
--- ansible-12.0.0~b5+dfsg/debian/watch 2025-08-27 00:02:29.000000000 +0000
+++ ansible-12.0.0+dfsg/debian/watch 2025-11-05 17:07:16.000000000 +0000
@@ -5,4 +5,4 @@
pgpmode=auto,\
uversionmangle=s/((?:a|b|rc)[0-9]+)$/~$1/,\
" \
-https://pypi.debian.net/ansible/ ansible-([0-9]+\.[0-9]+\.[0-9]+(?:(?:a|b|rc)[0-9]+)?).tar.gz
+https://pypi.debian.net/ansible/ ansible-(12\.0\.[0-9]+(?:(?:a|b|rc)[0-9]+)?).tar.gz
diff -Nru ansible-12.0.0~b5+dfsg/porting_guide_12.rst ansible-12.0.0+dfsg/porting_guide_12.rst
--- ansible-12.0.0~b5+dfsg/porting_guide_12.rst 2025-08-26 19:32:32.000000000 +0000
+++ ansible-12.0.0+dfsg/porting_guide_12.rst 2025-09-09 13:44:55.000000000 +0000
@@ -875,182 +875,23 @@
No notable changes
-Porting Guide for v12.0.0b4
-===========================
-
-Major Changes
--------------
-
-cisco.ios
-^^^^^^^^^
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-cisco.iosxr
-^^^^^^^^^^^
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-cisco.nxos
-^^^^^^^^^^
-
-- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
-
-dellemc.unity
-^^^^^^^^^^^^^
-
-- Adding support for Unity v5.5.
-
-Deprecated Features
--------------------
-
-- The ``ibm.qradar`` collection has been deprecated.
- It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13.
- See `Collections Removal Process for unmaintained collections `__ for more details (`https://forum.ansible.com/t/44259 `__).
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- bearychat - module is deprecated and will be removed in community.general 12.0.0 (https://github.com/ansible-collections/community.general/issues/10514).
-- cpanm - deprecate ``mode=compatibility``, ``mode=new`` should be used instead (https://github.com/ansible-collections/community.general/pull/10434).
-- github_repo - deprecate ``force_defaults=true`` (https://github.com/ansible-collections/community.general/pull/10435).
-- rocketchat - the default value for ``is_pre740``, currently ``true``, is deprecated and will change to ``false`` in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490).
-
-Porting Guide for v12.0.0b3
-===========================
-
-Known Issues
-------------
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
-- idrac_diagnostics - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-Major Changes
--------------
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2.19.
-- idrac_bios - This role is enhanced to support iDRAC10.
-- idrac_boot - This module is enhanced to support iDRAC10.
-- idrac_boot - This role is enhanced to support iDRAC10.
-- idrac_certificates - This module is enhanced to support iDRAC10.
-- idrac_reset - This module is enhanced to support iDRAC10.
-- idrac_reset - This role is enhanced to support iDRAC10.
-- idrac_support_assist - This module is enhanced to support iDRAC10.
-- idrac_user - This module is enhanced to support iDRAC10.
-- idrac_user - This role is enhanced to support iDRAC10.
-- ome_firmware - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline_compliance_info - This module is enhanced to support OME 4.5.
-- ome_firmware_baseline_info - This module is enhanced to support OME 4.5.
-- ome_firmware_catalog - This module is enhanced to support OME 4.5.
-- redfish_firmware - This module is enhanced to support iDRAC10.
-
-netapp.ontap
-^^^^^^^^^^^^
-
-- na_ontap_autoupdate_support - REST only support to enable automatic software update, requires ONTAP 9.10 or later.
-- na_ontap_s3_buckets - new option `snapshot_policy` added in REST, requires ONTAP 9.16.1 or later.
-
-Porting Guide for v12.0.0b1
-===========================
+Porting Guide for v12.0.0
+=========================
Added Collections
-----------------
-- google.cloud (version 1.6.0)
+- community.proxmox (version 1.3.0)
+- hitachivantara.vspone_block (version 4.1.0)
+- microsoft.iis (version 1.0.3)
Known Issues
------------
-community.libvirt
-^^^^^^^^^^^^^^^^^
-
-- virt_volume - check_mode is disabled. It was not fully supported in the previous code either ('state/present', 'command/create' did not support it).
-
-Breaking Changes
-----------------
-
-community.hashi_vault
-^^^^^^^^^^^^^^^^^^^^^
-
-- ansible-core - support for all end-of-life versions of ``ansible-core`` has been dropped. The collection is tested with ``ansible-core>=2.17`` (https://github.com/ansible-collections/community.hashi_vault/issues/470).
-- python - support for older versions of Python has been dropped. The collection is tested with all supported controller-side versions and a few lower target-side versions depending on the tests (https://github.com/ansible-collections/community.hashi_vault/issues/470).
-
-Major Changes
--------------
-
-- The previously removed collection google.cloud was re-added to Ansible 12 (`https://forum.ansible.com/t/8609 `__).
- The sanity test failures have been addressed.
-
-community.libvirt
-^^^^^^^^^^^^^^^^^
-
-- virt_volume - a new command 'create_cidata_cdrom' enables the creation of a cloud-init CDROM, which can be attached to a cloud-init enabled base image, for bootstrapping networking, users etc.
-- virt_volume - the commands create_from, delete, download, info, resize, upload, wipe, facts did not work and were not tested. They have either been refactored to work, and tested, or removed.
-- virt_volume - the mechanism of passing variables to the member functions was not flexible enough to cope with differing parameter requirements. All parameters are now passed as kwargs, which allows the member functions to select the parameters they need.
-- virt_volume - the module appears to have been derived from virt_pool, but not cleaned up to remove much non-functional code. It has been refactored to remove the pool-specific code, and to make it more flexible.
-
-community.zabbix
-^^^^^^^^^^^^^^^^
-
-- All Roles - Updated to support Zabbix 7.4
-
-Removed Features
-----------------
-
-community.libvirt
-^^^^^^^^^^^^^^^^^
-
-- virt_volume - PoolConnection class has been removed
-- virt_volume - the 'deleted' state has been removed as its definition was not entirely accurate, and the 'wipe' boolean option is added to 'state/absent' and 'command/delete'.
-- virt_volume - undocumented but unused FLAGS have been removed.
-- virt_volume - undocumented but unused/non-functional functions (get_status, get_status2, get_state, get_uuid, build) have been removed.
-
-hitachivantara.vspone_block
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- `hv_gateway_admin_password` module has been removed.
-- `hv_gateway_subscriber_facts` module has been removed.
-- `hv_gateway_subscriber` module has been removed.
-- `hv_gateway_subscription_facts` module has been removed.
-- `hv_gateway_unsubscribe_resource` module has been removed.
-- `hv_storagesystem` module has been removed.
-- `hv_system_facts` module has been removed.
-- `hv_uaig_token_facts` module has been removed.
-
-Deprecated Features
--------------------
-
community.general
^^^^^^^^^^^^^^^^^
-- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
-- pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227).
-
-community.hashi_vault
-^^^^^^^^^^^^^^^^^^^^^
-
-- ansible-core - support for several ``ansible-core`` versions will be dropped in ``v7.0.0``. The collection will focus on current supported versions of ``ansible-core`` going forward and more agressively drop end-of-life or soon-to-be EOL versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
-- python - support for several ``python`` versions will be dropped in ``v7.0.0``. The collection will focus on ``python`` versions that are supported by the active versions of ``ansible-core`` on the controller side at a minimum, and some subset of target versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
-
-community.zabbix
-^^^^^^^^^^^^^^^^
-
-- Web Role - Depricated `zabbix_web_SSLSessionCacheTimeout` for `zabbix_web_ssl_session_cache_timeout`
-- Web Role - Depricated `zabbix_web_SSLSessionCache` for `zabbix_web_ssl_session_cache`
-
-Porting Guide for v12.0.0a9
-===========================
-
-Known Issues
-------------
+- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
community.hrobot
^^^^^^^^^^^^^^^^
@@ -1058,76 +899,31 @@
- storagebox* modules - the Hetzner Robot API for storage boxes is `deprecated and will be sunset on July 30, 2025 `__. The modules are currently not compatible with the new API. We will try to adjust them until then, but usage and return values might change slightly due to differences in the APIs.
For the new API, an API token needs to be registered and provided as ``hetzner_token`` (https://github.com/ansible-collections/community.hrobot/pull/166).
+community.libvirt
+^^^^^^^^^^^^^^^^^
+
+- virt_volume - check_mode is disabled. It was not fully supported in the previous code either ('state/present', 'command/create' did not support it).
+
dellemc.openmanage
^^^^^^^^^^^^^^^^^^
- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
+- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
- idrac_diagnostics - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
+- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
+- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-Major Changes
--------------
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_bios - This module is enhanced to support iDRAC10.
-- idrac_diagnostics - This module is enhanced to support iDRAC10.
-- idrac_firmware - This module is enhanced to support iDRAC10.
-- idrac_job_queue - This role is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_logs - This module is enhanced to support iDRAC10.
-- idrac_network_attributes - This module is enhanced to support iDRAC10.
-- idrac_secure_boot - This module is enhanced to support iDRAC10.
-- idrac_server_powerstate - This role is enhanced to support iDRAC10.
-- idrac_session - This module is enhanced to support iDRAC10.
-- idrac_system_erase - This module is enhanced to support iDRAC10.
-- redfish_event_subscription - This module is enhanced to support iDRAC10.
-- redfish_power_state - This module is enhanced to support iDRAC10.
-
-vmware.vmware_rest
-^^^^^^^^^^^^^^^^^^
-
-- modules - disable turbo mode for module execution by default. Make it optional to enable it using an environment variable (https://github.com/ansible-collections/vmware.vmware_rest/issues/499)
-
-Deprecated Features
--------------------
-
-Ansible-core
-^^^^^^^^^^^^
-
-- Jinja test plugins - Returning a non-boolean result from a Jinja test plugin is deprecated.
-- YAML parsing - Usage of the YAML 1.1 ``!!omap`` and ``!!pairs`` tags is deprecated. Use standard mappings instead.
-- YAML parsing - Usage of the undocumented ``!vault-encrypted`` YAML tag is deprecated. Use ``!vault`` instead.
-- config - The ``DEFAULT_ALLOW_UNSAFE_LOOKUPS`` configuration option is deprecated and no longer has any effect. Ansible templating no longer encounters situations where use of lookup plugins is considered "unsafe".
-- config - The ``DEFAULT_UNDEFINED_VAR_BEHAVIOR`` configuration option is deprecated and no longer has any effect. Attempting to use an undefined variable where undefined values are unexpected is now always an error. This behavior was enabled by default in previous versions, and disabling it yielded inconsistent results.
-- config - The ``STRING_TYPE_FILTERS`` configuration option is deprecated and no longer has any effect. Since the template engine now always preserves native types, there is no longer a risk of unintended conversion from strings to native types.
-- config - Using the ``DEFAULT_JINJA2_EXTENSIONS`` configuration option to enable Jinja2 extensions is deprecated. Previously, custom Jinja extensions were disabled by default, as they can destabilize the Ansible templating environment. Templates should only make use of filter, test and lookup plugins.
-- config - Using the ``DEFAULT_MANAGED_STR`` configuration option to customize the value of the ``ansible_managed`` variable is deprecated. The ``ansible_managed`` variable can now be set the same as any other variable.
-- playbook - The ``timedout.frame`` task result value (injected when a task timeout occurs) is deprecated. Include ``error`` in the ``DISPLAY_TRACEBACK`` config value to capture a full Python traceback for timed out actions.
-- public API - The ``ansible.errors.AnsibleFilterTypeError`` exception type has been deprecated. Use ``AnsibleTypeError`` instead.
-- public API - The ``ansible.errors._AnsibleActionDone`` exception type has been deprecated. Action plugins should return a task result dictionary in success cases instead of raising.
-- public API - The ``ansible.module_utils.common.json.json_dump`` function is deprecated. Call Python stdlib ``json.dumps`` instead, with ``cls`` set to an Ansible profile encoder type from ``ansible.module_utils.common.json.get_encoder``.
-
-community.crypto
-^^^^^^^^^^^^^^^^
+purestorage.flasharray
+^^^^^^^^^^^^^^^^^^^^^^
-- acme_certificate - the option ``modify_account``'s default value ``true`` has been deprecated. It will change to ``false`` in community.crypto 4.0.0. We recommend to set the option to an explicit value to avoid deprecation warnings, and to prefer setting it to ``false`` already now. Better use the ``community.crypto.acme_account`` module instead (https://github.com/ansible-collections/community.crypto/issues/924).
+- All Fusion fleet members will be assumed to be at the same Purity//FA version level as the array connected to by Ansible.
+- FlashArray//CBS is not currently supported as a member of a Fusion fleet
vmware.vmware_rest
^^^^^^^^^^^^^^^^^^
-- lookup plugins - Deprecate all lookup plugins in favor of vmware.vmware.moid_from_path (https://github.com/ansible-collections/vmware.vmware_rest/pull/608)
-
-Porting Guide for v12.0.0a7
-===========================
-
-Known Issues
-------------
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
+- The lookup plugins use ``cloud.common``, but this collection does not support ansible-core 2.19 or higher (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
vyos.vyos
^^^^^^^^^
@@ -1137,194 +933,35 @@
Breaking Changes
----------------
-cloud.common
-^^^^^^^^^^^^
-
-- Remove support for ansible versions greater than ``2.19`` (https://github.com/ansible-collections/cloud.common/pull/183).
-
-community.okd
-^^^^^^^^^^^^^
-
-- Remove openshift inventory plugin deprecated in 3.0.0 (https://github.com/openshift/community.okd/pull/252).
-
-kubernetes.core
-^^^^^^^^^^^^^^^
-
-- Remove deprecated ``k8s`` invetory plugin (https://github.com/ansible-collections/kubernetes.core/pull/867).
-- Remove support for ``ansible-core<2.16`` (https://github.com/ansible-collections/kubernetes.core/pull/867).
-
-vyos.vyos
-^^^^^^^^^
-
-- Removed `vyos_logging`. Use `vyos_logging_global` instead.
-- lldp_global - if "address" is available, merge will cause it to be added, in contrast to the previous behavior where it was replaced. When used in replace mode, it will remove any existing addresses and replace them with the new one.
-- vyos_bgp_address_family - Support for 1.3+ VyOS only
-- vyos_bgp_global - Support for 1.3+ VyOS only
-- vyos_firewall_rules - removed p2p options as they have been removed prior to 1.3 of VyOS
-- vyos_firewall_rules - tcp.flags is now a list with an inversion flag to support 1.4+ firewall rules, but still supports 1.3-
-- vyos_lldp_global - civic_address is no longer a valid key (removed prior to 1.3)
-- vyos_logging_global - For 1.4, `protocol` is an attribute of the syslog host, not the facility
-- vyos_snmp_server - no longer works with versions prior to 1.3
-- vyos_snmp_server - parameter `engine_id` is no longer a `user` or `trap_target` parameter and is now a `snmp_v3` parameter
-- vyos_snmp_server - parameters `encrypted-key` and `plaintext-key` are now `encrypted-password` and `plaintext-password`
-- vyos_user - explicit support for version 1.3+ only
-- vyos_user - removed level (and its alias, role) they were removed in 1.3
-
-Major Changes
--------------
-
-ansible.utils
-^^^^^^^^^^^^^
-
-- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
-
-grafana.grafana
-^^^^^^^^^^^^^^^
-
-- Add delete protection by @KucicM in https://github.com/grafana/grafana-ansible-collection/pull/381
-- Fix Mimir URL verify task by @parcimonic in https://github.com/grafana/grafana-ansible-collection/pull/358
-- Fix some regression introduced by v6 by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/376
-- Update when statement to test for dashboard files found by @hal58th in https://github.com/grafana/grafana-ansible-collection/pull/363
-- Use become false in find task by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/368
-- alloy_readiness_check_use_https by @piotr-g in https://github.com/grafana/grafana-ansible-collection/pull/359
-
-vyos.vyos
-^^^^^^^^^
-
-- bgp modules - Added support for 1.4+ "system-as". 1.3 embedded as_number is still supported
-- vyos bgp modules - Many configuration attributes moved from `bgp_global` to `bgp_address_family` module (see documentation).
-- vyos_bgp_address_family - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute moved from `bgp_global` module. These are now Address-family specific. Many neighbor attributes also moved from `vyos_bgp_global` to `vyos_bgp_address_family` module.
-- vyos_bgp_global - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute Removed to `bgp_address_family` module.
-- vyos_user - add support for encrypted password specification
-- vyos_user - add support for public-key authentication
-
-Removed Collections
--------------------
-
-- cisco.ise (previously included version: 2.10.0)
-
-You can still install a removed collection manually with ``ansible-galaxy collection install ``.
-
-Removed Features
-----------------
-
-- The ``cisco.ise`` collection was considered unmaintained and has been removed from Ansible 12 (`https://forum.ansible.com/t/43367 `__).
- Users can still install this collection with ``ansible-galaxy collection install cisco.ise``.
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- Dropped support for ansible-core 2.15. The collection now requires ansible-core 2.16 or newer. This means that on the controller, Python 3.10+ is required. On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192).
-- The Proxmox content (modules and plugins) has been moved to the `new collection community.proxmox `__. Since community.general 11.0.0, these modules and plugins have been replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``, or by installing a new enough version of the Ansible community package. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10110).
-- apt_rpm - the ``present`` and ``installed`` states are no longer equivalent to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126).
-- clc_* modules and doc fragment - the modules were removed since CenturyLink Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126).
-- django_manage - the ``ack_venv_creation_deprecation`` option has been removed. It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126).
-- git_config - it is no longer allowed to use ``state=present`` with no value to read the config value. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
-- git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
-- hipchat - the module was removed since the hipchat service has been discontinued and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126).
-- manifold lookup plugin - the plugin was removed since the company was acquired in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.mixins.deps module utils - this module utils has been removed. Use the ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` module utils and no longer from the removed ``mh.mixins.vars`` module utils (https://github.com/ansible-collections/community.general/pull/10126).
-- mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` from ``ModuleHelper`` have been removed. We suggest to remove them from your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126).
-- module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
-- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
-- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
-- profitbrick* modules - the modules were removed since the supporting library is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126).
-- redfish_utils module utils - the ``_init_session`` method has been removed (https://github.com/ansible-collections/community.general/pull/10126).
-- stackpath_compute inventory plugin - the plugin was removed since the company and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126).
-
-Deprecated Features
--------------------
-
Ansible-core
^^^^^^^^^^^^
-- inventory plugins - Setting invalid Ansible variable names in inventory plugins is deprecated.
-- playbook syntax - Specifying the task ``args`` keyword without a value is deprecated.
-- playbook syntax - Using ``key=value`` args and the task ``args`` keyword on the same task is deprecated.
-- playbook syntax - Using a mapping with the ``action`` keyword is deprecated. (https://github.com/ansible/ansible/issues/84101)
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- MH module utils - attribute ``debug`` definition in subclasses of MH is now deprecated, as that name will become a delegation to ``AnsibleModule`` in community.general 12.0.0, and any such attribute will be overridden by that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577).
-- atomic_container - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- atomic_host - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- atomic_image - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
-- facter - module is deprecated and will be removed in community.general 12.0.0, use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451).
-- locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238).
-- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
-- opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172).
-- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
-- profitbricks - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_datacenter - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_nic - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_volume - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- profitbricks_volume_attachments - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
-- pure module utils - the module utils is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
-- purestorage doc fragments - the doc fragment is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
-- redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` (https://github.com/ansible-collections/community.general/pull/9190).
-- sensu_check - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_client - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_handler - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_silence - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- sensu_subscription - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
-- slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443).
-- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
-- yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456).
-- yaml callback plugin - the YAML callback plugin was deprecated for removal in community.general 13.0.0. Since it needs to use ansible-core internals since ansible-core 2.19 that are changing a lot, we will remove this plugin already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213).
-
-vyos.vyos
-^^^^^^^^^
-
-- vyos_bgp_global - no_ipv4_unicast - deprecated for use with VyOS 1.4+, use `ipv4_unicast` instead
-- vyos_firewall_interfaces - deprecated for use with VyOS 1.4+, firewalls are no longer connected directly to interfaces. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow, interface, or zone.
-- vyos_lldp_global - `address` is deprecated, use `addresses` instead. To be removed in 7.0.0.
-- vyos_logging_global - `protocol` is deprecated for 1.4 and later, use `facility` instead. To be removed in next major version where supprot for 1.3 is removed
-
-Porting Guide for v12.0.0a6
-===========================
-
-Added Collections
------------------
-
-- community.proxmox (version 1.0.1)
-
-Breaking Changes
-----------------
-
-community.zabbix
-^^^^^^^^^^^^^^^^
-
-- All Roles - Remove support for Ubuntu 20.04
-- zabbix 6.4 in roles is no longer supported
-
-Deprecated Features
--------------------
-
-community.vmware
-^^^^^^^^^^^^^^^^
-
-- module_utils.vmware - Deprecate ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
-- vmware_guest_powerstate - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2398).
-
-Porting Guide for v12.0.0a5
-===========================
-
-Known Issues
-------------
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
-- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-Breaking Changes
-----------------
+- Support for the ``toml`` library has been removed from TOML inventory parsing and dumping. Use ``tomli`` for parsing on Python 3.10. Python 3.11 and later have built-in support for parsing. Use ``tomli-w`` to support outputting inventory in TOML format.
+- assert - The ``quiet`` argument must be a commonly-accepted boolean value. Previously, unrecognized values were silently treated as False.
+- conditionals - Conditional expressions that result in non-boolean values are now an error by default. Such results often indicate unintentional use of templates where they are not supported, resulting in a conditional that is always true. When this option is enabled, conditional expressions which are a literal ``None`` or empty string will evaluate as true, for backwards compatibility. The error can be temporarily changed to a deprecation warning by enabling the ``ALLOW_BROKEN_CONDITIONALS`` config option.
+- first_found lookup - When specifying ``files`` or ``paths`` as a templated list containing undefined values, the undefined list elements will be discarded with a warning. Previously, the entire list would be discarded without any warning.
+- internals - The ``AnsibleLoader`` and ``AnsibleDumper`` classes for working with YAML are now factory functions and cannot be extended.
+- internals - The ``ansible.utils.native_jinja`` Python module has been removed.
+- lookup plugins - Lookup plugins called as `with_(lookup)` will no longer have the `_subdir` attribute set.
+- lookup plugins - ``terms`` will always be passed to ``run`` as the first positional arg, where previously it was sometimes passed as a keyword arg when using ``with_`` syntax.
+- loops - Omit placeholders no longer leak between loop item templating and task templating. Previously, ``omit`` placeholders could remain embedded in loop items after templating and be used as an ``omit`` for task templating. Now, values resolving to ``omit`` are dropped immediately when loop items are templated. To turn missing values into an ``omit`` for task templating, use ``| default(omit)``. This solution is backward-compatible with previous versions of ansible-core.
+- modules - Ansible modules using ``sys.excepthook`` must use a standard ``try/except`` instead.
+- plugins - Any plugin that sources or creates templates must properly tag them as trusted.
+- plugins - Custom Jinja plugins that accept undefined top-level arguments must opt in to receiving them.
+- plugins - Custom Jinja plugins that use ``environment.getitem`` to retrieve undefined values will now trigger a ``MarkerError`` exception. This exception must be handled to allow the plugin to return a ``Marker``, or the plugin must opt-in to accepting ``Marker`` values.
+- public API - The ``ansible.vars.fact_cache.FactCache`` wrapper has been removed.
+- serialization of ``omit`` sentinel - Serialization of variables containing ``omit`` sentinels (e.g., by the ``to_json`` and ``to_yaml`` filters or ``ansible-inventory``) will fail if the variable has not completed templating. Previously, serialization succeeded with placeholder strings emitted in the serialized output.
+- set_fact - The string values "yes", "no", "true" and "false" were previously converted (ignoring case) to boolean values when not using Jinja2 native mode. Since Jinja2 native mode is always used, this conversion no longer occurs. When boolean values are required, native boolean syntax should be used where variables are defined, such as in YAML. When native boolean syntax is not an option, the ``bool`` filter can be used to parse string values into booleans.
+- template lookup - The ``convert_data`` option is deprecated and no longer has any effect. Use the ``from_json`` filter on the lookup result instead.
+- templating - Access to ``_`` prefixed attributes and methods, and methods with known side effects, is no longer permitted. In cases where a matching mapping key is present, the associated value will be returned instead of an error. This increases template environment isolation and ensures more consistent behavior between the ``.`` and ``[]`` operators.
+- templating - Conditionals and lookups which use embedded inline templates in Jinja string constants now display a warning. These templates should be converted to their expression equivalent.
+- templating - Many Jinja plugins (filters, lookups, tests) and methods previously silently ignored undefined inputs, which often masked subtle errors. Passing an undefined argument to a Jinja plugin or method that does not declare undefined support now results in an undefined value.
+- templating - Templates are always rendered in Jinja2 native mode. As a result, non-string values are no longer automatically converted to strings.
+- templating - Templates resulting in ``None`` are no longer automatically converted to an empty string.
+- templating - Templates with embedded inline templates that were not contained within a Jinja string constant now result in an error, as support for multi-pass templating was removed for security reasons. In most cases, such templates can be easily rewritten to avoid the use of embedded inline templates.
+- templating - The ``allow_unsafe_lookups`` option no longer has any effect. Lookup plugins are responsible for tagging strings containing templates to allow evaluation as a template.
+- templating - The result of the ``range()`` global function cannot be returned from a template- it should always be passed to a filter (e.g., ``random``). Previously, range objects returned from an intermediate template were always converted to a list, which is inconsistent with inline consumption of range objects.
+- templating - ``#jinja2:`` overrides in templates with invalid override names or types are now templating errors.
amazon.aws
^^^^^^^^^^
@@ -1350,6 +987,12 @@
- module_utils.ec2 - drop deprecated ``boto3`` parameter for ``get_ec2_security_group_ids_from_names()`` and ``get_aws_connection_info()``, this parameter has had no effect since release 4.0.0 (https://github.com/ansible-collections/amazon.aws/pull/2603).
- rds_param_group - the redirect has been removed and playbooks should be updated to use rds_instance_param_group (https://github.com/ansible-collections/amazon.aws/pull/2618).
+ansible.posix
+^^^^^^^^^^^^^
+
+- firewalld - Changed the type of forward and masquerade options from str to bool (https://github.com/ansible-collections/ansible.posix/issues/582).
+- firewalld - Changed the type of icmp_block_inversion option from str to bool (https://github.com/ansible-collections/ansible.posix/issues/586).
+
community.aws
^^^^^^^^^^^^^
@@ -1368,140 +1011,59 @@
- get_certificate - the default for ``asn1_base64`` changed from ``false`` to ``true`` (https://github.com/ansible-collections/community.crypto/pull/873).
- x509_crl - the ``mode`` parameter no longer denotes the update mode, but the CRL file mode. Use ``crl_mode`` instead for the update mode (https://github.com/ansible-collections/community.crypto/pull/873).
-hetzner.hcloud
-^^^^^^^^^^^^^^
-
-- Drop support for ansible-core 2.15.
-- Drop support for ansible-core 2.16.
-- Drop support for python 3.8.
-- inventory - The default value for the `hostvars_prefix` option is now set to `hcloud_`. Make sure to update all references to host variables provided by the inventory. You may revert this change by setting the `hostvars_prefix` option to `""`.
-- server - The deprecated ``force_upgrade`` argument is removed from the server module. Please use the ``force`` argument instead.
-- volume - Volumes are no longer detached when the server argument is not provided. Please use the ``volume_attachment`` module to manage volume attachments.
-
-Major Changes
--------------
-
-amazon.aws
-^^^^^^^^^^
+community.hashi_vault
+^^^^^^^^^^^^^^^^^^^^^
-- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
-- amazon.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/), support for Python less than 3.8 by this collection was deprecated in release 6.0.0 and removed in release 10.0.0. (https://github.com/ansible-collections/amazon.aws/pull/2426).
-- connection/aws_ssm - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.aws_ssm``.
+- ansible-core - support for all end-of-life versions of ``ansible-core`` has been dropped. The collection is tested with ``ansible-core>=2.17`` (https://github.com/ansible-collections/community.hashi_vault/issues/470).
+- python - support for older versions of Python has been dropped. The collection is tested with all supported controller-side versions and a few lower target-side versions depending on the tests (https://github.com/ansible-collections/community.hashi_vault/issues/470).
-community.aws
+community.okd
^^^^^^^^^^^^^
-- community.aws collection - The community.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_attributes - This module is enhanced to support iDRAC10.
-- idrac_attributes - This role is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_jobs - This module is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_status_info - This module is enhanced to support iDRAC10.
-- idrac_syslog - This module is deprecated.
-- idrac_user_info - This module is enhanced to support iDRAC10.
-- idrac_virtual_media - This module is enhanced to support iDRAC10.
-
-Removed Features
-----------------
-
-community.crypto
-^^^^^^^^^^^^^^^^
-
-- All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust's Public Certificates Business to Sectigo; see `the announcement with key dates `__ and `the migration brief for customers `__ for details. Since this process will be completed in 2025, we decided to remove all Entrust content from community.general 3.0.0 (https://github.com/ansible-collections/community.crypto/issues/895, https://github.com/ansible-collections/community.crypto/pull/901).
-- The collection no longer supports cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878, https://github.com/ansible-collections/community.crypto/pull/882).
-- acme.acme module utils - the ``get_default_argspec()`` function has been removed. Use ``create_default_argspec()`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme.backends module utils - the methods ``get_ordered_csr_identifiers()`` and ``get_cert_information()`` of ``CryptoBackend`` now must be implemented (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme.documentation docs fragment - the ``documentation`` docs fragment has been removed. Use both the ``basic`` and ``account`` docs fragments in ``acme`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- acme_* modules - support for ACME v1 has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
-- community.crypto no longer supports Ansible 2.9, ansible-base 2.10, and ansible-core versions 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16. While content from this collection might still work with some older versions of ansible-core, it will not work with any Python version before 3.7 (https://github.com/ansible-collections/community.crypto/pull/870).
-- crypto.basic module utils - remove ``CRYPTOGRAPHY_HAS_*`` flags. All tested features are supported since cryptography 3.0 (https://github.com/ansible-collections/community.crypto/pull/878).
-- crypto.cryptography_support module utils - remove ``cryptography_serial_number_of_cert()`` helper function (https://github.com/ansible-collections/community.crypto/pull/878).
-- crypto.module_backends.common module utils - this module utils has been removed. Use the ``argspec`` module utils instead (https://github.com/ansible-collections/community.crypto/pull/873).
-- crypto.support module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
-- ecs_certificate - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
-- ecs_domain - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
-- execution environment dependencies - remove PyOpenSSL dependency (https://github.com/ansible-collections/community.crypto/pull/874).
-- openssl_csr_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-- openssl_pkcs12 - support for the ``pyopenssl`` backend has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
-- openssl_privatekey_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-- time module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
-- x509_certificate - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
-- x509_certificate_pipe - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
-- x509_certificate_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
-
-Deprecated Features
--------------------
-
-Ansible-core
-^^^^^^^^^^^^
-
-- The ``ShellModule.checksum`` method is now deprecated and will be removed in ansible-core 2.23. Use ``ActionBase._execute_remote_stat()`` instead.
-- The ``ansible.module_utils.common.collections.count()`` function is deprecated and will be removed in ansible-core 2.23. Use ``collections.Counter()`` from the Python standard library instead.
-- ``ansible.compat.importlib_resources`` is deprecated and will be removed in ansible-core 2.23. Use ``importlib.resources`` from the Python standard library instead.
-
-cisco.nxos
-^^^^^^^^^^
-
-- nxos_hsrp - deprecate nxos.nxos.nxos_hsrp in favor of nxos.nxos.nxos_hsrp_interfaces.
-- nxos_vrf_interface - deprecate nxos.nxos.nxos_vrf_interface in favor of nxos.nxos.nxos_vrf_interfaces.
+- Remove openshift inventory plugin deprecated in 3.0.0 (https://github.com/openshift/community.okd/pull/252).
-community.aws
-^^^^^^^^^^^^^
+community.postgresql
+^^^^^^^^^^^^^^^^^^^^
-- community.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.8 by this collection has been deprecated and will removed in release 10.0.0 (https://github.com/ansible-collections/community.aws/pull/2195).
+- postgresql_info - the ``db`` alias is deprecated and will be removed in the next major release, use the ``login_db`` argument instead.
+- postgresql_pg_hba - regarding #776 'keep_comments_at_rules' has been deprecated and won't do anything, the default is to keep the comments at the rules they are specified with. keep_comments_at_rules will be removed in 5.0.0 (https://github.com/ansible-collections/community.postgresql/pull/778)
+- postgresql_user - the ``db`` alias is deprecated and will be removed in the next major release, use the ``login_db`` argument instead.
-community.crypto
+community.zabbix
^^^^^^^^^^^^^^^^
-- acme_certificate - deprecate the ``agreement`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
-- openssl_pkcs12 - deprecate the ``maciter_size`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- The proxmox content (modules and plugins) is being moved to the `new collection community.proxmox `__. In community.general 11.0.0, these modules and plugins will be replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10109).
-- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
-
-community.postgresql
-^^^^^^^^^^^^^^^^^^^^
-
-- postgresql modules - the ``port`` alias is deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_port`` argument instead.
+- All Roles - Remove support for Ubuntu 20.04
+- zabbix 6.4 in roles is no longer supported
-Porting Guide for v12.0.0a4
-===========================
+dellemc.enterprise_sonic
+^^^^^^^^^^^^^^^^^^^^^^^^
-Major Changes
--------------
+- sonic_aaa - Update AAA module to align with SONiC functionality (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/382).
+- sonic_bgp_communities - Change 'aann' option as a suboption of 'members' and update its type from string to list of strings (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/440).
+- sonic_route_maps - Change the 'set ip_next_hop' option from a single-line option to a dictionary (https://github.com/ansible-collection/dellemc.enterprise_sonic/pull/421).
+- sonic_vlan_mapping - New vlan_mapping resource module. The users of the vlan_mapping resource module with playbooks written for the SONiC 4.1 will need to revise their playbooks based on the new argspec to use those playbooks for SONiC 4.2 and later versions. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/296).
-netapp.ontap
-^^^^^^^^^^^^
+hetzner.hcloud
+^^^^^^^^^^^^^^
-- library `netapp-lib` is now an optional requirement.
-- na_ontap_lun - added compatibility for ASA r2 systems.
-- na_ontap_lun_copy - added check to prevent use on unsupported ASA r2 systems.
-- na_ontap_lun_map - added compatibility for ASA r2 systems.
-- na_ontap_lun_map_reporting_nodes - added compatibility for ASA r2 systems.
-- na_ontap_nvme_namespace - added compatibility for ASA r2 systems.
-- na_ontap_nvme_subsystem - added compatibility for ASA r2 systems.
+- Drop support for ansible-core 2.15.
+- Drop support for ansible-core 2.16.
+- Drop support for python 3.8.
+- inventory - The default value for the `hostvars_prefix` option is now set to `hcloud_`. Make sure to update all references to host variables provided by the inventory. You may revert this change by setting the `hostvars_prefix` option to `""`.
+- server - The deprecated ``force_upgrade`` argument is removed from the server module. Please use the ``force`` argument instead.
+- volume - Volumes are no longer detached when the server argument is not provided. Please use the ``volume_attachment`` module to manage volume attachments.
-Porting Guide for v12.0.0a3
-===========================
+kubernetes.core
+^^^^^^^^^^^^^^^
-Known Issues
-------------
+- Remove deprecated ``k8s`` invetory plugin (https://github.com/ansible-collections/kubernetes.core/pull/867).
+- Remove support for ``ansible-core<2.16`` (https://github.com/ansible-collections/kubernetes.core/pull/867).
-dellemc.openmanage
+theforeman.foreman
^^^^^^^^^^^^^^^^^^
-- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
-- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-Breaking Changes
-----------------
+- Drop support for Ansible 2.9.
+- Drop support for Python 2.7 and 3.5.
vmware.vmware
^^^^^^^^^^^^^
@@ -1509,242 +1071,22 @@
- drop support for ansible 2.15 since it is EOL https://github.com/ansible-collections/vmware.vmware/issues/103
- updated minimum pyVmomi version to 8.0.3.0.1 https://github.com/ansible-collections/vmware.vmware/issues/56
-Major Changes
--------------
-
-community.postgresql
-^^^^^^^^^^^^^^^^^^^^
-
-- the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4.0.0 (https://github.com/ansible-collections/community.postgresql/issues/829).
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_gather_facts - This role is enhanced to support iDRAC10.
-- idrac_lifecycle_controller_job_status_info - This module is enhanced to support iDRAC10.
-- idrac_system_info - This module is enhanced to support iDRAC10.
-
-vmware.vmware
-^^^^^^^^^^^^^
-
-- cluster modules - Add identifying information about the cluster managed to the output of cluster modules
-- folder_paths - Throw an error when a relative folder path is provided and the datacenter name is not provided
-- module_utils/argument_spec - make argument specs public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
-- module_utils/clients - make client utils public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
-- update query file to include cluster module queries
-
-Removed Features
-----------------
-
-ansible.windows
-^^^^^^^^^^^^^^^
-
-- win_domain - Removed deprecated module, use ``microsoft.ad.domain`` instead
-- win_domain_controller - Removed deprecated module, use ``microsoft.ad.domain_controller`` instead
-- win_domain_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
-- win_feature - Removed deprecated return value ``restart_needed`` in ``feature_result``, use ``reboot_required`` instead
-- win_updates - Removed deprecated return value ``filtered_reason``, use ``filtered_reasons`` instead
-
-community.postgresql
-^^^^^^^^^^^^^^^^^^^^
-
-- postgresql_info - the db alias has been removed in ``community.postgresql 4.0.0``. Please use the ``login_db`` option instead (https://github.com/ansible-collections/community.postgresql/issues/801).
-- postgresql_lang - the module has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_ext`` module instead (https://github.com/ansible-collections/community.postgresql/issues/561).
-- postgresql_privs - the ``password`` argument has been removed in ``community.postgresql 4.0.0``. Use the ``login_password`` argument instead (https://github.com/ansible-collections/community.postgresql/issues/408).
-- postgresql_user - the ``priv`` argument has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/493).
-
-community.windows
-^^^^^^^^^^^^^^^^^
-
-- win_domain_computer - Removed deprecated module, use ``microsoft.ad.computer`` instead
-- win_domain_group - Removed deprecated module, use ``microsoft.ad.group`` instead
-- win_domain_group_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
-- win_domain_object_info - Removed deprecated module, use ``microsoft.ad.object_info`` instead
-- win_domain_ou - Removed deprecated module, use ``microsoft.ad.ou`` instead
-- win_domain_user - Removed deprecated module, use ``microsoft.ad.user`` instead
-- win_lineinfile - Removed deprecated return value ``backup``, use ``backup_file`` instead
-- win_xml - Removed deprecated, and undocumented, return value ``backup``, use ``backup_file`` instead
-
-vmware.vmware
-^^^^^^^^^^^^^
-
-- vm_list_group_by_clusters - Tombstone module in favor of vmware.vmware.vm_list_group_by_clusters_info
-
-Deprecated Features
--------------------
-
-Ansible-core
-^^^^^^^^^^^^
-
-- Passing a ``warnings` or ``deprecations`` key to ``exit_json`` or ``fail_json`` is deprecated. Use ``AnsibleModule.warn`` or ``AnsibleModule.deprecate`` instead.
-- plugins - Accessing plugins with ``_``-prefixed filenames without the ``_`` prefix is deprecated.
-
-community.postgresql
-^^^^^^^^^^^^^^^^^^^^
-
-- postgresql modules = the ``login``, ``unix_socket`` and ``host`` aliases are deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_user``, ``login_unix_socket`` and ``login_host`` arguments instead.
-- postgresql_set - the module has been deprecated and will be removed in ``community.postgresql 5.0.0``. Please use the ``community.postgresql.postgresql_alter_system`` module instead (https://github.com/ansible-collections/community.postgresql/issues/823).
-
-community.windows
-^^^^^^^^^^^^^^^^^
-
-- win_audit_policy_system - Deprecated module and will be redirected to ``ansible.windows.win_audit_policy_system``. Use ``ansible.windows.win_audit_policy_system`` instead as the redirection will be removed in 4.0.0
-- win_audit_rule - Deprecated module and will be redirected to ``ansible.windows.win_audit_rule``. Use ``ansible.windows.win_audit_rule`` instead as the redirection will be removed in 4.0.0
-- win_auto_logon - Deprecated module and will be redirected to ``ansible.windows.win_auto_logon``. Use ``ansible.windows.win_auto_logon`` instead as the redirection will be removed in 4.0.0
-- win_certificate_info - Deprecated module and will be redirected to ``ansible.windows.win_certificate_info``. Use ``ansible.windows.win_certificate_info`` instead as the redirection will be removed in 4.0.0
-- win_computer_description - Deprecated module and will be redirected to ``ansible.windows.win_computer_description``. Use ``ansible.windows.win_computer_description`` instead as the redirection will be removed in 4.0.0
-- win_credential - Deprecated module and will be redirected to ``ansible.windows.win_credential``. Use ``ansible.windows.win_credential`` instead as the redirection will be removed in 4.0.0
-- win_dhcp_lease - Deprecated module and will be redirected to ``ansible.windows.win_dhcp_lease``. Use ``ansible.windows.win_dhcp_lease`` instead as the redirection will be removed in 4.0.0
-- win_dns_record - Deprecated module and will be redirected to ``ansible.windows.win_dns_record``. Use ``ansible.windows.win_dns_record`` instead as the redirection will be removed in 4.0.0
-- win_dns_zone - Deprecated module and will be redirected to ``ansible.windows.win_dns_zone``. Use ``ansible.windows.win_dns_zone`` instead as the redirection will be removed in 4.0.0
-- win_eventlog - Deprecated module and will be redirected to ``ansible.windows.win_eventlog``. Use ``ansible.windows.win_eventlog`` instead as the redirection will be removed in 4.0.0
-- win_feature_info - Deprecated module and will be redirected to ``ansible.windows.win_feature_info``. Use ``ansible.windows.win_feature_info`` instead as the redirection will be removed in 4.0.0
-- win_file_compression - Deprecated module and will be redirected to ``ansible.windows.win_file_compression``. Use ``ansible.windows.win_file_compression`` instead as the redirection will be removed in 4.0.0
-- win_firewall - Deprecated module and will be redirected to ``ansible.windows.win_firewall``. Use ``ansible.windows.win_firewall`` instead as the redirection will be removed in 4.0.0
-- win_hosts - Deprecated module and will be redirected to ``ansible.windows.win_hosts``. Use ``ansible.windows.win_hosts`` instead as the redirection will be removed in 4.0.0
-- win_hotfix - Deprecated module and will be redirected to ``ansible.windows.win_hotfix``. Use ``ansible.windows.win_hotfix`` instead as the redirection will be removed in 4.0.0
-- win_http_proxy - Deprecated module and will be redirected to ``ansible.windows.win_http_proxy``. Use ``ansible.windows.win_http_proxy`` instead as the redirection will be removed in 4.0.0
-- win_iis_virtualdirectory - Deprecated module, use ``microsoft.iis.virtual_directory`` instead as the module will be removed in 4.0.0
-- win_iis_webapplication - Deprecated module, use ``microsoft.iis.web_application`` instead instead as the module will be removed in 4.0.0
-- win_iis_webapppool - Deprecated module, use ``microsoft.iis.web_app_pool`` instead instead as the module will be removed in 4.0.0
-- win_iis_webbinding - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
-- win_iis_website - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
-- win_inet_proxy - Deprecated module and will be redirected to ``ansible.windows.win_inet_proxy``. Use ``ansible.windows.win_inet_proxy`` instead as the redirection will be removed in 4.0.0
-- win_listen_ports_facts - Deprecated module and will be redirected to ``ansible.windows.win_listen_ports_facts``. Use ``ansible.windows.win_listen_ports_facts`` instead as the redirection will be removed in 4.0.0
-- win_mapped_drive - Deprecated module and will be redirected to ``ansible.windows.win_mapped_drive``. Use ``ansible.windows.win_mapped_drive`` instead as the redirection will be removed in 4.0.0
-- win_product_facts - Deprecated module and will be redirected to ``ansible.windows.win_product_facts``. Use ``ansible.windows.win_product_facts`` instead as the redirection will be removed in 4.0.0
-- win_region - Deprecated module and will be redirected to ``ansible.windows.win_region``. Use ``ansible.windows.win_region`` instead as the redirection will be removed in 4.0.0
-- win_route - Deprecated module and will be redirected to ``ansible.windows.win_route``. Use ``ansible.windows.win_route`` instead as the redirection will be removed in 4.0.0
-- win_timezone - Deprecated module and will be redirected to ``ansible.windows.win_timezone``. Use ``ansible.windows.win_timezone`` instead as the redirection will be removed in 4.0.0
-- win_user_profile - Deprecated module and will be redirected to ``ansible.windows.win_user_profile``. Use ``ansible.windows.win_user_profile`` instead as the redirection will be removed in 4.0.0
-
-Porting Guide for v12.0.0a2
-===========================
-
-Known Issues
-------------
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833).
-
-Major Changes
--------------
-
-grafana.grafana
-^^^^^^^^^^^^^^^
-
-- Add tempo role by @CSTDev in https://github.com/grafana/grafana-ansible-collection/pull/323
-- Do not log grafana.ini contents when setting facts by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/325
-- Fix loki_operational_config section not getting rendered in config.yml by @olegkaspersky in https://github.com/grafana/grafana-ansible-collection/pull/330
-- Fix sectionless items edge case by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/303
-- Fix tags Inherit default vars by @MJurayev in https://github.com/grafana/grafana-ansible-collection/pull/341
-- Fix the markdown code fences for install command by @benmatselby in https://github.com/grafana/grafana-ansible-collection/pull/306
-- Grafana fix facts in main.yml by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/315
-- Make dashboard imports more flexible by @torfbolt in https://github.com/grafana/grafana-ansible-collection/pull/308
-- force temporary directory even in check mode for dashboards.yml by @cmehat in https://github.com/grafana/grafana-ansible-collection/pull/339
-- integrate sles legacy init-script support by @floerica in https://github.com/grafana/grafana-ansible-collection/pull/184
-- management of the config.river with the conversion of the config.yaml by @lbrule in https://github.com/grafana/grafana-ansible-collection/pull/149
-
-Deprecated Features
--------------------
-
-community.general
-^^^^^^^^^^^^^^^^^
-
-- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
-- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
-
-community.vmware
-^^^^^^^^^^^^^^^^
-
-- vmware_dvs_portgroup - ``mac_learning`` is deprecated in favour of ``network_policy.mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
-
-Porting Guide for v12.0.0a1
-===========================
-
-Added Collections
------------------
-
-- hitachivantara.vspone_block (version 3.3.0)
-- microsoft.iis (version 1.0.2)
-
-Known Issues
-------------
-
-dellemc.openmanage
-^^^^^^^^^^^^^^^^^^
-
-- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
-- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
-- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
-
-purestorage.flasharray
-^^^^^^^^^^^^^^^^^^^^^^
-
-- All Fusion fleet members will be assumed to be at the same Purity//FA version level as the array connected to by Ansible.
-- FlashArray//CBS is not currently supported as a member of a Fusion fleet
-
-Breaking Changes
-----------------
-
-Ansible-core
-^^^^^^^^^^^^
-
-- Support for the ``toml`` library has been removed from TOML inventory parsing and dumping. Use ``tomli`` for parsing on Python 3.10. Python 3.11 and later have built-in support for parsing. Use ``tomli-w`` to support outputting inventory in TOML format.
-- assert - The ``quiet`` argument must be a commonly-accepted boolean value. Previously, unrecognized values were silently treated as False.
-- conditionals - Conditional expressions that result in non-boolean values are now an error by default. Such results often indicate unintentional use of templates where they are not supported, resulting in a conditional that is always true. When this option is enabled, conditional expressions which are a literal ``None`` or empty string will evaluate as true, for backwards compatibility. The error can be temporarily changed to a deprecation warning by enabling the ``ALLOW_BROKEN_CONDITIONALS`` config option.
-- first_found lookup - When specifying ``files`` or ``paths`` as a templated list containing undefined values, the undefined list elements will be discarded with a warning. Previously, the entire list would be discarded without any warning.
-- internals - The ``AnsibleLoader`` and ``AnsibleDumper`` classes for working with YAML are now factory functions and cannot be extended.
-- internals - The ``ansible.utils.native_jinja`` Python module has been removed.
-- lookup plugins - Lookup plugins called as `with_(lookup)` will no longer have the `_subdir` attribute set.
-- lookup plugins - ``terms`` will always be passed to ``run`` as the first positional arg, where previously it was sometimes passed as a keyword arg when using ``with_`` syntax.
-- loops - Omit placeholders no longer leak between loop item templating and task templating. Previously, ``omit`` placeholders could remain embedded in loop items after templating and be used as an ``omit`` for task templating. Now, values resolving to ``omit`` are dropped immediately when loop items are templated. To turn missing values into an ``omit`` for task templating, use ``| default(omit)``. This solution is backward-compatible with previous versions of ansible-core.
-- modules - Ansible modules using ``sys.excepthook`` must use a standard ``try/except`` instead.
-- plugins - Any plugin that sources or creates templates must properly tag them as trusted.
-- plugins - Custom Jinja plugins that accept undefined top-level arguments must opt in to receiving them.
-- plugins - Custom Jinja plugins that use ``environment.getitem`` to retrieve undefined values will now trigger a ``MarkerError`` exception. This exception must be handled to allow the plugin to return a ``Marker``, or the plugin must opt-in to accepting ``Marker`` values.
-- public API - The ``ansible.vars.fact_cache.FactCache`` wrapper has been removed.
-- serialization of ``omit`` sentinel - Serialization of variables containing ``omit`` sentinels (e.g., by the ``to_json`` and ``to_yaml`` filters or ``ansible-inventory``) will fail if the variable has not completed templating. Previously, serialization succeeded with placeholder strings emitted in the serialized output.
-- set_fact - The string values "yes", "no", "true" and "false" were previously converted (ignoring case) to boolean values when not using Jinja2 native mode. Since Jinja2 native mode is always used, this conversion no longer occurs. When boolean values are required, native boolean syntax should be used where variables are defined, such as in YAML. When native boolean syntax is not an option, the ``bool`` filter can be used to parse string values into booleans.
-- template lookup - The ``convert_data`` option is deprecated and no longer has any effect. Use the ``from_json`` filter on the lookup result instead.
-- templating - Access to ``_`` prefixed attributes and methods, and methods with known side effects, is no longer permitted. In cases where a matching mapping key is present, the associated value will be returned instead of an error. This increases template environment isolation and ensures more consistent behavior between the ``.`` and ``[]`` operators.
-- templating - Conditionals and lookups which use embedded inline templates in Jinja string constants now display a warning. These templates should be converted to their expression equivalent.
-- templating - Many Jinja plugins (filters, lookups, tests) and methods previously silently ignored undefined inputs, which often masked subtle errors. Passing an undefined argument to a Jinja plugin or method that does not declare undefined support now results in an undefined value.
-- templating - Templates are always rendered in Jinja2 native mode. As a result, non-string values are no longer automatically converted to strings.
-- templating - Templates resulting in ``None`` are no longer automatically converted to an empty string.
-- templating - Templates with embedded inline templates that were not contained within a Jinja string constant now result in an error, as support for multi-pass templating was removed for security reasons. In most cases, such templates can be easily rewritten to avoid the use of embedded inline templates.
-- templating - The ``allow_unsafe_lookups`` option no longer has any effect. Lookup plugins are responsible for tagging strings containing templates to allow evaluation as a template.
-- templating - The result of the ``range()`` global function cannot be returned from a template- it should always be passed to a filter (e.g., ``random``). Previously, range objects returned from an intermediate template were always converted to a list, which is inconsistent with inline consumption of range objects.
-- templating - ``#jinja2:`` overrides in templates with invalid override names or types are now templating errors.
-
-ansible.posix
-^^^^^^^^^^^^^
-
-- firewalld - Changed the type of forward and masquerade options from str to bool (https://github.com/ansible-collections/ansible.posix/issues/582).
-- firewalld - Changed the type of icmp_block_inversion option from str to bool (https://github.com/ansible-collections/ansible.posix/issues/586).
-
-community.postgresql
-^^^^^^^^^^^^^^^^^^^^
-
-- postgresql_info - the ``db`` alias is deprecated and will be removed in the next major release, use the ``login_db`` argument instead.
-- postgresql_pg_hba - regarding #776 'keep_comments_at_rules' has been deprecated and won't do anything, the default is to keep the comments at the rules they are specified with. keep_comments_at_rules will be removed in 5.0.0 (https://github.com/ansible-collections/community.postgresql/pull/778)
-- postgresql_user - the ``db`` alias is deprecated and will be removed in the next major release, use the ``login_db`` argument instead.
-
-dellemc.enterprise_sonic
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-- sonic_aaa - Update AAA module to align with SONiC functionality (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/382).
-- sonic_bgp_communities - Change 'aann' option as a suboption of 'members' and update its type from string to list of strings (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/440).
-- sonic_route_maps - Change the 'set ip_next_hop' option from a single-line option to a dictionary (https://github.com/ansible-collection/dellemc.enterprise_sonic/pull/421).
-- sonic_vlan_mapping - New vlan_mapping resource module. The users of the vlan_mapping resource module with playbooks written for the SONiC 4.1 will need to revise their playbooks based on the new argspec to use those playbooks for SONiC 4.2 and later versions. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/296).
-
-theforeman.foreman
-^^^^^^^^^^^^^^^^^^
+vyos.vyos
+^^^^^^^^^
-- Drop support for Ansible 2.9.
-- Drop support for Python 2.7 and 3.5.
+- Removed `vyos_logging`. Use `vyos_logging_global` instead.
+- lldp_global - if "address" is available, merge will cause it to be added, in contrast to the previous behavior where it was replaced. When used in replace mode, it will remove any existing addresses and replace them with the new one.
+- vyos_bgp_address_family - Support for 1.3+ VyOS only
+- vyos_bgp_global - Support for 1.3+ VyOS only
+- vyos_firewall_rules - removed p2p options as they have been removed prior to 1.3 of VyOS
+- vyos_firewall_rules - tcp.flags is now a list with an inversion flag to support 1.4+ firewall rules, but still supports 1.3-
+- vyos_lldp_global - civic_address is no longer a valid key (removed prior to 1.3)
+- vyos_logging_global - For 1.4, `protocol` is an attribute of the syslog host, not the facility
+- vyos_snmp_server - no longer works with versions prior to 1.3
+- vyos_snmp_server - parameter `engine_id` is no longer a `user` or `trap_target` parameter and is now a `snmp_v3` parameter
+- vyos_snmp_server - parameters `encrypted-key` and `plaintext-key` are now `encrypted-password` and `plaintext-password`
+- vyos_user - explicit support for version 1.3+ only
+- vyos_user - removed level (and its alias, role) they were removed in 1.3
Major Changes
-------------
@@ -1758,11 +1100,23 @@
- variables - The type system underlying Ansible's variable storage has been significantly overhauled and formalized. Attempts to store unsupported Python object types in variables now more consistently yields early warnings or errors.
- variables - To support new Ansible features, many variable objects are now represented by subclasses of their respective native Python types. In most cases, they behave indistinguishably from their original types, but some Python libraries do not handle builtin object subclasses properly. Custom plugins that interact with such libraries may require changes to convert and pass the native types.
+amazon.aws
+^^^^^^^^^^
+
+- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
+- amazon.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/), support for Python less than 3.8 by this collection was deprecated in release 6.0.0 and removed in release 10.0.0. (https://github.com/ansible-collections/amazon.aws/pull/2426).
+- connection/aws_ssm - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.aws_ssm``.
+
ansible.netcommon
^^^^^^^^^^^^^^^^^
- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+ansible.utils
+^^^^^^^^^^^^^
+
+- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+
arista.eos
^^^^^^^^^^
@@ -1771,18 +1125,39 @@
cisco.ios
^^^^^^^^^
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
cisco.iosxr
^^^^^^^^^^^
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
cisco.nxos
^^^^^^^^^^
+- Bumping `dependencies` of ansible.netcommon to `>=8.1.0`, since previous versions of the dependency had compatibility issues with `ansible-core>=2.19`.
- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+community.aws
+^^^^^^^^^^^^^
+
+- community.aws collection - The community.aws collection has dropped support for ``botocore<1.34.0`` and ``boto3<1.34.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/2426).
+
+community.libvirt
+^^^^^^^^^^^^^^^^^
+
+- virt_volume - a new command 'create_cidata_cdrom' enables the creation of a cloud-init CDROM, which can be attached to a cloud-init enabled base image, for bootstrapping networking, users etc.
+- virt_volume - the commands create_from, delete, download, info, resize, upload, wipe, facts did not work and were not tested. They have either been refactored to work, and tested, or removed.
+- virt_volume - the mechanism of passing variables to the member functions was not flexible enough to cope with differing parameter requirements. All parameters are now passed as kwargs, which allows the member functions to select the parameters they need.
+- virt_volume - the module appears to have been derived from virt_pool, but not cleaned up to remove much non-functional code. It has been refactored to remove the pool-specific code, and to make it more flexible.
+
+community.postgresql
+^^^^^^^^^^^^^^^^^^^^
+
+- the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4.0.0 (https://github.com/ansible-collections/community.postgresql/issues/829).
+
community.vmware
^^^^^^^^^^^^^^^^
@@ -1791,15 +1166,59 @@
community.zabbix
^^^^^^^^^^^^^^^^
+- All Roles - Updated to support Zabbix 7.4
- All Roles - Updated to support version 7.2
dellemc.openmanage
^^^^^^^^^^^^^^^^^^
+- OpenManage iDRAC Ansible modules are now compatible with Ansible Core version 2.19.
+- idrac_attributes - This module is enhanced to support iDRAC10.
+- idrac_attributes - This role is enhanced to support iDRAC10.
+- idrac_bios - This module is enhanced to support iDRAC10.
+- idrac_bios - This role is enhanced to support iDRAC10.
+- idrac_boot - This module is enhanced to support iDRAC10.
+- idrac_boot - This role is enhanced to support iDRAC10.
+- idrac_certificates - This module is enhanced to support iDRAC10.
+- idrac_diagnostics - This module is enhanced to support iDRAC10.
+- idrac_firmware - This module is enhanced to support iDRAC10.
+- idrac_gather_facts - This role is enhanced to support iDRAC10.
+- idrac_job_queue - This role is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_job_status_info - This module is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_jobs - This module is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_logs - This module is enhanced to support iDRAC10.
+- idrac_lifecycle_controller_status_info - This module is enhanced to support iDRAC10.
+- idrac_network_attributes - This module is enhanced to support iDRAC10.
+- idrac_reset - This module is enhanced to support iDRAC10.
+- idrac_reset - This role is enhanced to support iDRAC10.
+- idrac_secure_boot - This module is enhanced to support iDRAC10.
+- idrac_server_powerstate - This role is enhanced to support iDRAC10.
+- idrac_session - This module is enhanced to support iDRAC10.
+- idrac_support_assist - This module is enhanced to support iDRAC10.
+- idrac_syslog - This module is deprecated.
+- idrac_system_erase - This module is enhanced to support iDRAC10.
+- idrac_system_info - This module is enhanced to support iDRAC10.
+- idrac_user - This module is enhanced to support iDRAC10.
+- idrac_user - This role is enhanced to support iDRAC10.
+- idrac_user_info - This module is enhanced to support iDRAC10.
+- idrac_virtual_media - This module is enhanced to support iDRAC10.
+- ome_firmware - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline_compliance_info - This module is enhanced to support OME 4.5.
+- ome_firmware_baseline_info - This module is enhanced to support OME 4.5.
+- ome_firmware_catalog - This module is enhanced to support OME 4.5.
- omevv_baseline_profile - This module allows to manage baseline profile.
- omevv_baseline_profile_info - This module allows to retrieve baseline profile information.
- omevv_compliance_info - This module allows to retrieve firmware compliance reports.
- omevv_firmware - This module allows to update firmware of the single host and single cluster.
+- redfish_event_subscription - This module is enhanced to support iDRAC10.
+- redfish_firmware - This module is enhanced to support iDRAC10.
+- redfish_power_state - This module is enhanced to support iDRAC10.
+
+dellemc.unity
+^^^^^^^^^^^^^
+
+- Adding support for Unity v5.5.
fortinet.fortios
^^^^^^^^^^^^^^^^
@@ -1808,26 +1227,87 @@
- Supported new versions 7.6.1 and 7.6.2.
- Updated the examples with correct values that have minimum or maximum values.
+google.cloud
+^^^^^^^^^^^^
+
+- google_cloud_ops_agents - role submodule removed because it prevents the collection from passing sanity and lint tests
+
grafana.grafana
^^^^^^^^^^^^^^^
- Ability to set custom directory path for *.alloy config files by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/294
+- Add delete protection by @KucicM in https://github.com/grafana/grafana-ansible-collection/pull/381
+- Add tempo role by @CSTDev in https://github.com/grafana/grafana-ansible-collection/pull/323
+- Do not log grafana.ini contents when setting facts by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/325
- Fix 'dict object' has no attribute 'path' when running with --check by @JMLX42 in https://github.com/grafana/grafana-ansible-collection/pull/283
+- Fix Mimir URL verify task by @parcimonic in https://github.com/grafana/grafana-ansible-collection/pull/358
+- Fix loki_operational_config section not getting rendered in config.yml by @olegkaspersky in https://github.com/grafana/grafana-ansible-collection/pull/330
+- Fix sectionless items edge case by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/303
+- Fix some regression introduced by v6 by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/376
+- Fix tags Inherit default vars by @MJurayev in https://github.com/grafana/grafana-ansible-collection/pull/341
+- Fix the markdown code fences for install command by @benmatselby in https://github.com/grafana/grafana-ansible-collection/pull/306
+- Grafana fix facts in main.yml by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/315
+- Make dashboard imports more flexible by @torfbolt in https://github.com/grafana/grafana-ansible-collection/pull/308
- Update grafana template by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/300
+- Update when statement to test for dashboard files found by @hal58th in https://github.com/grafana/grafana-ansible-collection/pull/363
+- Use become false in find task by @santilococo in https://github.com/grafana/grafana-ansible-collection/pull/368
- add loki bloom support by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/298
+- alloy_readiness_check_use_https by @piotr-g in https://github.com/grafana/grafana-ansible-collection/pull/359
+- force temporary directory even in check mode for dashboards.yml by @cmehat in https://github.com/grafana/grafana-ansible-collection/pull/339
- grafana.ini yaml syntax by @intermittentnrg in https://github.com/grafana/grafana-ansible-collection/pull/232
+- integrate sles legacy init-script support by @floerica in https://github.com/grafana/grafana-ansible-collection/pull/184
+- management of the config.river with the conversion of the config.yaml by @lbrule in https://github.com/grafana/grafana-ansible-collection/pull/149
junipernetworks.junos
^^^^^^^^^^^^^^^^^^^^^
- Bumping `requires_ansible` to `>=2.16.0`, since previous ansible-core versions are EoL now.
+netapp.ontap
+^^^^^^^^^^^^
+
+- library `netapp-lib` is now an optional requirement.
+- na_ontap_autoupdate_support - REST only support to enable automatic software update, requires ONTAP 9.10 or later.
+- na_ontap_lun - added compatibility for ASA r2 systems.
+- na_ontap_lun_copy - added check to prevent use on unsupported ASA r2 systems.
+- na_ontap_lun_map - added compatibility for ASA r2 systems.
+- na_ontap_lun_map_reporting_nodes - added compatibility for ASA r2 systems.
+- na_ontap_nvme_namespace - added compatibility for ASA r2 systems.
+- na_ontap_nvme_subsystem - added compatibility for ASA r2 systems.
+- na_ontap_s3_buckets - new option `snapshot_policy` added in REST, requires ONTAP 9.16.1 or later.
+
+vmware.vmware
+^^^^^^^^^^^^^
+
+- cluster modules - Add identifying information about the cluster managed to the output of cluster modules
+- folder_paths - Throw an error when a relative folder path is provided and the datacenter name is not provided
+- module_utils/argument_spec - make argument specs public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
+- module_utils/clients - make client utils public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
+- update query file to include cluster module queries
+
+vmware.vmware_rest
+^^^^^^^^^^^^^^^^^^
+
+- Remove ``cloud.common`` as a dependency, so it will not be installed automatically anymore (https://github.com/ansible-collections/vmware.vmware_rest/pull/621).
+- modules - disable turbo mode for module execution by default. Make it optional to enable it using an environment variable (https://github.com/ansible-collections/vmware.vmware_rest/issues/499)
+
+vyos.vyos
+^^^^^^^^^
+
+- bgp modules - Added support for 1.4+ "system-as". 1.3 embedded as_number is still supported
+- vyos bgp modules - Many configuration attributes moved from `bgp_global` to `bgp_address_family` module (see documentation).
+- vyos_bgp_address_family - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute moved from `bgp_global` module. These are now Address-family specific. Many neighbor attributes also moved from `vyos_bgp_global` to `vyos_bgp_address_family` module.
+- vyos_bgp_global - Aligned with version 1.3+ configuration - aggregate_address, maximum_paths, network, and redistribute Removed to `bgp_address_family` module.
+- vyos_user - add support for encrypted password specification
+- vyos_user - add support for public-key authentication
+
Removed Collections
-------------------
- cisco.asa (previously included version: 6.0.0)
+- cisco.ise (previously included version: 2.9.5)
+- cloud.common (previously included version: 4.0.0)
- community.network (previously included version: 5.1.0)
-- google.cloud (previously included version: 1.4.1)
- ibm.spectrum_virtualize (previously included version: 2.0.0)
- sensu.sensu_go (previously included version: 1.14.0)
@@ -1836,16 +1316,14 @@
Removed Features
----------------
+- The ``cisco.ise`` collection was considered unmaintained and has been removed from Ansible 12 (`https://forum.ansible.com/t/43367 `__).
+ Users can still install this collection with ``ansible-galaxy collection install cisco.ise``.
- The collection ``ibm.spectrum_virtualize`` has been completely removed from Ansible.
It has been renamed to ``ibm.storage_virtualize``.
The collection will be completely removed from Ansible eventually.
Please update your FQCNs from ``ibm.spectrum_virtualize`` to ``ibm.storage_virtualize``.
- The deprecated ``cisco.asa`` collection has been removed (`https://forum.ansible.com/t/38960 `__).
- The deprecated ``community.network`` collection has been removed (`https://forum.ansible.com/t/8030 `__).
-- The google.cloud collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements.
- The collection has \ `unresolved sanity test failures `__.
- See `Collections Removal Process for collections not satisfying the collection requirements `__ for more details (`https://forum.ansible.com/t/8609 `__).
- Users can still install this collection with ``ansible-galaxy collection install google.cloud``.
- The sensu.sensu_go collection has been removed from Ansible 12 due to violations of the Ansible inclusion requirements.
The collection has \ `unresolved sanity test failures `__.
See `Collections Removal Process for collections not satisfying the collection requirements `__ for more details (`https://forum.ansible.com/t/8380 `__).
@@ -1868,6 +1346,15 @@
- skippy - Remove skippy pluglin as it is no longer supported(https://github.com/ansible-collections/ansible.posix/issues/350).
+ansible.windows
+^^^^^^^^^^^^^^^
+
+- win_domain - Removed deprecated module, use ``microsoft.ad.domain`` instead
+- win_domain_controller - Removed deprecated module, use ``microsoft.ad.domain_controller`` instead
+- win_domain_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
+- win_feature - Removed deprecated return value ``restart_needed`` in ``feature_result``, use ``reboot_required`` instead
+- win_updates - Removed deprecated return value ``filtered_reason``, use ``filtered_reasons`` instead
+
cisco.nxos
^^^^^^^^^^
@@ -1878,6 +1365,83 @@
- nxos_snmp_location
- nxos_snmp_user
+community.crypto
+^^^^^^^^^^^^^^^^
+
+- All Entrust content is being removed since the Entrust service in currently being sunsetted after the sale of Entrust's Public Certificates Business to Sectigo; see `the announcement with key dates `__ and `the migration brief for customers `__ for details. Since this process will be completed in 2025, we decided to remove all Entrust content from community.general 3.0.0 (https://github.com/ansible-collections/community.crypto/issues/895, https://github.com/ansible-collections/community.crypto/pull/901).
+- The collection no longer supports cryptography < 3.3 (https://github.com/ansible-collections/community.crypto/pull/878, https://github.com/ansible-collections/community.crypto/pull/882).
+- acme.acme module utils - the ``get_default_argspec()`` function has been removed. Use ``create_default_argspec()`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme.backends module utils - the methods ``get_ordered_csr_identifiers()`` and ``get_cert_information()`` of ``CryptoBackend`` now must be implemented (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme.documentation docs fragment - the ``documentation`` docs fragment has been removed. Use both the ``basic`` and ``account`` docs fragments in ``acme`` instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- acme_* modules - support for ACME v1 has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
+- community.crypto no longer supports Ansible 2.9, ansible-base 2.10, and ansible-core versions 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16. While content from this collection might still work with some older versions of ansible-core, it will not work with any Python version before 3.7 (https://github.com/ansible-collections/community.crypto/pull/870).
+- crypto.basic module utils - remove ``CRYPTOGRAPHY_HAS_*`` flags. All tested features are supported since cryptography 3.0 (https://github.com/ansible-collections/community.crypto/pull/878).
+- crypto.cryptography_support module utils - remove ``cryptography_serial_number_of_cert()`` helper function (https://github.com/ansible-collections/community.crypto/pull/878).
+- crypto.module_backends.common module utils - this module utils has been removed. Use the ``argspec`` module utils instead (https://github.com/ansible-collections/community.crypto/pull/873).
+- crypto.support module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
+- ecs_certificate - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
+- ecs_domain - the module has been removed. Please use community.crypto 2.x.y if you need this module (https://github.com/ansible-collections/community.crypto/pull/900).
+- execution environment dependencies - remove PyOpenSSL dependency (https://github.com/ansible-collections/community.crypto/pull/874).
+- openssl_csr_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+- openssl_pkcs12 - support for the ``pyopenssl`` backend has been removed (https://github.com/ansible-collections/community.crypto/pull/873).
+- openssl_privatekey_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+- time module utils - remove ``pyopenssl`` backend (https://github.com/ansible-collections/community.crypto/pull/874).
+- x509_certificate - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
+- x509_certificate_pipe - the ``entrust`` provider has been removed. Please use community.crypto 2.x.y if you need this provider (https://github.com/ansible-collections/community.crypto/pull/900).
+- x509_certificate_pipe - the module now ignores check mode and will always behave as if check mode is not active (https://github.com/ansible-collections/community.crypto/pull/873).
+
+community.general
+^^^^^^^^^^^^^^^^^
+
+- Dropped support for ansible-core 2.15. The collection now requires ansible-core 2.16 or newer. This means that on the controller, Python 3.10+ is required. On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192).
+- The Proxmox content (modules and plugins) has been moved to the `new collection community.proxmox `__. Since community.general 11.0.0, these modules and plugins have been replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``, or by installing a new enough version of the Ansible community package. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10110).
+- apt_rpm - the ``present`` and ``installed`` states are no longer equivalent to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126).
+- clc_* modules and doc fragment - the modules were removed since CenturyLink Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126).
+- django_manage - the ``ack_venv_creation_deprecation`` option has been removed. It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126).
+- git_config - it is no longer allowed to use ``state=present`` with no value to read the config value. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
+- git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126).
+- hipchat - the module was removed since the hipchat service has been discontinued and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126).
+- manifold lookup plugin - the plugin was removed since the company was acquired in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.mixins.deps module utils - this module utils has been removed. Use the ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` module utils and no longer from the removed ``mh.mixins.vars`` module utils (https://github.com/ansible-collections/community.general/pull/10126).
+- mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` from ``ModuleHelper`` have been removed. We suggest to remove them from your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126).
+- module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126).
+- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
+- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137).
+- profitbrick* modules - the modules were removed since the supporting library is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126).
+- redfish_utils module utils - the ``_init_session`` method has been removed (https://github.com/ansible-collections/community.general/pull/10126).
+- stackpath_compute inventory plugin - the plugin was removed since the company and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126).
+
+community.libvirt
+^^^^^^^^^^^^^^^^^
+
+- virt_volume - PoolConnection class has been removed
+- virt_volume - the 'deleted' state has been removed as its definition was not entirely accurate, and the 'wipe' boolean option is added to 'state/absent' and 'command/delete'.
+- virt_volume - undocumented but unused FLAGS have been removed.
+- virt_volume - undocumented but unused/non-functional functions (get_status, get_status2, get_state, get_uuid, build) have been removed.
+
+community.postgresql
+^^^^^^^^^^^^^^^^^^^^
+
+- postgresql_info - the db alias has been removed in ``community.postgresql 4.0.0``. Please use the ``login_db`` option instead (https://github.com/ansible-collections/community.postgresql/issues/801).
+- postgresql_lang - the module has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_ext`` module instead (https://github.com/ansible-collections/community.postgresql/issues/561).
+- postgresql_privs - the ``password`` argument has been removed in ``community.postgresql 4.0.0``. Use the ``login_password`` argument instead (https://github.com/ansible-collections/community.postgresql/issues/408).
+- postgresql_user - the ``priv`` argument has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/493).
+
+community.windows
+^^^^^^^^^^^^^^^^^
+
+- win_domain_computer - Removed deprecated module, use ``microsoft.ad.computer`` instead
+- win_domain_group - Removed deprecated module, use ``microsoft.ad.group`` instead
+- win_domain_group_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
+- win_domain_object_info - Removed deprecated module, use ``microsoft.ad.object_info`` instead
+- win_domain_ou - Removed deprecated module, use ``microsoft.ad.ou`` instead
+- win_domain_user - Removed deprecated module, use ``microsoft.ad.user`` instead
+- win_lineinfile - Removed deprecated return value ``backup``, use ``backup_file`` instead
+- win_xml - Removed deprecated, and undocumented, return value ``backup``, use ``backup_file`` instead
+
junipernetworks.junos
^^^^^^^^^^^^^^^^^^^^^
@@ -1885,14 +1449,30 @@
- This release removes all deprecated plugins that have reached their end-of-life.
- junos_scp
+vmware.vmware
+^^^^^^^^^^^^^
+
+- vm_list_group_by_clusters - Tombstone module in favor of vmware.vmware.vm_list_group_by_clusters_info
+
Deprecated Features
-------------------
+- The ``ibm.qradar`` collection has been deprecated.
+ It will be removed from Ansible 13 if no one starts maintaining it again before Ansible 13.
+ See `Collections Removal Process for unmaintained collections `__ for more details (`https://forum.ansible.com/t/44259 `__).
+
Ansible-core
^^^^^^^^^^^^
- CLI - The ``--inventory-file`` option alias is deprecated. Use the ``-i`` or ``--inventory`` option instead.
+- Jinja test plugins - Returning a non-boolean result from a Jinja test plugin is deprecated.
+- Passing a ``warnings` or ``deprecations`` key to ``exit_json`` or ``fail_json`` is deprecated. Use ``AnsibleModule.warn`` or ``AnsibleModule.deprecate`` instead.
- Strategy Plugins - Use of strategy plugins not provided in ``ansible.builtin`` are deprecated and do not carry any backwards compatibility guarantees going forward. A future release will remove the ability to use external strategy plugins. No alternative for third party strategy plugins is currently planned.
+- The ``ShellModule.checksum`` method is now deprecated and will be removed in ansible-core 2.23. Use ``ActionBase._execute_remote_stat()`` instead.
+- The ``ansible.module_utils.common.collections.count()`` function is deprecated and will be removed in ansible-core 2.23. Use ``collections.Counter()`` from the Python standard library instead.
+- YAML parsing - Usage of the YAML 1.1 ``!!omap`` and ``!!pairs`` tags is deprecated. Use standard mappings instead.
+- YAML parsing - Usage of the undocumented ``!vault-encrypted`` YAML tag is deprecated. Use ``!vault`` instead.
+- ``ansible.compat.importlib_resources`` is deprecated and will be removed in ansible-core 2.23. Use ``importlib.resources`` from the Python standard library instead.
- ``ansible.module_utils.compat.datetime`` - The datetime compatibility shims are now deprecated. They are scheduled to be removed in ``ansible-core`` v2.21. This includes ``UTC``, ``utcfromtimestamp()`` and ``utcnow`` importable from said module (https://github.com/ansible/ansible/pull/81874).
- bool filter - Support for coercing unrecognized input values (including None) has been deprecated. Consult the filter documentation for acceptable values, or consider use of the ``truthy`` and ``falsy`` tests.
- cache plugins - The `ansible.plugins.cache.base` Python module is deprecated. Use `ansible.plugins.cache` instead.
@@ -1900,16 +1480,30 @@
- callback plugins - The v1 callback API (callback methods not prefixed with `v2_`) is deprecated. Use `v2_` prefixed methods instead.
- conditionals - Conditionals using Jinja templating delimiters (e.g., ``{{``, ``{%``) should be rewritten as expressions without delimiters, unless the entire conditional value is a single template that resolves to a trusted string expression. This is useful for dynamic indirection of conditional expressions, but is limited to trusted literal string expressions.
- config - The ``ACTION_WARNINGS`` config has no effect. It previously disabled command warnings, which have since been removed.
+- config - The ``DEFAULT_ALLOW_UNSAFE_LOOKUPS`` configuration option is deprecated and no longer has any effect. Ansible templating no longer encounters situations where use of lookup plugins is considered "unsafe".
- config - The ``DEFAULT_JINJA2_NATIVE`` option has no effect. Jinja2 native mode is now the default and only option.
- config - The ``DEFAULT_NULL_REPRESENTATION`` option has no effect. Null values are no longer automatically converted to another value during templating of single variable references.
+- config - The ``DEFAULT_UNDEFINED_VAR_BEHAVIOR`` configuration option is deprecated and no longer has any effect. Attempting to use an undefined variable where undefined values are unexpected is now always an error. This behavior was enabled by default in previous versions, and disabling it yielded inconsistent results.
+- config - The ``STRING_TYPE_FILTERS`` configuration option is deprecated and no longer has any effect. Since the template engine now always preserves native types, there is no longer a risk of unintended conversion from strings to native types.
+- config - Using the ``DEFAULT_JINJA2_EXTENSIONS`` configuration option to enable Jinja2 extensions is deprecated. Previously, custom Jinja extensions were disabled by default, as they can destabilize the Ansible templating environment. Templates should only make use of filter, test and lookup plugins.
+- config - Using the ``DEFAULT_MANAGED_STR`` configuration option to customize the value of the ``ansible_managed`` variable is deprecated. The ``ansible_managed`` variable can now be set the same as any other variable.
- display - The ``Display.get_deprecation_message`` method has been deprecated. Call ``Display.deprecated`` to display a deprecation message, or call it with ``removed=True`` to raise an ``AnsibleError``.
- file loading - Loading text files with ``DataLoader`` containing data that cannot be decoded under the expected encoding is deprecated. In most cases the encoding must be UTF-8, although some plugins allow choosing a different encoding. Previously, invalid data was silently wrapped in Unicode surrogate escape sequences, often resulting in later errors or other data corruption.
- first_found lookup - Splitting of file paths on ``,;:`` is deprecated. Pass a list of paths instead. The ``split`` method on strings can be used to split variables into a list as needed.
- interpreter discovery - The ``auto_legacy`` and ``auto_legacy_silent`` options for ``INTERPRETER_PYTHON`` are deprecated. Use ``auto`` or ``auto_silent`` options instead, as they have the same effect.
+- inventory plugins - Setting invalid Ansible variable names in inventory plugins is deprecated.
- oneline callback - The ``oneline`` callback and its associated ad-hoc CLI args (``-o``, ``--one-line``) are deprecated.
- paramiko - The paramiko connection plugin has been deprecated with planned removal in 2.21.
+- playbook - The ``timedout.frame`` task result value (injected when a task timeout occurs) is deprecated. Include ``error`` in the ``DISPLAY_TRACEBACK`` config value to capture a full Python traceback for timed out actions.
+- playbook syntax - Specifying the task ``args`` keyword without a value is deprecated.
+- playbook syntax - Using ``key=value`` args and the task ``args`` keyword on the same task is deprecated.
+- playbook syntax - Using a mapping with the ``action`` keyword is deprecated. (https://github.com/ansible/ansible/issues/84101)
- playbook variables - The ``play_hosts`` variable has been deprecated, use ``ansible_play_batch`` instead.
- plugin error handling - The ``AnsibleError`` constructor arg ``suppress_extended_error`` is deprecated. Using ``suppress_extended_error=True`` has the same effect as ``show_content=False``.
+- plugins - Accessing plugins with ``_``-prefixed filenames without the ``_`` prefix is deprecated.
+- public API - The ``ansible.errors.AnsibleFilterTypeError`` exception type has been deprecated. Use ``AnsibleTypeError`` instead.
+- public API - The ``ansible.errors._AnsibleActionDone`` exception type has been deprecated. Action plugins should return a task result dictionary in success cases instead of raising.
+- public API - The ``ansible.module_utils.common.json.json_dump`` function is deprecated. Call Python stdlib ``json.dumps`` instead, with ``cls`` set to an Ansible profile encoder type from ``ansible.module_utils.common.json.get_encoder``.
- template lookup - The jinja2_native option is no longer used in the Ansible Core code base. Jinja2 native mode is now the default and only option.
- templating - Support for enabling Jinja2 extensions (not plugins) has been deprecated.
- templating - The ``disable_lookups`` option has no effect, since plugins must be updated to apply trust before any templating can be performed.
@@ -1937,13 +1531,70 @@
- ios_vlans - deprecate mtu, please use ios_interfaces to configure mtu to the interface where vlans is applied.
+cisco.nxos
+^^^^^^^^^^
+
+- nxos_hsrp - deprecate nxos.nxos.nxos_hsrp in favor of nxos.nxos.nxos_hsrp_interfaces.
+- nxos_vrf_interface - deprecate nxos.nxos.nxos_vrf_interface in favor of nxos.nxos.nxos_vrf_interfaces.
+
+community.aws
+^^^^^^^^^^^^^
+
+- community.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.8 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.8 by this collection has been deprecated and will removed in release 10.0.0 (https://github.com/ansible-collections/community.aws/pull/2195).
+
community.crypto
^^^^^^^^^^^^^^^^
- Support for ansible-core 2.11, 2.12, 2.13, 2.14, 2.15, and 2.16 is deprecated, and will be removed in the next major release (community.crypto 3.0.0). Some modules might still work with some of these versions afterwards, but we will no longer keep compatibility code that was needed to support them. Note that this means that support for all Python versions before 3.7 will be dropped, also on the target side (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
- Support for cryptography < 3.4 is deprecated, and will be removed in the next major release (community.crypto 3.0.0). Some modules might still work with older versions of cryptography, but we will no longer keep compatibility code that was needed to support them (https://github.com/ansible-collections/community.crypto/issues/559, https://github.com/ansible-collections/community.crypto/pull/839).
+- acme_certificate - deprecate the ``agreement`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
+- acme_certificate - the option ``modify_account``'s default value ``true`` has been deprecated. It will change to ``false`` in community.crypto 4.0.0. We recommend to set the option to an explicit value to avoid deprecation warnings, and to prefer setting it to ``false`` already now. Better use the ``community.crypto.acme_account`` module instead (https://github.com/ansible-collections/community.crypto/issues/924).
+- openssl_pkcs12 - deprecate the ``maciter_size`` option which has no more effect. It will be removed from community.crypto 4.0.0 (https://github.com/ansible-collections/community.crypto/pull/891).
- openssl_pkcs12 - the PyOpenSSL based backend is deprecated and will be removed from community.crypto 3.0.0. From that point on you need cryptography 3.0 or newer to use this module (https://github.com/ansible-collections/community.crypto/issues/667, https://github.com/ansible-collections/community.crypto/pull/831).
+community.general
+^^^^^^^^^^^^^^^^^
+
+- MH module utils - attribute ``debug`` definition in subclasses of MH is now deprecated, as that name will become a delegation to ``AnsibleModule`` in community.general 12.0.0, and any such attribute will be overridden by that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577).
+- The proxmox content (modules and plugins) is being moved to the `new collection community.proxmox `__. In community.general 11.0.0, these modules and plugins will be replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10109).
+- atomic_container - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- atomic_host - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- atomic_image - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487).
+- bearychat - module is deprecated and will be removed in community.general 12.0.0 (https://github.com/ansible-collections/community.general/issues/10514).
+- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
+- cpanm - deprecate ``mode=compatibility``, ``mode=new`` should be used instead (https://github.com/ansible-collections/community.general/pull/10434).
+- facter - module is deprecated and will be removed in community.general 12.0.0, use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451).
+- github_repo - deprecate ``force_defaults=true`` (https://github.com/ansible-collections/community.general/pull/10435).
+- locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238).
+- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028).
+- opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172).
+- pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227).
+- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031).
+- profitbricks - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_datacenter - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_nic - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_volume - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- profitbricks_volume_attachments - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733).
+- pure module utils - the module utils is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
+- purestorage doc fragments - the doc fragment is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432).
+- redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` (https://github.com/ansible-collections/community.general/pull/9190).
+- rocketchat - the default value for ``is_pre740``, currently ``true``, is deprecated and will change to ``false`` in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490).
+- sensu_check - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_client - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_handler - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_silence - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- sensu_subscription - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483).
+- slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443).
+- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026).
+- yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456).
+- yaml callback plugin - the YAML callback plugin was deprecated for removal in community.general 13.0.0. Since it needs to use ansible-core internals since ansible-core 2.19 that are changing a lot, we will remove this plugin already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213).
+
+community.hashi_vault
+^^^^^^^^^^^^^^^^^^^^^
+
+- ansible-core - support for several ``ansible-core`` versions will be dropped in ``v7.0.0``. The collection will focus on current supported versions of ``ansible-core`` going forward and more agressively drop end-of-life or soon-to-be EOL versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
+- python - support for several ``python`` versions will be dropped in ``v7.0.0``. The collection will focus on ``python`` versions that are supported by the active versions of ``ansible-core`` on the controller side at a minimum, and some subset of target versions (https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html).
+
community.hrobot
^^^^^^^^^^^^^^^^
@@ -1952,6 +1603,8 @@
community.postgresql
^^^^^^^^^^^^^^^^^^^^
+- postgresql modules - the ``port`` alias is deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_port`` argument instead.
+- postgresql modules = the ``login``, ``unix_socket`` and ``host`` aliases are deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_user``, ``login_unix_socket`` and ``login_host`` arguments instead.
- postgresql_copy - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_db - the ``rename`` choice of the state option is deprecated and will be removed in version 5.0.0, use the ``postgresql_query`` module instead.
- postgresql_ext - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
@@ -1966,6 +1619,7 @@
- postgresql_script - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_sequence - the ``rename_to`` option is deprecated and will be removed in version 5.0.0, use the ``postgresql_query`` module instead.
- postgresql_sequence - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
+- postgresql_set - the module has been deprecated and will be removed in ``community.postgresql 5.0.0``. Please use the ``community.postgresql.postgresql_alter_system`` module instead (https://github.com/ansible-collections/community.postgresql/issues/823).
- postgresql_set - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_slot - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
- postgresql_subscription - the parameter aliases db and database are deprecated and will be removed in community.postgresql 5.0.0. Use login_db instead.
@@ -1978,6 +1632,7 @@
community.vmware
^^^^^^^^^^^^^^^^
+- module_utils.vmware - Deprecate ``connect_to_api`` (https://github.com/ansible-collections/community.vmware/pull/2372).
- module_utils.vmware - host_version_at_least is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2303).
- plugin_utils.inventory - this plugin util is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2304).
- plugins.httpapi - this is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2306).
@@ -1993,13 +1648,63 @@
- vmware_content_deploy_ovf_template - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_deploy_template - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2332).
- vmware_content_library_manager - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2345).
+- vmware_dvs_portgroup - ``mac_learning`` is deprecated in favour of ``network_policy.mac_learning`` (https://github.com/ansible-collections/community.vmware/pull/2360).
+- vmware_guest_powerstate - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2398).
- vmware_host - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2337).
- vmware_host_inventory - the inventory plugin is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
- vmware_maintenancemode - the module has been deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2293).
- vmware_rest_client - get_folder_by_name is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2311).
- vmware_vm_inventory - the inventory plugin is deprecated and will be removed in community.vmware 7.0.0 (https://github.com/ansible-collections/community.vmware/pull/2283).
+community.windows
+^^^^^^^^^^^^^^^^^
+
+- win_audit_policy_system - Deprecated module and will be redirected to ``ansible.windows.win_audit_policy_system``. Use ``ansible.windows.win_audit_policy_system`` instead as the redirection will be removed in 4.0.0
+- win_audit_rule - Deprecated module and will be redirected to ``ansible.windows.win_audit_rule``. Use ``ansible.windows.win_audit_rule`` instead as the redirection will be removed in 4.0.0
+- win_auto_logon - Deprecated module and will be redirected to ``ansible.windows.win_auto_logon``. Use ``ansible.windows.win_auto_logon`` instead as the redirection will be removed in 4.0.0
+- win_certificate_info - Deprecated module and will be redirected to ``ansible.windows.win_certificate_info``. Use ``ansible.windows.win_certificate_info`` instead as the redirection will be removed in 4.0.0
+- win_computer_description - Deprecated module and will be redirected to ``ansible.windows.win_computer_description``. Use ``ansible.windows.win_computer_description`` instead as the redirection will be removed in 4.0.0
+- win_credential - Deprecated module and will be redirected to ``ansible.windows.win_credential``. Use ``ansible.windows.win_credential`` instead as the redirection will be removed in 4.0.0
+- win_dhcp_lease - Deprecated module and will be redirected to ``ansible.windows.win_dhcp_lease``. Use ``ansible.windows.win_dhcp_lease`` instead as the redirection will be removed in 4.0.0
+- win_dns_record - Deprecated module and will be redirected to ``ansible.windows.win_dns_record``. Use ``ansible.windows.win_dns_record`` instead as the redirection will be removed in 4.0.0
+- win_dns_zone - Deprecated module and will be redirected to ``ansible.windows.win_dns_zone``. Use ``ansible.windows.win_dns_zone`` instead as the redirection will be removed in 4.0.0
+- win_eventlog - Deprecated module and will be redirected to ``ansible.windows.win_eventlog``. Use ``ansible.windows.win_eventlog`` instead as the redirection will be removed in 4.0.0
+- win_feature_info - Deprecated module and will be redirected to ``ansible.windows.win_feature_info``. Use ``ansible.windows.win_feature_info`` instead as the redirection will be removed in 4.0.0
+- win_file_compression - Deprecated module and will be redirected to ``ansible.windows.win_file_compression``. Use ``ansible.windows.win_file_compression`` instead as the redirection will be removed in 4.0.0
+- win_firewall - Deprecated module and will be redirected to ``ansible.windows.win_firewall``. Use ``ansible.windows.win_firewall`` instead as the redirection will be removed in 4.0.0
+- win_hosts - Deprecated module and will be redirected to ``ansible.windows.win_hosts``. Use ``ansible.windows.win_hosts`` instead as the redirection will be removed in 4.0.0
+- win_hotfix - Deprecated module and will be redirected to ``ansible.windows.win_hotfix``. Use ``ansible.windows.win_hotfix`` instead as the redirection will be removed in 4.0.0
+- win_http_proxy - Deprecated module and will be redirected to ``ansible.windows.win_http_proxy``. Use ``ansible.windows.win_http_proxy`` instead as the redirection will be removed in 4.0.0
+- win_iis_virtualdirectory - Deprecated module, use ``microsoft.iis.virtual_directory`` instead as the module will be removed in 4.0.0
+- win_iis_webapplication - Deprecated module, use ``microsoft.iis.web_application`` instead instead as the module will be removed in 4.0.0
+- win_iis_webapppool - Deprecated module, use ``microsoft.iis.web_app_pool`` instead instead as the module will be removed in 4.0.0
+- win_iis_webbinding - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
+- win_iis_website - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
+- win_inet_proxy - Deprecated module and will be redirected to ``ansible.windows.win_inet_proxy``. Use ``ansible.windows.win_inet_proxy`` instead as the redirection will be removed in 4.0.0
+- win_listen_ports_facts - Deprecated module and will be redirected to ``ansible.windows.win_listen_ports_facts``. Use ``ansible.windows.win_listen_ports_facts`` instead as the redirection will be removed in 4.0.0
+- win_mapped_drive - Deprecated module and will be redirected to ``ansible.windows.win_mapped_drive``. Use ``ansible.windows.win_mapped_drive`` instead as the redirection will be removed in 4.0.0
+- win_product_facts - Deprecated module and will be redirected to ``ansible.windows.win_product_facts``. Use ``ansible.windows.win_product_facts`` instead as the redirection will be removed in 4.0.0
+- win_region - Deprecated module and will be redirected to ``ansible.windows.win_region``. Use ``ansible.windows.win_region`` instead as the redirection will be removed in 4.0.0
+- win_route - Deprecated module and will be redirected to ``ansible.windows.win_route``. Use ``ansible.windows.win_route`` instead as the redirection will be removed in 4.0.0
+- win_timezone - Deprecated module and will be redirected to ``ansible.windows.win_timezone``. Use ``ansible.windows.win_timezone`` instead as the redirection will be removed in 4.0.0
+- win_user_profile - Deprecated module and will be redirected to ``ansible.windows.win_user_profile``. Use ``ansible.windows.win_user_profile`` instead as the redirection will be removed in 4.0.0
+
+community.zabbix
+^^^^^^^^^^^^^^^^
+
+- Web Role - Depricated `zabbix_web_SSLSessionCacheTimeout` for `zabbix_web_ssl_session_cache_timeout`
+- Web Role - Depricated `zabbix_web_SSLSessionCache` for `zabbix_web_ssl_session_cache`
+
vmware.vmware_rest
^^^^^^^^^^^^^^^^^^
- content_library_item_info - the module has been deprecated and will be removed in vmware.vmware_rest 5.0.0
+- lookup plugins - Deprecate all lookup plugins in favor of vmware.vmware.moid_from_path (https://github.com/ansible-collections/vmware.vmware_rest/pull/608)
+
+vyos.vyos
+^^^^^^^^^
+
+- vyos_bgp_global - no_ipv4_unicast - deprecated for use with VyOS 1.4+, use `ipv4_unicast` instead
+- vyos_firewall_interfaces - deprecated for use with VyOS 1.4+, firewalls are no longer connected directly to interfaces. See the Firewall Configuration documentation for how to establish a connection betwen the firewall rulesets and the flow, interface, or zone.
+- vyos_lldp_global - `address` is deprecated, use `addresses` instead. To be removed in 7.0.0.
+- vyos_logging_global - `protocol` is deprecated for 1.4 and later, use `facility` instead. To be removed in next major version where supprot for 1.3 is removed
diff -Nru ansible-12.0.0~b5+dfsg/setup.cfg ansible-12.0.0+dfsg/setup.cfg
--- ansible-12.0.0~b5+dfsg/setup.cfg 2025-08-26 19:33:11.518733700 +0000
+++ ansible-12.0.0+dfsg/setup.cfg 2025-09-09 13:45:33.829777200 +0000
@@ -21,7 +21,7 @@
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3 :: Only
-version = 12.0.0b5
+version = 12.0.0
project_urls =
Build Data = https://github.com/ansible-community/ansible-build-data
Code of Conduct = https://docs.ansible.com/ansible/latest/community/code_of_conduct.html
@@ -122,10 +122,6 @@
ansible_collections.cisco.ucs.tests.*
ansible_collections.cisco.ucs.docs
ansible_collections.cisco.ucs.docs.*
- ansible_collections.cloud.common.tests
- ansible_collections.cloud.common.tests.*
- ansible_collections.cloud.common.docs
- ansible_collections.cloud.common.docs.*
ansible_collections.cloudscale_ch.cloud.tests
ansible_collections.cloudscale_ch.cloud.tests.*
ansible_collections.cloudscale_ch.cloud.docs
@@ -1766,28 +1762,6 @@
plugins/modules/.*
roles/*
roles/.*
-ansible_collections.cloud.common =
- *
- changelogs/*
- changelogs/.*
- changelogs/fragments/*
- changelogs/fragments/.*
- meta/*
- meta/.*
- plugins/*
- plugins/.*
- plugins/lookup/*
- plugins/lookup/.*
- plugins/module_utils/*
- plugins/module_utils/.*
- plugins/module_utils/turbo/*
- plugins/module_utils/turbo/.*
- plugins/modules/*
- plugins/modules/.*
- plugins/plugin_utils/*
- plugins/plugin_utils/.*
- plugins/plugin_utils/turbo/*
- plugins/plugin_utils/turbo/.*
ansible_collections.cloudscale_ch.cloud =
*
changelogs/*
diff -Nru ansible-12.0.0~b5+dfsg/tags.yaml ansible-12.0.0+dfsg/tags.yaml
--- ansible-12.0.0~b5+dfsg/tags.yaml 2025-08-26 19:32:33.000000000 +0000
+++ ansible-12.0.0+dfsg/tags.yaml 2025-09-09 13:44:56.000000000 +0000
@@ -32,8 +32,8 @@
version: 24.6.1
azure.azcollection:
repository: https://github.com/ansible-collections/azure
- tag: v3.7.0
- version: 3.7.0
+ tag: v3.8.0
+ version: 3.8.0
check_point.mgmt:
repository: https://github.com/CheckPointSW/CheckPointAnsibleMgmtCollection
tag: v6.4.1
@@ -79,10 +79,6 @@
repository: https://github.com/CiscoDevNet/ansible-ucs
tag: v1.16.0
version: 1.16.0
-cloud.common:
- repository: https://github.com/ansible-collections/cloud.common
- tag: 5.0.0
- version: 5.0.0
cloudscale_ch.cloud:
repository: https://github.com/cloudscale-ch/ansible-collection-cloudscale
tag: v2.5.2
@@ -105,8 +101,8 @@
version: 1.27.0
community.dns:
repository: https://github.com/ansible-collections/community.dns
- tag: 3.3.1
- version: 3.3.1
+ tag: 3.3.2
+ version: 3.3.2
community.docker:
repository: https://github.com/ansible-collections/community.docker
tag: 4.7.0
@@ -165,16 +161,16 @@
version: 1.6.0
community.routeros:
repository: https://github.com/ansible-collections/community.routeros
- tag: 3.9.0
- version: 3.9.0
+ tag: 3.10.0
+ version: 3.10.0
community.sap_libs:
repository: https://github.com/sap-linuxlab/community.sap_libs
tag: 1.4.2
version: 1.4.2
community.sops:
repository: https://github.com/ansible-collections/community.sops
- tag: 2.2.1
- version: 2.2.1
+ tag: 2.2.2
+ version: 2.2.2
community.vmware:
repository: https://github.com/ansible-collections/community.vmware
tag: 5.7.2
@@ -354,8 +350,8 @@
version: 2.3.0
vmware.vmware_rest:
repository: https://github.com/ansible-collections/vmware.vmware_rest
- tag: 4.8.1
- version: 4.8.1
+ tag: 4.9.0
+ version: 4.9.0
vultr.cloud:
repository: https://github.com/vultr/ansible-collection-vultr
tag: v1.13.0