summaryrefslogtreecommitdiffstats
path: root/ansible_collections/azure/azcollection
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:35 +0000
commit7fec0b69a082aaeec72fee0612766aa42f6b1b4d (patch)
treeefb569b86ca4da888717f5433e757145fa322e08 /ansible_collections/azure/azcollection
parentReleasing progress-linux version 7.7.0+dfsg-3~progress7.99u1. (diff)
downloadansible-7fec0b69a082aaeec72fee0612766aa42f6b1b4d.tar.xz
ansible-7fec0b69a082aaeec72fee0612766aa42f6b1b4d.zip
Merging upstream version 9.4.0+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--ansible_collections/azure/azcollection/.idea/.gitignore8
-rw-r--r--ansible_collections/azure/azcollection/.idea/azcollection.iml12
-rw-r--r--ansible_collections/azure/azcollection/.idea/inspectionProfiles/profiles_settings.xml6
-rw-r--r--ansible_collections/azure/azcollection/.idea/misc.xml7
-rw-r--r--ansible_collections/azure/azcollection/.idea/modules.xml8
-rw-r--r--ansible_collections/azure/azcollection/.idea/vcs.xml6
-rw-r--r--ansible_collections/azure/azcollection/.idea/workspace.xml138
-rw-r--r--ansible_collections/azure/azcollection/CHANGELOG.md73
-rw-r--r--ansible_collections/azure/azcollection/FILES.json4445
-rw-r--r--ansible_collections/azure/azcollection/MANIFEST.json4
-rw-r--r--ansible_collections/azure/azcollection/README.md4
-rw-r--r--ansible_collections/azure/azcollection/azure-pipelines.yml73
-rw-r--r--ansible_collections/azure/azcollection/meta/runtime.yml562
-rw-r--r--ansible_collections/azure/azcollection/plugins/inventory/azure_rm.py132
-rw-r--r--ansible_collections/azure/azcollection/plugins/lookup/azure_keyvault_secret.py73
-rw-r--r--ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py186
-rw-r--r--ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py3
-rw-r--r--ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_rest.py63
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_account_info.py3
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py41
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication_info.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup.py186
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup_info.py92
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal.py13
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal_info.py10
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser_info.py63
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py284
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks_info.py61
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool.py5
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool_info.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpoolversion_info.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksupgrade_info.py10
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksversion_info.py23
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement.py75
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement_info.py39
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway.py348
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup.py35
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup_info.py29
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan.py69
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan_info.py34
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationaccount_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook.py6
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook_info.py3
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale.py110
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale_info.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset.py51
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset_info.py23
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py72
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py43
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm.py94
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy.py74
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy_info.py14
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_bastionhost.py11
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount.py84
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount_info.py196
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint.py47
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint_info.py32
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile.py31
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance.py153
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry.py32
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook.py33
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook_info.py15
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount.py101
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount_info.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory.py1
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore.py13
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py9
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py137
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py36
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab_info.py25
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabarmtemplate_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifact_info.py15
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource.py49
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource_info.py13
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage_info.py26
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment.py10
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule.py42
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule_info.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine.py105
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork.py40
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py23
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_diskencryptionset.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnsrecordset.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone.py5
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone_info.py5
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub.py4
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub_info.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute.py6
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute_info.py15
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy_info.py1
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp_info.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py67
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion_info.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster.py77
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster_info.py32
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_hostgroup.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_image.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice.py260
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice_info.py194
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevicemodule.py207
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub_info.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothubconsumergroup.py11
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup.py3
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup_info.py1
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault.py79
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey.py213
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey_info.py270
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret.py113
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py219
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer.py83
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer_info.py33
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_lock_info.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace.py11
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace_info.py11
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk.py128
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk_info.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup_info.py10
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration.py14
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase.py27
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver.py42
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py47
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py146
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule.py27
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver.py35
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway.py4
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface.py280
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface_info.py63
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub.py5
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub_info.py9
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster.py79
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver.py27
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednsrecordset.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone.py4
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone_info.py1
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszonelink.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpoint_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpointdnszonegroup.py2
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatelinkservice.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_proximityplacementgroup.py3
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py38
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault.py39
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault_info.py15
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache.py52
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache_info.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscachefirewallrule.py53
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment.py36
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition.py58
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition_info.py20
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource.py51
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource_info.py54
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup.py39
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup_info.py31
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment.py72
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment_info.py49
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition.py29
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_route.py35
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_route_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable_info.py30
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup.py263
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus.py14
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus_info.py9
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebusqueue.py7
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebussaspolicy.py13
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopic.py7
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopicsubscription.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_snapshot.py26
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase.py112
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase_info.py36
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool.py38
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule_info.py23
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance.py1
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance_info.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver_info.py16
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount.py139
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount_info.py34
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageblob.py17
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageshare.py45
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet.py138
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet_info.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_subscription_info.py6
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanager.py108
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint_info.py27
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile.py68
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile_info.py26
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub.py37
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection.py4
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine.py489
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine_info.py109
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineextension_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineimage_info.py52
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset.py159
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset_info.py71
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension.py49
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension_info.py24
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance.py37
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py12
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinesize_info.py16
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork.py60
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork_info.py28
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkgateway.py130
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering.py44
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering_info.py21
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan.py43
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy_info.py14
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmssnetworkinterface_info.py34
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite.py22
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite_info.py19
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsitelink_info.py18
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp.py259
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp_info.py46
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction.py42
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction_info.py8
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappslot.py127
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection.py40
-rw-r--r--ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection_info.py8
-rw-r--r--ansible_collections/azure/azcollection/pr-pipelines.yml317
-rw-r--r--ansible_collections/azure/azcollection/release-pipelines.yml28
-rw-r--r--ansible_collections/azure/azcollection/requirements-azure.txt7
-rw-r--r--ansible_collections/azure/azcollection/sanity-requirements-azure.txt2
-rw-r--r--ansible_collections/azure/azcollection/tests/config.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_account_info/tasks/main.yml3
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_acs/tasks/main.yml280
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adapplication/tasks/main.yml42
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml165
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adpassword/tasks/main.yml54
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml44
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aduser/tasks/main.yml64
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/main.yml1150
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml27
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml28
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagement/tasks/main.yml59
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml26
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appgateway/tasks/main.yml600
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml60
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml95
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml50
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_autoscale/tasks/main.yml185
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_availabilityset/tasks/main.yml71
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml61
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/meta/main.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml16
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml20
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_bastionhost/tasks/main.yml86
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_batchaccount/tasks/main.yml76
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml257
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml47
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerinstance/tasks/main.yml56
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistry/tasks/main.yml212
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml56
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml68
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datafactory/tasks/main.yml35
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datalakestore/tasks/main.yml38
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml27
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_deployment/tasks/main.yml14
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml44
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py6
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml32
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml58
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnszone/tasks/main.yml99
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_eventhub/tasks/main.yml58
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_expressroute/tasks/main.yml31
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml15
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_functionapp/tasks/main.yml62
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_gallery/tasks/main.yml115
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml52
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hostgroup/tasks/main.yml15
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_image/tasks/main.yml209
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/aliases1
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/tasks/main.yml210
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ipgroup/tasks/main.yml17
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py6
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/tasks/main.yml70
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py6
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml78
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py6
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml32
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml138
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml68
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_manageddisk/tasks/main.yml528
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_managementgroup/tasks/main.yml16
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml119
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml158
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml58
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml6
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml47
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml85
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml123
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_natgateway/tasks/main.yml68
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_networkinterface/tasks/main.yml549
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_notificationhub/tasks/main.yml62
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml49
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml113
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml61
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszone/tasks/main.yml21
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml29
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml25
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml24
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml92
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml15
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml169
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml22
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_rediscache/tasks/main.yml642
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml33
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml40
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resource/tasks/main.yml28
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml49
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roleassignment/tasks/main.yml62
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roledefinition/tasks/main.yml96
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_routetable/tasks/main.yml92
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml74
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_servicebus/tasks/main.yml226
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml14
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml130
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageaccount/tasks/main.yml88
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageblob/tasks/main.yml63
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageshare/tasks/main.yml22
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subnet/tasks/main.yml57
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subscription/tasks/main.yml8
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml204
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhub/tasks/main.yml37
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml325
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/inventory.yml4
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/main.yml7
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/runme.sh0
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml24
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml30
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml34
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml23
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml17
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml17
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml7
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml13
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml21
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml95
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml9
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_vm_identity.yml209
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml3
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml26
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml29
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml243
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml2
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml14
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml57
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml249
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml23
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualwan/tasks/main.yml126
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml26
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vpnsite/tasks/main.yml200
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webapp/tasks/main.yml118
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml26
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml18
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_workspace/tasks/main.yml150
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml10
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml10
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/setup.yml83
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/teardown.yml64
-rw-r--r--ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/test_inventory.yml24
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/runme.sh0
-rw-r--r--ansible_collections/azure/azcollection/tests/lint/ignore-lint.txt5
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.10.txt270
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.11.txt270
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.12.txt270
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.13.txt251
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.14.txt248
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.15.txt18
-rw-r--r--ansible_collections/azure/azcollection/tests/sanity/ignore-2.9.txt165
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/ado/ado.sh5
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/azure.sh0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/check_matrix.py0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/cloud.sh0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/sanity.sh0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/shippable.sh0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/timing.py0
-rwxr-xr-x[-rw-r--r--]ansible_collections/azure/azcollection/tests/utils/shippable/timing.sh0
-rw-r--r--ansible_collections/grafana/grafana/ansible.cfg (renamed from ansible_collections/azure/azcollection/ansible.cfg)0
445 files changed, 16444 insertions, 15192 deletions
diff --git a/ansible_collections/azure/azcollection/.idea/.gitignore b/ansible_collections/azure/azcollection/.idea/.gitignore
new file mode 100644
index 000000000..1c2fda565
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/ansible_collections/azure/azcollection/.idea/azcollection.iml b/ansible_collections/azure/azcollection/.idea/azcollection.iml
new file mode 100644
index 000000000..6db416ffe
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/azcollection.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="jdk" jdkName="Python 3.10.12 WSL (Ubuntu-22.04): (/home/eric/workspace/ansible-workspace/mymodule/test/bin/python3)" jdkType="Python SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+ <component name="PyDocumentationSettings">
+ <option name="format" value="PLAIN" />
+ <option name="myDocStringFormat" value="Plain" />
+ </component>
+</module> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/.idea/inspectionProfiles/profiles_settings.xml b/ansible_collections/azure/azcollection/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 000000000..105ce2da2
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+ <settings>
+ <option name="USE_PROJECT_PROFILE" value="false" />
+ <version value="1.0" />
+ </settings>
+</component> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/.idea/misc.xml b/ansible_collections/azure/azcollection/.idea/misc.xml
new file mode 100644
index 000000000..ecadf7f30
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/misc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Black">
+ <option name="sdkName" value="Python 3.10.12 WSL (Ubuntu-22.04): (/home/eric/workspace/ansible-workspace/mymodule/test/bin/python3)" />
+ </component>
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10.12 WSL (Ubuntu-22.04): (/home/eric/workspace/ansible-workspace/mymodule/test/bin/python3)" project-jdk-type="Python SDK" />
+</project> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/.idea/modules.xml b/ansible_collections/azure/azcollection/.idea/modules.xml
new file mode 100644
index 000000000..2701c413f
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/azcollection.iml" filepath="$PROJECT_DIR$/.idea/azcollection.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/.idea/vcs.xml b/ansible_collections/azure/azcollection/.idea/vcs.xml
new file mode 100644
index 000000000..c8397c94c
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="" vcs="Git" />
+ </component>
+</project> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/.idea/workspace.xml b/ansible_collections/azure/azcollection/.idea/workspace.xml
new file mode 100644
index 000000000..88ec9a9b1
--- /dev/null
+++ b/ansible_collections/azure/azcollection/.idea/workspace.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="AutoImportSettings">
+ <option name="autoReloadType" value="SELECTIVE" />
+ </component>
+ <component name="ChangeListManager">
+ <list default="true" id="d047ab49-1c87-4a80-9a8a-6e10b8f617c7" name="Changes" comment="deprecate tenant ID" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="Git.Settings">
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+ </component>
+ <component name="MarkdownSettingsMigration">
+ <option name="stateVersion" value="1" />
+ </component>
+ <component name="ProjectColorInfo">{
+ &quot;associatedIndex&quot;: 3
+}</component>
+ <component name="ProjectId" id="2V04ePwIacqirqMx6z2ILJcwwz8" />
+ <component name="ProjectViewState">
+ <option name="hideEmptyMiddlePackages" value="true" />
+ <option name="showLibraryContents" value="true" />
+ </component>
+ <component name="PropertiesComponent">{
+ &quot;keyToString&quot;: {
+ &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+ &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+ &quot;git-widget-placeholder&quot;: &quot;f/msgraph__beta&quot;,
+ &quot;last_opened_file_path&quot;: &quot;//wsl$/Ubuntu-22.04/home/eric/workspace/ansible-workspace/azcollection&quot;,
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
+ &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+ &quot;settings.editor.selected.configurable&quot;: &quot;com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable&quot;,
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+ }
+}</component>
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="d047ab49-1c87-4a80-9a8a-6e10b8f617c7" name="Changes" comment="" />
+ <created>1693959760639</created>
+ <option name="number" value="Default" />
+ <option name="presentableId" value="Default" />
+ <updated>1693959760639</updated>
+ <workItem from="1693959762094" duration="3039000" />
+ <workItem from="1693972601745" duration="6259000" />
+ <workItem from="1694156355409" duration="318000" />
+ <workItem from="1695017100314" duration="636000" />
+ <workItem from="1697608879446" duration="1750000" />
+ <workItem from="1697612810177" duration="444000" />
+ <workItem from="1697697857011" duration="781000" />
+ <workItem from="1698046408261" duration="2057000" />
+ <workItem from="1698115035079" duration="743000" />
+ </task>
+ <task id="LOCAL-00001" summary="msgraph client">
+ <option name="closed" value="true" />
+ <created>1693977495938</created>
+ <option name="number" value="00001" />
+ <option name="presentableId" value="LOCAL-00001" />
+ <option name="project" value="LOCAL" />
+ <updated>1693977495938</updated>
+ </task>
+ <task id="LOCAL-00002" summary="msgraph client">
+ <option name="closed" value="true" />
+ <created>1693977569076</created>
+ <option name="number" value="00002" />
+ <option name="presentableId" value="LOCAL-00002" />
+ <option name="project" value="LOCAL" />
+ <updated>1693977569076</updated>
+ </task>
+ <task id="LOCAL-00003" summary="migrate account API from graphrbac to msgraph">
+ <option name="closed" value="true" />
+ <created>1693977622517</created>
+ <option name="number" value="00003" />
+ <option name="presentableId" value="LOCAL-00003" />
+ <option name="project" value="LOCAL" />
+ <updated>1693977622517</updated>
+ </task>
+ <task id="LOCAL-00004" summary="fix sanity">
+ <option name="closed" value="true" />
+ <created>1695017609087</created>
+ <option name="number" value="00004" />
+ <option name="presentableId" value="LOCAL-00004" />
+ <option name="project" value="LOCAL" />
+ <updated>1695017609087</updated>
+ </task>
+ <task id="LOCAL-00005" summary="fix sanity">
+ <option name="closed" value="true" />
+ <created>1697611839381</created>
+ <option name="number" value="00005" />
+ <option name="presentableId" value="LOCAL-00005" />
+ <option name="project" value="LOCAL" />
+ <updated>1697611839381</updated>
+ </task>
+ <task id="LOCAL-00006" summary="fix sanity">
+ <option name="closed" value="true" />
+ <created>1697613231431</created>
+ <option name="number" value="00006" />
+ <option name="presentableId" value="LOCAL-00006" />
+ <option name="project" value="LOCAL" />
+ <updated>1697613231431</updated>
+ </task>
+ <task id="LOCAL-00007" summary="deprecate tenant ID">
+ <option name="closed" value="true" />
+ <created>1697698300998</created>
+ <option name="number" value="00007" />
+ <option name="presentableId" value="LOCAL-00007" />
+ <option name="project" value="LOCAL" />
+ <updated>1697698300998</updated>
+ </task>
+ <task id="LOCAL-00008" summary="deprecate tenant ID">
+ <option name="closed" value="true" />
+ <created>1698048324225</created>
+ <option name="number" value="00008" />
+ <option name="presentableId" value="LOCAL-00008" />
+ <option name="project" value="LOCAL" />
+ <updated>1698048324225</updated>
+ </task>
+ <option name="localTasksCounter" value="9" />
+ <servers />
+ </component>
+ <component name="TypeScriptGeneratedFilesManager">
+ <option name="version" value="3" />
+ </component>
+ <component name="VcsManagerConfiguration">
+ <MESSAGE value="msgraph client" />
+ <MESSAGE value="migrate account API from graphrbac to msgraph" />
+ <MESSAGE value="fix sanity" />
+ <MESSAGE value="deprecate tenant ID" />
+ <option name="LAST_COMMIT_MESSAGE" value="deprecate tenant ID" />
+ </component>
+</project> \ No newline at end of file
diff --git a/ansible_collections/azure/azcollection/CHANGELOG.md b/ansible_collections/azure/azcollection/CHANGELOG.md
index 8de6021a3..e25da8d72 100644
--- a/ansible_collections/azure/azcollection/CHANGELOG.md
+++ b/ansible_collections/azure/azcollection/CHANGELOG.md
@@ -1,5 +1,78 @@
# Change Log
+## v1.19.0 (2023-11-6)
+
+### FEATURE ENHANCEMENT
+ - Update all test case Ubuntu Image version to 20.04-LTS, 16.04-LTS will be deprecated ([#1288](https://github.com/ansible-collections/azure/pull/1288))
+ - Migrate `msrestazure` to `azure-mgmt-core` and `azure-identity` ([#1267](https://github.com/ansible-collections/azure/pull/1267))
+ - Support `ansible-lint` test to `azure.azcollection` ([#1292](https://github.com/ansible-collections/azure/pull/1292))
+
+### BUG FIXING
+ - plugins/module_utls/azure_rm_common.py: Add support for custom ADFS endpoint ([#1299](https://github.com/ansible-collections/azure/pull/1299))
+ - azure_rm_virtualmachine: Fix `disable_password_authentication` not set bug ([#1301](https://github.com/ansible-collections/azure/pull/1301))
+ - azure_rm_azurefiewall_info: Fix `nat_rule_collections` not set bug ([#1308](https://github.com/ansible-collections/azure/pull/1308))
+ - azure_rm_*.py: Fixed sanity errors in the module ([#1296](https://github.com/ansible-collections/azure/pull/1296))
+ - Add required description to the document ([#1314](https://github.com/ansible-collections/azure/pull/1314))
+
+## v1.18.1 (2023-9-25)
+
+### BUG FIXING
+ - inventory/azure_rm: Fix authorization initialization bug. [#1271](https://github.com/ansible-collections/azure/pull/1271)
+ - azure_rm_managementgroup_info: Fix `azure_object.type` to equal `Microsoft.Management/managementGroups`. [#1252](https://github.com/ansible-collections/azure/pull/1252)
+
+## v1.18.0 (2023-9-22)
+
+### FEATURE ENHANCEMENT
+ - Migrate `msrest` to `azure-core`. [#1245](https://github.com/ansible-collections/azure/pull/1245)
+ - Upgrade `GenericRestClient` authorization from ADAL to MSAL - [#1245](https://github.com/ansible-collections/azure/pull/1245)
+ - Lazy initialization of AD resource credentials. [#1268](https://github.com/ansible-collections/azure/pull/1268)
+
+## v1.17.0 (2023-8-23)
+
+### FEATURE ENHANCEMENT
+ - azure_rm_virtualmachine:
+ - Support update User Assigned and System assigned identities ([#1177](https://github.com/ansible-collections/azure/pull/1177))
+ - Add support force power off([#1186](https://github.com/ansible-collections/azure/pull/1186))
+ - Allow to set boot diagnostics storage account to managed ([#1206](https://github.com/ansible-collections/azure/pull/1206))
+ - azure_rm.py:
+ - Add creation timestamp to `hostvars` ([#1221](https://github.com/ansible-collections/azure/pull/1221))
+ - Add an example on how to add a domain to hostname for dynamic inventory ((#1211](https://github.com/ansible-collections/azure/pull/1211))
+ - azure_rm_virtualnetwork: Improve documentation ([#1203](https://github.com/ansible-collections/azure/pull/1203))
+ - azure_rm_storageshare: Add support for `enabled_protocols` and `root_squash` ([#1216](https://github.com/ansible-collections/azure/pull/1216))
+ - azure_rm_common: Migrate ADAL to MSAL, remove ADAL from direct dependencies ([#1239](https://github.com/ansible-collections/azure/pull/1239))
+ - sanity-requirements-azure.txt:
+ - Bump cryptography from v38.0.3 to v39.0.1 ([#1076](https://github.com/ansible-collections/azure/pull/1076))
+ - Bump cryptography from v39.0.1 to v41.0.3 ([#1244](https://github.com/ansible-collections/azure/pull/1244))
+ - azure_rm_batchaccount: Upgrade `azure-mgmt-batch` to v17.0.0 ([#1202](https://github.com/ansible-collections/azure/pull/1202))
+ - azure_rm_batchaccount_info: Upgrade `azure-mgmt-batch` to v17.0.0 ([#1202](https://github.com/ansible-collections/azure/pull/1202))
+ - pr-pipelines.yml: Update test Ansible version to v2.14.0 ([#1182](https://github.com/ansible-collections/azure/pull/1182))
+ - runtime.yml: Keep action_groups and modules list consistent for v1.15.0 and v1.16.0 ([#1188](https://github.com/ansible-collections/azure/pull/1188))
+ - azure_rm_aks_info: Support to list all managed cluster ([#1229](https://github.com/ansible-collections/azure/pull/1229))
+
+### BUG FIXING
+ - azure_rm_virtualmachine:
+ - Fix `version_added in azure_rm_virtualmachine document ([#1180](https://github.com/ansible-collections/azure/pull/1180))
+ - Fix setting of encryption at host for VMs ([#1207](https://github.com/ansible-collections/azure/pull/1207))
+ - Fix typo `update_security_profle` ([#1194](https://github.com/ansible-collections/azure/pull/1194))
+ - README.md: Fix document link in README ([#1189](https://github.com/ansible-collections/azure/pull/1189))
+ - azure_rm_keyvaultkey:
+ - Fix an error when `client_id` and `secret` are empty ([#1185](https://github.com/ansible-collections/azure/pull/1185))
+ - Upgrade `azure-keyvault` to v4.2.0 ([#1198](https://github.com/ansible-collections/azure/pull/1198))
+ - azure_rm_keyvaultkey_info:
+ - Fix an error when `client_id` and `secret` are empty ([#1185](https://github.com/ansible-collections/azure/pull/1185))
+ - Upgrade `azure-keyvault` to v4.2.0 ([#1198](https://github.com/ansible-collections/azure/pull/1198))
+ - azure_rm_keyvaultsecret:
+ - Fix an error when `client_id` and `secret` are empty ([#1185](https://github.com/ansible-collections/azure/pull/1185))
+ - Upgrade `azure-keyvault` to v4.2.0 ([#1198](https://github.com/ansible-collections/azure/pull/1198))
+ - azure_rm_keyvaultsecret_info:
+ - Fix an error when `client_id` and `secret` are empty ([#1185](https://github.com/ansible-collections/azure/pull/1185))
+ - Upgrade `azure-keyvault` to v4.2.0 ([#1198](https://github.com/ansible-collections/azure/pull/1198))
+ - azure_rm_manageddisk: source_account_id should be storage_account_id ([#1187](https://github.com/ansible-collections/azure/pull/1187))
+ - azure_rm_mmultipleanageddisk: `source_account_id` should be ~~~~`storage_account_id` ([#1187](https://github.com/ansible-collections/azure/pull/1187))
+ - azure_rm_virtualmachine_info: Fix the issue when `security_profile` not returned ([#1205](https://github.com/ansible-collections/azure/pull/1205))
+ - azure_rm_backupazurevm: Use the module configured `subscrtion_id` if available ([#1225](https://github.com/ansible-collections/azure/pull/1225))
+ - azure_keyvault_secret: Removed subscription_id from azure_keyvault_secret lookup when using az cli auth ([#1175](https://github.com/ansible-collections/azure/pull/1175))
+
## v1.16.0 (2023-5-31)
### NEW MODULES
diff --git a/ansible_collections/azure/azcollection/FILES.json b/ansible_collections/azure/azcollection/FILES.json
index d314f7c22..3ef548ee8 100644
--- a/ansible_collections/azure/azcollection/FILES.json
+++ b/ansible_collections/azure/azcollection/FILES.json
@@ -8,10 +8,10 @@
"format": 1
},
{
- "name": "requirements-azure.txt",
+ "name": "README.md",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0d3ab574844946a3cb88cb12cac8a4380b0c7c8acb99bed574c5fb481f6d88c3",
+ "chksum_sha256": "5c2cfcffcf93c51cab4c38238a262431adacb67bd106fd484e730cc8cd17679c",
"format": 1
},
{
@@ -22,6 +22,13 @@
"format": 1
},
{
+ "name": "requirements-azure.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "575dc8b28a49511996ebd91849dc2d61bc5789bf68d2e1c28c9309a7d2ddc887",
+ "format": 1
+ },
+ {
"name": "meta",
"ftype": "dir",
"chksum_type": null,
@@ -32,7 +39,7 @@
"name": "meta/runtime.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "af114eb0e48183137f2fde23d6d77ea8970147a687c837e52a20cb78604b580e",
+ "chksum_sha256": "f348a65f8d5a078d41b7f9608bef523b5a63d577cea802bb31755bd21c62fd01",
"format": 1
},
{
@@ -43,17 +50,17 @@
"format": 1
},
{
- "name": ".gitignore",
+ "name": "pr-pipelines.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "702d6332d579931561017161f2d96eb3b023a006c94ed262d789411d0f21bd26",
+ "chksum_sha256": "b58b22a0b119202301503af60a15be12426baa3a8c9c82928bea87c9706b2979",
"format": 1
},
{
- "name": "README.md",
+ "name": "CredScanSuppressions.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "47923e21e1b1f0068efe3fed7da6302d7025459aef915dd0a2502d9645e993ef",
+ "chksum_sha256": "98c0ee6a0b7a115787cf109a8c0e2ea4a61df6751ecda37915b22ffb44a1128d",
"format": 1
},
{
@@ -74,7 +81,7 @@
"name": "plugins/lookup/azure_keyvault_secret.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b5657c1cee7e677d0c6bbb107978a38267d1e07d9b050fad19cbec413b41adea",
+ "chksum_sha256": "6f20418149499651d651da69502e509ad913074c5da1d4005a37b86b96eda0ce",
"format": 1
},
{
@@ -85,17 +92,17 @@
"format": 1
},
{
- "name": "plugins/doc_fragments/azure_tags.py",
+ "name": "plugins/doc_fragments/azure_rm.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e8c9d720dbc7605d3ee66799e8e81d0886e404c9a07b6b9b8edc844e0646de64",
+ "chksum_sha256": "e19514cc0040e3b896fe05729dc6d5c5bc22698aff5bfa12d85e5195fb019634",
"format": 1
},
{
- "name": "plugins/doc_fragments/azure_rm.py",
+ "name": "plugins/doc_fragments/azure_tags.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e19514cc0040e3b896fe05729dc6d5c5bc22698aff5bfa12d85e5195fb019634",
+ "chksum_sha256": "e8c9d720dbc7605d3ee66799e8e81d0886e404c9a07b6b9b8edc844e0646de64",
"format": 1
},
{
@@ -116,826 +123,805 @@
"name": "plugins/module_utils/azure_rm_common_ext.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4acbc55dc634fdeb3e4c055b444523acf354e6709b958596050f163568592baa",
+ "chksum_sha256": "ebf7c0c6f4ad7a05a04d740ca989a05cc4b22728acbd6390d9aa90931eca1647",
"format": 1
},
{
- "name": "plugins/module_utils/azure_rm_common.py",
+ "name": "plugins/module_utils/azure_rm_common_rest.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "606edcc9cca3e648db7d5c88e7561e8d4148c3cc523b9ad2142eac5804a81126",
+ "chksum_sha256": "81845c1924ae3be8f567d3d1eac2c01ddb1ae2a6bf72d41197423b4f37e59253",
"format": 1
},
{
- "name": "plugins/module_utils/azure_rm_common_rest.py",
+ "name": "plugins/module_utils/azure_rm_common.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "53ae072d4b4c3943049b405b0872a222a28c29f4f64ef430b120313c25d0ea51",
+ "chksum_sha256": "54a254f8975e14c17a5e60c7727ff1eb540e3027b1622066197184d5cb449267",
"format": 1
},
{
- "name": "plugins/modules",
+ "name": "plugins/inventory",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlserver.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ac36eabbde56c6ed8d32e1e708e86e0b02a6ac85ba8a1069b3cf2b91c7c1f6ee",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_datafactory.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1da36c4fd0cd07a25878ed7859039c2ddd6597bcfa01720a68347492dd101831",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_rediscache.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "557b83629f97b2b2307c641483cd158803a28659e5f8efd40aa25fea37c462e4",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_deployment_info.py",
+ "name": "plugins/inventory/azure_rm.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "292c3a0f562b370b6f572a5d5b03e0ba82fd9609406b48a75e9d2d2b13b9f130",
+ "chksum_sha256": "bed3077d86f3b8db29b588d99a2f8899e8b1c1a745727d85719ad9a1d264b71a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_dnszone.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f825ef2bc97fa1d8bee35f4180d873600af36063458d9ad901dc4a3c660de504",
+ "name": "plugins/modules",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvaultsecret.py",
+ "name": "plugins/modules/azure_rm_devtestlabartifactsource_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "04d1a312ebdb537b49cf8fa68d4a3893f4d3d0bb8a7a820a3fc44f3c4e75286b",
+ "chksum_sha256": "53f584ee94c091e0879eb336194eaef6b94504dfe999f493bd1d029e30d03127",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_recoveryservicesvault_info.py",
+ "name": "plugins/modules/azure_rm_gallery_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7fbb41c71996147f8d3d87cae800d7e7282cac0c22344b0b24b1c5f264a73ac7",
+ "chksum_sha256": "e1b22cd1253e69c51442a1e402ef64fbdccaa8ce61b05839041fd7c35a5a44ab",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbfirewallrule_info.py",
+ "name": "plugins/modules/azure_rm_automationaccount_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "01735c5b13076bf7addd1b0252a7cbfd13393cf9935fe8bcabe365781959d25e",
+ "chksum_sha256": "048a0c9b532196427437575202beaf31f8314efb70c67aa86733e6cccc14a98c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualnetworkpeering.py",
+ "name": "plugins/modules/azure_rm_privateendpointdnszonegroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1205bd5e4b0cf149badbf1548eb8053df46be138e94b5b83c9676087c15ba522",
+ "chksum_sha256": "70582f1fa2c40f77e166f00242bd6bff2e7c018368beaa2ac960328c341faa77",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_availabilityset_info.py",
+ "name": "plugins/modules/azure_rm_virtualnetwork_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c464064706e7c2e53445766acdd4a670d2b68a9b2b2ddf0ba4b9c5879dea325d",
+ "chksum_sha256": "39cbe4ccb66acb4dd36b893c9cb000846535c0726b8960e541a47f576fa2ed6f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualhubconnection.py",
+ "name": "plugins/modules/azure_rm_rediscache.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7360b65211c92c73677c4953ba206ecb13312762c2c620a57cff6333e0c2733f",
+ "chksum_sha256": "2323900cb0386fdd65ca6edada0a669ae12d6d87a9c08afb9bc92e150612a36d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabenvironment_info.py",
+ "name": "plugins/modules/azure_rm_privatednszone_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "92878bbd684969558369a571b7fd9ade1db9cdbd9ad89547d3f89372bcdf05e5",
+ "chksum_sha256": "d1ed854fff931a8a0295b9a4f82235bb9ed8cf5bb947377c51931bcf94dc4c9f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_appserviceplan_info.py",
+ "name": "plugins/modules/azure_rm_mysqlconfiguration.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e4f0fc5c72974480e9bede435bbfc0648a4ce37fc33cd65388fe90dd9cb19fec",
+ "chksum_sha256": "fff34c89e959affced009f321ef5cd6b6ad9955e711d69306f339ca4c15392e0",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistryreplication.py",
+ "name": "plugins/modules/azure_rm_loadbalancer_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "477a310f9303dc7b696ccb724f77bd234b2c45ee4bfcbe2ca8f4cda4f1889822",
+ "chksum_sha256": "b6b508842cc40fd4310a90e2bbad7733a50b7c43e29dc73dbccb304940b0f53c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabcustomimage_info.py",
+ "name": "plugins/modules/azure_rm_ddosprotectionplan_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ebc5d1ef44b5f012c125081034908adecfa3ecf8cfee882942e824bbaf51da8a",
+ "chksum_sha256": "9ea0ae1f2bcab647085f83b8223d763abf123afe3996d0aeb0f304fc8d4fc7d3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlconfiguration_info.py",
+ "name": "plugins/modules/azure_rm_hostgroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c619b88c383da85e76bfbbeabf16bcb06d2f0e9e0d392fa08a6ae508b3de9d4f",
+ "chksum_sha256": "7f3b26f577bb53702d0ed884da4c0c587dc6a186b7bdf9b87d3765c7dadcd89f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py",
+ "name": "plugins/modules/azure_rm_datafactory.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "56db10cbaef59fc0c443d9bd86bf5372802072cf5732c8066c7d218214c971b2",
+ "chksum_sha256": "5e54eadbb395d175730960b6e089b78c76cefeebe08dca0ab1ae80e4d34e78fb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_monitordiagnosticsetting.py",
+ "name": "plugins/modules/azure_rm_virtualmachineextension_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5bf14614ea9745167d68b040bc2dae3e39d7f3571c4ac8300ee84cbf85384a5e",
+ "chksum_sha256": "f845763404b68b32efe0187e0224cf30b7c71366531b4de508089df01f4849a3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_bastionhost.py",
+ "name": "plugins/modules/azure_rm_dnszone_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1ec272790bd6b94d9dfbe0dc462248c0ecc0b79369624d15c03225f36dce8ee0",
+ "chksum_sha256": "15da62156897e9dc73a74650198e57b4d6dce5bb761b1e0b0c86d19be31f1cce",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aksagentpool_info.py",
+ "name": "plugins/modules/azure_rm_rediscache_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "29944645e694dc258752791bd4f12db6b342c03c349ab4fd02be4ecec3685024",
+ "chksum_sha256": "af3900d503ca2de80407fa58b2a09e2835a2087315d12a6ae70145f738a71120",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adgroup.py",
+ "name": "plugins/modules/azure_rm_iothub.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bd86c61a597aebb1e178931d6aa1fe52d237033e958179e24c40bc8298612815",
+ "chksum_sha256": "aee9f30afbc1989ff7cfe64101c59d842dc635e59b34411d4045c428f1109b1d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistrywebhook_info.py",
+ "name": "plugins/modules/azure_rm_mysqlconfiguration_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d83d00c3da287e1ed154c87cc0f5781827c67b9406d16eeed8708730a12a176",
+ "chksum_sha256": "d9e284a3a0c4c2ec47a44ac4a7419358ab7d897488fa29de3ae616cfed56ec4d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_natgateway_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabvirtualmachine.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "021ebecacb738ca5dee8232ea800dc00df78d927690a63f4e0aacc84318ece9c",
+ "chksum_sha256": "b851e89e72b71469d5eeefb555948de70ae6372728745fa25761ab952164ae08",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_deployment.py",
+ "name": "plugins/modules/azure_rm_backuppolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2cf58936df2b1a3df183b6bd855272e83987692fb2cad8209b285a1ee4c4f426",
+ "chksum_sha256": "f16cb70c198028b5273e9d89ad554ed6a8e40217284a1fafb9658121c415b4b0",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_appserviceplan.py",
+ "name": "plugins/modules/azure_rm_batchaccount.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c505925c19a228a7d632cdbc5e63dc1bbb25e9bac1d960f7906b55756fa32a25",
+ "chksum_sha256": "1010400ee7ceae601c41e97f30336b2732cdab7edf899ab95edf706f1470f0da",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpoint_info.py",
+ "name": "plugins/modules/azure_rm_cognitivesearch_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5af5bd1029cb66bed1438a26af63abd3cd77b3ae8bab5618dac3b491dcc59d47",
+ "chksum_sha256": "8e5e926aea80ecc40b2a0c06745ed85287f4f6f83692af2ad78e7ea641c8d463",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webappvnetconnection_info.py",
+ "name": "plugins/modules/azure_rm_managementgroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "29e0729f1439028f37a3c8801228728f91f99ce08194832d3981b0a7fc2f5758",
+ "chksum_sha256": "728bb535e8dbf3211e4a79123dfa981434dc51423efb046e2bfa6cb35c5949f6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpointconnection.py",
+ "name": "plugins/modules/azure_rm_lock_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9ecc4f6823fed8b227500c7714851dcc9f398424d5774bf89f8dafca9afcbef3",
+ "chksum_sha256": "a176ee61fc34ddb3afb0a07d267ce819f0b85f1e271ae4f52f51004869014d21",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_dnszone_info.py",
+ "name": "plugins/modules/azure_rm_containerregistrytag.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05c9187df1957f9d3d1d748ebea17dd270c50a741846964e94cffef1f6948882",
+ "chksum_sha256": "9b6a6b029d0bff63cc6fd9cbbbc92f44337fd23d460747b942a4caf32731ad05",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebusqueue.py",
+ "name": "plugins/modules/azure_rm_proximityplacementgroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0424ba6eb6ef76217410a0d8378302b466fe5b8c37be6d9081fa6a60dca57919",
+ "chksum_sha256": "3e049bd091a4b88b2d68b6462d3cc15d740fcc65f5d3e310496513be40a83661",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aks.py",
+ "name": "plugins/modules/azure_rm_virtualmachinesize_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ea35fb2d395c703446cfe8386af7cdd580126028f89ee7d1900c6e97b3f90f3a",
+ "chksum_sha256": "24e4730a6256f17cd27877328ed90580bcd2ac93c1b3718b70e18d8c574769a5",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbfirewallrule.py",
+ "name": "plugins/modules/azure_rm_vpnsite_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "002b28f29a420fc52cfa882aaf00aada340c67bca5951f33702899dfaba2bbb6",
+ "chksum_sha256": "63c87ba7508bb5c7e2f4968c4975b8e85e27260474dcb6f7d558295f9c56a946",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_lock_info.py",
+ "name": "plugins/modules/azure_rm_keyvault_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a21e077cc5c7a85b46359b6bd6a27f6ca81bc3f2b5c632559369c1ab784d998a",
+ "chksum_sha256": "42dc1992f6870d92fb0c00e196491d148037561a16f1a3980da71a450d8d1150",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_dnsrecordset_info.py",
+ "name": "plugins/modules/azure_rm_virtualwan_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ce13d83217e276a01bc5763cdfbd131090b35c64607738dc052b7ef9d25a3068",
+ "chksum_sha256": "3e7d2fdf7181de1499b68196f176080a9563767764ee9bb27bf3e3411cb87a75",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlfirewallrule.py",
+ "name": "plugins/modules/azure_rm_registrationassignment_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0dfc21fcc71ef8a64894af0c62a50dcb6deb17582a7f35bddc79dde51fc8576f",
+ "chksum_sha256": "ebee000acc1f85898adb717c015209d78a231d7a4130d20293c103c1e01dc57f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webapp.py",
+ "name": "plugins/modules/azure_rm_sqlelasticpool.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cee92a7e39dcb163bec1db9966454602f7bbc0f1ea102480949ce7c4fddf2681",
+ "chksum_sha256": "a127cd3108b9eff43c793296f6239ee10df0810222dae4c44b380e45c01e36eb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_autoscale_info.py",
+ "name": "plugins/modules/azure_rm_routetable_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e14312a922f92c6ef0937f020aa7511ff9fd2759567c165796e257e65201b73",
+ "chksum_sha256": "1e849400c3b71a0bb6652ab1d40e919288b3dccb94314230273850f31259de8b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cosmosdbaccount_info.py",
+ "name": "plugins/modules/azure_rm_diskencryptionset.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b19072e8ae6d606c0edab3e407d2a405d21ebb8f3d614ef93beee02422037089",
+ "chksum_sha256": "d4f85b7a7c7da95b7fbd3a084a15af87fd037134c527056a14f48ae1e58b9a9f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabenvironment.py",
+ "name": "plugins/modules/azure_rm_storageshare.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a0fb63c466f07c95c6f05e5ff2d66320e5b37e8f1e3fa316ffe36a8428d9d1f5",
+ "chksum_sha256": "d70dd044b1bf421773c6438c7c9020906810f7e1e74523e8855133a8fae9360d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlelasticpool_info.py",
+ "name": "plugins/modules/azure_rm_mariadbconfiguration.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b7a80a678294c636c3dd4bc5dbf9b7955a4d1aaaa40757b2a24922072e71543b",
+ "chksum_sha256": "f54c337f3d115d08dcac88d6e4fe16ef1db3d9dec1833b033928f227d89ea11b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cdnendpoint_info.py",
+ "name": "plugins/modules/azure_rm_eventhub.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "46e3f5c925eec47e7246827a356caa6c03547e647186bb3b6aeb7b37a5099ceb",
+ "chksum_sha256": "aeadcc0ec44f966ae318556be223ecbbe4198c412c9d34d1360d724aa919ce0e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vmbackuppolicy.py",
+ "name": "plugins/modules/azure_rm_mariadbconfiguration_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "44f49f470f1364e294d105ada7d43fd907e0988415a42bc6fc778617ba752b5c",
+ "chksum_sha256": "783f344263d15fef8444cab2f98286515b584c64945f759d1c45ab3363ae1304",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabpolicy_info.py",
+ "name": "plugins/modules/azure_rm_subnet_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42a4c839bc9edacc106ea98025e391bfb2be640ff453a23fa915bf5483c8ac1e",
+ "chksum_sha256": "781c564f40087d071942dab53c627fed093764c5a244744874e2226ec174bee8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_storageshare_info.py",
+ "name": "plugins/modules/azure_rm_functionapp_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c30615415440ade0b39196ccd619a923cfce2162548c18c7edaec635f46e84e3",
+ "chksum_sha256": "1e0f3de0ed340f2e1a5cb2b5b4cb8b7cc9c6c8eafe4483cdb38b58878482b589",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_hdinsightcluster.py",
+ "name": "plugins/modules/azure_rm_iothub_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1f9b621f938b0570eb3e9515725997808d6f2309ade3bd61aec462f27d0b31de",
+ "chksum_sha256": "5ceef9d30aeb4826188b1c96a6d955955e99ae90a1e8b9ff437859f82a3cdd5a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_openshiftmanagedcluster_info.py",
+ "name": "plugins/modules/azure_rm_batchaccount_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6ff2314a47bf072921a74773ad167ef9061dc5ad8ad29c54583f6e629ac285da",
+ "chksum_sha256": "b823cdf2a1c2c41c40d0db12e5bd637598f388db9beb0eb2e79e1c940aed39d6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_subnet_info.py",
+ "name": "plugins/modules/azure_rm_aks.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "696339e48df4d1c0f6ea50fb2036f43dba92ad6097e102889d85c0ad9b764652",
+ "chksum_sha256": "3da4a613aad9785a4d3b764ef386699d796167b12c9291019fb17a204fbd9db5",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_iothub_info.py",
+ "name": "plugins/modules/azure_rm_networkinterface.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf4cfbd73db4d003a322d06112a652991e56643689faf5c4ceb3c621a41e4d96",
+ "chksum_sha256": "7216e23eac5fe34435ac3f8cb111b6c68cab283ec4dba61a4c9efc805221e8df",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_resourcegroup_info.py",
+ "name": "plugins/modules/azure_rm_subnet.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de3d87159dc3b1dfc118bddad95a4666bbb767b13ebd793b6dfce8016b19348b",
+ "chksum_sha256": "0b0cf9127582749f7d680b30cf94545c7ccf6b2a1d28903387ea3bae45e14ef7",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_resource.py",
+ "name": "plugins/modules/azure_rm_cdnprofile.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5e6a719d9c2c10e6b8099968b9cee9dc4a33d70610e7166fbe7d9b2900cc63bf",
+ "chksum_sha256": "8051fcf46e6ef1061831461ded14aa4fad1a59c7a5dfdfd3d90d6816db8df475",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbconfiguration.py",
+ "name": "plugins/modules/azure_rm_azurefirewall_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6d8d79de6e81076cad897a9b1b12a52462d4bf15505616fdf3d170c21dc2ab42",
+ "chksum_sha256": "6d62301f903c8d8e1075bb7d29412f91b65136344d0fb915eb5017f8936142d9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vpnsite_info.py",
+ "name": "plugins/modules/azure_rm_roleassignment_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "78e052905dc10bcdba43971fba9600830c127b9255bd59c17d8b948e07385adc",
+ "chksum_sha256": "3287b7ad7063115ef66dc443b05f4ceb6bd22d46cd8fcec1350c6e9e64289b3f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_notificationhub.py",
+ "name": "plugins/modules/azure_rm_adserviceprincipal_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "542b060b5a8b5a434eb16d3258a235f58c1af7480557ef0269e98f5008d5d5ba",
+ "chksum_sha256": "6ec6a6ab5cd644af2cc67b32e41258e058a5e7cad8b9d45a25eb7865edceda0e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_apimanagementservice_info.py",
+ "name": "plugins/modules/azure_rm_webappvnetconnection.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c77402fee55cfb0fe5e7b24475dbb16dd8933bbf98a9787077d166883bd6006d",
+ "chksum_sha256": "5f823a8fd9802af336c53b103f05d687a20989e92334d7bc122f7ccb62a6a410",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_roledefinition_info.py",
+ "name": "plugins/modules/azure_rm_hdinsightcluster_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "40f784387f3973478e4eca1c3dc95d03b607684eec3a503d9539ff912bdb065a",
+ "chksum_sha256": "9531f6f0a60132fb1ab9b2e49ab271ba1a630f75682b44197f61632daacb1a0b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqldatabase_info.py",
+ "name": "plugins/modules/azure_rm_securitygroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f61d5d8e5ab4fe38d062a4be11e6da2e7ba8f9570cbd57da31f9b5d4f7c20035",
+ "chksum_sha256": "961d9d5ad4d46ff1acf101c19ebd88813d5251f89ec7e1f4ea809827cc3b5392",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_route_info.py",
+ "name": "plugins/modules/azure_rm_servicebus_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38e2e790759c8cd148397c1562b5c2d11d77e602c976706ca6ec47ad5ac82e7b",
+ "chksum_sha256": "56677b7274f63fe629975901c0c3f2239a58b3b44d6f42d5e8327e283c49cf22",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbdatabase_info.py",
+ "name": "plugins/modules/azure_rm_natgateway_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e2beced9a1e5e206b51add106ec935f93d11a382fc1cfb02cde4653c8c0e8e28",
+ "chksum_sha256": "05d862d157fc493cab345fea70f17c3913624364407562a9a2d884377f69f586",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlserver_info.py",
+ "name": "plugins/modules/azure_rm_deployment.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9430b33e1b8689c451779a9e510c97f48e65a13e85d252b123a0fa367d2bf68c",
+ "chksum_sha256": "a51562a752c8d9f77ea8afa4ab966ece92c6d868f7eb939a9adcc28c800fbc2f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_resource_info.py",
+ "name": "plugins/modules/azure_rm_adgroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b95ecf5c88da9be4bb9b5de2a69a5c9e012e5fd7e78a8b7ed4683c098386fe94",
+ "chksum_sha256": "8e06b65183c867879b4f34b3b65c24e1d77d6fa1007b90c7f433e658b418d9cf",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlfirewallrule.py",
+ "name": "plugins/modules/azure_rm_virtualmachine_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df437f8d158a6439ca3ce9f0bf9521abf56deda973797bc43519756d135854c5",
+ "chksum_sha256": "371f0c2e8c15271dcede607bb8cfc52469b506a12b2e3f74adcb7d8beabff4b9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabartifactsource_info.py",
+ "name": "plugins/modules/azure_rm_privateendpointdnszonegroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bb0421601c84d90ecc996ead0d3545e82167ea8f836abc75e2c2724763e64c08",
+ "chksum_sha256": "d516440379341b68c65581c8d9da78f6a204845502e408c48875851c58229241",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_gallery_info.py",
+ "name": "plugins/modules/azure_rm_virtualmachineextension.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e358d5d80aba5329f4029f1e4fe71ac7265c6af33b18b5e3cc7f43acfda35f93",
+ "chksum_sha256": "09bd02e50c12aa9e602e8ac7b4312b2619be27b656114309625c9aa39fbcb97a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualwan.py",
+ "name": "plugins/modules/azure_rm_roledefinition_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "649f6ca93b8c5c39177032a048eb69ea2861811c04b2f88fd26ecd6ff7f9a7f4",
+ "chksum_sha256": "20f17bd7a42d8ebe0d377d9c81754be478f94591e038c65850658c3be6b88422",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlab.py",
+ "name": "plugins/modules/azure_rm_privatednsrecordset_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f13d634939a9b6ede4232809a91a686954248c9358bffb9397bb1a46af9790a0",
+ "chksum_sha256": "ca64fe771c93ee29952634b1acd63d8ae35c0f36b4ef3a33f6ac1ef0994e2e42",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_image_info.py",
+ "name": "plugins/modules/azure_rm_roledefinition.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c6dfd163560a3389f0d12d364e61a5a6e6bb87f50b2fc08965b19285002b600d",
+ "chksum_sha256": "2916e92b6ed98170b35ff1c4bbd3a970ffa11323b2bbb01e37271110072ed33d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_automationaccount_info.py",
+ "name": "plugins/modules/azure_rm_proximityplacementgroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d58220fca342e7d1bc2facc36fe1350609a1bf36f53f0a517a6057909e18355e",
+ "chksum_sha256": "c39137e4926c1749a04adc516a027a08e7cf2ebe2b21e7a95675fd0a546777b9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aksagentpoolversion_info.py",
+ "name": "plugins/modules/azure_rm_virtualhubconnection.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ea88bd02b62e542b456b46676784f196500e628d747102b3fe4738b2b972d992",
+ "chksum_sha256": "2b3ba5bbf31b9e64c4e0978fa92768ce9115fe39450f5dd8085c775fe4ed2716",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_networkinterface_info.py",
+ "name": "plugins/modules/azure_rm_eventhub_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3304875d8899cb9e33425372bf19d0e880979a4c703b4a8d1ca688896084d64d",
+ "chksum_sha256": "840c5f5441849b9ae7c489f04bb2fd065cc4192ca4a8143c1fc052c2845e002f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachineextension_info.py",
+ "name": "plugins/modules/azure_rm_sqldatabase.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4462ee68f8753800127b29f8cb26e4542425a39c5d9a4eeff9ca34c98a01d52b",
+ "chksum_sha256": "4ad23bc0505f7a62a03434a0c94c2eaf90ed06c4d5e4ccbf05f169de465fd693",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_loganalyticsworkspace.py",
+ "name": "plugins/modules/azure_rm_webappvnetconnection_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c3eaaf717a8dcfef31dafccea334e863980d7f5225f83a7f65499998c2aa7eef",
+ "chksum_sha256": "cbb81f50bdad8e9d738f6a8ff9566898df41fec03e92e3b03383228de5607fff",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatednszonelink.py",
+ "name": "plugins/modules/azure_rm_servicebustopic.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a206192aa45d1f30ad91a779cb0934c49fc0c01f7da18a07aebdecd0b4333949",
+ "chksum_sha256": "3061e6f04b67b71c3c7d09566a35916f130745ffc7dd1b472385d78587140da3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_ipgroup.py",
+ "name": "plugins/modules/azure_rm_resource.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f2bf42d8b4c828a40e8ed0aacd42d2bce3a128e71d1d0a537081e204d761a8d0",
+ "chksum_sha256": "546c902f77832ea142cffe5b07b7babab61081094e713733857f4efaaf71aa63",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py",
+ "name": "plugins/modules/azure_rm_firewallpolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c5d5b78feb99ae118bef399a1f39c9689c293d1b9ef5a120c0f7d29bdad9c871",
+ "chksum_sha256": "1e1cebf4f29a286751549a9a5ccf06451bfb9648151d54ca813646f1289dc8b9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_apimanagement_info.py",
+ "name": "plugins/modules/azure_rm_containerinstance.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "92edd852dad3cdba63ed9ce78fb0891f509dccb1e1e21acd73547e681962f6e8",
+ "chksum_sha256": "b3c13189f840de2aa3047eeb145d3f1680c40a999a45b92325f70a92ff950296",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vpnsitelink_info.py",
+ "name": "plugins/modules/azure_rm_adpassword_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c2fa6b67b6163684b312a9af9cfe1d92364ec7f2c3b240e249d54df344a08754",
+ "chksum_sha256": "6cc6cf20421203712d3890dbe04dcf4c96d7ba99f3eff6d700d03addabeb93fa",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adpassword_info.py",
+ "name": "plugins/modules/azure_rm_postgresqlconfiguration.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cf9a32a1b8674d0bce0b22c0a3ca953195ac6b83bd6e6ae6096d83dbeea19f39",
+ "chksum_sha256": "c5a5c9f631bc9ef1eb1d64acd039457dc38a52c84e5246589b9f42df904aa37a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_diskencryptionset.py",
+ "name": "plugins/modules/azure_rm_mariadbdatabase_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ad75019b7e2c48efb740547e6b8664dc76dbc7f46b5ae4f1307dc4a1a633a87b",
+ "chksum_sha256": "abe1fd7778f01c877a7c8d74170c74a26e39de0d5295b3e856adcc39fc7367e8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_functionapp.py",
+ "name": "plugins/modules/azure_rm_backupazurevm_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "59b5ae364fd065ec8a59fd413934c477d21565748f11e588bc3ffb94431d6333",
+ "chksum_sha256": "4e25e335897973b2afb89187cbd96429e89fe688347be78a73dc4049c3dc3986",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_storageblob.py",
+ "name": "plugins/modules/azure_rm_cdnprofile_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ade223098ab192a1b165695596036b1f9f0b3871845b99f77e2093eca24a76c9",
+ "chksum_sha256": "11acb43afaee020e3b3c252d5c1d3e9669ddcef8f3941635b1bce4d411b9c12e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_monitordiagnosticsetting_info.py",
+ "name": "plugins/modules/azure_rm_backupazurevm.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7b04ea29c1795db69f2e12e716e8e09d8ff83fc05bf93a010926ef044cced8a9",
+ "chksum_sha256": "b1d8a252ccfac8973cf591771b6d7149c2bbf4f788366e1dc2b16fef8d52cc61",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebus_info.py",
+ "name": "plugins/modules/azure_rm_resourcegroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ddc707b76677db9631536f8d7e796e65cbc03347fb9b2206fffdf01733729fb",
+ "chksum_sha256": "20900d4b10ee5f7032fc409be2eaafc00521f8799c56559d8ac88fce00e4b2eb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabvirtualmachine_info.py",
+ "name": "plugins/modules/azure_rm_datafactory_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4746334e6c0767e153ded7c89b67fa2ad6b341d16d600b8451cdc0ec23ab3b47",
+ "chksum_sha256": "97332f814785d6c0aad03a37f0126454115c0f219379529fefa421bf9ea20b53",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_azurefirewall.py",
+ "name": "plugins/modules/azure_rm_virtualmachine.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b237d06a26a381ece50abb9a390525e2ac8d41216e47db64c6515f2a7cf2191f",
+ "chksum_sha256": "a71e48a19a1f43d47a46951e936b6cf187ea87170d247326449f9a6fbdd1bc79",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualnetwork.py",
+ "name": "plugins/modules/azure_rm_gallery.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "154db13a7f90bcb954624802c8999a0f2b636c79b185656470fe441e3d050d74",
+ "chksum_sha256": "d75d837aeb5b9292babe25fd49f7b24e516c4ae3ac3707afeab09bf801cdc711",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_managementgroup.py",
+ "name": "plugins/modules/azure_rm_devtestlabenvironment_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9ac0238eb048983f35dea0b775c89623556249eedae511a6d4583c9d09c6ebf3",
+ "chksum_sha256": "a33bd3a6e60f1153b611e1f45fc4c99b01b9ff2342e92171e823bd8016b2be0c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatednsrecordset.py",
+ "name": "plugins/modules/azure_rm_devtestlabvirtualnetwork.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c7e50777a183ab50fdeb35947617727032f293979436bc36c611f4138d576173",
+ "chksum_sha256": "4c52da65b8749ffc924d5206dc8a4f29406dd208cefd20ca78cd5f30c9184e77",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webappaccessrestriction.py",
+ "name": "plugins/modules/azure_rm_containerinstance_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bdb472e0f09598e62af2730b39bd2684d141d38ae41837f132c27e8a39d626ae",
+ "chksum_sha256": "ab1aa37508addc2bf616e2c13664f2a1e5e0235af91db2bb84542449d01fc67b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescalesetextension.py",
+ "name": "plugins/modules/azure_rm_cosmosdbaccount.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "68f54cfbc3dee06ba295677701af2e25a718fc258ae6d832c77de8ede0f6086f",
+ "chksum_sha256": "d6c644934b50c99c8839405f78cae5aea90c0f6b2a9ae4f74a9f761467ea7cd1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabvirtualnetwork.py",
+ "name": "plugins/modules/azure_rm_mariadbfirewallrule_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6fa7a70d833ea55daa428b6881a741c0deed4a0b82ae167a5d6802199f0eace6",
+ "chksum_sha256": "7a2b125c6e0ed19d1fe70703e24ed9e4257713c492e927785fe35cdf789afcc2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlserver.py",
+ "name": "plugins/modules/azure_rm_devtestlabartifactsource.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4121ca062182f651d89c0729f34a4724a39520549c32f63231c74ec7b66a4962",
+ "chksum_sha256": "1b3f24465ae9f40d6adc4e61d6e1f34d78345b5ee88c5c5958ed401b3146b79d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachine_info.py",
+ "name": "plugins/modules/azure_rm_keyvaultkey_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "89ab6732833bf9bbbc639542612449946bd59db1385a79e368de8e47aa9371f0",
+ "chksum_sha256": "23eaf4510c03b121fc24ba8a116b26e35563af5ee9875d7210557caf2e6ce9b2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_proximityplacementgroup.py",
+ "name": "plugins/modules/azure_rm_trafficmanagerendpoint.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b509d24b53d7895f676c980e139dd5e463bcb43cb2f803b9c4259b397e6887a7",
+ "chksum_sha256": "48772694d9d17d8d0f6b0e6d44c4359dbb35861116c38fa933b0db93981f7a76",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_galleryimage.py",
+ "name": "plugins/modules/azure_rm_mysqlserver.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "eb81199490da37abf78eaafb86dab3847c06d3cf636ec92264461ca6d36ec43f",
+ "chksum_sha256": "7f7cb3ce5875e72550cd314cc3df490cbbce0292265c927038897d026b573514",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_apimanagement.py",
+ "name": "plugins/modules/azure_rm_mysqlserver_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "15b454fcf0d36fa5e33dd0c364288a8d4b775e0d033eb29c73c980c811cfe86b",
+ "chksum_sha256": "595b1221845b1ff1d61c133eabb34930f9e9d0b59cd2ee853cddc487b182c57b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpointdnszonegroup.py",
+ "name": "plugins/modules/azure_rm_cdnendpoint.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5bce497ed8f0fe499466bbd20c1acc772dcd458828cca8fba6efda9db9ff8fcd",
+ "chksum_sha256": "7e105391561b1552efc4ea6e587d5a9dc60c61c6e7847ea036481b5923a10f26",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_bastionhost_info.py",
+ "name": "plugins/modules/azure_rm_vpnsitelink_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dcdf18934767abd5f6912ce0bb9cbbff6954c79fab3998fdf9ea3c75f5f9d604",
+ "chksum_sha256": "c12058e056680201ef2358025ed148b9338a50eebace5b8784cc9acdc525093f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_storageshare.py",
+ "name": "plugins/modules/azure_rm_multiplemanageddisks.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "82210aa73136b890cdd41a098e28368d64b17744e33d8220c3b240645ceeb461",
+ "chksum_sha256": "95a1386da7e22dc74338466668e3542f37584f4272481fc56b298ee95053d23e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqldatabase_info.py",
+ "name": "plugins/modules/azure_rm_iotdevicemodule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5f14bd4d988a83adb45c7efd192d78ace3049f8a114fb13887e04bd5d2810993",
+ "chksum_sha256": "b8bc59ae66ec54ff0773dfe858b91a946df973f93e06c12b571b20d16a2142e6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescaleset.py",
+ "name": "plugins/modules/azure_rm_azurefirewall.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "317ae1eb91fb3d44053c307a8c48dee56f20f254801f496fe0e994a40dd5e9a4",
+ "chksum_sha256": "da90ad6d785772e86a709e378eca2143faf638bfe60f3d362d578ec54302a0ac",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_publicipaddress.py",
+ "name": "plugins/modules/azure_rm_loadbalancer.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a74b3d36674d81e191c97c89b7a62af410e11bffa6584324f5fcd09af93eff63",
+ "chksum_sha256": "40bcb2a088750276d350e5170a7993a5e92117948835d6bd30dcf5989db2cf11",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistrywebhook.py",
+ "name": "plugins/modules/azure_rm_trafficmanager.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a51de04003a696a7787d1d50feab809d4dcaea7d949410fd7a714fc19323ebd",
+ "chksum_sha256": "9aba8d8ba13076c53f797b5c999af3dbc951849450ca138ce6572804eed67a22",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebustopic.py",
+ "name": "plugins/modules/azure_rm_registrationassignment.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7384a10983b632462a263c9a1955a37a241df62d6ff99f5673ddf81bb4d597e8",
+ "chksum_sha256": "075669114ff7606dbf4aa144d0e7fc51441b7ec8230c36f2951884d40ea502b7",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_networkinterface.py",
+ "name": "plugins/modules/azure_rm_galleryimageversion.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f35a9acfd351c7634c475d7de186ad6347f1daa3e412937554ba1a21d5f5a395",
+ "chksum_sha256": "dfdc102dca75eaba97460f3f9a47a0ae0eb375714b030959a3781c9e12d675e2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_natgateway.py",
+ "name": "plugins/modules/azure_rm_devtestlab.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4bf1206a802dca51ce3aebd308aa2d1be7d5c92ab7cc9c1627f24e7129c9a43a",
+ "chksum_sha256": "e45418f49d7b45ab7a6c29f17bc6f12cc0607a21179fce4a4f428d1419b1abc1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_backuppolicy.py",
+ "name": "plugins/modules/azure_rm_devtestlabcustomimage.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "450276cb63df1322157d6f7598a4008100b39db42e46284fec965ae6d889e5c0",
+ "chksum_sha256": "4398962a6b78efc7b3faabd07af0cf4c31eafe25ec2fc23430a7385fd3c2050a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_securitygroup_info.py",
+ "name": "plugins/modules/azure_rm_virtualnetworkpeering_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e86da6e0083e46c3ce35b5ad9cce5be81e674f58adb88ad34e25fc450ae5f0e6",
+ "chksum_sha256": "70b548cc3d9362d2c6a3c0ddedbded5ec61be98334bb43d0c59cad8a95065898",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlfirewallrule_info.py",
+ "name": "plugins/modules/azure_rm_hostgroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e65ac200019da53ae0420ca181f815b1bc4164382312907a8f3738b57e1113c8",
+ "chksum_sha256": "05d3069e290c810fe454923e22f4aae4932aa8924b12d872039904d87b779a07",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescalesetextension_info.py",
+ "name": "plugins/modules/azure_rm_openshiftmanagedcluster_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a3d909b1b73e9779524abaea50c0b7c0585e51449eb419e2b2655061d1d5e01",
+ "chksum_sha256": "061e20df32528b861d5ccdabd7b7e8bd5abdcf0ea2c3c973f561e656223ce0b4",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_galleryimageversion_info.py",
+ "name": "plugins/modules/azure_rm_appgateway.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a516518ebf35ff2ca1033e9b2e5ceb2b2280841a163a1f6914ab9bfe32238e15",
+ "chksum_sha256": "04b1dd5413cdc81f642e470db6cdd1ae1ffa77d2b9b42e845b4bbf111235b650",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlconfiguration.py",
+ "name": "plugins/modules/azure_rm_virtualmachinescaleset_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "88f2607f46f15e8da9955e0c887ac6d238dd1970f7e99ad48ff82679add2717a",
+ "chksum_sha256": "5925fb4d64f27c1460dc96e40aaa1eabda5612174aa598a717856b2861540662",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_appgateway.py",
+ "name": "plugins/modules/azure_rm_galleryimage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "81616d62785ad1b0c868a6cb8fc6135388e188b8032d9370cfae013f9d0245b5",
+ "chksum_sha256": "89a14ee3f36038d0da78d7f7b586361e5acab82f1cd66c1c8278d840e12e2023",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_registrationassignment_info.py",
+ "name": "plugins/modules/azure_rm_cdnendpoint_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7d9177184a680209b8e56af0dac845509316784cda76b7825c8a8f80c9e5556d",
+ "chksum_sha256": "6d355f726042e8bb6f9729fbfe486980b2a88813cff5a9f92017a0df75ab2f48",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualnetwork_info.py",
+ "name": "plugins/modules/azure_rm_route_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "487edc7987098e0c1f5d053a71f9ce405f5fb48721e39eca4c3078e948a8fcc5",
+ "chksum_sha256": "ec951f25bdc8b4944f43e054e44fc1887fbdb8cfaf892f5ce57174cf251b442e",
"format": 1
},
{
@@ -946,1249 +932,1221 @@
"format": 1
},
{
- "name": "plugins/modules/azure_rm_loadbalancer_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c3695020309683c704c9372d512e39f2bf9f831d31f4ca6ba49a8acc65037526",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_virtualmachinesize_info.py",
+ "name": "plugins/modules/azure_rm_keyvaultkey.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "58a1ba100e397ef2512a9de6cbcac15175fe5f5beba9a6a785e3f4485583bf18",
+ "chksum_sha256": "d9e0b37c1eb77dc2d8efe7a97a0715f2d381a59937cc6ff5ed8a7ce769ab558b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webappaccessrestriction_info.py",
+ "name": "plugins/modules/azure_rm_virtualmachinescalesetextension.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "35ba519123a781331e81e7d80a138c74b2a201f1a8834cb0c02720eec69e5869",
+ "chksum_sha256": "a8ef46432cfcc51726f0e9d1ce8003a5e9820432a253d897b420c8423c178f74",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webappvnetconnection.py",
+ "name": "plugins/modules/azure_rm_mariadbserver.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "80a7052dc658e5ce741d56bc35239816efca9288d3d7a05ab432153cec23fe04",
+ "chksum_sha256": "6c671f81b7aff21b252b4844b16135a8fef889b340f66337e394d87e249e4a28",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_recoveryservicesvault.py",
+ "name": "plugins/modules/azure_rm_firewallpolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0418507db2bfd0fdcf67872ee7dce7a760b512aaaacaec837db424f77fbc8d42",
+ "chksum_sha256": "58980ae98ef0f3eb07237bd685eaf312369a68a484aaebef40037697d83cdec1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistry.py",
+ "name": "plugins/modules/azure_rm_deployment_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8cc2c27f4472a39809871236626b260bd63d83f25ad2252d6cdfcf198568cd59",
+ "chksum_sha256": "2b2f239c18ae7533a69c8a3e380840171bedc20dc4330ffb0b0f14c9cc5bda25",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adapplication_info.py",
+ "name": "plugins/modules/azure_rm_publicipaddress_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2290d31890d77182a5299231bea9ea69420c330cd020361041ffb4b7825c9dbb",
+ "chksum_sha256": "7c60893a6d181b60254e2b8e2dca0aae0c83c1f98bf2e1a6f2ab6206a222112f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adpassword.py",
+ "name": "plugins/modules/azure_rm_keyvault.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ae544ae7af099828e9a7b584903a61b10e4fe50c7222573db643f10c755e455d",
+ "chksum_sha256": "4689bcd312be6a35cf796ddbb8a5594232054f9a27c638b6e843c2adaa6b55ee",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_autoscale.py",
+ "name": "plugins/modules/azure_rm_postgresqlserver_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c8ebe2e04d994d192a13e01b6ca30ab1bd8f2fd071ff441290e5bc113aa86b96",
+ "chksum_sha256": "41eccd6933ff71ce9f0bbfe939057aeea30beaf4c6e475887a7bf21df6a48f67",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpointdnszonegroup_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "70582f1fa2c40f77e166f00242bd6bff2e7c018368beaa2ac960328c341faa77",
+ "chksum_sha256": "2e8336f66de22809f5693b7c84af84f768d51992685a1daa3ef42f1416eff4ce",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aduser_info.py",
+ "name": "plugins/modules/azure_rm_manageddisk.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38b7483a49e73fde79815078b47f00b7fc062eb5e91c660715141800aacbc227",
+ "chksum_sha256": "7fae72b490febd8d03292056a034e797aa68fb3fd52d9a849bebf3ac7b67d6d2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vmbackuppolicy_info.py",
+ "name": "plugins/modules/azure_rm_trafficmanagerendpoint_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2cf17b31cc74838e9ca66d203999d3254cfaf6c602dab7c22101952e15cede3f",
+ "chksum_sha256": "19fa3f18fc08a32e65b2dfb6c0b74a7a4827a2afcb36409214de9887899e754e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adserviceprincipal_info.py",
+ "name": "plugins/modules/azure_rm_keyvaultsecret_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "60c7a8360cef3b04f1637660dbd49d92384896e8b8388d6e51e1b2cb9323f1f7",
+ "chksum_sha256": "82a8e53b9e615d6d82467cb28b4572b1dfcb128f9a4b19ccd98c613465504c48",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_ddosprotectionplan_info.py",
+ "name": "plugins/modules/azure_rm_adapplication.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8bf47ad3f075bd81eafd9a3b7f2a18e71c267d0dd34e971f64a38c3afc572cf5",
+ "chksum_sha256": "1169c9823bdf7024c552003dfbbdf1067eac2186883bf5cd7904be5d49b99352",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_hostgroup_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabschedule_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05d3069e290c810fe454923e22f4aae4932aa8924b12d872039904d87b779a07",
+ "chksum_sha256": "775594a1c43e4e67957e6f1ef498b2fc8e04fd2d60d8215d1471084f19f9b0f6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_backuppolicy_info.py",
+ "name": "plugins/modules/azure_rm_applicationsecuritygroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df3f35c4d1d82e9d036782bd83fb11b8f761a706356360a540e44a36b5d1ff5b",
+ "chksum_sha256": "805be7606a6145a9b4c942f63a9aa46ffc10366b8e3bf2af0c64b8009d0ac9eb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_storageaccount.py",
+ "name": "plugins/modules/azure_rm_webappslot.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c194d6385c64558c4fc8c0ec572764df5bac7dbe60774a2ef60bd8b9a46063d1",
+ "chksum_sha256": "d7c28a3338c7a7ecfa0da50def079ab83286aa1750aa52d13944fbac4fbf2399",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_expressroute_info.py",
+ "name": "plugins/modules/azure_rm_vmssnetworkinterface_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3dc3b73518d56b39abe77177143426a27ed1605699ba751395655df469f3cf02",
+ "chksum_sha256": "968c1e5781fdca422d62eeea87dd9ac45132e5f03c7e3a91ca6b15d0683eb944",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualhubconnection_info.py",
+ "name": "plugins/modules/azure_rm_virtualhub.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c73e7278360297a3f1f3a33404c20b2bc84d264dfe69e78a7dbefb94cb866c52",
+ "chksum_sha256": "be9396630b6c0d0cc7dae7688cd87421f4770dbba2ed92b2712761ff722ae8a5",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistry_info.py",
+ "name": "plugins/modules/azure_rm_cognitivesearch.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "088eb49fc6d399e81acfd21ef6cedf92455caec49bf3273153ba0b6316da136d",
+ "chksum_sha256": "8665ce3ff083d18608c7ed9b5fb778d6248e9cfcc096b464535d041457d9af00",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_monitorlogprofile.py",
+ "name": "plugins/modules/azure_rm_iotdevice.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df245b70ab6d3d354e89cdf92d311e7d94f0b28a4bc0a9399712994f31b8ef68",
+ "chksum_sha256": "6d0f2a6f2f913e9d1f9547a9b601d42f5462c867480915f6ab2cc54674e6f2ec",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_rediscachefirewallrule.py",
+ "name": "plugins/modules/azure_rm_virtualwan.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "47fb0d6e84f698478cbd319c6d058f7737b553be61896534818934ca9b3088a6",
+ "chksum_sha256": "4bf8e8dc2b63ad03eed2d1f50fc68f3026e00528651b132570b009e8d93232a5",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_trafficmanagerprofile.py",
+ "name": "plugins/modules/azure_rm_openshiftmanagedcluster.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "65176590401d92a76ec626a551e4c464d09b01299bbd476abdf591424b8a0e68",
+ "chksum_sha256": "1af54e81954603964c195560b80f5ae452877b564f5a86443f65b3d0f70a9e24",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualhub.py",
+ "name": "plugins/modules/azure_rm_aksupgrade_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7e49a0de4973e1c91d190383b5c37961937eedb22592a11362f699e0b4453151",
+ "chksum_sha256": "e40923a0ba91ba10ec91ccd2960c60501d5e60c0287ab2578c66d756b865409f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_managementgroup_info.py",
+ "name": "plugins/modules/azure_rm_privatelinkservice_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ba1f6df6a9e04361433214fd6117b34140c394af1e9e7a6888f91f8b762487a7",
+ "chksum_sha256": "02a72af00f3442e3cb5a19ba01bffc4cb2d47f646abf1a5ae0a125e80a8313ba",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_galleryimageversion.py",
+ "name": "plugins/modules/azure_rm_adpassword.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b8e574bcc037636d6ba0f767831c661aeb8185b8bc6967e83f73c1aa3452187a",
+ "chksum_sha256": "0dca5c21f80f4d60aba58dadbfb2581c5488ce7e1c6a9c2b2bfcc03d33863689",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cdnprofile.py",
+ "name": "plugins/modules/azure_rm_vmbackuppolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8c49948c21437f22861fc3df155a4f60156800366ce1f5d39c58ba9125e08b68",
+ "chksum_sha256": "23626d1e4710adefaddcad8cfa9f427ad1e2a9bcaff28b61004dd35b50c72e72",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_iotdevicemodule.py",
+ "name": "plugins/modules/azure_rm_natgateway.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4a15152a01225166acf0aa2cdf8776c151fd3ac7d765da506cdd99bd9dd79d60",
+ "chksum_sha256": "fe420872335d019070072b7541d79579eba9887f0d80e96d195ed1aaa051aea5",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualnetworkgateway.py",
+ "name": "plugins/modules/azure_rm_automationrunbook_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "70fb310b8119486250298eb4b0583bd82dbb5d14a6a6c52208f68057777d93fe",
+ "chksum_sha256": "bf2d4439d7ef7f6b0f0ec04b345e5919fef980d15b6fb3fda111c2df53c18d16",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_image.py",
+ "name": "plugins/modules/azure_rm_devtestlabschedule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b7438a302d8de7f60006d5d0e79faaf574f630c9eba9f5126d6c9667d3cfa728",
+ "chksum_sha256": "183397504be9789656fe18261844a247d3ff49eb267693819ce1f265c8d6d6d6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aksagentpool.py",
+ "name": "plugins/modules/azure_rm_securitygroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "46507ba41eea54bc1041cce2026c1c91e74bee0a1c03396be763cae6477983bf",
+ "chksum_sha256": "85ff31a12227b44cdb6c43ca52addfbfed8eeeb192f7d1747d2e66e828731c0c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_loganalyticsworkspace_info.py",
+ "name": "plugins/modules/azure_rm_devtestlab_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2ff6f2ee119001765d22ed1f643f9d4a8604b7c746d82904608cd35e256a6fc3",
+ "chksum_sha256": "84e99ed4f611c9c6d9551c77b83f0d056b68b7eb188b269860eebad6230ff299",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatednsrecordset_info.py",
+ "name": "plugins/modules/azure_rm_bastionhost.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ca64fe771c93ee29952634b1acd63d8ae35c0f36b4ef3a33f6ac1ef0994e2e42",
+ "chksum_sha256": "ade78abbea1c467a8bf4787d227a0a96979482b15d05e3dea2ede57f91ff6f7c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_datafactory_info.py",
+ "name": "plugins/modules/azure_rm_registrationdefinition_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "33600c4c03848c4e536ae6066cc029732a563d7810c61eb06366715f728b8140",
+ "chksum_sha256": "1c6615dbd5f7a904854e0dffad5b8ac364059a4fd93e86529a7257577423aaa6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbdatabase.py",
+ "name": "plugins/modules/azure_rm_containerregistrytag_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "68b40425e3e53edfd9c674dc3d3ecb6ce9acf6b38fd1ddcfc12f63d3f87e43e1",
+ "chksum_sha256": "99cde6ea4e4b3f5216131583a7f2ce0dc1777e836d93089733da276895c65b44",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_loadbalancer.py",
+ "name": "plugins/modules/azure_rm_sqlelasticpool_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "498c78e74e6493af9b701f69cb56fa94ae3b64eddbbb507ca6e1ace8d6f56fb7",
+ "chksum_sha256": "05959ef86783c8274fe64c2c1cec19208c37b3d038e6556ffb3a20b51813375c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbserver.py",
+ "name": "plugins/modules/azure_rm_dnsrecordset_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2f2f2bd865bfb2131db7541e5a9628d1b54c6e53e96cdbf1618f21697aba8377",
+ "chksum_sha256": "ce13d83217e276a01bc5763cdfbd131090b35c64607738dc052b7ef9d25a3068",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlmanagedinstance.py",
+ "name": "plugins/modules/azure_rm_backuppolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "370f538327f02e8e9fd308de4d4489a883c54d3a8a4806867109fdd8dd9e6c2b",
+ "chksum_sha256": "37cfea022ca13c6ea40025ae4ec9d00f9e962fba506e1a5708bc00dcfcdc9116",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_roleassignment.py",
+ "name": "plugins/modules/azure_rm_webappaccessrestriction_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f2cecb9f769039249c55fd4f02deda468edc587d0e63d9a9f32f4c1817289416",
+ "chksum_sha256": "c72ded459dbd8c58642c77aba5cfab56a86782f4e19958ded25f9754a32c1591",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_apimanagementservice.py",
+ "name": "plugins/modules/azure_rm_aksversion_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "89c9a6c332a40377c7657bef3e33fb90b87c8d88839fb6e2192cee39e2fb6a83",
+ "chksum_sha256": "1bba9dd6d78f0d87c751b71c9ff5a29ae856cf4a3326813d8b07d9607e3af2db",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualwan_info.py",
+ "name": "plugins/modules/azure_rm_mariadbfirewallrule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4542ee838ae409b161fee050aa55a071afa71a294f2c1128b615c5eeb1241941",
+ "chksum_sha256": "6c028f0fdd933b4a02b6c92f20432fc3617072d8828898f628e02554d25c31e3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlserver.py",
+ "name": "plugins/modules/azure_rm_roleassignment.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bd3e6f09aa6ead8a155f1e6630a6bcf53e15c342a21b57803e7f12a15438db22",
+ "chksum_sha256": "981eea70440c35499110fa7a97cc7259e7cac1ed2f790ffcb1c247a51bfa6fe3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_automationrunbook.py",
+ "name": "plugins/modules/azure_rm_containerregistrywebhook_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3cb4caef7658d8d7dab697bb4659e96ca52fd32ae8a20588d208d2d06bccccf",
+ "chksum_sha256": "18b7a6844956e67318fe818bdafd0c94d6631657ec33d529e721e6e21b18ed89",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_iotdevice.py",
+ "name": "plugins/modules/azure_rm_adgroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "05dcd59d9fd81f9c45b7549b0c4e1c108dad9cf12ccafdb8df322a5f8c4ad716",
+ "chksum_sha256": "c1117a3b1c468a121dc8a76aea672cb7c839dcb094a2a7fa331f925029699666",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabartifact_info.py",
+ "name": "plugins/modules/azure_rm_keyvaultsecret.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7f474b7c34cced12411188bf6b1621376c5ccc4c5b752cff100db6ac5ee1dd20",
+ "chksum_sha256": "ace3f948b102b233b72d82b67a5b9c74d9cf650b4c04d397e427ddc15f3d45e3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqldatabase.py",
+ "name": "plugins/modules/azure_rm_loganalyticsworkspace_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "83531748d065461c880b055df18853d233c48197d6e4d3dc0075878fab5f788b",
+ "chksum_sha256": "b2ea8f5bf029879cd6b7367c7c07d1f638453ff39e0c9f64c04db9afa3a57f8b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_firewallpolicy_info.py",
+ "name": "plugins/modules/azure_rm_mariadbserver_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7640f87ea3490451f86cd6552187bf7d898ac14dabfd396c9d7a05c7e3927ff5",
+ "chksum_sha256": "3b836969fea8c255c6aeddca297111eef43141755a9b61677661dd581bb2f1a4",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webapp_info.py",
+ "name": "plugins/modules/azure_rm_sqlmanagedinstance.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "68a7809631f30219be67fb49904890dedf33bbf0abc1c543c0c358cde36e9e6d",
+ "chksum_sha256": "f022f6e315be9d163c042e9253682d15faea83c067917cba012202532f84f955",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_webappslot.py",
+ "name": "plugins/modules/azure_rm_managementgroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b3f12d2434943e10d2eb06054014e166e5568d746c169c8fff4486aa043cf9b8",
+ "chksum_sha256": "d0c2f5410b682701b672207c321041af369dfc116f79b5531c8942f573882eb8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cognitivesearch_info.py",
+ "name": "plugins/modules/azure_rm_galleryimageversion_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ff6241aced96abf6d228204778b98af2ca39d0d800b078a27d47164084c3c9f6",
+ "chksum_sha256": "04410811676cb31554c731e12e6803c9e24e238645d16332971573645d01d396",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqldatabase_info.py",
+ "name": "plugins/modules/azure_rm_privatednszonelink_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4f6afeeb88694de978ea2ed8b21a25077459c6753b9cbbfcd64a2aaf1ae2fb3a",
+ "chksum_sha256": "93d488b4238c4631765dff43c9a6978f3bef9d8ff35294dba4f34772a85a4284",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_galleryimage_info.py",
+ "name": "plugins/modules/azure_rm_privatednsrecordset.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de802be0f7bc024b6e899656e36314bab3ff8c45518fe700a9fe28b92e2ca12e",
+ "chksum_sha256": "2b2eceb8e654a1bc257a065f5ef324c69dd6f5b1e9b0126ffd49afa77ff51367",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_diskencryptionset_info.py",
+ "name": "plugins/modules/azure_rm_containerregistryreplication.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "586109c40b10714b5280368db2802fca8d4fc87f797e2b0d5084bb5e7a4df3df",
+ "chksum_sha256": "94d2e1237ef94377586760a091785272818db4bddc6a54d24badee82d7697437",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aksupgrade_info.py",
+ "name": "plugins/modules/azure_rm_trafficmanagerprofile_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "db9ca4e8e6a327bc77383fef268e81a9d70bdf3b41c4d031bd5bd5bbb9a7d325",
+ "chksum_sha256": "b99d27f1679a3d1fafdec74448bfdf2977930e8cef05f0b6d720971b4f6b8c8d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlserver_info.py",
+ "name": "plugins/modules/azure_rm_privateendpointconnection_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "297e7c9a749738d8faec1588f18ffe87113b808e50efd5216aa1f338f5360b0c",
+ "chksum_sha256": "a1c9260c99294e6c9f4579310504bf656d46b2ed16d22188859945cc53563fc0",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_dnsrecordset.py",
+ "name": "plugins/modules/azure_rm_postgresqlfirewallrule_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "024875c538f604b6cd017696843d9680d15e9ad2940608542ba4632ed59cacee",
+ "chksum_sha256": "53187b006213c221bd5391b2b45734080afcd9e63280f4181f6355b5db7258dc",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_backupazurevm.py",
+ "name": "plugins/modules/azure_rm_route.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b773c5bd5339e9b95f521bae7cee3eaa929e72b10fa71494bb33dee1f11196e6",
+ "chksum_sha256": "f290a0e704d3225c8689ac3a7a9523facc263adace73b8193906cb5ee94bffbd",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvault.py",
+ "name": "plugins/modules/azure_rm_apimanagement_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f41b7403d3c04cad0a262ed370792c11ec3a75f155b08d5c357226e4ede0fe6d",
+ "chksum_sha256": "2c6da107654adcf08a5e6cf5f49473ea21b5dd86db46d4e2ff10868449108a02",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatelinkservice.py",
+ "name": "plugins/modules/azure_rm_image_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "48c03bb5c957cf1e46d42843c7af662c781be6876007def2dc4cde7709385e89",
+ "chksum_sha256": "c6dfd163560a3389f0d12d364e61a5a6e6bb87f50b2fc08965b19285002b600d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cosmosdbaccount.py",
+ "name": "plugins/modules/azure_rm_apimanagementservice.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ada84e6e50a2662bb66c041e69706aceba5bc0f237f308bdbaf4d5d53e6cb0fe",
+ "chksum_sha256": "ff029a940b4e0f844a8623115c7b6fdcda06b8f9e192e20216f4b42d5093550a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_proximityplacementgroup_info.py",
+ "name": "plugins/modules/azure_rm_ipgroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e049bd091a4b88b2d68b6462d3cc15d740fcc65f5d3e310496513be40a83661",
+ "chksum_sha256": "dcb8c2107767aeeae8dad3a39e68b5a1c475d9eb91e0a9c72b3276461fe0f4cd",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_applicationsecuritygroup.py",
+ "name": "plugins/modules/azure_rm_servicebus.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b71a4b975ba9c59ecc4cf8199d3008f0bf7c73e27b3a7b6c9a43c59a41d28236",
+ "chksum_sha256": "f7379123759b383d1c9b39442ddff6beb7910e1bb6c68ba570a8d59eed2c6e95",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqldatabase.py",
+ "name": "plugins/modules/azure_rm_privatelinkservice.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "86a0055ee5af7615250de7b9215e0e96e1c1f37d3900155f4cbd48b2a540f70a",
+ "chksum_sha256": "5c56fae085180b9c34424f1cb9fce62adaac67e7107f556702f1a8b9ae00025a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_hdinsightcluster_info.py",
+ "name": "plugins/modules/azure_rm_sqlserver.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3397f10435940d52ec784f6f4c3b3d379e7eebd91e1179fb8509d73250bf8d0b",
+ "chksum_sha256": "9b0f2f7674cdb4641de9a2b8b50cb74e91e36ce0a07e0c3a13330592574bee71",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebussaspolicy.py",
+ "name": "plugins/modules/azure_rm_devtestlabcustomimage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3729f4dba8215497e263dbf466a1c3444469ced9acaeb80fbab328806306036b",
+ "chksum_sha256": "39b5c1b0361bdbb8e5782066ba0593c4e4fbcdc52243e1b2ac05e6fa8451920a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescaleset_info.py",
+ "name": "plugins/modules/azure_rm_servicebusqueue.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b8327ec79e23b105eb3bfe8f627e8de5319e3e6641aa538f4eb9518592286b51",
+ "chksum_sha256": "5ba3c26da0e1437c64c3a7d945886563965b08c9fef67f099e97990ef5f50290",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatednszone_info.py",
+ "name": "plugins/modules/azure_rm_appserviceplan.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ff7ef289202833ebfbe72ed58a26a8a2673d797bb47fd4c0a816557a7f58b769",
+ "chksum_sha256": "4230691a8fb4f96611ff509e19f598304daf58104bd7c4e01b0d3e90311a2a93",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cognitivesearch.py",
+ "name": "plugins/modules/azure_rm_privateendpoint_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a9bd5c1af6a336f864f15757a9d66acbe033f3fbcb8a84e8c10e9b1ecfde60b7",
+ "chksum_sha256": "b34126d4fac558a5077869099cf1327fbecfeab36e6e34b30c4fe809d59b92de",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_iothubconsumergroup.py",
+ "name": "plugins/modules/azure_rm_manageddisk_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6165d86ce42742d545d0a93a693f476fe4f1354d37ada4626f4bc1f2c2341665",
+ "chksum_sha256": "3b7b7131b77965c67a34ae4c9ddb9def5c3d30a5a76498c51580486063693f71",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_backupazurevm_info.py",
+ "name": "plugins/modules/azure_rm_mysqldatabase_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1a9c7973369978cf2a1d7ea9f909f3bc24b486134d5efc67db3f3f2b6d258e49",
+ "chksum_sha256": "dad732afe34bb2972eb39f7fea721d46f644e46383da754563295ebe767e4c43",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpoint.py",
+ "name": "plugins/modules/azure_rm_resource_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9cf71bc67a11a058b6eac5f7c06c3a003ecce968f6fe09285f43dbd81f91fdf9",
+ "chksum_sha256": "f893b49f22424b9a2d18d9e27cf088eda9e6afa89606a337ad6771ae728be1b8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privateendpointconnection_info.py",
+ "name": "plugins/modules/azure_rm_virtualmachineimage_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a1c9260c99294e6c9f4579310504bf656d46b2ed16d22188859945cc53563fc0",
+ "chksum_sha256": "81e679d55f2d54420d960d51e6f0318cec3b781dd37a062df0b0ff9e1756797e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aduser.py",
+ "name": "plugins/modules/azure_rm_autoscale_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cbc3bc935e68d08396690815c7ae2902df26ba76b3dff86c46068dcb339af380",
+ "chksum_sha256": "7494564289cd93cb8e34bf724deff6fd4fb7ea335233703e1aa2a930860e1d40",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlfirewallrule_info.py",
+ "name": "plugins/modules/azure_rm_privatednszonelink.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3c208e21075ed318d02d1929647894adb0ea5e6a509e5c888ba21eb6fd9fbdc1",
+ "chksum_sha256": "4166cc9a7e671531be63455046c657896ef9ec1e35a84f7c9bf5bc39cd50bf11",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_multiplemanageddisks.py",
+ "name": "plugins/modules/azure_rm_containerregistryreplication_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ab5536fb372cd70f6a76146dc91981735af9ae402734660b6ebd2b638320cd69",
+ "chksum_sha256": "b88adc68c275d1c2608313a8bca60f7805a473e33df0ff3b75b3ea0deb915195",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistrytag.py",
+ "name": "plugins/modules/azure_rm_subscription_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9b6a6b029d0bff63cc6fd9cbbbc92f44337fd23d460747b942a4caf32731ad05",
+ "chksum_sha256": "27171c677f1e2b5337edce509b64021d2bb2708d2b476137b3e4ac96df1631af",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvaultkey.py",
+ "name": "plugins/modules/azure_rm_virtualmachinescalesetinstance.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0efee578ee17f9b39c27f82c1b12bbfe5b29326fb20f30cd9566ffc0a0d6fc3e",
+ "chksum_sha256": "dcc42ecdde859c43817703218fc0582a4e44750f21b9e8ff33131266c2422916",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabschedule_info.py",
+ "name": "plugins/modules/azure_rm_webappaccessrestriction.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "725084fb31a59725da35e985c4cb6b5a6a1c26e0a5b1e0469a9b1e195d25714e",
+ "chksum_sha256": "a31793686f398ccb3ea7c32aad8341b808e06449bfe5ed468303d74a5406cf2a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlfirewallrule.py",
+ "name": "plugins/modules/azure_rm_hdinsightcluster.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e6c2c640d0f0df2b35c5d64b8a6ac089a5256d169e148cab7ec5f591c2501803",
+ "chksum_sha256": "3c7386b43f9f3278b17baf8b6e69bc3800389b1d84c34e49ca9e3f407d30a1eb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistrytag_info.py",
+ "name": "plugins/modules/azure_rm_sqlmanagedinstance_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "99cde6ea4e4b3f5216131583a7f2ce0dc1777e836d93089733da276895c65b44",
+ "chksum_sha256": "5b99b1ab21f96e28642c56ee1519c5a9189bc3c0b7c3beb40c11c471012dbe8d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_openshiftmanagedcluster.py",
+ "name": "plugins/modules/azure_rm_snapshot.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4581968e7d86e0feefaebe6db9719b30ee724b3749d712a83fa74a388cdbff3e",
+ "chksum_sha256": "11c8c5143b3a5229dbf2615d75f3b121b4ee6f008945607d5b7656de2b0ac861",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_storageaccount_info.py",
+ "name": "plugins/modules/azure_rm_virtualhub_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e9f50809d29dce63792c856534ea339a448945bc2557140e4285ce1d1eedbbd9",
+ "chksum_sha256": "3a9de2d79f400506887f8b86b4a8bbfffb0e0558eae4ce954d8410beff977af4",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vpnsite.py",
+ "name": "plugins/modules/azure_rm_storageblob.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "23ec84e9336fb715e9d733c1c7351f7692215baa5c974d4ea2d191da59ed593d",
+ "chksum_sha256": "4c7ef09d4dd98bf61d0036a34e1d4e9f0df45c91b3d94c030e17dffa7cd91644",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabvirtualmachine.py",
+ "name": "plugins/modules/azure_rm_sqlserver_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fd4ea797fdb70f8f7524c53b112211229261b569cdf11e3d6ca86e6dad84ceb4",
+ "chksum_sha256": "31710e981ec3af5a7ab221d4679e06e7d7baad4e1cca7a1e9809536cf07c8899",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlconfiguration_info.py",
+ "name": "plugins/modules/azure_rm_virtualnetworkpeering.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21ca71cd2afd400b71d7490ca240db6c936f8ff230b45d55cffe7374ab3dfa29",
+ "chksum_sha256": "f0ee463d7cbde4f3c704542e0ff6e8220b22f436b1014b15a355e8c832845ffd",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adserviceprincipal.py",
+ "name": "plugins/modules/azure_rm_sqlfirewallrule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "7b6b3b609ecb52a78f5b50c825242781f62232e2022801a3bc40aadc3dc7501b",
+ "chksum_sha256": "bf215ff5460bd7561374c1013e93dd13406286bedf9bb34fe5c63a423d65b996",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_publicipaddress_info.py",
+ "name": "plugins/modules/azure_rm_virtualnetwork.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2d34ab141f819446533effde97d356adae01af9f17c77687981a41161606ee5f",
+ "chksum_sha256": "d1f54cd77a98a82bbc32959ec20f38af893dc0a41c442c995ed64d42c53ceedc",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_manageddisk_info.py",
+ "name": "plugins/modules/azure_rm_privateendpointconnection.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "42d1fcd7fddb4c8d491dd0929ca0d4baa30380c575eef40ccd96858ead58a30e",
+ "chksum_sha256": "9ecc4f6823fed8b227500c7714851dcc9f398424d5774bf89f8dafca9afcbef3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_firewallpolicy.py",
+ "name": "plugins/modules/azure_rm_webapp_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "781d2da4df538c4d7af6ce544649bd0f706cdb59f65a91f4178a68d1f361cba5",
+ "chksum_sha256": "ea1c14d6f336c8e2a1fd62056450a013f912f7fa3a186921548ff7ff8fb59d29",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_resourcegroup.py",
+ "name": "plugins/modules/azure_rm_image.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a403c77e2ac4037370e7ec2591eb54412be483728ade4e9c4555509cc5d9cb79",
+ "chksum_sha256": "a4648f6095259498761c468442ee994954306f5a112c89ed427e4381dd1b9447",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_rediscache_info.py",
+ "name": "plugins/modules/azure_rm_routetable.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5c674ba80adc3248e6bca9f65fe8be32ddd8598815b7872d76223ab6d0c31347",
+ "chksum_sha256": "903a9d84fb9a4c7aac19a8c54c32e414e364570fe6d02b56427b8c9a8263e979",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_automationrunbook_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabenvironment.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ceb0f3fa7498a033ae3e518cb6ea458fe86021b254dfc79347296051215c2c6c",
+ "chksum_sha256": "d3900fff1e5d5b5bf9c80ac7261f044f6b0de361eb7e31f1f48d741bfab9b00a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_trafficmanager.py",
+ "name": "plugins/modules/azure_rm_recoveryservicesvault_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "415d86c6d0faa2177a8d620e0dda1d0e7638b37d9ebe081ee0ccdf171c0bae2a",
+ "chksum_sha256": "0f58e9dc7ce66f1695f5038e3e9bba321e93a1e5dfd98d9a37c8d8963587078e",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_trafficmanagerendpoint.py",
+ "name": "plugins/modules/azure_rm_aduser_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dad1b818859460f2f31fac35c20b6404b27e53c7ce8ca48b8eb7f0b4a1d35d63",
+ "chksum_sha256": "1d2353c2a497cc22bf6e3cd4fe2f8c52f60f4f556645ada99f014423005a0937",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_routetable.py",
+ "name": "plugins/modules/azure_rm_account_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "146505731614ef21002261069557950a8ecdb59de26851815e80a8efe57ad36c",
+ "chksum_sha256": "ec36327053b86b179229d47231e614d5555b32d1c8bd6368f913743f07fa7f84",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aks_info.py",
+ "name": "plugins/modules/azure_rm_mysqldatabase.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1c33473a8a593fdc663efae33798ba557973a9fdd7bd13f6f3d28018cd4e583b",
+ "chksum_sha256": "69e4485770b2c839f24749ec8c5aa3ee693f8afd7ff6bd01c62c0df79275c8d6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_azurefirewall_info.py",
+ "name": "plugins/modules/azure_rm_notificationhub_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cd9f899b87d4263474f2e16873be3e7bb864aaf883592ffc766d1f825c9157ee",
+ "chksum_sha256": "07c91492398c62e54b267d583d55287c485fbe4ca5112305e0c0cb0883500e89",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_datalakestore_info.py",
+ "name": "plugins/modules/azure_rm_adapplication_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a20c6cea4fc464dbfc27684921cad74f406cc623478cd6ca2ecd9037ed3d1cd",
+ "chksum_sha256": "6a61a1e98531303dc5b6a44bd86ee60bb9c45aee7569a9ce92ca34e5965724af",
"format": 1
},
{
"name": "plugins/modules/azure_rm_iotdevice_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "44ef66db0ee8e5c2241705d852f1da9a0de914890af18dd863dd1ffc1aeb9ea6",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_devtestlabarmtemplate_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "68f3bbf22df1b1932233c2d83aaaf48cb9bc8d6ae951b122098a74815d936f19",
- "format": 1
- },
- {
- "name": "plugins/modules/azure_rm_privatednszonelink_info.py",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "93d488b4238c4631765dff43c9a6978f3bef9d8ff35294dba4f34772a85a4284",
+ "chksum_sha256": "87e22ba60e4ab700ee3bfad366690b044125b0f66091c88bc346dcc88e722262",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualnetworkpeering_info.py",
+ "name": "plugins/modules/azure_rm_mariadbdatabase.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262200fce2b7ed028d68c9d6aefb9961cd27b201a127e0a172d0d38f6cb2320a",
+ "chksum_sha256": "f8dc569f2de810f80a09d827c276f44fd85dc254766b82bed9769846f41008b6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_ipgroup_info.py",
+ "name": "plugins/modules/azure_rm_containerregistry_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "49b6efb5ffd80fc37d17c320869411ecdc589b2bc857d9584fd273b5ee2f818c",
+ "chksum_sha256": "b176c5d28ade7bb04fb50a82ea0c59987cc004136fcfc37a50cfa240d8c29cc3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_eventhub_info.py",
+ "name": "plugins/modules/azure_rm_postgresqlfirewallrule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4b233adc26c96f491ff1fca40bf7ed4b4348d7b7aee123b36e15f3be74e048b4",
+ "chksum_sha256": "6a0ef8e59ec7d273bd94d6e8e40f6ffe8e0a313f8e8d912b9ecb71c5db6ea662",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_gallery.py",
+ "name": "plugins/modules/azure_rm_recoveryservicesvault.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2f15cc6e7b24ad0093a915c0bc91a781adf80163b81739b3c81634812f065cf0",
+ "chksum_sha256": "6e465a4c809eda3d9360a644350366ab9fd430da1720a2aa9df9407dd8e49621",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebustopicsubscription.py",
+ "name": "plugins/modules/azure_rm_storageaccount.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "944ad33c591b909af10403f521bde04c898b571194ef607e18cf6834c13c1d3f",
+ "chksum_sha256": "ccc3bf0ae991b6d1312489d910c777727be7c266f2c9f0c69f114ac73be0bdae",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_servicebus.py",
+ "name": "plugins/modules/azure_rm_postgresqldatabase_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e5ab60ebf5c75e9ad2ce94633126aec9e0cd514ba2f0906a92ab607645c96a25",
+ "chksum_sha256": "3c896791d9f215a0ab5c7cb5315bcc302392ba07eea4081b4c68cf392c7013c2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_subscription_info.py",
+ "name": "plugins/modules/azure_rm_applicationsecuritygroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3c9554454fef7600e1befca0a7b88f202e142ab7fd7727ff327df3e4bb0829fe",
+ "chksum_sha256": "58f5338441960bf8824f1ed9eec52bd6c5c2ec9d8c6ab02e8a5872afd388ed39",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_routetable_info.py",
+ "name": "plugins/modules/azure_rm_expressroute_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "da7f7d8eaa544f515c76fa513b984d641f362d8c66b8068939854e7825ec517c",
+ "chksum_sha256": "5e302a549f10b209ec9b8d61051f3ddf478eea0e4d99d8eb9af1db568975994f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqlconfiguration.py",
+ "name": "plugins/modules/azure_rm_servicebustopicsubscription.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d692d9cc4732b17e1ef96257af505685ecd5389d1fe12abb5c70121e481260c5",
+ "chksum_sha256": "7ffbac3a815640add669c05c8c29d78ac433ccd8e9762540746eef25457f6829",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_lock.py",
+ "name": "plugins/modules/azure_rm_availabilityset.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "858b4a4357dd80fbefb9c62265d91f31019794c9077526f6703c95b5d7c077a3",
+ "chksum_sha256": "685bb7c2dfeaac6f1042b164d014064dcad6b8865cbe764da3ea9ab5f23a9a76",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_subnet.py",
+ "name": "plugins/modules/azure_rm_virtualhubconnection_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a2fb831b234a530cf52f264eb7e98857ab06b96085cbc706a12d5b20366e0632",
+ "chksum_sha256": "948b85322d1c84b4eee3709f69f2de166232472a675dd26e125c099ce13517cc",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlmanagedinstance_info.py",
+ "name": "plugins/modules/azure_rm_automationrunbook.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b818ebcae8e63d025d9c53bb531a77fc656b13e14e6466cfd555811060668797",
+ "chksum_sha256": "c257d3afae0b00ae9b09d6d5f04373def1e678ea99cd8d5778c8425d64ea0058",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_hostgroup.py",
+ "name": "plugins/modules/azure_rm_storageaccount_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d9b45a4241eeae89e588a7353afa1921b1b867ec547345212ee54033291cfbf8",
+ "chksum_sha256": "27c35c2191216b55c0af4ed133c20d78f95450cfb3d7bb3605268e7db1119ad0",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_ddosprotectionplan.py",
+ "name": "plugins/modules/azure_rm_vmbackuppolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9792e817aee295bad9eb0c3a18830487a05083a13e214f638b2f15d8461a88b3",
+ "chksum_sha256": "3f0d9e125fb25e8e1fe6e575c4b4f2a51a6a16c601d52003802d6836c5215ba2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_expressroute.py",
+ "name": "plugins/modules/azure_rm_postgresqlconfiguration_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b59f1aef6819e805e56ec5ae5a56730b09b6fa2efd80391446e11edb7b73044a",
+ "chksum_sha256": "61b7807ec717db7657e825a2c1bbd815ede63112b9ce0bd4811e1c486ef01fd3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_functionapp_info.py",
+ "name": "plugins/modules/azure_rm_functionapp.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "06b0906d76d55b0eafb3b427a0b945cc869b010798f262dc16f7f91442da2baa",
+ "chksum_sha256": "b36955b4ade5a066cf353dc80387fb9e7419fabf07664db38510b29c6931282b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_trafficmanagerendpoint_info.py",
+ "name": "plugins/modules/azure_rm_postgresqlserver.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "487daa4470eab01a47f548aee589e40d31891767490a49a9c8b3b377beb96c06",
+ "chksum_sha256": "665e6153c4700277d41a5b0b83a65601d71b3088868f8e8f93229b91a3d660b1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabcustomimage.py",
+ "name": "plugins/modules/azure_rm_sqldatabase_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df3b7beddbd323f387134c8e22c190f9fd3fa452ac3739460e9c6808bac6cd37",
+ "chksum_sha256": "d97f650c2b9d89769f4089c17e2d64c1ee066e5295e757119f270be7be10b25a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_registrationdefinition.py",
+ "name": "plugins/modules/azure_rm_apimanagement.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6497ac35a0079109f824bcaea8fa11681c9426efe8c9846007de2578c1230f75",
+ "chksum_sha256": "c56dab10921ea4cf7c3244ca5a1f0f24074b3927f0d5f42e0fd82dfd2b305fa9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_availabilityset.py",
+ "name": "plugins/modules/azure_rm_webapp.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "77f4a1006580fe15c6dcaaad9d45e1dafc0fb2c93832069fbdca274cc061bea9",
+ "chksum_sha256": "5d6121e5cc0c2e61329fcade74dc3092db8e6d47db080d6734b6f20e9384d50f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_vmssnetworkinterface_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabartifact_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a102b9949b97a9e7b8a2f1821dd96a9a3cd3bb3244e1fb41b60777b71aa4cdef",
+ "chksum_sha256": "d3e22ef863e1e999fce8e6dd95bda54e1f140e0c55de17fee5ebf40a51d35b53",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_aksversion_info.py",
+ "name": "plugins/modules/azure_rm_registrationdefinition.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b45e717994e236e77ab4599a204eb61d193c7d176b67a34d3620e68aee5edb3e",
+ "chksum_sha256": "9f987c3e5b1b9ad19919ebe6b60ef05e8bb1d14980c25931d505994f07dcb4bb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cdnprofile_info.py",
+ "name": "plugins/modules/azure_rm_publicipaddress.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a3c9e4f83f134bc08327d3d3ab37cb5f8e09fa5fe48b309aee5bff655158bd13",
+ "chksum_sha256": "e2ddc75d7edca49904c6025a1e1418c0ada1ed45fd56963a8e315cf7b2074362",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adapplication.py",
+ "name": "plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a01ea12d86aeee8ef91118aa965de56ca0d09e2290c56041380d8c27f561f0f7",
+ "chksum_sha256": "bb85cde7c504168c0013e50472526bf8170839212efce46c1ddb1a781fe1dc7c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_cdnendpoint.py",
+ "name": "plugins/modules/azure_rm_virtualmachinescalesetextension_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9c1e82cf33936851f15e067862abb2b92994b4343ac3827f70c5a82b08808dbd",
+ "chksum_sha256": "0c32b71b14bbb8c0609f20d2c522792ad6f6e5bd3b8477dfadae9bb34ae61cc2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_datalakestore.py",
+ "name": "plugins/modules/azure_rm_aduser.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3b4df0d580c0761dd3ade91498ed2f2e4529836b4c35b2483e41dde8d0abc262",
+ "chksum_sha256": "de250268540b1d1b14e772c77d8860a5d4942ddf58557f1858a2043be8958df2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_adgroup_info.py",
+ "name": "plugins/modules/azure_rm_aksagentpool.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "32c16ac3ebd1e2b3024525c9e261e62d30456ed332797c8b0acf3828a02433fe",
+ "chksum_sha256": "35eede66b4539d8ebfabaeba04dc70f75614d3bc94b2d19a721b527269e44404",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_registrationdefinition_info.py",
+ "name": "plugins/modules/azure_rm_dnsrecordset.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ece5750e5eeccb32bc4c4eccc28d00cbf14f6d2d9216377ad026ae16d01032f8",
+ "chksum_sha256": "c542f52ae53544606bc2c9e1c75ad25ebd0c8ce2d00485a43024aaa39e803adf",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlelasticpool.py",
+ "name": "plugins/modules/azure_rm_devtestlabpolicy_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a99a9a0336fd66f99a0d20307eaef6551556cfa50e3b24000e88c37fae5c756b",
+ "chksum_sha256": "f22d2afaf43d8b7a581c4f05f060829090d7294d19b6824ca59e86ccae69379d",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvaultsecret_info.py",
+ "name": "plugins/modules/azure_rm_aksagentpoolversion_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "722ecef7de830faf2bc757011605ad112a4185452706d99a741e88e5a2612285",
+ "chksum_sha256": "69fd5ecafb1b4dee2cbcb17f9b767f3fff6a9d717ca8548dec4f9735f3d213d6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvault_info.py",
+ "name": "plugins/modules/azure_rm_expressroute.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f404612876ef89c63e9163e38c3c2dc922a849ab3aac3cac42cc4a9b0b1c5cc3",
+ "chksum_sha256": "b7a0f0dd5862dbb3fc72329ed7c6790cc18a79e279a3e3f85896c075dda2ab1c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_notificationhub_info.py",
+ "name": "plugins/modules/azure_rm_resourcegroup_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "be0f91c3a0930f859ffdc567b6cf28746c41791ff2105790c96419aaba14e79f",
+ "chksum_sha256": "3336b070c7a607adde16279cdeaefe260b75c683a0ab0028b4ae6f262ebd32d8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_appgateway_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabvirtualmachine_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "34b398f5ce06e7c0071035aa6d6e1d710240699738bcb3341ca418782e2b0465",
+ "chksum_sha256": "ae5aa0ceace675df82f2a76e4f852a222bc892f4e406d33745d97ce848b53a4a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachineextension.py",
+ "name": "plugins/modules/azure_rm_cosmosdbaccount_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "09bd02e50c12aa9e602e8ac7b4312b2619be27b656114309625c9aa39fbcb97a",
+ "chksum_sha256": "80461bffd0ad681f97b3eaafe9db453a700658748c02114d3128b8f87f7b79f2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachineimage_info.py",
+ "name": "plugins/modules/azure_rm_sqlfirewallrule_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "67c57e01af0dff1896e7a22a334388aca376193f0faf86168bd67c53dc635bc7",
+ "chksum_sha256": "71e6d450073de8c90623f4048d44bd6eabaa39c36031a9beba28171a53b302cd",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabschedule.py",
+ "name": "plugins/modules/azure_rm_availabilityset_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4fe044b4199eae109e14370d764e8f52ef37d4244290a66d71409214c1efc5e4",
+ "chksum_sha256": "5210c3fbf5fd2f5b702cd82ba5cf7b44604231bebbe9f00a71ee71616a8e2e6b",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_registrationassignment.py",
+ "name": "plugins/modules/azure_rm_monitordiagnosticsetting.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a20f6c329c8d6c8cf53f32d506523f14e64fb05f855d959a5e787bdbe3042f74",
+ "chksum_sha256": "a87a1032899109683876d6a6ce5eba1ee931f2c64442c0910d69242a05560b26",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_roleassignment_info.py",
+ "name": "plugins/modules/azure_rm_autoscale.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "78faee09138728e5731ddc316b5ee3bcd05289f37b2161331c0fcc76034c95a4",
+ "chksum_sha256": "d70f6911bb558f59f68dcc61f42155c1f108526ed47e7ad3bd8f653ade1a4f8f",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_account_info.py",
+ "name": "plugins/modules/azure_rm_devtestlabarmtemplate_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d2430e9c6d0cb9fe31a461226dfad1afe0f102a83e702ad877b65935f865a8ef",
+ "chksum_sha256": "8f48a0242d1d4246afa2a6c856e43023daee49ffbae58db30591733304d4c9c1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_route.py",
+ "name": "plugins/modules/azure_rm_servicebussaspolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "04a75e4a0fe7281c28779eb29c43a3353ffc3dc30aef98926cd651630086cd28",
+ "chksum_sha256": "10d85532d9875ac3da016f15add256df6cf2cbb8a88d4a57ad316bce7df7a45c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_applicationsecuritygroup_info.py",
+ "name": "plugins/modules/azure_rm_galleryimage.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8d929c69fe1691d7658fcac7d1a2ac92115ce062efc6c866cf9dba8df2900064",
+ "chksum_sha256": "dff66513503b09036068848c5cc716f0047d15cafa59d063f833574948739db1",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachine.py",
+ "name": "plugins/modules/azure_rm_dnszone.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e50bdff05dbc06a630998c7f22245bd614a2cf5af31568464bd0b9ad1407a21",
+ "chksum_sha256": "a9974fc3f305a83840b041b02158be7162a6c87c8fb3a3b909a2ac6255390668",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatednszone.py",
+ "name": "plugins/modules/azure_rm_datalakestore.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3f9cd0311646895890ed0b353924c64b44699e70ca7bd2c1f330cc58d10ebe18",
+ "chksum_sha256": "41a04e1e6cfc80c11eedcb66b8dd36d84a7484cd698a9e8ddc8354ecaf3a6ce7",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_postgresqlserver_info.py",
+ "name": "plugins/modules/azure_rm_ipgroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "df4291e5a31ae032f6e03646266d5220e921718fd59b4ce2dd38f17703681352",
+ "chksum_sha256": "2aaffe067e785adc4ccb4a78a2a2d665ee6e2bd5a28b79f75e2be4695a1ce115",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbserver_info.py",
+ "name": "plugins/modules/azure_rm_containerregistrywebhook.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5bfe8de591caf07cee5750f15786ce93743d726d8ae3f9951a3567a3d8bb946f",
+ "chksum_sha256": "b911199637d90fb213eaf63e586745cfb8ab889af2f199340d0d4df59138362a",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerinstance_info.py",
+ "name": "plugins/modules/azure_rm_vpnsite.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b0bcc904bda5566b15648f6f311b3300bda6e8df43b46d8a298f7c233a7f11eb",
+ "chksum_sha256": "6d818f5250f12c9dee0a78f01f853640c25a583e022f8358355e78076c5b49b8",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_privatelinkservice_info.py",
+ "name": "plugins/modules/azure_rm_privateendpoint.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "02a72af00f3442e3cb5a19ba01bffc4cb2d47f646abf1a5ae0a125e80a8313ba",
+ "chksum_sha256": "9cf71bc67a11a058b6eac5f7c06c3a003ecce968f6fe09285f43dbd81f91fdf9",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_trafficmanagerprofile_info.py",
+ "name": "plugins/modules/azure_rm_virtualnetworkgateway.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "857597ed8719996965b0796e71c8223f05b789061f3caafc9a808b271858a2f6",
+ "chksum_sha256": "59e1d99084af0027d2c970a9e6ab6088546f4768d151a045b70615cff47b05c3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_roledefinition.py",
+ "name": "plugins/modules/azure_rm_postgresqldatabase.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8ea734515f2f242298f189539766283d2de71d063864ec0c95efe0cb1739b9d4",
+ "chksum_sha256": "e1d1f0a296460cb6a411cc926cff5476be07b16ced01f7b9a95e64802dacf9e2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_keyvaultkey_info.py",
+ "name": "plugins/modules/azure_rm_iothubconsumergroup.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fd68e08a8db49b8e7516600ae85b3616edfb578a163eb7f3e7a9c136aa93148f",
+ "chksum_sha256": "9d6fc8dba8ecd841d908a4b1226fa0a186c270a9eb3e8a5a054692e56c621876",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerregistryreplication_info.py",
+ "name": "plugins/modules/azure_rm_mysqlfirewallrule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b3d2ad0a238f9493c8e20fe7806d07389e0f29e4167d4328820082b15bbdee5c",
+ "chksum_sha256": "8d012c884bd3e4f7880fee699b3b6c8210a1cc00c98a2166c68c8b7e6a052bc2",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_containerinstance.py",
+ "name": "plugins/modules/azure_rm_storageshare_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "02edee35985e15cb2583e3b5a9db8bcfb0f2cd1d5bff352961a6a49f38145ab9",
+ "chksum_sha256": "c30615415440ade0b39196ccd619a923cfce2162548c18c7edaec635f46e84e3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualhub_info.py",
+ "name": "plugins/modules/azure_rm_datalakestore_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ebb16f82d8d56435ae9497852954c9f1b68cc7b7125a10fb29dbb8369f76a019",
+ "chksum_sha256": "97d431f9a54962aa76ee516a8d3f0e51215e832509dc605a6bca1ede20ec9cfb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mysqldatabase.py",
+ "name": "plugins/modules/azure_rm_rediscachefirewallrule.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8aff767afda022f2888a16c43ce6e5c3532414a1cc8bf5d41ec124b3d8ca16f3",
+ "chksum_sha256": "1dd3dd187f650d1083a42a7576b7f9a9ba1b8b5960804a0dc71e33470b2c2d73",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_eventhub.py",
+ "name": "plugins/modules/azure_rm_containerregistry.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "37931bcc8ecf8b6774e140e52951b74cf86793a42b1b38811fe8dedbfcb907f2",
+ "chksum_sha256": "781782bcf6811e28b975d35abb3892b96dbf168421891a06e352d02ac4c00569",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlab_info.py",
+ "name": "plugins/modules/azure_rm_mysqlfirewallrule_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "01f4aabc9e6a62314de3b6568a54d0b9ef1c0e98b651205d852609e7ad3f8f6b",
+ "chksum_sha256": "2c98b91e48ddf042f3fd0847c42b7d880fc00ed807437aa70d35ae1107ba1407",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_sqlfirewallrule_info.py",
+ "name": "plugins/modules/azure_rm_trafficmanagerprofile.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9351536c53ce290bea263dd9dc10ce02965d534f7c4edeed173aeb4c32138476",
+ "chksum_sha256": "4df5198ca3361e221f283b8d1cc1d26dbb3ea265422c76ebb8d6357ab6b4d4b6",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_mariadbconfiguration_info.py",
+ "name": "plugins/modules/azure_rm_apimanagementservice_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "efc537a4c1ed138ba89879455f559f9f7f5bf9badf5c9ab8528c702bd8d18b78",
+ "chksum_sha256": "5447d18ab74149d3c2b05b5cc516392d367b11e71d059d29207f9a749a334f89",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_securitygroup.py",
+ "name": "plugins/modules/azure_rm_aks_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1526773fbfb42677ca222a4ff7eff989898662619e5239388e3a0b6392f6fa6d",
+ "chksum_sha256": "39e0afd38650dd8c802f4f405aa4f3469ddb0a741210b2c56ffe663fef2ce62c",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_manageddisk.py",
+ "name": "plugins/modules/azure_rm_aksagentpool_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "13eb09ecf5eab164328b11f0a181233f7e07ab6d972f6c68b0cecc1070da9103",
+ "chksum_sha256": "92c6e3a0f537164ae87f3cf64dd071238a5c8349d7ca84a16826720fc5b82e44",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_snapshot.py",
+ "name": "plugins/modules/azure_rm_notificationhub.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2c1750e5df466813edb9b08b91d67089f56ed2a435c7b6396446de07b5aad243",
+ "chksum_sha256": "025163a4ad192ec7b4ec14e8faf49b01e29a8a8f38cd8231aaddec9726f460bb",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabartifactsource.py",
+ "name": "plugins/modules/azure_rm_ddosprotectionplan.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "416803d8fce98f31c25685f9233c29fe952b624a64b36b94a29ea0d282159d6e",
+ "chksum_sha256": "b5eb8ad5fe5b146e7b79f083f2f9747b1bc64432bc55660ac682e97e8235f023",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_virtualmachinescalesetinstance.py",
+ "name": "plugins/modules/azure_rm_lock.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2da99cb8865d4373b1b717cedf04da34ddc4dfd9002bdcec80554572de020696",
+ "chksum_sha256": "858b4a4357dd80fbefb9c62265d91f31019794c9077526f6703c95b5d7c077a3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_batchaccount.py",
+ "name": "plugins/modules/azure_rm_networkinterface_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3442b86f15be3bef48e0e093a044c4018296dba33327befce549c3ed1d3eedff",
+ "chksum_sha256": "22a876dccd098bc68511e639f50b08e8a50ffd1dfa24704907beb9f0a96c3029",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_iothub.py",
+ "name": "plugins/modules/azure_rm_adserviceprincipal.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1053c8fad183072c97ced402c7e8ea6df316793f31437256c6b75cd2c00072c7",
+ "chksum_sha256": "e141818fea5c223278d4709af5c6ae47cf4841aa0e7e823d84be8949b085d1c3",
"format": 1
},
{
- "name": "plugins/modules/azure_rm_devtestlabpolicy.py",
+ "name": "plugins/modules/azure_rm_appserviceplan_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3089c890ddf7d990b1bed1d12d65f2e8ae04ef114092711f9ecdeb1a95c7c7d0",
- "format": 1
- },
- {
- "name": "plugins/inventory",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "2feccbb74790330b291a4ab0f8bcf3d4ba44f5bd2c18490aff02c92f3d043e09",
"format": 1
},
{
- "name": "plugins/inventory/azure_rm.py",
+ "name": "plugins/modules/azure_rm_appgateway_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "48dffa10112662e43b9d4aa255c10b6e43f9fa5db23317bf5c7fd8a631db29d9",
+ "chksum_sha256": "fbe1b90752ce94a33ab1c3e6771f90e4fe87d676e99819e15da631fe5fe2cea5",
"format": 1
},
{
- "name": "pr-pipelines.yml",
+ "name": "plugins/modules/azure_rm_bastionhost_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5b97ed29cc9a054b1f40eca169d64956405773f082892dd8a9cde955628abee2",
+ "chksum_sha256": "dcdf18934767abd5f6912ce0bb9cbbff6954c79fab3998fdf9ea3c75f5f9d604",
"format": 1
},
{
- "name": "sanity-requirements-azure.txt",
+ "name": "plugins/modules/azure_rm_virtualmachinescaleset.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f1e369249fb90b3fa4f3cb5aa912b0fbb6824b1d2267d11253df6bc65beb1b8a",
+ "chksum_sha256": "425563f892c11a2e14fe22276c308af85268b2ef1a3c2b94e779a9e18dfe7786",
"format": 1
},
{
- "name": "azure-pipelines.yml",
+ "name": "plugins/modules/azure_rm_loganalyticsworkspace.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "66d836d2a68eba8cc2df59ba88a2187e11b739cb72a86b45e944ea7010bd8f78",
+ "chksum_sha256": "5f5d8fa3f00c30d80ce2427ccb7c9d8a00e78c255ecfc67fb1de5f37256c3418",
"format": 1
},
{
- "name": "release-pipelines.yml",
+ "name": "plugins/modules/azure_rm_monitorlogprofile.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1d7eb4d7e849e71924f0d55f676fc3780746900eafd3c0d48326f06b95c5b872",
+ "chksum_sha256": "0951e10121e28230e99e7a3143ce444c9bc4cbf8b7858033c6dd5d071e1ac579",
"format": 1
},
{
- "name": "CONTRIBUTING.md",
+ "name": "plugins/modules/azure_rm_privatednszone.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "290a3dfba9b53aecbf86badacfdcb7f320c9a924e02a8f0b4824785a551d0a39",
+ "chksum_sha256": "c4def272c347cc85f0e108b4392b69eabd6e9caf432cbb84b2acc902bd8a3f34",
"format": 1
},
{
- "name": "CHANGELOG.md",
+ "name": "plugins/modules/azure_rm_diskencryptionset_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "618cbde74ce9bfa81af5465c1f6ac5f488976247815529b1c2f39a9b53f3cb2d",
+ "chksum_sha256": "586109c40b10714b5280368db2802fca8d4fc87f797e2b0d5084bb5e7a4df3df",
"format": 1
},
{
- "name": "CredScanSuppressions.json",
+ "name": "plugins/modules/azure_rm_devtestlabpolicy.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "98c0ee6a0b7a115787cf109a8c0e2ea4a61df6751ecda37915b22ffb44a1128d",
+ "chksum_sha256": "0146075d793b46427030cb705c7db55a93b6402afe9401b04dfe56a1434dee26",
"format": 1
},
{
- "name": "ansible.cfg",
+ "name": "plugins/modules/azure_rm_monitordiagnosticsetting_info.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2caa654e85c7e66be39d494d173f69f7565059c504b7201f2ee033173ab80df0",
+ "chksum_sha256": "3fa25b176b8c073c9435901c2c8455577e64a998c71b5c6a472ae1044f48bed9",
"format": 1
},
{
- "name": "LICENSE",
+ "name": "azure-pipelines.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b",
+ "chksum_sha256": "1f55cf75a25502f8322df2fc8640e52f85fed4459b8c26fee3c75295f9c45552",
"format": 1
},
{
@@ -2216,7 +2174,7 @@
"name": "tests/utils/ado/ado.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "147f8cf89d2b91ff642805964b49cb149b5f0f5ec5c2dc47b1efb567f6b54a73",
+ "chksum_sha256": "8d43591bdea6cbc13771abd458687415cadeb81242b5c706356e4554fb445e32",
"format": 1
},
{
@@ -2227,45 +2185,45 @@
"format": 1
},
{
- "name": "tests/utils/shippable/sanity.sh",
+ "name": "tests/utils/shippable/timing.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1cd365c5bad1facb7e98cad97a20e34231f49fca169653ccd7d34bd955bd88f6",
+ "chksum_sha256": "e4906097dcc02406930229bf0a026f667327fbe11ea6b9763bc76b4c3e98be29",
"format": 1
},
{
- "name": "tests/utils/shippable/check_matrix.py",
+ "name": "tests/utils/shippable/timing.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f4a38ad2db66b272075c37e9cca352fc7d5b69fe19e32adec0cdd74f91586fe6",
+ "chksum_sha256": "f3f3cc03a997cdba719b0542fe668fc612451841cbe840ab36865f30aa54a1bd",
"format": 1
},
{
- "name": "tests/utils/shippable/shippable.sh",
+ "name": "tests/utils/shippable/check_matrix.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "829380ef8b40f42a82696ada1168318856596f4e943bbb9a4f5cd6130bbce2af",
+ "chksum_sha256": "f4a38ad2db66b272075c37e9cca352fc7d5b69fe19e32adec0cdd74f91586fe6",
"format": 1
},
{
- "name": "tests/utils/shippable/cloud.sh",
+ "name": "tests/utils/shippable/sanity.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "99db6946e47cf9e49ab2fccbe0aca8ffc9aaa0918fdc9e3ef543601c55a98713",
+ "chksum_sha256": "1cd365c5bad1facb7e98cad97a20e34231f49fca169653ccd7d34bd955bd88f6",
"format": 1
},
{
- "name": "tests/utils/shippable/timing.sh",
+ "name": "tests/utils/shippable/cloud.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f3f3cc03a997cdba719b0542fe668fc612451841cbe840ab36865f30aa54a1bd",
+ "chksum_sha256": "99db6946e47cf9e49ab2fccbe0aca8ffc9aaa0918fdc9e3ef543601c55a98713",
"format": 1
},
{
- "name": "tests/utils/shippable/timing.py",
+ "name": "tests/utils/shippable/shippable.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e4906097dcc02406930229bf0a026f667327fbe11ea6b9763bc76b4c3e98be29",
+ "chksum_sha256": "829380ef8b40f42a82696ada1168318856596f4e943bbb9a4f5cd6130bbce2af",
"format": 1
},
{
@@ -2279,416 +2237,395 @@
"name": "tests/config.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3e67c280ecbe32951edc9c5aacb7b514cc2a5bc70118cc43e79c52ca2b606138",
+ "chksum_sha256": "410698cc625c851ec21f2ef8ea020cf7a353590d10a995a3c57eb52d4d8065fb",
"format": 1
},
{
- "name": "tests/sanity",
+ "name": "tests/lint",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/sanity/ignore-2.13.txt",
+ "name": "tests/lint/ignore-lint.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1bebd2850c6d8fec526b000b7e82e9433a001060f60807379ed86e7ff9c1ac50",
+ "chksum_sha256": "bea1480e79bf52af44c7d7b2b112aead789a54696c6ef6469f2dcd710ad2a47f",
"format": 1
},
{
- "name": "tests/sanity/ignore-2.12.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8daa4d81f82078d505ab1c2a7bfe264bc39bf8cbf5c2b3bfca5d7179f351b148",
+ "name": "tests/integration",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/sanity/ignore-2.11.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "8daa4d81f82078d505ab1c2a7bfe264bc39bf8cbf5c2b3bfca5d7179f351b148",
+ "name": "tests/integration/targets",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/sanity/ignore-2.9.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ffbea11daa9fd2fa17bf7aa84a16f321c9ff581b7a69e5f3741b3019f7cd2f8e",
+ "name": "tests/integration/targets/azure_rm_sqlserver",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/sanity/ignore-2.14.txt",
+ "name": "tests/integration/targets/azure_rm_sqlserver/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_sqlserver/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "da02cd547c88fa6e356d6867354b1b3db7a0f04d13fb562afaf5be1058957227",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/sanity/ignore-2.10.txt",
+ "name": "tests/integration/targets/azure_rm_sqlserver/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8daa4d81f82078d505ab1c2a7bfe264bc39bf8cbf5c2b3bfca5d7179f351b148",
+ "chksum_sha256": "b497f92848d198221058a5f5aa42e37dc513f9d2a64f54b2ddc9029b80ab7219",
"format": 1
},
{
- "name": "tests/integration",
+ "name": "tests/integration/targets/azure_rm_sqlserver/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets",
+ "name": "tests/integration/targets/azure_rm_sqlserver/tasks/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4b9b3011d1cd399cf58fc8749d467300f6a19f2105a9455c6cc385c2468c1b02",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_image",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adgroup",
+ "name": "tests/integration/targets/azure_rm_image/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adgroup/aliases",
+ "name": "tests/integration/targets/azure_rm_image/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_adgroup/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adgroup/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_image/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "164f83628dc35c78e707c2e1e2263108763f36f14b8dd6dd582d3b80668bb533",
+ "chksum_sha256": "fca45b39c1e6a21b8fb8e1b6c8f5954d8accf0bc6fa436361d75b014b36a8fd6",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adgroup/meta",
+ "name": "tests/integration/targets/azure_rm_image/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adgroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_image/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "f15012224b91b0dcb340a2dfcd3d360a36bf2ed291b88a4206914ac5db295466",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_notificationhub",
+ "name": "tests/integration/targets/azure_rm_managementgroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_notificationhub/aliases",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_notificationhub/tasks",
+ "name": "tests/integration/targets/azure_rm_managementgroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_notificationhub/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_managementgroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d9624fdf71acaf83f57f4e4756520640e656e90d281c05a9ed732eb7d5839e8a",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_notificationhub/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_notificationhub/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_managementgroup/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a66dc9e034ad04e167bd52df4f75f2bea4499b25349fc42b3c8de9e2fe806996",
+ "chksum_sha256": "e7fc1f0b30d75ba7b3a8f5a9a45a7703c06585edc0f3ce9231a9b2ca7a649864",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datafactory",
+ "name": "tests/integration/targets/azure_rm_managementgroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datafactory/aliases",
+ "name": "tests/integration/targets/azure_rm_managementgroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a74040b53394bd68b1885c350f1f62603740e721ca38e01609660895693a3858",
+ "chksum_sha256": "52b6ea89da7341d8977b8f1ac1fb530b48eba4831b6c5224b2c136c9bfa91ad7",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datafactory/tasks",
+ "name": "tests/integration/targets/azure_rm_privatednszonelink",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datafactory/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cf84ad6d9aa2237a467d38db0d56b0491c7d164a3929d2ad58a80ca634ed8611",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_datafactory/meta",
+ "name": "tests/integration/targets/azure_rm_privatednszonelink/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datafactory/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privatednszonelink/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resourcegroup",
+ "name": "tests/integration/targets/azure_rm_privatednszonelink/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_privatednszonelink/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resourcegroup/aliases",
+ "name": "tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cd30933c00554775a36ee6421935b7d8baf776db7cb35d5a103be9e18b7d2486",
+ "chksum_sha256": "fe73403f7245a8d8d762b068cc62624999c45eea47a08d7c370685370d73a216",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resourcegroup/tasks",
+ "name": "tests/integration/targets/azure_rm_deployment",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d1e3d0679a5f91a33aba0faa65678c972d07f6cca59ad6ffa065bf31e6f5e59e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_resourcegroup/meta",
+ "name": "tests/integration/targets/azure_rm_deployment/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resourcegroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_deployment/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backuppolicy",
+ "name": "tests/integration/targets/azure_rm_deployment/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "11d8df93f7c7fb0bd35df23550ce55cea64300cbd7b3a1282927d49c53f53951",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_deployment/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backuppolicy/aliases",
+ "name": "tests/integration/targets/azure_rm_deployment/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "7d55d04096bc98a7e4b9423ce7a67bd90ff057d8f2597489e018095d8c7747b0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backuppolicy/tasks",
+ "name": "tests/integration/targets/azure_rm_hostgroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "75cbd5e96f3bf83cf30b8d6b09c698df02a860f480ae11270f4703d54cce0728",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_backuppolicy/meta",
+ "name": "tests/integration/targets/azure_rm_hostgroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backuppolicy/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_hostgroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting",
+ "name": "tests/integration/targets/azure_rm_hostgroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_hostgroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/aliases",
+ "name": "tests/integration/targets/azure_rm_hostgroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
+ "chksum_sha256": "a11e09783bbddbc59c9ddb098a44d5e17aaac05fec0334ef225dd2d301651e17",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks",
+ "name": "tests/integration/targets/azure_rm_adapplication",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "72fe8b33496a877069bc27654c879e619ca34b55982bbd4f92740a8c1b307260",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/meta",
+ "name": "tests/integration/targets/azure_rm_adapplication/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_adapplication/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_networkinterface",
+ "name": "tests/integration/targets/azure_rm_adapplication/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_adapplication/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_networkinterface/aliases",
+ "name": "tests/integration/targets/azure_rm_adapplication/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "79cafc6b10612f907e2e4a97bac50c9948ac0a0dd5030875a9465204a6323b48",
+ "chksum_sha256": "b35d1ada403add1e0a23a265f11a6395959c863e48579a060b40ed7f4e2b8b66",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_networkinterface/tasks",
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_networkinterface/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "55b06254bf273e7af12bdbe3bbba3e0fcb1fbad6bdf12996096321c458a881b2",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_networkinterface/meta",
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_networkinterface/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_securitygroup",
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_securitygroup/aliases",
+ "name": "tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a390a5b729f05cbb0f6d91d7d663389c81a571a34bd2e931dc56fcdaee025754",
+ "chksum_sha256": "71fa19924e9ae73ca408e1fccec2a768f3b2fc113158c5718b7b870c081189f1",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_securitygroup/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_securitygroup/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c7d9797319b6a4e93b75674013e526aedd93f352b682319ec2fe65a05c8889db",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_securitygroup/meta",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_securitygroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
"name": "tests/integration/targets/azure_rm_virtualmachineextension/aliases",
"ftype": "file",
"chksum_type": "sha256",
@@ -2706,686 +2643,714 @@
"name": "tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "92002597ad6d4b7ff0e7f835194fe628ea09447982b20d05b93cd51ee0966b0a",
+ "chksum_sha256": "9e3cb1009bcddcf4db403356c71a3862d40d9978395362480795d87961229f8d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension/meta",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension/files",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension/files/test-public-settings.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "1063a36dc41ca530af7839c69ec22f2b92447be4c3b41e90429c970b23d9116b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension/files",
+ "name": "tests/integration/targets/azure_rm_virtualmachineextension/files/test-protected-settings.json",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "436711afe43e0c31f515a016fa56e64c70f1df35502725327b8c703773d4823b",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_automationrunbook",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension/files/test-protected-settings.json",
+ "name": "tests/integration/targets/azure_rm_automationrunbook/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_automationrunbook/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "436711afe43e0c31f515a016fa56e64c70f1df35502725327b8c703773d4823b",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineextension/files/test-public-settings.json",
+ "name": "tests/integration/targets/azure_rm_automationrunbook/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1063a36dc41ca530af7839c69ec22f2b92447be4c3b41e90429c970b23d9116b",
+ "chksum_sha256": "522c2e1148926193596b31fa7cf086b9f57e17c7028abc638a2b6f5bb9269850",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_azurefirewall",
+ "name": "tests/integration/targets/azure_rm_automationrunbook/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_azurefirewall/aliases",
+ "name": "tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c00350cca0b02532fa9ae31b5fdf0d5b963615b521197b71ac4cc024aac9d037",
+ "chksum_sha256": "a1368da2abfb774ea5e3fd1a9238e9fbadbbc6fb1a93c00685bdc1d966e401b4",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_azurefirewall/tasks",
+ "name": "tests/integration/targets/azure_rm_iothub",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5b16a841fdb7190e7c70c2e94025735563442af45795ebb81cb4b028d9b317e9",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_azurefirewall/meta",
+ "name": "tests/integration/targets/azure_rm_iothub/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_azurefirewall/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_iothub/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roleassignment",
+ "name": "tests/integration/targets/azure_rm_iothub/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8d4097a5a2543084f3eea11259e299ba87ade8dc8995e5745358931356bee79f",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_iothub/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roleassignment/aliases",
+ "name": "tests/integration/targets/azure_rm_iothub/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "51bfa0d69b7c8b7e94b28aa9c60c921ace3971f50a385673a66791c31749678a",
+ "chksum_sha256": "1e5e67ce46e6ae0d5e38dbc0526e3140c3f1f3d978883736c4c84e0732042dbf",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roleassignment/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roleassignment/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3f00c67e5c33a10bb37d546c8d96868716a354b63f69b7ebdd6601f2cb55cab8",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_roleassignment/meta",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roleassignment/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition/aliases",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
+ "chksum_sha256": "9a2de112faff356ffd7328876a499692420544b0558695813205740517ddda32",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "04393583f4695e833ec9c02daf81d7889cb14aacafa612bf41628ba775eb66a3",
+ "chksum_sha256": "ecf5403290d75ebf93dd07c1a0d1ec251482cde7952d5fc4c1f51ecde936e804",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition/meta",
+ "name": "tests/integration/targets/azure_rm_dnszone",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_roledefinition/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_dnszone/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_dnszone/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cognitivesearch",
+ "name": "tests/integration/targets/azure_rm_dnszone/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1af368a225674fcae08ea809c4dc605f03bc0334b44a9b17dfab0dfe49d93ac6",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_dnszone/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cognitivesearch/aliases",
+ "name": "tests/integration/targets/azure_rm_dnszone/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "b03603dc5bddfda055b5dfa51d9c769881822cd95a0953dfe82ef9afd446926a",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cognitivesearch/tasks",
+ "name": "tests/integration/targets/azure_rm_routetable",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "baa00bf3c1cd7f7a8ea685b173471ccdd925d75a520ee4d6ec8d96ea2c9d9239",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_cognitivesearch/meta",
+ "name": "tests/integration/targets/azure_rm_routetable/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cognitivesearch/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_routetable/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine",
+ "name": "tests/integration/targets/azure_rm_routetable/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_routetable/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/aliases",
+ "name": "tests/integration/targets/azure_rm_routetable/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "deefc8fe8e3699aa1e8852f316f52c0037219050b5b5d07919fa24d06ac14ed5",
+ "chksum_sha256": "fc81f5b6e7fae63d14a55e7c1c749a4a3d153b41a855118e814b3f2643904c14",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks",
+ "name": "tests/integration/targets/azure_rm_roledefinition",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "21191e83b2ba1806e8f21eb88693cec6196c42f57bfe21732caa7743fe7ada1d",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "220ce9a496dd09871db893cb671019cd529172f65ad99ebbc276c29d9a636b2f",
+ "name": "tests/integration/targets/azure_rm_roledefinition/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml",
+ "name": "tests/integration/targets/azure_rm_roledefinition/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8bd990c699b676efd3c10984295efd6ecd4196d6731e0abb3e83e178be97881f",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml",
+ "name": "tests/integration/targets/azure_rm_roledefinition/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "077fa2cdbbcdc6ebf667aeb177e25e4dd6228852a90ad47b64f3b561b0378449",
+ "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "47c62e68edbce76c046c9ee33c983775a500ed1bdf1a107398059552a3680942",
+ "name": "tests/integration/targets/azure_rm_roledefinition/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml",
+ "name": "tests/integration/targets/azure_rm_roledefinition/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "140b0bd768325fbe3148cfe81dd4a4002e07009fa651895c8647c36dc643838c",
+ "chksum_sha256": "821801ed627b59f6418e9073527531be7f66a7e6069cfd50df025e197af04485",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5176d99917035c41c250d68271e54d236daa6c66e3dbc6e9608033144d822d07",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "24eff79c0c7c5396967e5240f42f13f69dd00177d12bd52889beb323e738445a",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "64879be6318be1cc70ca9af952868a4079485761ed64ec1266b1894fe876a632",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "de159eb438242efc5c51641147de79d61512f8617810472588830fc1f77abe5c",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "726f4a5feb22393286eb1d2b8ae72610b68dfe6e979473bd03bbee9c5eb55da9",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml",
+ "name": "tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "aa2de5de07ae296548865061238e55d4b15db2b6f9b4dcba1bf4dd9b4a36dfb9",
+ "chksum_sha256": "2d37e8ad199f86a0ff21d8af2a5eb5555b9cc8f8f2ecd7b6597b0c9645696050",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "64b8519ca7a160ae3ce6ccb1cca73a6c1038d7374ff6b4060aa6024b9cb0744c",
+ "name": "tests/integration/targets/azure_rm_azurefirewall",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d765575a20e2788091b6cbade725e09e295a46aa42b6c9e7168daf3f507891c9",
+ "name": "tests/integration/targets/azure_rm_azurefirewall/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/inventory.yml",
+ "name": "tests/integration/targets/azure_rm_azurefirewall/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "98a1bdc5892fa44ebbe6cd64550b850bf8fc61298de11c4d3bfd2f3d8621cd12",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachine/runme.sh",
+ "name": "tests/integration/targets/azure_rm_azurefirewall/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8d9a70f8c75d9a856cd529ae8ccb6e589c0db9494da4bb08cead6963e98d9dd5",
+ "chksum_sha256": "c00350cca0b02532fa9ae31b5fdf0d5b963615b521197b71ac4cc024aac9d037",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mariadbserver",
+ "name": "tests/integration/targets/azure_rm_azurefirewall/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mariadbserver/aliases",
+ "name": "tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0f1123b3696957f55774d4316a4461182998975a0db1f960ef289b20b5e926c7",
+ "chksum_sha256": "99e09441ca9bb38a0844a3421ebdd6d6e496690d6aa853f111ec79d73108bef1",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mariadbserver/tasks",
+ "name": "tests/integration/targets/azure_rm_webapp",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "bf385689a7c4b6dbded1c113fe095815014e8a833c8f1f59aa2284df8caeee22",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_mariadbserver/meta",
+ "name": "tests/integration/targets/azure_rm_webapp/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mariadbserver/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_webapp/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_devtestlab",
+ "name": "tests/integration/targets/azure_rm_webapp/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "75b6fa7694979e088e4b068016381f37a603045a395e3b8c660032f4008257d5",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_webapp/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_devtestlab/aliases",
+ "name": "tests/integration/targets/azure_rm_webapp/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "435162ac2df7aa373bc2d191a07d79c283d3891a1278b0277f85e6112b96fc03",
+ "chksum_sha256": "9c075ffff039ce42e02bf19ae7081bbfaa590fe56d36c10fe5552ade5e8d9964",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_devtestlab/tasks",
+ "name": "tests/integration/targets/azure_rm_aduser",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_devtestlab/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7379179cad070c29d6055139c631d98000d6ea15dd271aeba5c997677de00985",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_devtestlab/meta",
+ "name": "tests/integration/targets/azure_rm_aduser/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_devtestlab/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_aduser/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks",
+ "name": "tests/integration/targets/azure_rm_aduser/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1658975f0508387cde4cda499d7eb9524e31bc2f02cc49d6483d7e210d991234",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_aduser/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/aliases",
+ "name": "tests/integration/targets/azure_rm_aduser/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ea124e6a615561c87b4dd84d829b1eb1d2bd1658d1caf6211019eeda3ffc8136",
+ "chksum_sha256": "5d5d5fecd3bd106cc7e4ea4412f28e287297cbd7f7c5699f4ed5e27c60d25610",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "734d43b960ffc7db235dde46ac78131614571043f2fccf7194fda91ef4158e80",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "be8b2a1ea6a137dff449749ad05389cc76d9507a31b1936354e4b6a5643fe871",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "436fa42bc89d6926a91254d61ebc57a87df84cbe54519f546b9fccd86b0f38b8",
+ "chksum_sha256": "ee3b904aa8ab8d0a7e47983927157b420c195fe1d8606de015158339e7824a43",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/templates",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/templates/disk_config.j2",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d52e27205862487e08375c08ac7c8aa27c059db63c3fb83ebb8dd8eb0e7e11f6",
+ "chksum_sha256": "2fb7b589b1c4bd6ed3778e220fe5be14d351534db03c1473e45f03fd181cf0ac",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/meta",
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/meta/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/defaults",
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_multiplemanageddisks/defaults/main.yml",
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e74506a8cfbf91887befefae0b179455f0071b5d904b30c00b67897373123b23",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_account_info",
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d9b370414fbcd599ba1e1fa7adb52887e0df75d2ffce2a609bd5af743b02f600",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_account_info/aliases",
+ "name": "tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "a58bdac3b7068e244f2cf71f0a1a0bf136bc8785d2a8947fecbafdd97313adb7",
+ "chksum_sha256": "e44d0c16980fee5a6cca7dc10c26e4bb487b761eb6aa87c5cee17e527c37453d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_account_info/tasks",
+ "name": "tests/integration/targets/azure_rm_loadbalancer",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_account_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "11c0ebfdf8010257f9bfcbb31b1210ea509fe8f49d14436557fec6778617bb35",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_account_info/meta",
+ "name": "tests/integration/targets/azure_rm_loadbalancer/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_account_info/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_loadbalancer/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webapp",
+ "name": "tests/integration/targets/azure_rm_loadbalancer/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_loadbalancer/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webapp/aliases",
+ "name": "tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "75b6fa7694979e088e4b068016381f37a603045a395e3b8c660032f4008257d5",
+ "chksum_sha256": "6b6dc390a0291155225b4305560c255bf3a36be60542213e2ad2fcc6fb9daf94",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webapp/tasks",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webapp/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "58917acf9278716057d2176e0b31da97cd7755ef63b71187bdea74c5fe093ada",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_webapp/meta",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webapp/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ea124e6a615561c87b4dd84d829b1eb1d2bd1658d1caf6211019eeda3ffc8136",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver/aliases",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2c74420c4bc9cc5d8af14406a1d97ea762c6b8afa4de8728a4a833b2e742cf41",
+ "chksum_sha256": "8e23e36b5f9691d484992b8472b963aa9265f9e12c2b5eace4da7b532d66c3db",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c7047ff5651f3faf6ac16b87e5434fd16dae5a620b45ed55723a208b27b9d4bc",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2803b32a2a95737e3838dfb137e4909b1a1268568c268920297cdbcc95773cd2",
+ "chksum_sha256": "347f0eb7c19d4e9cb7070d4eff76a456f649df4792a590d75b0258643d1c4282",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver/meta",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/defaults",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_mysqlserver/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/defaults/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "e74506a8cfbf91887befefae0b179455f0071b5d904b30c00b67897373123b23",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/templates",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/aliases",
+ "name": "tests/integration/targets/azure_rm_multiplemanageddisks/templates/disk_config.j2",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "783d6dbd1b9cc4b0543d6e96d15206283018e0c291764a2a4106e860d41cb210",
+ "chksum_sha256": "d52e27205862487e08375c08ac7c8aa27c059db63c3fb83ebb8dd8eb0e7e11f6",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualwan",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml",
+ "name": "tests/integration/targets/azure_rm_virtualwan/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualwan/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "25a42e35f5f43fb98379902f469b6da0cd3c2f49003815d54684bce5a4433745",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualwan/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6a870c4f3517f812f6ec72649e4fa0e030cd2e3f3d96a11e74e75afe64142b84",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/meta",
+ "name": "tests/integration/targets/azure_rm_virtualwan/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aks/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualwan/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "9ab3ddca93908d5c847cccd627d21e6dd17c1d4c24cfe0f06331431717be8bfd",
"format": 1
},
{
@@ -3396,6 +3361,20 @@
"format": 1
},
{
+ "name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "format": 1
+ },
+ {
"name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/aliases",
"ftype": "file",
"chksum_type": "sha256",
@@ -3413,339 +3392,311 @@
"name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "601cccaad8ac15018cda761e360e04a19e31cffb2232c7705b605899f5aca414",
+ "chksum_sha256": "3265ddca3e6f3be968be4b2d516c453c1c305f010ef7f1ab4deb0d9d70bb03eb",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/meta",
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_openshiftmanagedcluster/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_servicebus",
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b34b028873420b7fdba3b5e4f0b3a1283d3879fcf1ee2d91dbe8a732651ca04a",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_servicebus/aliases",
+ "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "chksum_sha256": "d48b39bfcd3c3f106af3c9eedcc4005c40eb6642ce232ae4f834c93875ee74e9",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_servicebus/tasks",
+ "name": "tests/integration/targets/azure_rm_natgateway",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_servicebus/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b3ab66c8990eb64d0b1a23ba04db9b5a9cd34306079309d30b89bf2f1cbf6f2b",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_servicebus/meta",
+ "name": "tests/integration/targets/azure_rm_natgateway/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_servicebus/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_natgateway/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_workspace",
+ "name": "tests/integration/targets/azure_rm_natgateway/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "21442459796e3c03ab3c6461c8251810f5545ff2320c4c814cce8b8c520e615c",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_natgateway/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_workspace/aliases",
+ "name": "tests/integration/targets/azure_rm_natgateway/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "08cf46c06f61ba50ecd182f45dfcf2ad7529f1df439d0ca713a8ceba58e14c99",
+ "chksum_sha256": "b0c6592fbe22d552060e636b988771db2fe2e14e50462d4ab5589a8f3f4f8e9f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_workspace/tasks",
+ "name": "tests/integration/targets/azure_rm_appgateway",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_workspace/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f2f2f5b5e5aed797d31f27f3ffe873d3885d1c84f3303e2f114091620e74110e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_workspace/meta",
+ "name": "tests/integration/targets/azure_rm_appgateway/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_workspace/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_appgateway/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ipgroup",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_ipgroup/aliases",
+ "name": "tests/integration/targets/azure_rm_appgateway/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "21442459796e3c03ab3c6461c8251810f5545ff2320c4c814cce8b8c520e615c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ipgroup/tasks",
+ "name": "tests/integration/targets/azure_rm_appgateway/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ipgroup/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_appgateway/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e540f16042dc4b7421f84f0b409a87c99bac21cabcedabf9a45c7dae3e93d38d",
+ "chksum_sha256": "7d8ffa4ec62e8b5bcf85c4c36004a71daf4b8bf455238a1b6a8a1749fd64bd4d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ipgroup/meta",
+ "name": "tests/integration/targets/azure_rm_appgateway/files",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ipgroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_appgateway/files/cert3b64.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "1375dc6f493fb760c6087c4cdd62c4ea898887070ad17dc84196b3d6ed0545ec",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_appgateway/files/cert1.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7637ce7f36cca366294688f612f6456714088cca19583ae7e9475e572d85f4f5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob/aliases",
+ "name": "tests/integration/targets/azure_rm_appgateway/files/cert2.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "e4dc34faa2e8e94cd385be73c33a849f452dd57d061a8aec118e6d391e46bbc0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "2edc512654e17a39d5fd83d0fd5a173f243bea75995ec29b7647fc0143dc4e19",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_storageblob/meta",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageblob/files",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_storageblob/files/Ratings.png",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "20cdf86ae984fb64eefdc57a0e03f34c83cb8b27834b33c84768cc2b62cf9d68",
+ "chksum_sha256": "5510a946bf7e1d1ad196eaa73474176b122ae491702a99f9160ad1d554fc08bf",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11c35de489a3da87eb40a2ce00a80a9992fc89c3b3fdee710301ba9faacd332d",
+ "chksum_sha256": "088fc01b37760ce34fafbf49d9cad124a44df1c8390c23c58480447c275bb9a5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks",
+ "name": "tests/integration/targets/azure_rm_datalakestore",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d496f16d0aa619a4e8961628d51c436b747c062e6dd7456d6ab19782ca1680d0",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/meta",
+ "name": "tests/integration/targets/azure_rm_datalakestore/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_datalakestore/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction",
+ "name": "tests/integration/targets/azure_rm_datalakestore/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_datalakestore/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction/aliases",
+ "name": "tests/integration/targets/azure_rm_datalakestore/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "2d7c9df4757ded6e5d8fdb419854a55eb85d7782884e81548d299a795998daa6",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction/tasks",
+ "name": "tests/integration/targets/azure_rm_functionapp",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0e186aa6d7f0968de08490f3eb4a764f6723d2c5c686cc48ca2aaf8c3a582e45",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction/meta",
+ "name": "tests/integration/targets/azure_rm_functionapp/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappaccessrestriction/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_functionapp/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/aliases",
+ "name": "tests/integration/targets/azure_rm_functionapp/aliases",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/tasks",
+ "name": "tests/integration/targets/azure_rm_functionapp/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_functionapp/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f72cf8c42cd894dbfb720af369e9a548258c813fb6021ebbc42ab7daf7e17521",
+ "chksum_sha256": "a5d18ded0b871348c349b69152916bc7b243670fdc7ec9a2f8ab479ce589e390",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/meta",
+ "name": "tests/integration/targets/azure_rm_subnet",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "86ade1ce7ec530fef84440672efaf3b60c253946bb82f5f0a134a9691bc6ffad",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_subnet",
+ "name": "tests/integration/targets/azure_rm_subnet/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
+ "name": "tests/integration/targets/azure_rm_subnet/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "format": 1
+ },
+ {
"name": "tests/integration/targets/azure_rm_subnet/aliases",
"ftype": "file",
"chksum_type": "sha256",
@@ -3763,409 +3714,381 @@
"name": "tests/integration/targets/azure_rm_subnet/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e6e7ac2b9d8dcdb484f8f6a6fd6d594aea99e0955f517714fd0a94abb4a2abba",
+ "chksum_sha256": "6da3c97478624fb4d675d4787caedba75a8b159228bc39d6fccdd3db6a333c78",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subnet/meta",
+ "name": "tests/integration/targets/azure_rm_ipgroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subnet/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_ipgroup/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_ipgroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationaccount",
+ "name": "tests/integration/targets/azure_rm_ipgroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_ipgroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationaccount/aliases",
+ "name": "tests/integration/targets/azure_rm_ipgroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "87c7ae7077faea9533bb827344f49dadfecfdbc5ea179058d72f7bad3ae81388",
+ "chksum_sha256": "b2d66c35aafd2720cb487010156156302c28f3cd0e20fcfbed1a98d2ed42601f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationaccount/tasks",
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationaccount/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1b024b67a5cacec07205761b9497728f87eea706335ae8807cbebe0d046a36e1",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_automationaccount/meta",
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationaccount/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_iothub",
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "528893af1cac01f38ab277aec0138b83c74b2576464d96eb7f3da330784edaff",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_iothub/aliases",
+ "name": "tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "4a0a40666b1bd4ba719d5da58b623587b330007a776cac80dcd1d55df48a34ad",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_iothub/tasks",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_iothub/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3a4b7fbea53b2ac97764fa79a83a290cba2534d195f8c7b1e8e2ec8fcb233f69",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_iothub/meta",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_iothub/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subscription",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_subscription/aliases",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice/aliases",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subscription/tasks",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subscription/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2a7ba246fec2015e9ec84aad7e917f0b752d09d113666ce2ba9c1530671a9a22",
+ "chksum_sha256": "26d7dc158898d9dbc017b66108ef335ff0b4a5ba01d2566cecbec6ad767763be",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subscription/meta",
+ "name": "tests/integration/targets/azure_rm_workspace",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_subscription/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_workspace/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_workspace/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_availabilityset",
+ "name": "tests/integration/targets/azure_rm_workspace/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "08cf46c06f61ba50ecd182f45dfcf2ad7529f1df439d0ca713a8ceba58e14c99",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_workspace/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_availabilityset/aliases",
+ "name": "tests/integration/targets/azure_rm_workspace/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5647901b6198849a4dd58b7fb51aee85b889220f80acde88cea67bffff453d8d",
+ "chksum_sha256": "7ce589f76321d7c707ac86920720af5574f0d3e3685ef6c9aec9987393a09172",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_availabilityset/tasks",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_availabilityset/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c30b16aa5ebe6fdabe4fd9b9cdf0b6dbc4c2b446c8b0e99a19dea16ecc99d3f4",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_availabilityset/meta",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_availabilityset/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_functionapp",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_functionapp/aliases",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "d19280a8d5d5c2523536ea5aed2c5a14d1b19cc49f3f21974ca3e9a9921bb7cd",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_functionapp/tasks",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_functionapp/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "08e8580923076560eb7f8dd2ab853c99b331bf840655f676a0185cb0e5550786",
+ "chksum_sha256": "561193b252168d2eca301ab2c0f673e1a99acc2c807b9f9e8679f1e3b7058d5e",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_functionapp/meta",
+ "name": "tests/integration/targets/inventory_azure",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_functionapp/meta/main.yml",
+ "name": "tests/integration/targets/inventory_azure/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "203fe16581a305486f7d5a2feafad324ed5515a96c26b4f4d84ab34a1cdcb6a3",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_image",
+ "name": "tests/integration/targets/inventory_azure/playbooks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_image/aliases",
+ "name": "tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fca45b39c1e6a21b8fb8e1b6c8f5954d8accf0bc6fa436361d75b014b36a8fd6",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_image/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "96709396441733bc7e0001d045f1f825170489df8eae9cfdb677722f70e034be",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_image/tasks/main.yml",
+ "name": "tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2dd2291b8998e049919a4f19eb92b7b0165845c98230249250eb8cf71edbeb54",
+ "chksum_sha256": "86545d143dd65f74a63218943018bfad054837e6c813fd396442957c89e87a62",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_image/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory_azure/playbooks/teardown.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1f44c8ef223d0219855c453cd859b44b7cd4b2fa10fb1f8cacac75e020975fc8",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_image/meta/main.yml",
+ "name": "tests/integration/targets/inventory_azure/playbooks/setup.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "e95740d1317dda6c7a610a482d33b29e2035293ff74e10a2bcc0f2997ba85430",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory_azure/playbooks/vars.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "23fff20fb969471888915a24760b7a90723a30e3e0e6b7c7745864470c898027",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup/aliases",
+ "name": "tests/integration/targets/inventory_azure/playbooks/test_inventory.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e7fc1f0b30d75ba7b3a8f5a9a45a7703c06585edc0f3ce9231a9b2ca7a649864",
+ "chksum_sha256": "40807db8218dfb3bc6b2f926c7c0ee573ddd6f6ac5b7eb3aa4cd8d013195639b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/inventory_azure/test.azure_rm.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup/tasks/main.yml",
+ "name": "tests/integration/targets/inventory_azure/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9bbc4f4b4ca0601a10dca24bc664363538736a8c80f70553e1f4f80d1a66c56b",
+ "chksum_sha256": "e2e2f39006f1e6b83660c469a9c29e1dfb17b99cca9caa124626e14cd0658a0b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup/meta",
+ "name": "tests/integration/targets/inventory_azure/templates",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_managementgroup/meta/main.yml",
+ "name": "tests/integration/targets/inventory_azure/templates/basic.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "chksum_sha256": "3f99d3d1c0b4f896b1f43477667fc744c2cd2d38471c5bbc9287773b57682628",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/aliases",
+ "name": "tests/integration/targets/inventory_azure/templates/basic2.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b34b028873420b7fdba3b5e4f0b3a1283d3879fcf1ee2d91dbe8a732651ca04a",
+ "chksum_sha256": "758f6dfaa158a3601eb9cd986357f1a40a04071ad62f3ba613002ffde00d6018",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/tasks",
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "1a654c2c02f89f415a85b255516d76fd5aec7096a256c20f1d2daa4b39209bb3",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/meta",
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_bastionhost",
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_bastionhost/aliases",
+ "name": "tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d57abe6f8fb0cbfb8ac22431c09126cd48bb4d2836a6d151faf92fb6fbecc6aa",
+ "chksum_sha256": "e990393d47f344ab98b507415273d6ec89117b52b4feba04783ab07d792e7243",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_bastionhost/tasks",
+ "name": "tests/integration/targets/azure_rm_firewallpolicy",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_bastionhost/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "ef98e39895f3892d2e977cc4a79ca2aea6c6bd61fb6dbc8a31774a765d9940ed",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_bastionhost/meta",
+ "name": "tests/integration/targets/azure_rm_firewallpolicy/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_bastionhost/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_firewallpolicy/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_firewallpolicy",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
"name": "tests/integration/targets/azure_rm_firewallpolicy/aliases",
"ftype": "file",
"chksum_type": "sha256",
@@ -4183,3031 +4106,3171 @@
"name": "tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b06b43e022f24167d8d145bbf99d8289974eeb358f61f554ba58df26a36eb1c1",
+ "chksum_sha256": "83fbfafaa9f1fc5fddcfa245b6911f0e659bbe7ec05431f59ed455b2b7b0298c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_firewallpolicy/meta",
+ "name": "tests/integration/targets/azure_rm_resource",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_firewallpolicy/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_resource/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_resource/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appserviceplan",
+ "name": "tests/integration/targets/azure_rm_resource/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b9685232ad3eab40ee59426a3dd04a8f71719dbfa1d6becb498bb416c8d1ff1c",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_resource/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appserviceplan/aliases",
+ "name": "tests/integration/targets/azure_rm_resource/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3d8b505b037b869206fe23e768d9d42e48dc8db7c83ac3023ec1be689261f907",
+ "chksum_sha256": "e51cbf401d0da7fb038fade492b102a3493b57c0c0e4f9ca927d726db890c4df",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appserviceplan/tasks",
+ "name": "tests/integration/targets/azure_rm_adpassword",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a8bed0c09ce07686ed97137363a429a5449b364fecc25457c881d26e61e97634",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_appserviceplan/meta",
+ "name": "tests/integration/targets/azure_rm_adpassword/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appserviceplan/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_adpassword/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway",
+ "name": "tests/integration/targets/azure_rm_adpassword/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_adpassword/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/aliases",
+ "name": "tests/integration/targets/azure_rm_adpassword/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4f59a6f1fc64a79191d0110c2f203adee747fd1bb69ad631a279efa7d370eaec",
+ "chksum_sha256": "448a3e37f44ca7e199c6184fedaf40e24a648ed1b1b2763b40d5c34e2763adfc",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/tasks",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e0006451e2b966266a67a1aebf9f2d648e016828447550f0f083a76ace66dfe5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/meta",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress/aliases",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ed3159c0b56e6e42548ed58456e5304d48aea0b4e3a0999591f863ae79b225ba",
+ "chksum_sha256": "7a0a7e26e52f22c56e37dcc3154036297160820fe9bfdc27f6b5fb5811e84e9b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress/tasks",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2c35780d3e24b7197e278387511cefb3fcacd33779a474978c79d556c9f5d214",
+ "chksum_sha256": "ecf5403290d75ebf93dd07c1a0d1ec251482cde7952d5fc4c1f51ecde936e804",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress/meta",
+ "name": "tests/integration/targets/azure_rm_mariadbserver",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_publicipaddress/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_mariadbserver/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_mariadbserver/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhub",
+ "name": "tests/integration/targets/azure_rm_mariadbserver/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0f1123b3696957f55774d4316a4461182998975a0db1f960ef289b20b5e926c7",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_mariadbserver/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhub/aliases",
+ "name": "tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "b829d34d571be3c848284902c00755a940e2a629115fbbd3a78af1ce018a0ede",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhub/tasks",
+ "name": "tests/integration/targets/azure_rm_batchaccount",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhub/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4a7c4f53ae8ca7dd799b96fc7a093376c5bd4180045c990eedbaadcd4314d30e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualhub/meta",
+ "name": "tests/integration/targets/azure_rm_batchaccount/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhub/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_batchaccount/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitorlogprofile",
+ "name": "tests/integration/targets/azure_rm_batchaccount/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "049e0b8480c14a44ea8525b83848582417405cd5352a0afc5fc9bc3f1c0f3941",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_batchaccount/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitorlogprofile/aliases",
+ "name": "tests/integration/targets/azure_rm_batchaccount/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
+ "chksum_sha256": "f37479ad82f6ad6db65b64e25816f268071345bbfcd8f168ce2af930d0f99375",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitorlogprofile/tasks",
+ "name": "tests/integration/targets/azure_rm_autoscale",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "bcb0cc259330b2575654edbc4c0451ee9a329e28fec78eab3c1d68bf9df418ca",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_monitorlogprofile/meta",
+ "name": "tests/integration/targets/azure_rm_autoscale/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_monitorlogprofile/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_autoscale/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault",
+ "name": "tests/integration/targets/azure_rm_autoscale/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2019d6f29a1dbe1242200ff0a0485722bc57431db8265a741c5e501cd5a920dd",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_autoscale/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault/aliases",
+ "name": "tests/integration/targets/azure_rm_autoscale/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "chksum_sha256": "c5faa6f6e4e1a6f51493f745f616201b1ed3447db1ec85f60ae676b8ecd334a0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "be03a728e66a55b15c137fce7592331229fbffd37fccc0a54db98a58693c7143",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault/meta",
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_recoveryservicesvault/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_expressroute",
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8eb6da86566844e8278692f99177c27f5e17dfc808484e9168d842ce4ea822b2",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_expressroute/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "c1027dcaf3ce2f749a07c7b78ee56ff713901f0fa792e08ebfc2c31671426a1c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_expressroute/tasks",
+ "name": "tests/integration/targets/azure_rm_rediscache",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_expressroute/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "bbcef6a2061617b1ff6d3d158d0c78a55ac7e993e4e7ab0d584817ead1a1d043",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_expressroute/meta",
+ "name": "tests/integration/targets/azure_rm_rediscache/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_expressroute/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_rediscache/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagementservice",
+ "name": "tests/integration/targets/azure_rm_rediscache/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "5ba0bf8a7bf29813d54b53fd7c3e65698ee5f802eb2ccf76c1707680acc07f17",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_rediscache/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagementservice/aliases",
+ "name": "tests/integration/targets/azure_rm_rediscache/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "528893af1cac01f38ab277aec0138b83c74b2576464d96eb7f3da330784edaff",
+ "chksum_sha256": "60978e58b15da724fb1f16447071e7b33add290150dfbdd4173900c4edda9a91",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagementservice/tasks",
+ "name": "tests/integration/targets/azure_rm_appserviceplan",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "00beef6f868cdbf51ff2e042703c071e86bffbe6c3cc1beb22206bf3c14295a5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_apimanagementservice/meta",
+ "name": "tests/integration/targets/azure_rm_appserviceplan/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_appserviceplan/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "86ade1ce7ec530fef84440672efaf3b60c253946bb82f5f0a134a9691bc6ffad",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_gallery",
+ "name": "tests/integration/targets/azure_rm_appserviceplan/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "3d8b505b037b869206fe23e768d9d42e48dc8db7c83ac3023ec1be689261f907",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_appserviceplan/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_gallery/aliases",
+ "name": "tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e676d2331077a7a453c2694fef48b0b56195d00e5a1009e3f668a7e174abd16b",
+ "chksum_sha256": "f3fd1981d472300a8b2044ffbd73e928a089c2d81b3c09d7d5dff19c5d6cd544",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_gallery/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_gallery/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cf595e8d122e1ea83685f48709c3527c46c0b27ed42da07240dcf5292ca92671",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_gallery/meta",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_gallery/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappvnetconnection",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "4f59a6f1fc64a79191d0110c2f203adee747fd1bb69ad631a279efa7d370eaec",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappvnetconnection/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "271094dd7a4e013c0da515000e4e6257bb716cf030c89dbe37af7ca74902841d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappvnetconnection/tasks",
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "790f3c15bd2fa9ba2013a707b5ffb5996c1562bff7b9886e7c85c05fd327ab7f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_webappvnetconnection/meta",
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_webappvnetconnection/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednsrecordset",
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednsrecordset/aliases",
+ "name": "tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "chksum_sha256": "23178ef47e9dbb43a51984becf44d72972a399952958fd2a76d71d6338864252",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednsrecordset/tasks",
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e8c0c21655e769226d1dabcfc309afff1d8c8a90780ec48cd45bc5f5eb53e7c2",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_privatednsrecordset/meta",
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednsrecordset/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "a66dc9e034ad04e167bd52df4f75f2bea4499b25349fc42b3c8de9e2fe806996",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aduser",
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aduser/aliases",
+ "name": "tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1658975f0508387cde4cda499d7eb9524e31bc2f02cc49d6483d7e210d991234",
+ "chksum_sha256": "cac8f7d2a8403213ad252934698c6c5eef6edc0ccd0eb6c5794990e6c30f05b0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aduser/tasks",
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aduser/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "540275f0a3abdbfd214f0379161cdaf147a166dd4678ce769b87796feaaed4a5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_aduser/meta",
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aduser/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount",
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount/aliases",
+ "name": "tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d9b370414fbcd599ba1e1fa7adb52887e0df75d2ffce2a609bd5af743b02f600",
+ "chksum_sha256": "6e841ad32da809ed4a9782a8ce178f2c8399d98a56be2406142e898afffb65c0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount/tasks",
+ "name": "tests/integration/targets/azure_rm_privateendpoint",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "089a86d47541fecaa694afb80c727708a8b7ebb7d5d6e8dd403b8fecd24668a2",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount/meta",
+ "name": "tests/integration/targets/azure_rm_privateendpoint/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cosmosdbaccount/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privateendpoint/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_routetable",
+ "name": "tests/integration/targets/azure_rm_privateendpoint/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "11c35de489a3da87eb40a2ce00a80a9992fc89c3b3fdee710301ba9faacd332d",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_privateendpoint/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_routetable/aliases",
+ "name": "tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "f5c8cc29641d123e237b894acc5d13e306e61d6cc553d15561730a42e63e55fc",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_routetable/tasks",
+ "name": "tests/integration/targets/azure_rm_backuppolicy",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_routetable/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6e64f574f81b0cbeef18f1be2be5d0a56ffcf838a288617d9ea8862983beaef6",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_routetable/meta",
+ "name": "tests/integration/targets/azure_rm_backuppolicy/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_routetable/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_backuppolicy/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace",
+ "name": "tests/integration/targets/azure_rm_backuppolicy/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_backuppolicy/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/aliases",
+ "name": "tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "f6ab21fb1deaf7061dd270b8ca0bf7c6e585eac172153559349e997150abbcaf",
+ "chksum_sha256": "26b1ed48d843898e1dc63a09a119c74ee83613ed2f0066e2971f3056eda0ee88",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/tasks",
+ "name": "tests/integration/targets/azure_rm_apimanagement",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7fc2d8a21d03401472a808094ab1cb8ce6c18d5a22cbc916a6bd672b0349271f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/meta",
+ "name": "tests/integration/targets/azure_rm_apimanagement/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_apimanagement/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_manageddisk",
+ "name": "tests/integration/targets/azure_rm_apimanagement/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "592e63285615e1fe4768ff5027ae6a96e4dea5c875e1127e14c393cfacbc44fb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_apimanagement/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_manageddisk/aliases",
+ "name": "tests/integration/targets/azure_rm_apimanagement/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b79d487ac5f66f90cfba1e03eb40daf31086e77447861b1cf4aeceee77d9745b",
+ "chksum_sha256": "7be6584e05920691ae83bc434ef61feb54cf098cb187c6457e10234840ee6ff9",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_manageddisk/tasks",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_manageddisk/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f94f8141efef361c15c59980b3387edee7d4ddc5555fd7e0adab1484df9b8191",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_manageddisk/meta",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_manageddisk/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_diskencryptionset/aliases",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch/aliases",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset/tasks",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "14e4d1ad9f066c25e177ef5e8e34a1388615fcef45ed5e62f061972f7ec3d5dc",
+ "chksum_sha256": "e3712847b582b6a3a3f461055963ce51034e160b1e174d06b8b8f6eeecd4bc19",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset/meta",
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset/meta/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins",
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py",
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d08fa7846e9ec68c2a26501edf91ed777a7bfa60f219470df82cfb66fd7dd6e1",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatelinkservice",
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatelinkservice/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "6684f96227d75c363a588e1be85cc7ce53025d7e13844638d100781003901db6",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatelinkservice/tasks",
+ "name": "tests/integration/targets/azure_rm_apimanagementservice",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0a170e5d29f98d1744ce53291462d95aa0687cacd82ba80c2df89f6dc7c095a0",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_privatelinkservice/meta",
+ "name": "tests/integration/targets/azure_rm_apimanagementservice/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatelinkservice/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistry",
+ "name": "tests/integration/targets/azure_rm_apimanagementservice/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "528893af1cac01f38ab277aec0138b83c74b2576464d96eb7f3da330784edaff",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_apimanagementservice/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistry/aliases",
+ "name": "tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ec1ff0ecb096def7880d4a1aab74cae1ee3e46dbdba9df7f476b7311ee64f2ab",
+ "chksum_sha256": "db17a45674ec599ab8fb1890903d3bc49b3ded000197dd55cc82c3017a962565",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistry/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistry/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "268310390c136d6f4ef1873f15f59d85e23c7fa9971d10b9a1716069138a18cf",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_containerregistry/meta",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistry/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c7bb4c8aa02376e55002499e1a01763a649ddf80c253e1da4556ab7719ed05ac",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal/aliases",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "528893af1cac01f38ab277aec0138b83c74b2576464d96eb7f3da330784edaff",
+ "chksum_sha256": "5c0ffa5a2e80c5c71996a8f4fe46816621d764b46f0f7bc23560b55e2072d5e7",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "bc547f3e3d85cbbddf317023aa640e9ba44003ec4f6282f8f6226ac24a53c1a4",
+ "chksum_sha256": "ecf5403290d75ebf93dd07c1a0d1ec251482cde7952d5fc4c1f51ecde936e804",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal/meta",
+ "name": "tests/integration/targets/azure_rm_eventhub",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adserviceprincipal/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_eventhub/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_eventhub/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlserver",
+ "name": "tests/integration/targets/azure_rm_eventhub/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_eventhub/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlserver/aliases",
+ "name": "tests/integration/targets/azure_rm_eventhub/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b497f92848d198221058a5f5aa42e37dc513f9d2a64f54b2ddc9029b80ab7219",
+ "chksum_sha256": "c4ef2c774f92b1d1c61c070407cb15cec4492593f03dfc095031136a6fc315e4",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlserver/tasks",
+ "name": "tests/integration/targets/azure_rm_postgresqlserver",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlserver/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "4be907accf51f165748454fc1a5159c59b6997a28b8e1b2c4c22c249ec777f4f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_sqlserver/meta",
+ "name": "tests/integration/targets/azure_rm_postgresqlserver/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlserver/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datalakestore",
+ "name": "tests/integration/targets/azure_rm_postgresqlserver/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "212c2162821130244834f49afd3460bb037d426eac902fc88de51afbe6bab522",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_postgresqlserver/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datalakestore/aliases",
+ "name": "tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "957431198f2f2412d381532922a380b37d3a2941dce8f6fbcda89284fa7d3ca5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datalakestore/tasks",
+ "name": "tests/integration/targets/azure_rm_publicipaddress",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datalakestore/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "91c36efb148a6e7e8816ff3f599ae2641ac57aaeb92d7d62a2736b7c07b6d5fc",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_datalakestore/meta",
+ "name": "tests/integration/targets/azure_rm_publicipaddress/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_datalakestore/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_publicipaddress/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway",
+ "name": "tests/integration/targets/azure_rm_publicipaddress/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ed3159c0b56e6e42548ed58456e5304d48aea0b4e3a0999591f863ae79b225ba",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_publicipaddress/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/aliases",
+ "name": "tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21442459796e3c03ab3c6461c8251810f5545ff2320c4c814cce8b8c520e615c",
+ "chksum_sha256": "0240ae96de6dabce7cd47a7793fb7a263717ea1b2e28423f47ba0c75333ed8cd",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/tasks",
+ "name": "tests/integration/targets/azure_rm_servicebus",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_servicebus/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_servicebus/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1918adad547000201f74726f4592154582274ef4debc12523d9458c7e7ed6571",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/meta",
+ "name": "tests/integration/targets/azure_rm_servicebus/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_servicebus/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_servicebus/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "a0528bf0af2a590fe46bced0ca843722543d5f10626604a887a7c278e97c38d2",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/files",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/files/cert1.txt",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7637ce7f36cca366294688f612f6456714088cca19583ae7e9475e572d85f4f5",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/files/cert3b64.txt",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1375dc6f493fb760c6087c4cdd62c4ea898887070ad17dc84196b3d6ed0545ec",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_appgateway/files/cert2.txt",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e4dc34faa2e8e94cd385be73c33a849f452dd57d061a8aec118e6d391e46bbc0",
+ "chksum_sha256": "cc618d5714ddaae8f1482cf89dcf3327cf82fa378c16f6b5cf092339927261c3",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnszone",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnszone/aliases",
+ "name": "tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1af368a225674fcae08ea809c4dc605f03bc0334b44a9b17dfab0dfe49d93ac6",
+ "chksum_sha256": "4c185b22edc1017409894f57875fe5db2c986c6d741cbd86dc78aa01b36a9fc9",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnszone/tasks",
+ "name": "tests/integration/targets/azure_rm_aksagentpool",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnszone/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3ee8d72a90072536d2cd063f43e5d907d629eaad1aad031c68547328bb25e934",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_dnszone/meta",
+ "name": "tests/integration/targets/azure_rm_aksagentpool/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnszone/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_aksagentpool/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset",
+ "name": "tests/integration/targets/azure_rm_aksagentpool/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "783d6dbd1b9cc4b0543d6e96d15206283018e0c291764a2a4106e860d41cb210",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_aksagentpool/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/aliases",
+ "name": "tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5510a946bf7e1d1ad196eaa73474176b122ae491702a99f9160ad1d554fc08bf",
+ "chksum_sha256": "4bc2ac2faed9ceba28dfb24dffff6d996da42cf6aac09cb3a57c044a17bc046b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvault",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "e8a554bc94ee2b932713ecb72d3e19b09d5a61764b2b4b4d25b7a333b932aca2",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/meta",
+ "name": "tests/integration/targets/azure_rm_keyvault/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvault/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork",
+ "name": "tests/integration/targets/azure_rm_keyvault/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "726101a2dd7238a8ff7f94fec489e5fcfd8bb0db10ecd074fa0686b2eb9d6d24",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_keyvault/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork/aliases",
+ "name": "tests/integration/targets/azure_rm_keyvault/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "85d1f060912261e42affe3f43fbe52750e62bc5d2fe7d9b55f604be778052033",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork/tasks",
+ "name": "tests/integration/targets/azure_rm_keyvault/lookup_plugins",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "3a1898e5f4ad9974807f3688113c3c8ba5620c62767a773fc61e53fcc783a1e0",
+ "chksum_sha256": "ecf5403290d75ebf93dd07c1a0d1ec251482cde7952d5fc4c1f51ecde936e804",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork/meta",
+ "name": "tests/integration/targets/azure_rm_bastionhost",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetwork/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_bastionhost/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_bastionhost/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnsrecordset",
+ "name": "tests/integration/targets/azure_rm_bastionhost/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d57abe6f8fb0cbfb8ac22431c09126cd48bb4d2836a6d151faf92fb6fbecc6aa",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_bastionhost/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnsrecordset/aliases",
+ "name": "tests/integration/targets/azure_rm_bastionhost/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "chksum_sha256": "b2adf15d8a7ef9e0b56dba6b3ebe750f09192d86ec56df6076088fd4edd444e3",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnsrecordset/tasks",
+ "name": "tests/integration/targets/azure_rm_containerinstance",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6b9f536a2062adc87ce808e6090b3fbdca0a6cf5738c2240bd4e42631ad4b6d3",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_dnsrecordset/meta",
+ "name": "tests/integration/targets/azure_rm_containerinstance/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_dnsrecordset/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_containerinstance/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_deployment",
+ "name": "tests/integration/targets/azure_rm_containerinstance/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "059ec72ab54682d34b109880aa48f5b5b702d120042153371442c7293c011f31",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_containerinstance/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_deployment/aliases",
+ "name": "tests/integration/targets/azure_rm_containerinstance/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11d8df93f7c7fb0bd35df23550ce55cea64300cbd7b3a1282927d49c53f53951",
+ "chksum_sha256": "d5d577eb39a4533fea27bd3240b4ffaa278f64b5f56b5c6375c0d1e73b7ba382",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_deployment/tasks",
+ "name": "tests/integration/targets/azure_rm_registrationassignment",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_deployment/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "40e1e28e9d4f20a6e94eea183148fd635ab49fe7fb2d22e3690ad2dacbc0dc5c",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_deployment/meta",
+ "name": "tests/integration/targets/azure_rm_registrationassignment/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_deployment/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_registrationassignment/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adpassword",
+ "name": "tests/integration/targets/azure_rm_registrationassignment/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_registrationassignment/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adpassword/aliases",
+ "name": "tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
+ "chksum_sha256": "86581a9afe3f4c3e4f7021f214e089c84267a3b909312cba226a9011c223bc9b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adpassword/tasks",
+ "name": "tests/integration/targets/azure_rm_adgroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adpassword/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "03dd808fe4a8bac380c00d4d955647b943104ac15c4d48f8d56220694d8fc360",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_adpassword/meta",
+ "name": "tests/integration/targets/azure_rm_adgroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adpassword/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_adgroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault",
+ "name": "tests/integration/targets/azure_rm_adgroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_adgroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/aliases",
+ "name": "tests/integration/targets/azure_rm_adgroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "726101a2dd7238a8ff7f94fec489e5fcfd8bb0db10ecd074fa0686b2eb9d6d24",
+ "chksum_sha256": "f4adb4bc8784bbb857a39fbe58f45a1a47853538f3207e987b8bd64b1704238b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/tasks",
+ "name": "tests/integration/targets/setup_azure",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/tasks/main.yml",
+ "name": "tests/integration/targets/setup_azure/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0a5a277a2c0ecfe553d34e9f9dbca06d962f8de2e2aae5c9b54be0d9f037afe9",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/meta",
+ "name": "tests/integration/targets/azure_rm_aks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/meta/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_keyvault/lookup_plugins",
+ "name": "tests/integration/targets/azure_rm_aks/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py",
+ "name": "tests/integration/targets/azure_rm_aks/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d08fa7846e9ec68c2a26501edf91ed777a7bfa60f219470df82cfb66fd7dd6e1",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink",
+ "name": "tests/integration/targets/azure_rm_aks/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "783d6dbd1b9cc4b0543d6e96d15206283018e0c291764a2a4106e860d41cb210",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_aks/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink/aliases",
+ "name": "tests/integration/targets/azure_rm_aks/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "683619ec3541848983b2f513eae4d885c97d3040ac188d252aec7304c3440c0b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2b2be2027bb762b22ccf731a32baf3fa8b2675369c08b76c1499b3ea10902add",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "93d612e8b237141324401fcecd2c981476861705baf09030841246f5a951452e",
+ "name": "tests/integration/targets/azure_rm_containerregistrytag",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink/meta",
+ "name": "tests/integration/targets/azure_rm_containerregistrytag/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszonelink/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_containerregistrytag/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_postgresqlserver",
+ "name": "tests/integration/targets/azure_rm_containerregistrytag/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_containerregistrytag/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_postgresqlserver/aliases",
+ "name": "tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "212c2162821130244834f49afd3460bb037d426eac902fc88de51afbe6bab522",
+ "chksum_sha256": "c3f1c91c39a8986e9aaaaf4e0f2bd84796f20ede51d7868e74a37a7839d1759d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_postgresqlserver/tasks",
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "71f1647be9d4dee9a954cc2d07f05b7f7dcbb8bee5d04969b78a55c83972d4e9",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_postgresqlserver/meta",
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_natgateway",
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "11c35de489a3da87eb40a2ce00a80a9992fc89c3b3fdee710301ba9faacd332d",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_natgateway/aliases",
+ "name": "tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "21442459796e3c03ab3c6461c8251810f5545ff2320c4c814cce8b8c520e615c",
+ "chksum_sha256": "408a60ac3331b6d89792e393613ca595886d842ab4ecc6825e6dc15bb02faf86",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_natgateway/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualnetwork",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_natgateway/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "bb517955919b3994264ff27d39b427b342ce4e414807e327fcbc604de98de662",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_natgateway/meta",
+ "name": "tests/integration/targets/azure_rm_virtualnetwork/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_natgateway/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualnetwork/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info",
+ "name": "tests/integration/targets/azure_rm_virtualnetwork/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualnetwork/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8eb6da86566844e8278692f99177c27f5e17dfc808484e9168d842ce4ea822b2",
+ "chksum_sha256": "e46b1abb1ab82874622d1821b564cee555be16ced454a9723f3cff45dcb5948c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/tasks",
+ "name": "tests/integration/targets/azure_rm_cdnprofile",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "f31e17c306b2a84fa24b67a1ff63e35d3156b1e7d2e313199331a7108e87deeb",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/meta",
+ "name": "tests/integration/targets/azure_rm_cdnprofile/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualmachineimage_info/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_cdnprofile/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagement",
+ "name": "tests/integration/targets/azure_rm_cdnprofile/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d922663ea733e96e4da9178ebcd4baa17435a011302f3d609f7391e651d119f9",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_cdnprofile/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagement/aliases",
+ "name": "tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "592e63285615e1fe4768ff5027ae6a96e4dea5c875e1127e14c393cfacbc44fb",
+ "chksum_sha256": "b292a101e30c2cf1ddb3541d9d1827483b29baea9a909cdfa57dfb9a24827741",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagement/tasks",
+ "name": "tests/integration/targets/azure_rm_subscription",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagement/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "43ae7f214db19a05f6fba586c9afef61c4c6345d7c75fd00b617293208cf693a",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_apimanagement/meta",
+ "name": "tests/integration/targets/azure_rm_subscription/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_apimanagement/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_subscription/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationdefinition",
+ "name": "tests/integration/targets/azure_rm_subscription/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_subscription/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationdefinition/aliases",
+ "name": "tests/integration/targets/azure_rm_subscription/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "cb18a11b4b6b14912f9fcc0131c232c9d3525d14a8d43ee4b2606cc2d3f7249c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationdefinition/tasks",
+ "name": "tests/integration/targets/azure_rm_notificationhub",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a583f5bc8add4b7e43a0d426bd822600192802c9bc15f8f3f48bbeecac5485f7",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_registrationdefinition/meta",
+ "name": "tests/integration/targets/azure_rm_notificationhub/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationdefinition/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_notificationhub/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "a66dc9e034ad04e167bd52df4f75f2bea4499b25349fc42b3c8de9e2fe806996",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhubconnection",
+ "name": "tests/integration/targets/azure_rm_notificationhub/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_notificationhub/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhubconnection/aliases",
+ "name": "tests/integration/targets/azure_rm_notificationhub/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "7f519a0026da2e72a6633b7e82a4c2ae581c50b918a5291b3b4737360211276b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhubconnection/tasks",
+ "name": "tests/integration/targets/azure_rm_automationaccount",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6e38f9c74c7efd203ae7c1760075b8452b0f36fd1348ab216351727444885a91",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_virtualhubconnection/meta",
+ "name": "tests/integration/targets/azure_rm_automationaccount/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualhubconnection/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_automationaccount/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_autoscale",
+ "name": "tests/integration/targets/azure_rm_automationaccount/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "87c7ae7077faea9533bb827344f49dadfecfdbc5ea179058d72f7bad3ae81388",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_automationaccount/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_autoscale/aliases",
+ "name": "tests/integration/targets/azure_rm_automationaccount/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2019d6f29a1dbe1242200ff0a0485722bc57431db8265a741c5e501cd5a920dd",
+ "chksum_sha256": "c99286c45665b96d5deea95731688470a9a02c11d22f868cb0ba7a56b71c63c5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_autoscale/tasks",
+ "name": "tests/integration/targets/azure_rm_account_info",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_autoscale/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6f59879bb7f425656a8a514579d39e3f5cb83b8249b050fc7d44583b7037869a",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_autoscale/meta",
+ "name": "tests/integration/targets/azure_rm_account_info/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_autoscale/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_account_info/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup",
+ "name": "tests/integration/targets/azure_rm_account_info/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a58bdac3b7068e244f2cf71f0a1a0bf136bc8785d2a8947fecbafdd97313adb7",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_account_info/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup/aliases",
+ "name": "tests/integration/targets/azure_rm_account_info/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "4a18344a391206dc34d9e73134c7e2a2815ae3cdc36cf9b6791ac19e1bc07d6a",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualmachine",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/runme.sh",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "8147fe03a7a144f1365298a436b37c14c92c2ad95a8debe63052b63017ee6774",
+ "chksum_sha256": "8d9a70f8c75d9a856cd529ae8ccb6e589c0db9494da4bb08cead6963e98d9dd5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "49c03342521da6b25da0d4df975ee81e10e8b1e7ebd1bdabeba797463bceddbe",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hostgroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "deefc8fe8e3699aa1e8852f316f52c0037219050b5b5d07919fa24d06ac14ed5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/inventory.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "979c1f5123e61d083ca0ddb9816bd3381e6c2f830ae2a96648f2d4dd720a0f8d",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "ee3b904aa8ab8d0a7e47983927157b420c195fe1d8606de015158339e7824a43",
+ "chksum_sha256": "ee1ca82e2f43899c6dc17f2bd4710229f33c31aec6beb8ad9093e436d2df5b1f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "40cfa7a636a0741e3f17deb1c7b965fbc42074f3fb7a50503dc93b9c2515a2e4",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "38a6724132aab6bfc1da0eb2706ccbad284a4f40e952cff9a43817cbe499eba0",
+ "chksum_sha256": "5dbfe466ae3aa493f04b91016c88318774d3e974304b90d882ed60c7ae8e2a93",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_vm_identity.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a7b73bb1af0583758961a25336d5faa2eb76fe6e84b3b9698b1bc5e53fbe4f9c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualnetworkpeering/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "055893c82ae8b817fbcd3287b7435ae35ba8d6825ad3cb9545048ac599f9dd56",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "6ec63fe982d7ce8d65dadd74eb7e5c3678fa88e008ddfeaa43b1d3b77e094583",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
+ "chksum_sha256": "41a71c6515836e0c1c764ae83a0c999403e1fb774a55c5ab7912bdf7f1e2fc89",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1af862edc4a550cf631bcaa7a082d23451a3e7eacd0a248e4688bcc8dc6ef604",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d770a67dd20f3735183550907fc2cb0bbb4a3b39032b36c0e03582dff92f742",
+ "chksum_sha256": "5f3d3633f808a35e23202cc9be4436f7ee590314694016377f7d40b357e4d00d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a7f201260799a21031f75d3ecbd6cc372007c3a2c5ef7a6c9d35053129b868cd",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_eventhub/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "1d3000da1ae66217ff40113749e77538bee7ebf49e1808ad36488ca33d89761f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "fc53572c2732984518157aaff50942ab77426127a14f2e81faddfd45dd039e4c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b9685232ad3eab40ee59426a3dd04a8f71719dbfa1d6becb498bb416c8d1ff1c",
+ "chksum_sha256": "e10179f3c286b53a8347a1cd7d3672cc80e9184589dc7ea292489279fcc67ede",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "97017436c84bdbc87de46cee90cfab5edd108685b439253083f141cd5fd52a78",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a95da8a8656a35415a3b437feed732f73ed55cebd52ec82b5fb1be4d10584f73",
+ "name": "tests/integration/targets/azure_rm_roleassignment",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource/meta",
+ "name": "tests/integration/targets/azure_rm_roleassignment/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_resource/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_roleassignment/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy",
+ "name": "tests/integration/targets/azure_rm_roleassignment/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "51bfa0d69b7c8b7e94b28aa9c60c921ace3971f50a385673a66791c31749678a",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_roleassignment/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy/aliases",
+ "name": "tests/integration/targets/azure_rm_roleassignment/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "chksum_sha256": "77fcaa43c9c8308f544b5ffa24411dcdcd67f1957ff1c7ff2831d451eb5fb9b2",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy/tasks",
+ "name": "tests/integration/targets/azure_rm_securitygroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "cccf65de4bf107159176c3acc0a67856a4bd0022ee22320a72e973fa2d954004",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy/meta",
+ "name": "tests/integration/targets/azure_rm_securitygroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vmbackuppolicy/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_securitygroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup",
+ "name": "tests/integration/targets/azure_rm_securitygroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a390a5b729f05cbb0f6d91d7d663389c81a571a34bd2e931dc56fcdaee025754",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_securitygroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup/aliases",
+ "name": "tests/integration/targets/azure_rm_securitygroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "436bac9c55273b36de74ec81c5c41e2c608843665dfec86ef85138d81a3c5b55",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup/tasks",
+ "name": "tests/integration/targets/azure_rm_manageddisk",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b82875cadb004d9a7c2de8130132298d55d142bf1a894bb9d60b826c1f248639",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup/meta",
+ "name": "tests/integration/targets/azure_rm_manageddisk/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_proximityplacementgroup/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_manageddisk/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance",
+ "name": "tests/integration/targets/azure_rm_manageddisk/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b79d487ac5f66f90cfba1e03eb40daf31086e77447861b1cf4aeceee77d9745b",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_manageddisk/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/aliases",
+ "name": "tests/integration/targets/azure_rm_manageddisk/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d19280a8d5d5c2523536ea5aed2c5a14d1b19cc49f3f21974ca3e9a9921bb7cd",
+ "chksum_sha256": "c8decdddddd8660e19da01320399ff9e5216c7733d9c755a9f812f81068f7ca5",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/tasks",
+ "name": "tests/integration/targets/azure_rm_vpnsite",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d650dc72294a2dd10db5dfb8c90200c76e61b391db90daa2a6c0a5dc36d9d5ba",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/meta",
+ "name": "tests/integration/targets/azure_rm_vpnsite/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_sqlmanagedinstance/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_vpnsite/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hdinsightcluster",
+ "name": "tests/integration/targets/azure_rm_vpnsite/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "51bfa0d69b7c8b7e94b28aa9c60c921ace3971f50a385673a66791c31749678a",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_vpnsite/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hdinsightcluster/aliases",
+ "name": "tests/integration/targets/azure_rm_vpnsite/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dffdf5ca6061cf1a43744d6b7e0bb18a4020eed3f693702082b2314f982c65a6",
+ "chksum_sha256": "bcfd0915de197ad7e6d01dd27e5ffe2a8f62d93303f19d5e4c09373a82dc7334",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hdinsightcluster/tasks",
+ "name": "tests/integration/targets/azure_rm_gallery",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "c8f3a538060cabfd7081234dc8bdd50c2465dac3a07b5e64b527ec496f2d01b5",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_hdinsightcluster/meta",
+ "name": "tests/integration/targets/azure_rm_gallery/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_hdinsightcluster/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_gallery/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpoint",
+ "name": "tests/integration/targets/azure_rm_gallery/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e676d2331077a7a453c2694fef48b0b56195d00e5a1009e3f668a7e174abd16b",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_gallery/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpoint/aliases",
+ "name": "tests/integration/targets/azure_rm_gallery/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "11c35de489a3da87eb40a2ce00a80a9992fc89c3b3fdee710301ba9faacd332d",
+ "chksum_sha256": "22d0d3850e426784e4df1c303a1857ea5cbaf9735e5ed6df62442ac04aba5216",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpoint/tasks",
+ "name": "tests/integration/targets/azure_rm_dnsrecordset",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d9a95e51f0df82ac337e57b026a55ec070fefc15203a3dd6d0239e89a09c31de",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_privateendpoint/meta",
+ "name": "tests/integration/targets/azure_rm_dnsrecordset/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privateendpoint/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_dnsrecordset/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_rediscache",
+ "name": "tests/integration/targets/azure_rm_dnsrecordset/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_dnsrecordset/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_rediscache/aliases",
+ "name": "tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "5ba0bf8a7bf29813d54b53fd7c3e65698ee5f802eb2ccf76c1707680acc07f17",
+ "chksum_sha256": "9d766be151f93042b7018bd39ac79b987e66389613ce426a70d5683952b5a841",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_rediscache/tasks",
+ "name": "tests/integration/targets/azure_rm_storageaccount",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_rediscache/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "17e2a11d7e099908c91ef4eb73392f860280b089afe97af692aa449c33f58b07",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_rediscache/meta",
+ "name": "tests/integration/targets/azure_rm_storageaccount/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_rediscache/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_storageaccount/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationassignment",
+ "name": "tests/integration/targets/azure_rm_storageaccount/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_storageaccount/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationassignment/aliases",
+ "name": "tests/integration/targets/azure_rm_storageaccount/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "chksum_sha256": "cddf19a5eb8e886612cfea1a81f43967228e1375327c04e984a143e6bf5d495f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationassignment/tasks",
+ "name": "tests/integration/targets/azure_rm_mysqlserver",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "feb8a64c4dcd8021030be7a894117093d24ec2abb4332b401db9a3195d20ae50",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_registrationassignment/meta",
+ "name": "tests/integration/targets/azure_rm_mysqlserver/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_registrationassignment/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_mysqlserver/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_batchaccount",
+ "name": "tests/integration/targets/azure_rm_mysqlserver/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2c74420c4bc9cc5d8af14406a1d97ea762c6b8afa4de8728a4a833b2e742cf41",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_mysqlserver/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_batchaccount/aliases",
+ "name": "tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "049e0b8480c14a44ea8525b83848582417405cd5352a0afc5fc9bc3f1c0f3941",
+ "chksum_sha256": "743277ee9a1eda331e62acae9a94ba4820d4bef31de88a77008d62fdda27874c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_batchaccount/tasks",
+ "name": "tests/integration/targets/azure_rm_expressroute",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_batchaccount/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "352bccf8fb5c893bf917097828d4fb16cda90c527f007892a9352ed2402aae47",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_batchaccount/meta",
+ "name": "tests/integration/targets/azure_rm_expressroute/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_batchaccount/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_expressroute/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey",
+ "name": "tests/integration/targets/azure_rm_expressroute/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_expressroute/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey/aliases",
+ "name": "tests/integration/targets/azure_rm_expressroute/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "chksum_sha256": "0fee3fb92d49fcebdc6564a4becd35f638cfa294e5d893fc5adf2fff21ac072b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey/tasks",
+ "name": "tests/integration/targets/azure_rm_devtestlab",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7f3d7cfad90bfc2a0c18b401ad2b52413ad9b3f3c9b02526bbe8e741a9b62595",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_keyvaultkey/meta",
+ "name": "tests/integration/targets/azure_rm_devtestlab/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_devtestlab/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py",
+ "name": "tests/integration/targets/azure_rm_devtestlab/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d08fa7846e9ec68c2a26501edf91ed777a7bfa60f219470df82cfb66fd7dd6e1",
+ "chksum_sha256": "435162ac2df7aa373bc2d191a07d79c283d3891a1278b0277f85e6112b96fc03",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vpnsite",
+ "name": "tests/integration/targets/azure_rm_devtestlab/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vpnsite/aliases",
+ "name": "tests/integration/targets/azure_rm_devtestlab/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "51bfa0d69b7c8b7e94b28aa9c60c921ace3971f50a385673a66791c31749678a",
+ "chksum_sha256": "17fd6c08f41838809e461f199a62e373c8bf28c5d90199bf09340ae9762dd252",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vpnsite/tasks",
+ "name": "tests/integration/targets/azure_rm_storageshare",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vpnsite/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "746c59c9882ae5210d22d6835db86037cfde1448e1faf7d75842fe8e18cd287e",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_vpnsite/meta",
+ "name": "tests/integration/targets/azure_rm_storageshare/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_vpnsite/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_storageshare/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adapplication",
+ "name": "tests/integration/targets/azure_rm_storageshare/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_storageshare/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adapplication/aliases",
+ "name": "tests/integration/targets/azure_rm_storageshare/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "0e90b0bd13c40122b87176faa412a83730dcc85c0060dffa0d7b0450d559ed40",
+ "chksum_sha256": "8428a40d80a569d0c5ac929641e4befc59b86cf7c7cc4da72add3b5eb4570202",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adapplication/tasks",
+ "name": "tests/integration/targets/azure_rm_containerregistry",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adapplication/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "d9ee994437da318ecf5a5fef8b899ea236db7d97cca8d027092930f5e181bf4f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_adapplication/meta",
+ "name": "tests/integration/targets/azure_rm_containerregistry/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_adapplication/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_containerregistry/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/setup_azure",
+ "name": "tests/integration/targets/azure_rm_containerregistry/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "ec1ff0ecb096def7880d4a1aab74cae1ee3e46dbdba9df7f476b7311ee64f2ab",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_containerregistry/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/setup_azure/aliases",
+ "name": "tests/integration/targets/azure_rm_containerregistry/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "7eab7dde3b4ad416e882a673e1b671770c760c1d2ff97f9c21606a24bb3a7540",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare",
+ "name": "tests/integration/targets/azure_rm_acs",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare/aliases",
+ "name": "tests/integration/targets/azure_rm_acs/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_acs/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare/tasks",
+ "name": "tests/integration/targets/azure_rm_acs/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "2f7e954a810d0341b1aed1d34e5684bc502980bb6ebbe6a46fb03163ed0e11db",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_acs/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_acs/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "84ab49dce1912995caef94f302ff7ed98d6234e06fe54d6faa55cd29e802e7df",
+ "chksum_sha256": "ecad2cdce0986a34a8f64d2bcbcbd742d99a0083d4e2773cc6a5482a5d529b9c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare/meta",
+ "name": "tests/integration/targets/azure_rm_storageblob",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageshare/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_storageblob/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_storageblob/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret",
+ "name": "tests/integration/targets/azure_rm_storageblob/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_storageblob/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/aliases",
+ "name": "tests/integration/targets/azure_rm_storageblob/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "c7bb4c8aa02376e55002499e1a01763a649ddf80c253e1da4556ab7719ed05ac",
+ "chksum_sha256": "b93536f3d35eaa0d49a0bfb1ce75902b524b86c0db95f3e43122088dcfcac442",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/tasks",
+ "name": "tests/integration/targets/azure_rm_storageblob/files",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_storageblob/files/Ratings.png",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e28a64d6bb6fa59065265ee662c3da858db8ba9d278007b84aa76b161ce5905c",
+ "chksum_sha256": "20cdf86ae984fb64eefdc57a0e03f34c83cb8b27834b33c84768cc2b62cf9d68",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/meta",
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins",
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f6ab21fb1deaf7061dd270b8ca0bf7c6e585eac172153559349e997150abbcaf",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py",
+ "name": "tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d08fa7846e9ec68c2a26501edf91ed777a7bfa60f219470df82cfb66fd7dd6e1",
+ "chksum_sha256": "529ae2dab2d63d3af2eab9ff5fe9b466a9c2bf3bf600d0a5221126ddec9be288",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure",
+ "name": "tests/integration/targets/azure_rm_backupazurevm",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/test.azure_rm.yml",
+ "name": "tests/integration/targets/azure_rm_backupazurevm/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_backupazurevm/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/aliases",
+ "name": "tests/integration/targets/azure_rm_backupazurevm/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e2e2f39006f1e6b83660c469a9c29e1dfb17b99cca9caa124626e14cd0658a0b",
+ "chksum_sha256": "91c612e6c7b96f80e7e1cede3dc0ef7431a2900356b7e85a7521e2679bfcfa49",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/templates",
+ "name": "tests/integration/targets/azure_rm_backupazurevm/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/templates/basic2.yml",
+ "name": "tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "758f6dfaa158a3601eb9cd986357f1a40a04071ad62f3ba613002ffde00d6018",
+ "chksum_sha256": "4ac0d2995ac62544c567223a1e45c1b1fc568b840b645d5b42a0b41fd4df1661",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/templates/basic.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "3f99d3d1c0b4f896b1f43477667fc744c2cd2d38471c5bbc9287773b57682628",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "fb0ef55005c4532dc1ce027933a64bdd030fc524cf769ba04c7a55af74ad3825",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/setup.yml",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d3b5efa255e58e82d8f9b68d69ea0d18acbf391fc9c8c29429ce239a06191fe5",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/teardown.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "56f5867ac251afdf3029e70f5c6cc56202b02f5e4a2b7d581a778f0bee2f1d78",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition/tasks",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/test_inventory.yml",
+ "name": "tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "9d203152d9cf31363d91d57bc1c8d3f41819c65b5794c5e499e8b7f6f610da20",
+ "chksum_sha256": "b1e2343656426831e5aadf56883b897f520bfc13adee76347b787f396f037855",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/vars.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "23fff20fb969471888915a24760b7a90723a30e3e0e6b7c7745864470c898027",
+ "name": "tests/integration/targets/azure_rm_availabilityset",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml",
+ "name": "tests/integration/targets/azure_rm_availabilityset/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_availabilityset/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "4c8ad8ccbb06836f7fd7c8eb03902517c05d3d60669884e6dd993cb4a982d743",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/inventory_azure/runme.sh",
+ "name": "tests/integration/targets/azure_rm_availabilityset/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "203fe16581a305486f7d5a2feafad324ed5515a96c26b4f4d84ab34a1cdcb6a3",
+ "chksum_sha256": "5647901b6198849a4dd58b7fb51aee85b889220f80acde88cea67bffff453d8d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cdnprofile",
+ "name": "tests/integration/targets/azure_rm_availabilityset/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cdnprofile/aliases",
+ "name": "tests/integration/targets/azure_rm_availabilityset/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d922663ea733e96e4da9178ebcd4baa17435a011302f3d609f7391e651d119f9",
+ "chksum_sha256": "0d096b5b5000fd2c1c259adae048dd6ac824c2441db10e6fe352282c8bb77b8a",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cdnprofile/tasks",
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "5c25b15cf50e7d835c76e61ee05dcdf8d788ca7bc70bc600ac1c01f9461743fa",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_cdnprofile/meta",
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_cdnprofile/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerinstance",
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "dffdf5ca6061cf1a43744d6b7e0bb18a4020eed3f693702082b2314f982c65a6",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerinstance/aliases",
+ "name": "tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "059ec72ab54682d34b109880aa48f5b5b702d120042153371442c7293c011f31",
+ "chksum_sha256": "2a0464f133b840983fad3fa552279ac8aca4a07023877e84bd273e8bde440f65",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerinstance/tasks",
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerinstance/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "6ea4f42d32c3d5feb8a3764ae1e8c21b32dc5b7c7a3af6d6c1df622dfe7d1a2f",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_containerinstance/meta",
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerinstance/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistrytag",
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "262ad6ab8a8087f2f21d4f26a2c2d02c347a7edf0fb1af8fdb931ab1c1087bbb",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistrytag/aliases",
+ "name": "tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "fe11d34bfc4836a138318153cd0df0bb89f64d2d6d64f9dc7843704f1bd60760",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistrytag/tasks",
+ "name": "tests/integration/targets/azure_rm_networkinterface",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "b2dafa7a0578a14b8db994de7895c37b6d7548183e277af00ba2df8056bf9a32",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_containerregistrytag/meta",
+ "name": "tests/integration/targets/azure_rm_networkinterface/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_containerregistrytag/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_networkinterface/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan",
+ "name": "tests/integration/targets/azure_rm_networkinterface/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "79cafc6b10612f907e2e4a97bac50c9948ac0a0dd5030875a9465204a6323b48",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_networkinterface/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan/aliases",
+ "name": "tests/integration/targets/azure_rm_networkinterface/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "1be076424fbf717d678e202250426e9b368688f8d3029f0c5dc262b97df819af",
+ "chksum_sha256": "cd2b9fd7ff5b256d26839ba3646b9347fa95f8fd6b1104e7f2835e1d7b7b2624",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan/tasks",
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "56e8c026b7bc7080ae83e08851e81a5e338154dc1c959c430a47a08a3fdf740d",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan/meta",
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "dc52aeb87665e099cf3a8ea346ef11e82ee323aa360b983d540739839a852fd8",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backupazurevm",
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "36614727374728e26b5686e9fac66641e5b9c268b6945f2dcd1b4a9c4d2232c3",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backupazurevm/aliases",
+ "name": "tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "91c612e6c7b96f80e7e1cede3dc0ef7431a2900356b7e85a7521e2679bfcfa49",
+ "chksum_sha256": "1fc82f73aab3fbd25c62ca6e740a796a286df28c3de2cc6d084619cdb7fd12eb",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backupazurevm/tasks",
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "7f36a9206aee456e050ad93d88f5949f5e2926caa03d5001e7f21faa58c286f1",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_backupazurevm/meta",
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_backupazurevm/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "86ade1ce7ec530fef84440672efaf3b60c253946bb82f5f0a134a9691bc6ffad",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loadbalancer",
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loadbalancer/aliases",
+ "name": "tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "923b442d786cff06e0b7a3ea4232f7bfe10835e93fb73b8df6ee997380099420",
+ "chksum_sha256": "c5c88276931feb2e7c2b7386c1ed4885d19888d5f70cf8c76dd4088fa33fa79d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loadbalancer/tasks",
+ "name": "tests/integration/targets/azure_rm_resourcegroup",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0fcedad3bc473d420c53ef5a9aef83d360b2b7490d1da7d486ceb97a89298e22",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_loadbalancer/meta",
+ "name": "tests/integration/targets/azure_rm_resourcegroup/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_loadbalancer/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_resourcegroup/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aksagentpool",
+ "name": "tests/integration/targets/azure_rm_resourcegroup/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "cd30933c00554775a36ee6421935b7d8baf776db7cb35d5a103be9e18b7d2486",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_resourcegroup/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aksagentpool/aliases",
+ "name": "tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "783d6dbd1b9cc4b0543d6e96d15206283018e0c291764a2a4106e860d41cb210",
+ "chksum_sha256": "ccf92a54443b6b7b1df4139247acd0d9496fb6266d6a99defb4035fb76cb61a3",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aksagentpool/tasks",
+ "name": "tests/integration/targets/azure_rm_virtualhub",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "0dcd646ff5f0878e03f906d116aeb76539de11af1ba1890a47d88fba0d83b4c3",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_aksagentpool/meta",
+ "name": "tests/integration/targets/azure_rm_virtualhub/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_aksagentpool/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_virtualhub/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageaccount",
+ "name": "tests/integration/targets/azure_rm_virtualhub/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_virtualhub/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageaccount/aliases",
+ "name": "tests/integration/targets/azure_rm_virtualhub/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "109bb8ece8ca54a061f03f7050aca3401610606b79a6e313d2556dcb04fda637",
+ "chksum_sha256": "8810084bf5132a43f31c425b77e96134af6d5855dcb4d4ab94ed2b691d555614",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageaccount/tasks",
+ "name": "tests/integration/targets/azure_rm_privatednszone",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageaccount/tasks/main.yml",
- "ftype": "file",
- "chksum_type": "sha256",
- "chksum_sha256": "a38da8b4c75427135c5af1f070ec2938f3028fae753241377d6fa644ef38ec6b",
- "format": 1
- },
- {
- "name": "tests/integration/targets/azure_rm_storageaccount/meta",
+ "name": "tests/integration/targets/azure_rm_privatednszone/meta",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_storageaccount/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_privatednszone/meta/main.yml",
"ftype": "file",
"chksum_type": "sha256",
"chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan",
+ "name": "tests/integration/targets/azure_rm_privatednszone/aliases",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "e131092efb0e9d778baeb38471a15da9b4f8ab9e3425ec4f37aaece309220d47",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_privatednszone/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan/aliases",
+ "name": "tests/integration/targets/azure_rm_privatednszone/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "b09e7a20443d9fe8e820607cf9ae826988c41fe890af049d025cb7eba9e4dbb0",
+ "chksum_sha256": "b2de5836a16a64f95f0494dd53d54cd82716c1133e7707c0c2680d9502dfef5c",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan/tasks",
+ "name": "tests/integration/targets/azure_rm_datafactory",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan/tasks/main.yml",
+ "name": "tests/integration/targets/azure_rm_datafactory/meta",
+ "ftype": "dir",
+ "chksum_type": null,
+ "chksum_sha256": null,
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_datafactory/meta/main.yml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "format": 1
+ },
+ {
+ "name": "tests/integration/targets/azure_rm_datafactory/aliases",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "626d27329e2174e36d407be9fc626156ac4ed0817e9ccb6a9f125f7c8fa25ca2",
+ "chksum_sha256": "a74040b53394bd68b1885c350f1f62603740e721ca38e01609660895693a3858",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan/meta",
+ "name": "tests/integration/targets/azure_rm_datafactory/tasks",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_virtualwan/meta/main.yml",
+ "name": "tests/integration/targets/azure_rm_datafactory/tasks/main.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "eedba69010cd9dad1b57c7e0f7f18eacb0feb43359922cb53c3ba98479e8dfcc",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone",
+ "name": "tests/sanity",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone/aliases",
+ "name": "tests/sanity/ignore-2.13.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e131092efb0e9d778baeb38471a15da9b4f8ab9e3425ec4f37aaece309220d47",
+ "chksum_sha256": "c88d45d86600e17b8da638521ccef69e6f48ce4a0e1486cb59e09ae1d0d65d57",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone/tasks",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "tests/sanity/ignore-2.15.txt",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "c88d45d86600e17b8da638521ccef69e6f48ce4a0e1486cb59e09ae1d0d65d57",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone/tasks/main.yml",
+ "name": "tests/sanity/ignore-2.14.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "864bae11ad5b2e3e708668fd4d8b09b7b8ffa4d27b62ef98d0275a1da830c294",
+ "chksum_sha256": "c88d45d86600e17b8da638521ccef69e6f48ce4a0e1486cb59e09ae1d0d65d57",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "LICENSE",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_privatednszone/meta/main.yml",
+ "name": "sanity-requirements-azure.txt",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "bd3de2a9921f5fcdfed1582123c18a91bd48b120d2e9c10d9879ef46d40e98f1",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": "CHANGELOG.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "7f464028041360717ad63fbeeb1a50c208c8d1c13792f1ac55f9aed2449af8da",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook/aliases",
+ "name": "release-pipelines.yml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "522c2e1148926193596b31fa7cf086b9f57e17c7028abc638a2b6f5bb9269850",
+ "chksum_sha256": "26a84e5d665443b05c84c798e9d901a7681cf891436e04b4a16c9f9cfbab1f8a",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook/tasks",
+ "name": "CONTRIBUTING.md",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "290a3dfba9b53aecbf86badacfdcb7f320c9a924e02a8f0b4824785a551d0a39",
+ "format": 1
+ },
+ {
+ "name": ".idea",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml",
+ "name": ".idea/misc.xml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "45759293845fd4f0cde756813fe3887ec228533ff6cc5957d1a776798bc2327b",
+ "chksum_sha256": "e5df86803b5913746c8d40c348879d7f9442e4a6bfefbae93cc711a640fba506",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": ".idea/azcollection.iml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "a9e614b7294d32d9dd7d25fd7116079ac7e3ac6bbe3043f672cb3db0f828eeeb",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_automationrunbook/meta/main.yml",
+ "name": ".idea/modules.xml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "c8aa540922a578f85297bfb3bacf703eb49b573c6c229fc2323e6a90e33bdca6",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": ".idea/workspace.xml",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "f87e05eb5e48aba1dff20dbea0fb919b6f3c848d2391064f56028ae939d7101d",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs/aliases",
+ "name": ".idea/vcs.xml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "2f7e954a810d0341b1aed1d34e5684bc502980bb6ebbe6a46fb03163ed0e11db",
+ "chksum_sha256": "62be7e0a7f84ab3c35b4d4bafb890a4951d061eadafde1a10aa3f5d0406db5df",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs/tasks",
+ "name": ".idea/inspectionProfiles",
"ftype": "dir",
"chksum_type": null,
"chksum_sha256": null,
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs/tasks/main.yml",
+ "name": ".idea/inspectionProfiles/profiles_settings.xml",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "6c8990f11a0e4bac2c4cd8131f0494e05386a8a17e519e126910e941b5092c32",
+ "chksum_sha256": "6172c5997eeb3cd19c9ca2b5b97d6e2983cdd1fa60b2460d7bbb74055edcaa46",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs/meta",
- "ftype": "dir",
- "chksum_type": null,
- "chksum_sha256": null,
+ "name": ".idea/.gitignore",
+ "ftype": "file",
+ "chksum_type": "sha256",
+ "chksum_sha256": "1bfdece3645ed8ed356030f22cc2004dc3f401ff060ac3d24de811c3bcd82e16",
"format": 1
},
{
- "name": "tests/integration/targets/azure_rm_acs/meta/main.yml",
+ "name": ".gitignore",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "d00bd90476595ae7d97d3ca8f8aa7ff475ebc3dd87d7d12e862bf0527f7bd81f",
+ "chksum_sha256": "702d6332d579931561017161f2d96eb3b023a006c94ed262d789411d0f21bd26",
"format": 1
}
],
diff --git a/ansible_collections/azure/azcollection/MANIFEST.json b/ansible_collections/azure/azcollection/MANIFEST.json
index c4e596627..4c8d77d4a 100644
--- a/ansible_collections/azure/azcollection/MANIFEST.json
+++ b/ansible_collections/azure/azcollection/MANIFEST.json
@@ -2,7 +2,7 @@
"collection_info": {
"namespace": "azure",
"name": "azcollection",
- "version": "1.16.0",
+ "version": "1.19.0",
"authors": [
"Microsoft <ansible@microsoft.com>"
],
@@ -31,7 +31,7 @@
"name": "FILES.json",
"ftype": "file",
"chksum_type": "sha256",
- "chksum_sha256": "e29f531bba6f16e3cfdddb6fa4011507294c1525d9f80f4e68803527f7478fe8",
+ "chksum_sha256": "3ed7ebc35c6b19227d62f58a00333d40e5ba30ca842d3c2c293465bae42f7b4a",
"format": 1
},
"format": 1
diff --git a/ansible_collections/azure/azcollection/README.md b/ansible_collections/azure/azcollection/README.md
index b05c76b1c..69d9e7c0b 100644
--- a/ansible_collections/azure/azcollection/README.md
+++ b/ansible_collections/azure/azcollection/README.md
@@ -1,5 +1,5 @@
# Ansible collection for Azure
-[![Doc](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html#azure)
+[![Doc](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/collections/azure/azcollection/index.html)
[![Code of conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
[![License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](LICENSE)
@@ -50,7 +50,7 @@ To use a module from Azure collection, please reference the full namespace, coll
account_type: Standard_LRS
```
-Or you can add full namepsace and collection name in the `collections` element:
+Or you can add full namespace and collection name in the `collections` element:
```yaml
---
diff --git a/ansible_collections/azure/azcollection/azure-pipelines.yml b/ansible_collections/azure/azcollection/azure-pipelines.yml
index 406dc2575..1c9e13b86 100644
--- a/ansible_collections/azure/azcollection/azure-pipelines.yml
+++ b/ansible_collections/azure/azcollection/azure-pipelines.yml
@@ -2,44 +2,41 @@ trigger:
batch: true
branches:
include:
- - "*"
+ - "*"
jobs:
-- job: CG
- pool:
- name: pool-ubuntu-2004
+ - job: CG
+ pool:
+ name: pool-ubuntu-2004
- steps:
- - task: ComponentGovernanceComponentDetection@0
- inputs:
- scanType: 'Register'
- verbosity: 'Verbose'
- alertWarningLevel: 'Medium'
- failOnAlert: true
-
-- job: CredScan
- pool:
- vmImage: "windows-2019"
-
- steps:
- - task: ea576cd4-c61f-48f8-97e7-a3cb07b90a6f@2
- inputs:
- toolMajorVersion: 'V2'
- suppressionsFile: 'CredScanSuppressions.json'
-
- - task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
- inputs:
- AllTools: false
- APIScan: false
- BinSkim: false
- CodesignValidation: false
- CredScan: true
- FortifySCA: false
- FxCop: false
- ModernCop: false
- PoliCheck: false
- RoslynAnalyzers: false
- SDLNativeRules: false
- Semmle: false
- TSLint: false
- ToolLogsNotFoundAction: 'Standard'
+ steps:
+ - task: ComponentGovernanceComponentDetection@0
+ inputs:
+ scanType: 'Register'
+ verbosity: 'Verbose'
+ alertWarningLevel: 'Medium'
+ failOnAlert: true
+ - job: CredScan
+ pool:
+ vmImage: "windows-2019"
+ steps:
+ - task: ea576cd4-c61f-48f8-97e7-a3cb07b90a6f@2
+ inputs:
+ toolMajorVersion: 'V2'
+ suppressionsFile: 'CredScanSuppressions.json'
+ - task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
+ inputs:
+ AllTools: false
+ APIScan: false
+ BinSkim: false
+ CodesignValidation: false
+ CredScan: true
+ FortifySCA: false
+ FxCop: false
+ ModernCop: false
+ PoliCheck: false
+ RoslynAnalyzers: false
+ SDLNativeRules: false
+ Semmle: false
+ TSLint: false
+ ToolLogsNotFoundAction: 'Standard'
diff --git a/ansible_collections/azure/azcollection/meta/runtime.yml b/ansible_collections/azure/azcollection/meta/runtime.yml
index 0d9c5c166..ccff76341 100644
--- a/ansible_collections/azure/azcollection/meta/runtime.yml
+++ b/ansible_collections/azure/azcollection/meta/runtime.yml
@@ -1,282 +1,286 @@
---
-requires_ansible: '>=2.9.10'
+requires_ansible: '>=2.13.0'
action_groups:
all:
- - azure.azcollection.azure_rm_account_info
- - azure.azcollection.azure_rm_adapplication
- - azure.azcollection.azure_rm_adapplication_info
- - azure.azcollection.azure_rm_adgroup
- - azure.azcollection.azure_rm_adgroup_info
- - azure.azcollection.azure_rm_adpassword
- - azure.azcollection.azure_rm_adpassword_info
- - azure.azcollection.azure_rm_adserviceprincipal
- - azure.azcollection.azure_rm_adserviceprincipal_info
- - azure.azcollection.azure_rm_aduser
- - azure.azcollection.azure_rm_aduser_info
- - azure.azcollection.azure_rm_aks
- - azure.azcollection.azure_rm_aks_info
- - azure.azcollection.azure_rm_aksagentpool
- - azure.azcollection.azure_rm_aksagentpool_info
- - azure.azcollection.azure_rm_aksagentpoolversion_info
- - azure.azcollection.azure_rm_aksupgrade_info
- - azure.azcollection.azure_rm_aksversion_info
- - azure.azcollection.azure_rm_apimanagement
- - azure.azcollection.azure_rm_apimanagement_info
- - azure.azcollection.azure_rm_apimanagementservice
- - azure.azcollection.azure_rm_apimanagementservice_info
- - azure.azcollection.azure_rm_appgateway
- - azure.azcollection.azure_rm_appgateway_info
- - azure.azcollection.azure_rm_applicationsecuritygroup
- - azure.azcollection.azure_rm_applicationsecuritygroup_info
- - azure.azcollection.azure_rm_appserviceplan
- - azure.azcollection.azure_rm_appserviceplan_info
- - azure.azcollection.azure_rm_automationaccount
- - azure.azcollection.azure_rm_automationaccount_info
- - azure.azcollection.azure_rm_automationrunbook
- - azure.azcollection.azure_rm_automationrunbook_info
- - azure.azcollection.azure_rm_autoscale
- - azure.azcollection.azure_rm_autoscale_info
- - azure.azcollection.azure_rm_availabilityset
- - azure.azcollection.azure_rm_availabilityset_info
- - azure.azcollection.azure_rm_azurefirewall
- - azure.azcollection.azure_rm_azurefirewall_info
- - azure.azcollection.azure_rm_backupazurevm
- - azure.azcollection.azure_rm_backupazurevm_info
- - azure.azcollection.azure_rm_backuppolicy
- - azure.azcollection.azure_rm_backuppolicy_info
- - azure.azcollection.azure_rm_bastionhost
- - azure.azcollection.azure_rm_bastionhost_info
- - azure.azcollection.azure_rm_batchaccount
- - azure.azcollection.azure_rm_cdnendpoint
- - azure.azcollection.azure_rm_cdnendpoint_info
- - azure.azcollection.azure_rm_cdnprofile
- - azure.azcollection.azure_rm_cdnprofile_info
- - azure.azcollection.azure_rm_cognitivesearch
- - azure.azcollection.azure_rm_cognitivesearch_info
- - azure.azcollection.azure_rm_containerinstance
- - azure.azcollection.azure_rm_containerinstance_info
- - azure.azcollection.azure_rm_containerregistry
- - azure.azcollection.azure_rm_containerregistry_info
- - azure.azcollection.azure_rm_containerregistryreplication
- - azure.azcollection.azure_rm_containerregistryreplication_info
- - azure.azcollection.azure_rm_containerregistrytag
- - azure.azcollection.azure_rm_containerregistrytag_info
- - azure.azcollection.azure_rm_containerregistrywebhook
- - azure.azcollection.azure_rm_containerregistrywebhook_info
- - azure.azcollection.azure_rm_cosmosdbaccount
- - azure.azcollection.azure_rm_cosmosdbaccount_info
- - azure.azcollection.azure_rm_datafactory
- - azure.azcollection.azure_rm_datafactory_info
- - azure.azcollection.azure_rm_datalakestore
- - azure.azcollection.azure_rm_datalakestore_info
- - azure.azcollection.azure_rm_ddosprotectionplan
- - azure.azcollection.azure_rm_ddosprotectionplan_info
- - azure.azcollection.azure_rm_deployment
- - azure.azcollection.azure_rm_deployment_info
- - azure.azcollection.azure_rm_devtestlab
- - azure.azcollection.azure_rm_devtestlab_info
- - azure.azcollection.azure_rm_devtestlabarmtemplate_info
- - azure.azcollection.azure_rm_devtestlabartifact_info
- - azure.azcollection.azure_rm_devtestlabartifactsource
- - azure.azcollection.azure_rm_devtestlabartifactsource_info
- - azure.azcollection.azure_rm_devtestlabcustomimage
- - azure.azcollection.azure_rm_devtestlabcustomimage_info
- - azure.azcollection.azure_rm_devtestlabenvironment
- - azure.azcollection.azure_rm_devtestlabenvironment_info
- - azure.azcollection.azure_rm_devtestlabpolicy
- - azure.azcollection.azure_rm_devtestlabpolicy_info
- - azure.azcollection.azure_rm_devtestlabschedule
- - azure.azcollection.azure_rm_devtestlabschedule_info
- - azure.azcollection.azure_rm_devtestlabvirtualmachine
- - azure.azcollection.azure_rm_devtestlabvirtualmachine_info
- - azure.azcollection.azure_rm_devtestlabvirtualnetwork
- - azure.azcollection.azure_rm_devtestlabvirtualnetwork_info
- - azure.azcollection.azure_rm_diskencryptionset
- - azure.azcollection.azure_rm_diskencryptionset_info
- - azure.azcollection.azure_rm_dnsrecordset
- - azure.azcollection.azure_rm_dnsrecordset_info
- - azure.azcollection.azure_rm_dnszone
- - azure.azcollection.azure_rm_dnszone_info
- - azure.azcollection.azure_rm_eventhub
- - azure.azcollection.azure_rm_eventhub_info
- - azure.azcollection.azure_rm_expressroute
- - azure.azcollection.azure_rm_expressroute_info
- - azure.azcollection.azure_rm_firewallpolicy
- - azure.azcollection.azure_rm_firewallpolicy_info
- - azure.azcollection.azure_rm_functionapp
- - azure.azcollection.azure_rm_functionapp_info
- - azure.azcollection.azure_rm_gallery
- - azure.azcollection.azure_rm_gallery_info
- - azure.azcollection.azure_rm_galleryimage
- - azure.azcollection.azure_rm_galleryimage_info
- - azure.azcollection.azure_rm_galleryimageversion
- - azure.azcollection.azure_rm_galleryimageversion_info
- - azure.azcollection.azure_rm_hdinsightcluster
- - azure.azcollection.azure_rm_hdinsightcluster_info
- - azure.azcollection.azure_rm_hostgroup
- - azure.azcollection.azure_rm_hostgroup_info
- - azure.azcollection.azure_rm_image
- - azure.azcollection.azure_rm_image_info
- - azure.azcollection.azure_rm_iotdevice
- - azure.azcollection.azure_rm_iotdevice_info
- - azure.azcollection.azure_rm_iotdevicemodule
- - azure.azcollection.azure_rm_iothub
- - azure.azcollection.azure_rm_iothub_info
- - azure.azcollection.azure_rm_iothubconsumergroup
- - azure.azcollection.azure_rm_ipgroup
- - azure.azcollection.azure_rm_ipgroup_info
- - azure.azcollection.azure_rm_keyvault
- - azure.azcollection.azure_rm_keyvault_info
- - azure.azcollection.azure_rm_keyvaultkey
- - azure.azcollection.azure_rm_keyvaultkey_info
- - azure.azcollection.azure_rm_keyvaultsecret
- - azure.azcollection.azure_rm_keyvaultsecret_info
- - azure.azcollection.azure_rm_loadbalancer
- - azure.azcollection.azure_rm_loadbalancer_info
- - azure.azcollection.azure_rm_lock
- - azure.azcollection.azure_rm_lock_info
- - azure.azcollection.azure_rm_loganalyticsworkspace
- - azure.azcollection.azure_rm_loganalyticsworkspace_info
- - azure.azcollection.azure_rm_manageddisk
- - azure.azcollection.azure_rm_manageddisk_info
- - azure.azcollection.azure_rm_managementgroup
- - azure.azcollection.azure_rm_managementgroup_info
- - azure.azcollection.azure_rm_mariadbconfiguration
- - azure.azcollection.azure_rm_mariadbconfiguration_info
- - azure.azcollection.azure_rm_mariadbdatabase
- - azure.azcollection.azure_rm_mariadbdatabase_info
- - azure.azcollection.azure_rm_mariadbfirewallrule
- - azure.azcollection.azure_rm_mariadbfirewallrule_info
- - azure.azcollection.azure_rm_mariadbserver
- - azure.azcollection.azure_rm_mariadbserver_info
- - azure.azcollection.azure_rm_monitordiagnosticsetting
- - azure.azcollection.azure_rm_monitordiagnosticsetting_info
- - azure.azcollection.azure_rm_monitorlogprofile
- - azure.azcollection.azure_rm_mysqlconfiguration
- - azure.azcollection.azure_rm_mysqlconfiguration_info
- - azure.azcollection.azure_rm_mysqldatabase
- - azure.azcollection.azure_rm_mysqldatabase_info
- - azure.azcollection.azure_rm_mysqlfirewallrule
- - azure.azcollection.azure_rm_mysqlfirewallrule_info
- - azure.azcollection.azure_rm_mysqlserver
- - azure.azcollection.azure_rm_mysqlserver_info
- - azure.azcollection.azure_rm_natgateway
- - azure.azcollection.azure_rm_natgateway_info
- - azure.azcollection.azure_rm_networkinterface
- - azure.azcollection.azure_rm_networkinterface_info
- - azure.azcollection.azure_rm_notificationhub
- - azure.azcollection.azure_rm_notificationhub_info
- - azure.azcollection.azure_rm_openshiftmanagedcluster
- - azure.azcollection.azure_rm_openshiftmanagedcluster_info
- - azure.azcollection.azure_rm_postgresqlconfiguration
- - azure.azcollection.azure_rm_postgresqlconfiguration_info
- - azure.azcollection.azure_rm_postgresqldatabase
- - azure.azcollection.azure_rm_postgresqldatabase_info
- - azure.azcollection.azure_rm_postgresqlfirewallrule
- - azure.azcollection.azure_rm_postgresqlfirewallrule_info
- - azure.azcollection.azure_rm_postgresqlserver
- - azure.azcollection.azure_rm_postgresqlserver_info
- - azure.azcollection.azure_rm_privatednsrecordset
- - azure.azcollection.azure_rm_privatednsrecordset_info
- - azure.azcollection.azure_rm_privatednszone
- - azure.azcollection.azure_rm_privatednszone_info
- - azure.azcollection.azure_rm_privatednszonelink
- - azure.azcollection.azure_rm_privatednszonelink_info
- - azure.azcollection.azure_rm_privateendpoint
- - azure.azcollection.azure_rm_privateendpoint_info
- - azure.azcollection.azure_rm_privateendpointconnection
- - azure.azcollection.azure_rm_privateendpointconnection_info
- - azure.azcollection.azure_rm_privateendpointdnszonegroup
- - azure.azcollection.azure_rm_privateendpointdnszonegroup_info
- - azure.azcollection.azure_rm_privatelinkservice
- - azure.azcollection.azure_rm_privatelinkservice_info
- - azure.azcollection.azure_rm_proximityplacementgroup
- - azure.azcollection.azure_rm_proximityplacementgroup_info
- - azure.azcollection.azure_rm_publicipaddress
- - azure.azcollection.azure_rm_publicipaddress_info
- - azure.azcollection.azure_rm_recoveryservicesvault
- - azure.azcollection.azure_rm_recoveryservicesvault_info
- - azure.azcollection.azure_rm_rediscache
- - azure.azcollection.azure_rm_rediscache_info
- - azure.azcollection.azure_rm_rediscachefirewallrule
- - azure.azcollection.azure_rm_registrationassignment
- - azure.azcollection.azure_rm_registrationassignment_info
- - azure.azcollection.azure_rm_registrationdefinition
- - azure.azcollection.azure_rm_registrationdefinition_info
- - azure.azcollection.azure_rm_resource
- - azure.azcollection.azure_rm_resource_info
- - azure.azcollection.azure_rm_resourcegroup
- - azure.azcollection.azure_rm_resourcegroup_info
- - azure.azcollection.azure_rm_roleassignment
- - azure.azcollection.azure_rm_roleassignment_info
- - azure.azcollection.azure_rm_roledefinition
- - azure.azcollection.azure_rm_roledefinition_info
- - azure.azcollection.azure_rm_route
- - azure.azcollection.azure_rm_route_info
- - azure.azcollection.azure_rm_routetable
- - azure.azcollection.azure_rm_routetable_info
- - azure.azcollection.azure_rm_securitygroup
- - azure.azcollection.azure_rm_securitygroup_info
- - azure.azcollection.azure_rm_servicebus
- - azure.azcollection.azure_rm_servicebus_info
- - azure.azcollection.azure_rm_servicebusqueue
- - azure.azcollection.azure_rm_servicebussaspolicy
- - azure.azcollection.azure_rm_servicebustopic
- - azure.azcollection.azure_rm_servicebustopicsubscription
- - azure.azcollection.azure_rm_snapshot
- - azure.azcollection.azure_rm_sqldatabase
- - azure.azcollection.azure_rm_sqldatabase_info
- - azure.azcollection.azure_rm_sqlfirewallrule
- - azure.azcollection.azure_rm_sqlfirewallrule_info
- - azure.azcollection.azure_rm_sqlserver
- - azure.azcollection.azure_rm_sqlserver_info
- - azure.azcollection.azure_rm_sqlmanagedinstance
- - azure.azcollection.azure_rm_sqlmanagedinstance_info
- - azure.azcollection.azure_rm_storageaccount
- - azure.azcollection.azure_rm_storageaccount_info
- - azure.azcollection.azure_rm_storageblob
- - azure.azcollection.azure_rm_storageshare
- - azure.azcollection.azure_rm_storageshare_info
- - azure.azcollection.azure_rm_subnet
- - azure.azcollection.azure_rm_subnet_info
- - azure.azcollection.azure_rm_subscription_info
- - azure.azcollection.azure_rm_trafficmanager
- - azure.azcollection.azure_rm_trafficmanagerendpoint
- - azure.azcollection.azure_rm_trafficmanagerendpoint_info
- - azure.azcollection.azure_rm_trafficmanagerprofile
- - azure.azcollection.azure_rm_trafficmanagerprofile_info
- - azure.azcollection.azure_rm_virtualhub
- - azure.azcollection.azure_rm_virtualhub_info
- - azure.azcollection.azure_rm_virtualhubconnection
- - azure.azcollection.azure_rm_virtualhubconnection_info
- - azure.azcollection.azure_rm_virtualmachine
- - azure.azcollection.azure_rm_virtualmachine_info
- - azure.azcollection.azure_rm_virtualmachineextension
- - azure.azcollection.azure_rm_virtualmachineextension_info
- - azure.azcollection.azure_rm_virtualmachineimage_info
- - azure.azcollection.azure_rm_virtualmachinescaleset
- - azure.azcollection.azure_rm_virtualmachinescaleset_info
- - azure.azcollection.azure_rm_virtualmachinescalesetextension
- - azure.azcollection.azure_rm_virtualmachinescalesetextension_info
- - azure.azcollection.azure_rm_virtualmachinescalesetinstance
- - azure.azcollection.azure_rm_virtualmachinescalesetinstance_info
- - azure.azcollection.azure_rm_virtualmachinesize_info
- - azure.azcollection.azure_rm_virtualnetwork
- - azure.azcollection.azure_rm_virtualnetwork_info
- - azure.azcollection.azure_rm_virtualnetworkgateway
- - azure.azcollection.azure_rm_virtualnetworkpeering
- - azure.azcollection.azure_rm_virtualnetworkpeering_info
- - azure.azcollection.azure_rm_virtualwan
- - azure.azcollection.azure_rm_virtualwan_info
- - azure.azcollection.azure_rm_vmbackuppolicy
- - azure.azcollection.azure_rm_vmbackuppolicy_info
- - azure.azcollection.azure_rm_vpnsite
- - azure.azcollection.azure_rm_vpnsite_info
- - azure.azcollection.azure_rm_vpnsitelink_info
- - azure.azcollection.azure_rm_webapp
- - azure.azcollection.azure_rm_webapp_info
- - azure.azcollection.azure_rm_webappaccessrestriction
- - azure.azcollection.azure_rm_webappaccessrestriction_info
- - azure.azcollection.azure_rm_webappslot
- - azure.azcollection.azure_rm_webappvnetconnection
- - azure.azcollection.azure_rm_webappvnetconnection_info
+ - azure.azcollection.azure_rm_account_info
+ - azure.azcollection.azure_rm_adapplication
+ - azure.azcollection.azure_rm_adapplication_info
+ - azure.azcollection.azure_rm_adgroup
+ - azure.azcollection.azure_rm_adgroup_info
+ - azure.azcollection.azure_rm_adpassword
+ - azure.azcollection.azure_rm_adpassword_info
+ - azure.azcollection.azure_rm_adserviceprincipal
+ - azure.azcollection.azure_rm_adserviceprincipal_info
+ - azure.azcollection.azure_rm_aduser
+ - azure.azcollection.azure_rm_aduser_info
+ - azure.azcollection.azure_rm_aks
+ - azure.azcollection.azure_rm_aks_info
+ - azure.azcollection.azure_rm_aksagentpool
+ - azure.azcollection.azure_rm_aksagentpool_info
+ - azure.azcollection.azure_rm_aksagentpoolversion_info
+ - azure.azcollection.azure_rm_aksupgrade_info
+ - azure.azcollection.azure_rm_aksversion_info
+ - azure.azcollection.azure_rm_apimanagement
+ - azure.azcollection.azure_rm_apimanagement_info
+ - azure.azcollection.azure_rm_apimanagementservice
+ - azure.azcollection.azure_rm_apimanagementservice_info
+ - azure.azcollection.azure_rm_appgateway
+ - azure.azcollection.azure_rm_appgateway_info
+ - azure.azcollection.azure_rm_applicationsecuritygroup
+ - azure.azcollection.azure_rm_applicationsecuritygroup_info
+ - azure.azcollection.azure_rm_appserviceplan
+ - azure.azcollection.azure_rm_appserviceplan_info
+ - azure.azcollection.azure_rm_automationaccount
+ - azure.azcollection.azure_rm_automationaccount_info
+ - azure.azcollection.azure_rm_automationrunbook
+ - azure.azcollection.azure_rm_automationrunbook_info
+ - azure.azcollection.azure_rm_autoscale
+ - azure.azcollection.azure_rm_autoscale_info
+ - azure.azcollection.azure_rm_availabilityset
+ - azure.azcollection.azure_rm_availabilityset_info
+ - azure.azcollection.azure_rm_azurefirewall
+ - azure.azcollection.azure_rm_azurefirewall_info
+ - azure.azcollection.azure_rm_backupazurevm
+ - azure.azcollection.azure_rm_backupazurevm_info
+ - azure.azcollection.azure_rm_backuppolicy
+ - azure.azcollection.azure_rm_backuppolicy_info
+ - azure.azcollection.azure_rm_bastionhost
+ - azure.azcollection.azure_rm_bastionhost_info
+ - azure.azcollection.azure_rm_batchaccount
+ - azure.azcollection.azure_rm_cdnendpoint
+ - azure.azcollection.azure_rm_cdnendpoint_info
+ - azure.azcollection.azure_rm_cdnprofile
+ - azure.azcollection.azure_rm_cdnprofile_info
+ - azure.azcollection.azure_rm_cognitivesearch
+ - azure.azcollection.azure_rm_cognitivesearch_info
+ - azure.azcollection.azure_rm_containerinstance
+ - azure.azcollection.azure_rm_containerinstance_info
+ - azure.azcollection.azure_rm_containerregistry
+ - azure.azcollection.azure_rm_containerregistry_info
+ - azure.azcollection.azure_rm_containerregistryreplication
+ - azure.azcollection.azure_rm_containerregistryreplication_info
+ - azure.azcollection.azure_rm_containerregistrytag
+ - azure.azcollection.azure_rm_containerregistrytag_info
+ - azure.azcollection.azure_rm_containerregistrywebhook
+ - azure.azcollection.azure_rm_containerregistrywebhook_info
+ - azure.azcollection.azure_rm_cosmosdbaccount
+ - azure.azcollection.azure_rm_cosmosdbaccount_info
+ - azure.azcollection.azure_rm_datafactory
+ - azure.azcollection.azure_rm_datafactory_info
+ - azure.azcollection.azure_rm_datalakestore
+ - azure.azcollection.azure_rm_datalakestore_info
+ - azure.azcollection.azure_rm_ddosprotectionplan
+ - azure.azcollection.azure_rm_ddosprotectionplan_info
+ - azure.azcollection.azure_rm_deployment
+ - azure.azcollection.azure_rm_deployment_info
+ - azure.azcollection.azure_rm_devtestlab
+ - azure.azcollection.azure_rm_devtestlab_info
+ - azure.azcollection.azure_rm_devtestlabarmtemplate_info
+ - azure.azcollection.azure_rm_devtestlabartifact_info
+ - azure.azcollection.azure_rm_devtestlabartifactsource
+ - azure.azcollection.azure_rm_devtestlabartifactsource_info
+ - azure.azcollection.azure_rm_devtestlabcustomimage
+ - azure.azcollection.azure_rm_devtestlabcustomimage_info
+ - azure.azcollection.azure_rm_devtestlabenvironment
+ - azure.azcollection.azure_rm_devtestlabenvironment_info
+ - azure.azcollection.azure_rm_devtestlabpolicy
+ - azure.azcollection.azure_rm_devtestlabpolicy_info
+ - azure.azcollection.azure_rm_devtestlabschedule
+ - azure.azcollection.azure_rm_devtestlabschedule_info
+ - azure.azcollection.azure_rm_devtestlabvirtualmachine
+ - azure.azcollection.azure_rm_devtestlabvirtualmachine_info
+ - azure.azcollection.azure_rm_devtestlabvirtualnetwork
+ - azure.azcollection.azure_rm_devtestlabvirtualnetwork_info
+ - azure.azcollection.azure_rm_diskencryptionset
+ - azure.azcollection.azure_rm_diskencryptionset_info
+ - azure.azcollection.azure_rm_dnsrecordset
+ - azure.azcollection.azure_rm_dnsrecordset_info
+ - azure.azcollection.azure_rm_dnszone
+ - azure.azcollection.azure_rm_dnszone_info
+ - azure.azcollection.azure_rm_eventhub
+ - azure.azcollection.azure_rm_eventhub_info
+ - azure.azcollection.azure_rm_expressroute
+ - azure.azcollection.azure_rm_expressroute_info
+ - azure.azcollection.azure_rm_firewallpolicy
+ - azure.azcollection.azure_rm_firewallpolicy_info
+ - azure.azcollection.azure_rm_functionapp
+ - azure.azcollection.azure_rm_functionapp_info
+ - azure.azcollection.azure_rm_gallery
+ - azure.azcollection.azure_rm_gallery_info
+ - azure.azcollection.azure_rm_galleryimage
+ - azure.azcollection.azure_rm_galleryimage_info
+ - azure.azcollection.azure_rm_galleryimageversion
+ - azure.azcollection.azure_rm_galleryimageversion_info
+ - azure.azcollection.azure_rm_hdinsightcluster
+ - azure.azcollection.azure_rm_hdinsightcluster_info
+ - azure.azcollection.azure_rm_hostgroup
+ - azure.azcollection.azure_rm_hostgroup_info
+ - azure.azcollection.azure_rm_image
+ - azure.azcollection.azure_rm_image_info
+ - azure.azcollection.azure_rm_iotdevice
+ - azure.azcollection.azure_rm_iotdevice_info
+ - azure.azcollection.azure_rm_iotdevicemodule
+ - azure.azcollection.azure_rm_iothub
+ - azure.azcollection.azure_rm_iothub_info
+ - azure.azcollection.azure_rm_iothubconsumergroup
+ - azure.azcollection.azure_rm_ipgroup
+ - azure.azcollection.azure_rm_ipgroup_info
+ - azure.azcollection.azure_rm_keyvault
+ - azure.azcollection.azure_rm_keyvault_info
+ - azure.azcollection.azure_rm_keyvaultkey
+ - azure.azcollection.azure_rm_keyvaultkey_info
+ - azure.azcollection.azure_rm_keyvaultsecret
+ - azure.azcollection.azure_rm_keyvaultsecret_info
+ - azure.azcollection.azure_rm_loadbalancer
+ - azure.azcollection.azure_rm_loadbalancer_info
+ - azure.azcollection.azure_rm_lock
+ - azure.azcollection.azure_rm_lock_info
+ - azure.azcollection.azure_rm_loganalyticsworkspace
+ - azure.azcollection.azure_rm_loganalyticsworkspace_info
+ - azure.azcollection.azure_rm_manageddisk
+ - azure.azcollection.azure_rm_manageddisk_info
+ - azure.azcollection.azure_rm_managementgroup
+ - azure.azcollection.azure_rm_managementgroup_info
+ - azure.azcollection.azure_rm_mariadbconfiguration
+ - azure.azcollection.azure_rm_mariadbconfiguration_info
+ - azure.azcollection.azure_rm_mariadbdatabase
+ - azure.azcollection.azure_rm_mariadbdatabase_info
+ - azure.azcollection.azure_rm_mariadbfirewallrule
+ - azure.azcollection.azure_rm_mariadbfirewallrule_info
+ - azure.azcollection.azure_rm_mariadbserver
+ - azure.azcollection.azure_rm_mariadbserver_info
+ - azure.azcollection.azure_rm_monitordiagnosticsetting
+ - azure.azcollection.azure_rm_monitordiagnosticsetting_info
+ - azure.azcollection.azure_rm_monitorlogprofile
+ - azure.azcollection.azure_rm_multiplemanageddisks
+ - azure.azcollection.azure_rm_mysqlconfiguration
+ - azure.azcollection.azure_rm_mysqlconfiguration_info
+ - azure.azcollection.azure_rm_mysqldatabase
+ - azure.azcollection.azure_rm_mysqldatabase_info
+ - azure.azcollection.azure_rm_mysqlfirewallrule
+ - azure.azcollection.azure_rm_mysqlfirewallrule_info
+ - azure.azcollection.azure_rm_mysqlserver
+ - azure.azcollection.azure_rm_mysqlserver_info
+ - azure.azcollection.azure_rm_natgateway
+ - azure.azcollection.azure_rm_natgateway_info
+ - azure.azcollection.azure_rm_networkinterface
+ - azure.azcollection.azure_rm_networkinterface_info
+ - azure.azcollection.azure_rm_notificationhub
+ - azure.azcollection.azure_rm_notificationhub_info
+ - azure.azcollection.azure_rm_openshiftmanagedcluster
+ - azure.azcollection.azure_rm_openshiftmanagedcluster_info
+ - azure.azcollection.azure_rm_postgresqlconfiguration
+ - azure.azcollection.azure_rm_postgresqlconfiguration_info
+ - azure.azcollection.azure_rm_postgresqldatabase
+ - azure.azcollection.azure_rm_postgresqldatabase_info
+ - azure.azcollection.azure_rm_postgresqlfirewallrule
+ - azure.azcollection.azure_rm_postgresqlfirewallrule_info
+ - azure.azcollection.azure_rm_postgresqlserver
+ - azure.azcollection.azure_rm_postgresqlserver_info
+ - azure.azcollection.azure_rm_privatednsrecordset
+ - azure.azcollection.azure_rm_privatednsrecordset_info
+ - azure.azcollection.azure_rm_privatednszone
+ - azure.azcollection.azure_rm_privatednszone_info
+ - azure.azcollection.azure_rm_privatednszonelink
+ - azure.azcollection.azure_rm_privatednszonelink_info
+ - azure.azcollection.azure_rm_privateendpoint
+ - azure.azcollection.azure_rm_privateendpoint_info
+ - azure.azcollection.azure_rm_privateendpointconnection
+ - azure.azcollection.azure_rm_privateendpointconnection_info
+ - azure.azcollection.azure_rm_privateendpointdnszonegroup
+ - azure.azcollection.azure_rm_privateendpointdnszonegroup_info
+ - azure.azcollection.azure_rm_privatelinkservice
+ - azure.azcollection.azure_rm_privatelinkservice_info
+ - azure.azcollection.azure_rm_proximityplacementgroup
+ - azure.azcollection.azure_rm_proximityplacementgroup_info
+ - azure.azcollection.azure_rm_publicipaddress
+ - azure.azcollection.azure_rm_publicipaddress_info
+ - azure.azcollection.azure_rm_recoveryservicesvault
+ - azure.azcollection.azure_rm_recoveryservicesvault_info
+ - azure.azcollection.azure_rm_rediscache
+ - azure.azcollection.azure_rm_rediscache_info
+ - azure.azcollection.azure_rm_rediscachefirewallrule
+ - azure.azcollection.azure_rm_registrationassignment
+ - azure.azcollection.azure_rm_registrationassignment_info
+ - azure.azcollection.azure_rm_registrationdefinition
+ - azure.azcollection.azure_rm_registrationdefinition_info
+ - azure.azcollection.azure_rm_resource
+ - azure.azcollection.azure_rm_resource_info
+ - azure.azcollection.azure_rm_resourcegroup
+ - azure.azcollection.azure_rm_resourcegroup_info
+ - azure.azcollection.azure_rm_roleassignment
+ - azure.azcollection.azure_rm_roleassignment_info
+ - azure.azcollection.azure_rm_roledefinition
+ - azure.azcollection.azure_rm_roledefinition_info
+ - azure.azcollection.azure_rm_route
+ - azure.azcollection.azure_rm_route_info
+ - azure.azcollection.azure_rm_routetable
+ - azure.azcollection.azure_rm_routetable_info
+ - azure.azcollection.azure_rm_securitygroup
+ - azure.azcollection.azure_rm_securitygroup_info
+ - azure.azcollection.azure_rm_servicebus
+ - azure.azcollection.azure_rm_servicebus_info
+ - azure.azcollection.azure_rm_servicebusqueue
+ - azure.azcollection.azure_rm_servicebussaspolicy
+ - azure.azcollection.azure_rm_servicebustopic
+ - azure.azcollection.azure_rm_servicebustopicsubscription
+ - azure.azcollection.azure_rm_snapshot
+ - azure.azcollection.azure_rm_sqldatabase
+ - azure.azcollection.azure_rm_sqldatabase_info
+ - azure.azcollection.azure_rm_sqlelasticpool
+ - azure.azcollection.azure_rm_sqlelasticpool_info
+ - azure.azcollection.azure_rm_sqlfirewallrule
+ - azure.azcollection.azure_rm_sqlfirewallrule_info
+ - azure.azcollection.azure_rm_sqlserver
+ - azure.azcollection.azure_rm_sqlserver_info
+ - azure.azcollection.azure_rm_sqlmanagedinstance
+ - azure.azcollection.azure_rm_sqlmanagedinstance_info
+ - azure.azcollection.azure_rm_storageaccount
+ - azure.azcollection.azure_rm_storageaccount_info
+ - azure.azcollection.azure_rm_storageblob
+ - azure.azcollection.azure_rm_storageshare
+ - azure.azcollection.azure_rm_storageshare_info
+ - azure.azcollection.azure_rm_subnet
+ - azure.azcollection.azure_rm_subnet_info
+ - azure.azcollection.azure_rm_subscription_info
+ - azure.azcollection.azure_rm_trafficmanager
+ - azure.azcollection.azure_rm_trafficmanagerendpoint
+ - azure.azcollection.azure_rm_trafficmanagerendpoint_info
+ - azure.azcollection.azure_rm_trafficmanagerprofile
+ - azure.azcollection.azure_rm_trafficmanagerprofile_info
+ - azure.azcollection.azure_rm_virtualhub
+ - azure.azcollection.azure_rm_virtualhub_info
+ - azure.azcollection.azure_rm_virtualhubconnection
+ - azure.azcollection.azure_rm_virtualhubconnection_info
+ - azure.azcollection.azure_rm_virtualmachine
+ - azure.azcollection.azure_rm_virtualmachine_info
+ - azure.azcollection.azure_rm_virtualmachineextension
+ - azure.azcollection.azure_rm_virtualmachineextension_info
+ - azure.azcollection.azure_rm_virtualmachineimage_info
+ - azure.azcollection.azure_rm_virtualmachinescaleset
+ - azure.azcollection.azure_rm_virtualmachinescaleset_info
+ - azure.azcollection.azure_rm_virtualmachinescalesetextension
+ - azure.azcollection.azure_rm_virtualmachinescalesetextension_info
+ - azure.azcollection.azure_rm_virtualmachinescalesetinstance
+ - azure.azcollection.azure_rm_virtualmachinescalesetinstance_info
+ - azure.azcollection.azure_rm_virtualmachinesize_info
+ - azure.azcollection.azure_rm_virtualnetwork
+ - azure.azcollection.azure_rm_virtualnetwork_info
+ - azure.azcollection.azure_rm_virtualnetworkgateway
+ - azure.azcollection.azure_rm_virtualnetworkpeering
+ - azure.azcollection.azure_rm_virtualnetworkpeering_info
+ - azure.azcollection.azure_rm_virtualwan
+ - azure.azcollection.azure_rm_virtualwan_info
+ - azure.azcollection.azure_rm_vmbackuppolicy
+ - azure.azcollection.azure_rm_vmbackuppolicy_info
+ - azure.azcollection.azure_rm_vmssnetworkinterface_info
+ - azure.azcollection.azure_rm_vpnsite
+ - azure.azcollection.azure_rm_vpnsite_info
+ - azure.azcollection.azure_rm_vpnsitelink_info
+ - azure.azcollection.azure_rm_webapp
+ - azure.azcollection.azure_rm_webapp_info
+ - azure.azcollection.azure_rm_webappaccessrestriction
+ - azure.azcollection.azure_rm_webappaccessrestriction_info
+ - azure.azcollection.azure_rm_webappslot
+ - azure.azcollection.azure_rm_webappvnetconnection
+ - azure.azcollection.azure_rm_webappvnetconnection_info
diff --git a/ansible_collections/azure/azcollection/plugins/inventory/azure_rm.py b/ansible_collections/azure/azcollection/plugins/inventory/azure_rm.py
index e570b59a9..3442aa124 100644
--- a/ansible_collections/azure/azcollection/plugins/inventory/azure_rm.py
+++ b/ansible_collections/azure/azcollection/plugins/inventory/azure_rm.py
@@ -35,6 +35,7 @@ EXAMPLES = '''
# vmid: the VM's internal SMBIOS ID, eg: '36bca69d-c365-4584-8c06-a62f4a1dc5d2'
# vmss: if the VM is a member of a scaleset (vmss), a dictionary including the id and name of the parent scaleset
# availability_zone: availability zone in which VM is deployed, eg '1','2','3'
+# creation_time: datetime object of when the VM was created, eg '2023-07-21T09:30:30.4710164+00:00'
#
# The following host variables are sometimes availble:
# computer_name: the Operating System's hostname. Will not be available if azure agent is not available and picking it up.
@@ -51,58 +52,59 @@ auth_source: cli
# fetches VMs from an explicit list of resource groups instead of default all (- '*')
include_vm_resource_groups:
-- myrg1
-- myrg2
+ - myrg1
+ - myrg2
# fetches VMs from VMSSs in all resource groups (defaults to no VMSS fetch)
include_vmss_resource_groups:
-- '*'
+ - '*'
# places a host in the named group if the associated condition evaluates to true
conditional_groups:
- # since this will be true for every host, every host sourced from this inventory plugin config will be in the
- # group 'all_the_hosts'
- all_the_hosts: true
- # if the VM's "name" variable contains "dbserver", it will be placed in the 'db_hosts' group
- db_hosts: "'dbserver' in name"
+ # since this will be true for every host, every host sourced from this inventory plugin config will be in the
+ # group 'all_the_hosts'
+ all_the_hosts: true
+ # if the VM's "name" variable contains "dbserver", it will be placed in the 'db_hosts' group
+ db_hosts: "'dbserver' in name"
# adds variables to each host found by this inventory plugin, whose values are the result of the associated expression
hostvar_expressions:
- my_host_var:
- # A statically-valued expression has to be both single and double-quoted, or use escaped quotes, since the outer
- # layer of quotes will be consumed by YAML. Without the second set of quotes, it interprets 'staticvalue' as a
- # variable instead of a string literal.
- some_statically_valued_var: "'staticvalue'"
- # overrides the default ansible_host value with a custom Jinja2 expression, in this case, the first DNS hostname, or
- # if none are found, the first public IP address.
- ansible_host: (public_dns_hostnames + public_ipv4_addresses) | first
+ my_host_var:
+ # A statically-valued expression has to be both single and double-quoted, or use escaped quotes, since the outer
+ # layer of quotes will be consumed by YAML. Without the second set of quotes, it interprets 'staticvalue' as a
+ # variable instead of a string literal.
+ some_statically_valued_var: "'staticvalue'"
+ # overrides the default ansible_host value with a custom Jinja2 expression, in this case, the first DNS hostname, or
+ # if none are found, the first public IP address.
+ ansible_host: (public_dns_hostnames + public_ipv4_addresses) | first
# change how inventory_hostname is generated. Each item is a jinja2 expression similar to hostvar_expressions.
hostnames:
- - tags.vm_name
- - default # special var that uses the default hashed name
+ - tags.vm_name
+ - default_inventory_hostname + ".domain.tld" # Transfer to fqdn if you use shortnames for VMs
+ - default # special var that uses the default hashed name
# places hosts in dynamically-created groups based on a variable value.
keyed_groups:
# places each host in a group named 'tag_(tag name)_(tag value)' for each tag on a VM.
-- prefix: tag
- key: tags
+ - prefix: tag
+ key: tags
# places each host in a group named 'azure_loc_(location name)', depending on the VM's location
-- prefix: azure_loc
- key: location
+ - prefix: azure_loc
+ key: location
# places host in a group named 'some_tag_X' using the value of the 'sometag' tag on a VM as X, and defaulting to the
# value 'none' (eg, the group 'some_tag_none') if the 'sometag' tag is not defined for a VM.
-- prefix: some_tag
- key: tags.sometag | default('none')
+ - prefix: some_tag
+ key: tags.sometag | default('none')
# excludes a host from the inventory when any of these expressions is true, can refer to any vars defined on the host
exclude_host_filters:
-# excludes hosts in the eastus region
-- location in ['eastus']
-- tags['tagkey'] is defined and tags['tagkey'] == 'tagkey'
-- tags['tagkey2'] is defined and tags['tagkey2'] == 'tagkey2'
-# excludes hosts that are powered off
-- powerstate != 'running'
+ # excludes hosts in the eastus region
+ - location in ['eastus']
+ - tags['tagkey'] is defined and tags['tagkey'] == 'tagkey'
+ - tags['tagkey2'] is defined and tags['tagkey2'] == 'tagkey2'
+ # excludes hosts that are powered off
+ - powerstate != 'running'
'''
# FUTURE: do we need a set of sane default filters, separate from the user-defineable ones?
@@ -121,7 +123,6 @@ except ImportError:
from Queue import Queue, Empty
from collections import namedtuple
-from ansible import release
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
from ansible.module_utils.six import iteritems
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMAuth
@@ -131,21 +132,19 @@ from ansible.module_utils._text import to_native, to_bytes, to_text
from itertools import chain
try:
- from msrest import ServiceClient, Serializer, Deserializer
- from msrestazure import AzureConfiguration
- from msrestazure.polling.arm_polling import ARMPolling
- from msrestazure.tools import parse_resource_id
+ from azure.core._pipeline_client import PipelineClient
+ from azure.core.pipeline.policies import BearerTokenCredentialPolicy
+ from azure.core.configuration import Configuration
+ from azure.mgmt.core.tools import parse_resource_id
except ImportError:
- AzureConfiguration = object
- ARMPolling = object
+ Configuration = object
parse_resource_id = object
- ServiceClient = object
- Serializer = object
- Deserializer = object
+ PipelineClient = object
+ BearerTokenCredentialPolicy = object
pass
-class AzureRMRestConfiguration(AzureConfiguration):
+class AzureRMRestConfiguration(Configuration):
def __init__(self, credentials, subscription_id, base_url=None):
if credentials is None:
@@ -155,10 +154,11 @@ class AzureRMRestConfiguration(AzureConfiguration):
if not base_url:
base_url = 'https://management.azure.com'
- super(AzureRMRestConfiguration, self).__init__(base_url)
+ credential_scopes = base_url + '/.default'
- self.add_user_agent('ansible-dynamic-inventory/{0}'.format(release.__version__))
+ super(AzureRMRestConfiguration, self).__init__()
+ self.authentication_policy = BearerTokenCredentialPolicy(credentials, credential_scopes)
self.credentials = credentials
self.subscription_id = subscription_id
@@ -174,13 +174,11 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
def __init__(self):
super(InventoryModule, self).__init__()
- self._serializer = Serializer()
- self._deserializer = Deserializer()
self._hosts = []
self._filters = None
# FUTURE: use API profiles with defaults
- self._compute_api_version = '2017-03-30'
+ self._compute_api_version = '2021-11-01'
self._network_api_version = '2015-06-15'
self._default_header_parameters = {'Content-Type': 'application/json; charset=utf-8'}
@@ -236,14 +234,16 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
cloud_environment=self.get_option('cloud_environment'),
cert_validation_mode=self.get_option('cert_validation_mode'),
api_profile=self.get_option('api_profile'),
+ track1_cred=True,
adfs_authority_url=self.get_option('adfs_authority_url')
)
self.azure_auth = AzureRMAuth(**auth_options)
- self._clientconfig = AzureRMRestConfiguration(self.azure_auth.azure_credentials, self.azure_auth.subscription_id,
+ self._clientconfig = AzureRMRestConfiguration(self.azure_auth.azure_credential_track2, self.azure_auth.subscription_id,
self.azure_auth._cloud_environment.endpoints.resource_manager)
- self._client = ServiceClient(self._clientconfig.credentials, self._clientconfig)
+
+ self.new_client = PipelineClient(self.azure_auth._cloud_environment.endpoints.resource_manager, config=self._clientconfig)
def _enqueue_get(self, url, api_version, handler, handler_args=None):
if not handler_args:
@@ -399,7 +399,9 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
name = str(uuid.uuid4())
query_parameters = {'api-version': item.api_version}
- req = self._client.get(item.url, query_parameters)
+ header_parameters = {'x-ms-client-request-id': str(uuid.uuid4()), 'Content-Type': 'application/json; charset=utf-8'}
+ body = {}
+ req = self.new_client.get(item.url, query_parameters, header_parameters, body)
batch_requests.append(dict(httpMethod="GET", url=req.url, name=name))
batch_response_handlers[name] = item
batch_item_index += 1
@@ -431,36 +433,25 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
def _send_batch(self, batched_requests):
url = '/batch'
query_parameters = {'api-version': '2015-11-01'}
-
- body_obj = dict(requests=batched_requests)
-
- body_content = self._serializer.body(body_obj, 'object')
+ header_parameters = {'x-ms-client-request-id': str(uuid.uuid4()), 'Content-Type': 'application/json; charset=utf-8'}
+ body_content = dict(requests=batched_requests)
header = {'x-ms-client-request-id': str(uuid.uuid4())}
header.update(self._default_header_parameters)
- request = self._client.post(url, query_parameters)
- initial_response = self._client.send(request, header, body_content)
+ request_new = self.new_client.post(url, query_parameters, header_parameters, body_content)
+ response = self.new_client.send_request(request_new)
- # FUTURE: configurable timeout?
- poller = ARMPolling(timeout=2)
- poller.initialize(client=self._client,
- initial_response=initial_response,
- deserialization_callback=lambda r: self._deserializer('object', r))
-
- poller.run()
-
- return poller.resource()
+ return json.loads(response.body())
def send_request(self, url, api_version):
query_parameters = {'api-version': api_version}
- req = self._client.get(url, query_parameters)
- resp = self._client.send(req, self._default_header_parameters, stream=False)
-
- resp.raise_for_status()
- content = resp.content
+ header_parameters = {'x-ms-client-request-id': str(uuid.uuid4()), 'Content-Type': 'application/json; charset=utf-8'}
+ body = {}
+ request_new = self.new_client.get(url, query_parameters, header_parameters)
+ response = self.new_client.send_request(request_new)
- return json.loads(content)
+ return json.loads(response.body())
@staticmethod
def _legacy_script_compatible_group_sanitization(name):
@@ -558,6 +549,7 @@ class AzureHost(object):
plan=self._vm_model['properties']['plan']['name'] if self._vm_model['properties'].get('plan') else None,
resource_group=parse_resource_id(self._vm_model['id']).get('resource_group').lower(),
default_inventory_hostname=self.default_inventory_hostname,
+ creation_time=self._vm_model['properties']['timeCreated'],
)
# set nic-related values from the primary NIC first
diff --git a/ansible_collections/azure/azcollection/plugins/lookup/azure_keyvault_secret.py b/ansible_collections/azure/azcollection/plugins/lookup/azure_keyvault_secret.py
index a3c809fd6..ea2183a5a 100644
--- a/ansible_collections/azure/azcollection/plugins/lookup/azure_keyvault_secret.py
+++ b/ansible_collections/azure/azcollection/plugins/lookup/azure_keyvault_secret.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Hai Cao, <t-haicao@microsoft.com>
+# Copyright (c) 2022 Hai Cao, <t-haicao@microsoft.com>, Marcin Slowikowski (@msl0)
#
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
@@ -10,11 +10,11 @@ DOCUMENTATION = """
name: azure_keyvault_secret
author:
- Hai Cao (@tk5eq) <t-haicao@microsoft.com>
+ - Marcin Slowikowski (@msl0)
version_added: '1.12.0'
requirements:
- requests
- azure
- - msrest
short_description: Read secret from Azure Key Vault.
description:
- This lookup returns the content of secret saved in Azure Key Vault.
@@ -32,21 +32,23 @@ options:
description: Secret of the service principal.
tenant_id:
description: Tenant id of service principal.
- subscription_id:
- description: Your Azure subscription Id.
notes:
- If version is not provided, this plugin will return the latest version of the secret.
- If ansible is running on Azure Virtual Machine with MSI enabled, client_id, secret and tenant isn't required.
- For enabling MSI on Azure VM, please refer to this doc https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/
- After enabling MSI on Azure VM, remember to grant access of the Key Vault to the VM by adding a new Acess Policy in Azure Portal.
- If MSI is not enabled on ansible host, it's required to provide a valid service principal which has access to the key vault.
+ - To authenticate via service principal, pass client_id, secret and tenant_id or set environment variables
+ AZURE_CLIENT_ID, AZURE_CLIENT_SECRET and AZURE_TENANT_ID.
+ - Authentication via C(az login) is also supported.
- To use a plugin from a collection, please reference the full namespace, collection name, and lookup plugin name that you want to use.
"""
EXAMPLE = """
- name: Look up secret when azure cli login
debug:
- msg: msg: "{{ lookup('azure.azcollection.azure_keyvault_secret', 'testsecret', vault_url=key_vault_uri, subscription_id=subscription_id)}}"
+ msg: msg: "{{ lookup('azure.azcollection.azure_keyvault_secret', 'testsecret', vault_url=key_vault_uri)}}"
+
- name: Look up secret when ansible host is MSI enabled Azure VM
debug:
msg: "the value of this secret is {{
@@ -98,9 +100,9 @@ EXAMPLE = """
key_data: "{{ ssh_key }}"
network_interfaces: "{{ vm_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
"""
@@ -109,17 +111,16 @@ RETURN = """
description: secret content string
"""
-from ansible.errors import AnsibleError, AnsibleParserError
+from ansible.errors import AnsibleError
from ansible.plugins.lookup import LookupBase
from ansible.utils.display import Display
try:
- import requests
import logging
- import os
- from azure.common.credentials import ServicePrincipalCredentials, get_cli_profile
- from azure.keyvault import KeyVaultClient
- from msrest.exceptions import AuthenticationError, ClientRequestError
- from azure.keyvault.models.key_vault_error import KeyVaultErrorException
+ import requests
+ from azure.keyvault.secrets import SecretClient
+ from azure.identity import DefaultAzureCredential, ClientSecretCredential
+ from azure.keyvault.secrets import SecretClient
+
except ImportError:
pass
@@ -127,6 +128,8 @@ display = Display()
TOKEN_ACQUIRED = False
+logger = logging.getLogger("azure.identity").setLevel(logging.ERROR)
+
token_params = {
'api-version': '2018-02-01',
'resource': 'https://vault.azure.net'
@@ -154,37 +157,27 @@ except Exception:
def lookup_secret_non_msi(terms, vault_url, kwargs):
- logging.getLogger('msrestazure.azure_active_directory').addHandler(logging.NullHandler())
- logging.getLogger('msrest.service_client').addHandler(logging.NullHandler())
-
- client_id = kwargs['client_id'] if kwargs.get('client_id') else os.environ.get('AZURE_CLIENT_ID')
- secret = kwargs['secret'] if kwargs.get('secret') else os.environ.get('AZURE_SECRET')
- tenant_id = kwargs['tenant_id'] if kwargs.get('tenant_id') else os.environ.get('AZURE_TENANT')
- subscription_id = kwargs['subscription_id'] if kwargs.get('subscription_id') else os.environ.get('AZURE_SUBSCRIPTION_ID')
-
- try:
- if client_id is not None and secret is not None and tenant_id is not None:
- credentials = ServicePrincipalCredentials(
- client_id=client_id,
- secret=secret,
- tenant=tenant_id
- )
- elif subscription_id is not None:
- profile = get_cli_profile()
- credentials, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=subscription_id, resource="https://vault.azure.net")
- client = KeyVaultClient(credentials)
- except AuthenticationError:
- raise AnsibleError('Invalid credentials provided.')
+
+ client_id = kwargs['client_id'] if kwargs.get('client_id') else None
+ secret = kwargs['secret'] if kwargs.get('secret') else None
+ tenant_id = kwargs['tenant_id'] if kwargs.get('tenant_id') else None
+
+ if all(v is not None for v in [client_id, secret, tenant_id]):
+ credential = ClientSecretCredential(
+ tenant_id=tenant_id,
+ client_id=client_id,
+ client_secret=secret,
+ )
+ else:
+ credential = DefaultAzureCredential()
+ client = SecretClient(vault_url, credential)
ret = []
for term in terms:
try:
- secret_val = client.get_secret(vault_url, term, '').value
+ secret_val = client.get_secret(term).value
ret.append(secret_val)
- except ClientRequestError:
- raise AnsibleError('Error occurred in request')
- except KeyVaultErrorException:
+ except Exception:
raise AnsibleError('Failed to fetch secret ' + term + '.')
return ret
diff --git a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py
index 42026fac1..9c0e6e839 100644
--- a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py
+++ b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py
@@ -202,9 +202,6 @@ HAS_AZURE_EXC = None
HAS_AZURE_CLI_CORE = True
HAS_AZURE_CLI_CORE_EXC = None
-HAS_MSRESTAZURE = True
-HAS_MSRESTAZURE_EXC = None
-
try:
import importlib
except ImportError:
@@ -221,21 +218,12 @@ except ImportError:
HAS_PACKAGING_VERSION = False
HAS_PACKAGING_VERSION_EXC = traceback.format_exc()
-# NB: packaging issue sometimes cause msrestazure not to be installed, check it separately
-try:
- from msrest.serialization import Serializer
-except ImportError:
- HAS_MSRESTAZURE_EXC = traceback.format_exc()
- HAS_MSRESTAZURE = False
-
try:
from enum import Enum
from msrestazure.azure_active_directory import AADTokenCredentials
- from msrestazure.azure_exceptions import CloudError
from msrestazure.azure_active_directory import MSIAuthentication
- from azure.cli.core.auth.adal_authentication import MSIAuthenticationWrapper
- from msrestazure.tools import parse_resource_id, resource_id, is_valid_resource_id
- from msrestazure import azure_cloud
+ 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.common.credentials import ServicePrincipalCredentials, UserPassCredentials
from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.resource.resources import ResourceManagementClient
@@ -252,11 +240,10 @@ try:
from azure.mgmt.marketplaceordering import MarketplaceOrderingAgreements
from azure.mgmt.trafficmanager import TrafficManagerManagementClient
from azure.storage.blob import BlobServiceClient
- from adal.authentication_context import AuthenticationContext
+ from msal.application import ClientApplication, ConfidentialClientApplication
from azure.mgmt.authorization import AuthorizationManagementClient
from azure.mgmt.sql import SqlManagementClient
from azure.mgmt.servicebus import ServiceBusManagementClient
- import azure.mgmt.servicebus.models as ServicebusModel
from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient
from azure.mgmt.rdbms.mysql import MySQLManagementClient
from azure.mgmt.rdbms.mariadb import MariaDBManagementClient
@@ -268,9 +255,6 @@ try:
import azure.mgmt.automation.models as AutomationModel
from azure.mgmt.iothub import IotHubClient
from azure.mgmt.iothub import models as IoTHubModels
- from msrest.service_client import ServiceClient
- from msrestazure import AzureConfiguration
- from msrest.authentication import Authentication
from azure.mgmt.resource.locks import ManagementLockClient
from azure.mgmt.recoveryservicesbackup import RecoveryServicesBackupClient
import azure.mgmt.recoveryservicesbackup.models as RecoveryServicesBackupModels
@@ -281,7 +265,7 @@ try:
from azure.mgmt.eventhub import EventHubManagementClient
from azure.mgmt.datafactory import DataFactoryManagementClient
import azure.mgmt.datafactory.models as DataFactoryModel
- from azure.identity._credentials import client_secret, user_password, certificate
+ from azure.identity._credentials import client_secret, user_password, certificate, managed_identity
except ImportError as exc:
Authentication = object
@@ -411,10 +395,6 @@ class AzureRMModuleBase(object):
self.fail(msg=missing_required_lib('packaging'),
exception=HAS_PACKAGING_VERSION_EXC)
- if not HAS_MSRESTAZURE:
- self.fail(msg=missing_required_lib('msrestazure'),
- exception=HAS_MSRESTAZURE_EXC)
-
if not HAS_AZURE:
self.fail(msg=missing_required_lib('ansible[azure] (azure >= {0})'.format(AZURE_MIN_RELEASE)),
exception=HAS_AZURE_EXC)
@@ -594,8 +574,6 @@ class AzureRMModuleBase(object):
'''
try:
return self.rm_client.resource_groups.get(resource_group)
- except CloudError as cloud_error:
- self.fail("Error retrieving resource group {0} - {1}".format(resource_group, cloud_error.message))
except Exception as exc:
self.fail("Error retrieving resource group {0} - {1}".format(resource_group, str(exc)))
@@ -619,18 +597,7 @@ class AzureRMModuleBase(object):
:param enum_modules: List of module names to build enum dependencies from.
:return: serialized result
'''
- enum_modules = [] if enum_modules is None else enum_modules
-
- dependencies = dict()
- if enum_modules:
- for module_name in enum_modules:
- mod = importlib.import_module(module_name)
- for mod_class_name, mod_class_obj in inspect.getmembers(mod, predicate=inspect.isclass):
- dependencies[mod_class_name] = mod_class_obj
- self.log("dependencies: ")
- self.log(str(dependencies))
- serializer = Serializer(classes=dependencies)
- return serializer.body(obj, class_name, keep_readonly=True)
+ return obj.as_dict()
def get_poller_result(self, poller, wait=5):
'''
@@ -998,13 +965,6 @@ class AzureRMModuleBase(object):
result['skn'] = policy
return 'SharedAccessSignature ' + urlencode(result)
- def get_data_svc_client(self, **kwags):
- url = kwags.get('base_url', None)
- config = AzureConfiguration(base_url='https://{0}'.format(url))
- config.credentials = AzureSASAuthentication(token=self.generate_sas_token(**kwags))
- config = self.add_user_agent(config)
- return ServiceClient(creds=config.credentials, config=config)
-
def get_subnet_detail(self, subnet_id):
vnet_detail = subnet_id.split('/Microsoft.Network/virtualNetworks/')[1].split('/subnets/')
return dict(
@@ -1454,22 +1414,6 @@ class AzureRMModuleBase(object):
return DataFactoryModel
-class AzureSASAuthentication(Authentication):
- """Simple SAS Authentication.
- An implementation of Authentication in
- https://github.com/Azure/msrest-for-python/blob/0732bc90bdb290e5f58c675ffdd7dbfa9acefc93/msrest/authentication.py
-
- :param str token: SAS token
- """
- def __init__(self, token):
- self.token = token
-
- def signed_session(self):
- session = super(AzureSASAuthentication, self).signed_session()
- session.headers['Authorization'] = self.token
- return session
-
-
class AzureRMAuthException(Exception):
pass
@@ -1481,7 +1425,7 @@ class AzureRMAuth(object):
def __init__(self, auth_source=None, profile=None, subscription_id=None, client_id=None, secret=None,
tenant=None, ad_user=None, password=None, cloud_environment='AzureCloud', cert_validation_mode='validate',
api_profile='latest', adfs_authority_url=None, fail_impl=None, is_ad_resource=False,
- x509_certificate_path=None, thumbprint=None, **kwargs):
+ x509_certificate_path=None, thumbprint=None, track1_cred=False, **kwargs):
if fail_impl:
self._fail_impl = fail_impl
@@ -1560,11 +1504,13 @@ class AzureRMAuth(object):
if self.credentials.get('auth_source') == 'msi':
# MSI Credentials
- self.azure_credentials = self.credentials['credentials']
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = self.credentials['credentials']
self.azure_credential_track2 = self.credentials['credential']
elif self.credentials.get('credentials') is not None:
# AzureCLI credentials
- self.azure_credentials = self.credentials['credentials']
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = self.credentials['credentials']
self.azure_credential_track2 = self.credentials['credentials']
elif self.credentials.get('client_id') is not None and \
self.credentials.get('secret') is not None and \
@@ -1572,63 +1518,70 @@ class AzureRMAuth(object):
graph_resource = self._cloud_environment.endpoints.active_directory_graph_resource_id
rm_resource = self._cloud_environment.endpoints.resource_manager
- self.azure_credentials = ServicePrincipalCredentials(client_id=self.credentials['client_id'],
- secret=self.credentials['secret'],
- tenant=self.credentials['tenant'],
- cloud_environment=self._cloud_environment,
- resource=graph_resource if self.is_ad_resource else rm_resource,
- verify=self._cert_validation_mode == 'validate')
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = ServicePrincipalCredentials(client_id=self.credentials['client_id'],
+ secret=self.credentials['secret'],
+ tenant=self.credentials['tenant'],
+ cloud_environment=self._cloud_environment,
+ resource=graph_resource if self.is_ad_resource else rm_resource,
+ verify=self._cert_validation_mode == 'validate')
self.azure_credential_track2 = client_secret.ClientSecretCredential(client_id=self.credentials['client_id'],
client_secret=self.credentials['secret'],
- tenant_id=self.credentials['tenant'])
+ tenant_id=self.credentials['tenant'],
+ authority=self._adfs_authority_url)
elif self.credentials.get('client_id') is not None and \
self.credentials.get('tenant') is not None and \
self.credentials.get('thumbprint') is not None and \
self.credentials.get('x509_certificate_path') is not None:
-
- self.azure_credentials = self.acquire_token_with_client_certificate(
- self._adfs_authority_url,
- self._cloud_environment.endpoints.active_directory_resource_id,
- self.credentials['x509_certificate_path'],
- self.credentials['thumbprint'],
- self.credentials['client_id'],
- self.credentials['tenant'])
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = self.acquire_token_with_client_certificate(
+ self._adfs_authority_url,
+ self.credentials['x509_certificate_path'],
+ self.credentials['thumbprint'],
+ self.credentials['client_id'],
+ self.credentials['tenant'])
self.azure_credential_track2 = certificate.CertificateCredential(tenant_id=self.credentials['tenant'],
client_id=self.credentials['client_id'],
- certificate_path=self.credentials['x509_certificate_path'])
+ certificate_path=self.credentials['x509_certificate_path'],
+ authority=self._adfs_authority_url)
+
+ elif self.credentials.get('ad_user') is not None and \
+ self.credentials.get('password') is not None and \
+ self.credentials.get('client_id') is not None and \
+ self.credentials.get('tenant') is not None:
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = self.acquire_token_with_username_password(
+ self._adfs_authority_url,
+ self.credentials['ad_user'],
+ self.credentials['password'],
+ self.credentials['client_id'],
+ self.credentials['tenant'])
+ self.azure_credential_track2 = user_password.UsernamePasswordCredential(username=self.credentials['ad_user'],
+ password=self.credentials['password'],
+ tenant_id=self.credentials.get('tenant'),
+ client_id=self.credentials.get('client_id'),
+ authority=self._adfs_authority_url)
elif self.credentials.get('ad_user') is not None and self.credentials.get('password') is not None:
tenant = self.credentials.get('tenant')
if not tenant:
tenant = 'common' # SDK default
- self.azure_credentials = UserPassCredentials(self.credentials['ad_user'],
- self.credentials['password'],
- tenant=tenant,
- cloud_environment=self._cloud_environment,
- verify=self._cert_validation_mode == 'validate')
+ if is_ad_resource or track1_cred:
+ self.azure_credentials = UserPassCredentials(self.credentials['ad_user'],
+ self.credentials['password'],
+ tenant=tenant,
+ cloud_environment=self._cloud_environment,
+ verify=self._cert_validation_mode == 'validate')
client_id = self.credentials.get('client_id', '04b07795-8ddb-461a-bbee-02f9e1bf7b46')
-
self.azure_credential_track2 = user_password.UsernamePasswordCredential(username=self.credentials['ad_user'],
password=self.credentials['password'],
tenant_id=self.credentials.get('tenant', 'organizations'),
- client_id=client_id)
-
- elif self.credentials.get('ad_user') is not None and \
- self.credentials.get('password') is not None and \
- self.credentials.get('client_id') is not None and \
- self.credentials.get('tenant') is not None:
-
- self.azure_credentials = self.acquire_token_with_username_password(
- self._adfs_authority_url,
- self._cloud_environment.endpoints.active_directory_resource_id,
- self.credentials['ad_user'],
- self.credentials['password'],
- self.credentials['client_id'],
- self.credentials['tenant'])
+ client_id=client_id,
+ authority=self._adfs_authority_url)
else:
self.fail("Failed to authenticate with provided credentials. Some attributes were missing. "
@@ -1688,12 +1641,12 @@ class AzureRMAuth(object):
self.fail("cloud_environment {0} could not be resolved: {1}".format(_cloud_environment, str(exc)), exception=traceback.format_exc())
credentials = MSIAuthentication(client_id=client_id, cloud_environment=cloud_environment)
- credential = MSIAuthenticationWrapper(client_id=client_id, cloud_environment=cloud_environment)
+ credential = managed_identity.ManagedIdentityCredential(client_id=client_id, cloud_environment=cloud_environment)
subscription_id = subscription_id or self._get_env('subscription_id')
if not subscription_id:
try:
# use the first subscription of the MSI
- subscription_client = SubscriptionClient(credentials)
+ subscription_client = SubscriptionClient(credential)
subscription = next(subscription_client.subscriptions.list())
subscription_id = str(subscription.subscription_id)
except Exception as exc:
@@ -1809,28 +1762,39 @@ class AzureRMAuth(object):
return None
- def acquire_token_with_username_password(self, authority, resource, username, password, client_id, tenant):
+ def acquire_token_with_username_password(self, authority, username, password, client_id, tenant):
authority_uri = authority
if tenant is not None:
authority_uri = authority + '/' + tenant
- context = AuthenticationContext(authority_uri)
- token_response = context.acquire_token_with_username_password(resource, username, password, client_id)
+ context = ClientApplication(client_id=client_id, authority=authority_uri)
+ base_url = self._cloud_environment.endpoints.resource_manager
+ if not base_url.endswith("/"):
+ base_url += "/"
+ scopes = [base_url + ".default"]
+ token_response = context.acquire_token_by_username_password(username, password, scopes)
return AADTokenCredentials(token_response)
- def acquire_token_with_client_certificate(self, authority, resource, x509_certificate_path, thumbprint, client_id, tenant):
+ def acquire_token_with_client_certificate(self, authority, x509_private_key_path, thumbprint, client_id, tenant):
authority_uri = authority
if tenant is not None:
authority_uri = authority + '/' + tenant
- context = AuthenticationContext(authority_uri)
- x509_certificate = None
- with open(x509_certificate_path, 'rb') as pem_file:
- x509_certificate = pem_file.read()
- token_response = context.acquire_token_with_client_certificate(resource, client_id, x509_certificate, thumbprint)
+ x509_private_key = None
+ with open(x509_private_key_path, 'r') as pem_file:
+ x509_private_key = pem_file.read()
+
+ base_url = self._cloud_environment.endpoints.resource_manager
+ if not base_url.endswith("/"):
+ base_url += "/"
+ scopes = [base_url + ".default"]
+ client_credential = {"thumbprint": thumbprint, "private_key": x509_private_key}
+ context = ConfidentialClientApplication(client_id=client_id, authority=authority_uri, client_credential=client_credential)
+
+ token_response = context.acquire_token_for_client(scopes=scopes)
return AADTokenCredentials(token_response)
diff --git a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py
index df477c89b..0229e1027 100644
--- a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py
+++ b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_ext.py
@@ -7,8 +7,7 @@ __metaclass__ = type
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-import re
-from ansible.module_utils.common.dict_transformations import _camel_to_snake, _snake_to_camel
+from ansible.module_utils.common.dict_transformations import _snake_to_camel
from ansible.module_utils.six import string_types
diff --git a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_rest.py b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_rest.py
index 30908be53..6acb1e7b9 100644
--- a/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_rest.py
+++ b/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common_rest.py
@@ -12,45 +12,45 @@ except Exception:
ANSIBLE_VERSION = 'unknown'
try:
- from msrestazure.azure_exceptions import CloudError
- from msrestazure.azure_configuration import AzureConfiguration
- from msrest.service_client import ServiceClient
- from msrest.pipeline import ClientRawResponse
- from msrest.polling import LROPoller
- from msrestazure.polling.arm_polling import ARMPolling
+ from azure.core._pipeline_client import PipelineClient
+ from azure.core.polling import LROPoller
+ from azure.core.pipeline import PipelineResponse
+ from azure.core.pipeline.policies import BearerTokenCredentialPolicy
+ from azure.mgmt.core.polling.arm_polling import ARMPolling
import uuid
- import json
+ from azure.core.configuration import Configuration
except ImportError:
# This is handled in azure_rm_common
- AzureConfiguration = object
+ Configuration = object
ANSIBLE_USER_AGENT = 'Ansible/{0}'.format(ANSIBLE_VERSION)
-class GenericRestClientConfiguration(AzureConfiguration):
+class GenericRestClientConfiguration(Configuration):
- def __init__(self, credentials, subscription_id, base_url=None):
+ def __init__(self, credential, subscription_id, credential_scopes=None, base_url=None):
- if credentials is None:
+ if credential is None:
raise ValueError("Parameter 'credentials' must not be None.")
if subscription_id is None:
raise ValueError("Parameter 'subscription_id' must not be None.")
if not base_url:
base_url = 'https://management.azure.com'
+ if not credential_scopes:
+ credential_scopes = 'https://management.azure.com/.default'
- super(GenericRestClientConfiguration, self).__init__(base_url)
+ super(GenericRestClientConfiguration, self).__init__()
- self.add_user_agent(ANSIBLE_USER_AGENT)
-
- self.credentials = credentials
+ self.credentials = credential
self.subscription_id = subscription_id
+ self.authentication_policy = BearerTokenCredentialPolicy(credential, credential_scopes)
class GenericRestClient(object):
- def __init__(self, credentials, subscription_id, base_url=None):
- self.config = GenericRestClientConfiguration(credentials, subscription_id, base_url)
- self._client = ServiceClient(self.config.credentials, self.config)
+ def __init__(self, credential, subscription_id, base_url=None, credential_scopes=None):
+ self.config = GenericRestClientConfiguration(credential, subscription_id, credential_scopes[0])
+ self._client = PipelineClient(base_url, config=self.config)
self.models = None
def query(self, url, method, query_parameters, header_parameters, body, expected_status_codes, polling_timeout, polling_interval):
@@ -65,31 +65,30 @@ class GenericRestClient(object):
header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
if method == 'GET':
- request = self._client.get(url, query_parameters)
+ request = self._client.get(url, query_parameters, header_parameters, body)
elif method == 'PUT':
- request = self._client.put(url, query_parameters)
+ request = self._client.put(url, query_parameters, header_parameters, body)
elif method == 'POST':
- request = self._client.post(url, query_parameters)
+ request = self._client.post(url, query_parameters, header_parameters, body)
elif method == 'HEAD':
- request = self._client.head(url, query_parameters)
+ request = self._client.head(url, query_parameters, header_parameters, body)
elif method == 'PATCH':
- request = self._client.patch(url, query_parameters)
+ request = self._client.patch(url, query_parameters, header_parameters, body)
elif method == 'DELETE':
- request = self._client.delete(url, query_parameters)
+ request = self._client.delete(url, query_parameters, header_parameters, body)
elif method == 'MERGE':
- request = self._client.merge(url, query_parameters)
+ request = self._client.merge(url, query_parameters, header_parameters, body)
- response = self._client.send(request, header_parameters, body, **operation_config)
+ response = self._client.send_request(request, **operation_config)
if response.status_code not in expected_status_codes:
- exp = CloudError(response)
- exp.request_id = response.headers.get('x-ms-request-id')
+ exp = SendRequestException(response, response.status_code)
raise exp
elif response.status_code == 202 and polling_timeout > 0:
def get_long_running_output(response):
return response
poller = LROPoller(self._client,
- ClientRawResponse(None, response),
+ PipelineResponse(None, response, None),
get_long_running_output,
ARMPolling(polling_interval, **operation_config))
response = self.get_poller_result(poller, polling_timeout)
@@ -102,3 +101,9 @@ class GenericRestClient(object):
return poller.result()
except Exception as exc:
raise
+
+
+class SendRequestException(Exception):
+ def __init__(self, response, status_code):
+ self.response = response
+ self.status_code = status_code
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_account_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_account_info.py
index 90e2799fe..5061604e2 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_account_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_account_info.py
@@ -102,7 +102,6 @@ account_info:
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac import GraphRbacManagementClient
from azure.graphrbac.models import GraphErrorException
except ImportError:
@@ -170,7 +169,7 @@ class AzureRMAccountInfo(AzureRMModuleBase):
try:
subscription_list_response = list(self.subscription_client.subscriptions.list())
- except CloudError as exc:
+ except Exception as exc:
self.fail("Failed to list all subscriptions - {0}".format(str(exc)))
results['id'] = subscription_list_response[0].subscription_id
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py
index f65f8b191..9f21728fc 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py
@@ -234,26 +234,26 @@ author:
'''
EXAMPLES = '''
- - name: Create ad application
- azure_rm_adapplication:
- tenant: "{{ tenant_id }}"
- display_name: "{{ display_name }}"
-
- - name: Create application with more parameter
- azure_rm_adapplication:
- tenant: "{{ tenant_id }}"
- display_name: "{{ display_name }}"
- available_to_other_tenants: False
- credential_description: "for test"
- end_date: 2021-10-01
- start_date: 2021-05-18
- identifier_uris: fredtest02.com
-
- - name: delete ad application
- azure_rm_adapplication:
- tenant: "{{ tenant_id }}"
- app_id: "{{ app_id }}"
- state: absent
+- name: Create ad application
+ azure_rm_adapplication:
+ tenant: "{{ tenant_id }}"
+ display_name: "{{ display_name }}"
+
+- name: Create application with more parameter
+ azure_rm_adapplication:
+ tenant: "{{ tenant_id }}"
+ display_name: "{{ display_name }}"
+ available_to_other_tenants: false
+ credential_description: "for test"
+ end_date: 2021-10-01
+ start_date: 2021-05-18
+ identifier_uris: fredtest02.com
+
+- name: delete ad application
+ azure_rm_adapplication:
+ tenant: "{{ tenant_id }}"
+ app_id: "{{ app_id }}"
+ state: absent
'''
RETURN = '''
@@ -322,7 +322,6 @@ output:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
import datetime
from dateutil.relativedelta import relativedelta
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication_info.py
index becfdd0b3..939058815 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication_info.py
@@ -48,21 +48,20 @@ author:
'''
EXAMPLES = '''
- - name: get ad app info by App ID
- azure_rm_adapplication_info:
- app_id: "{{ app_id }}"
- tenant: "{{ tenant_id }}"
-
- - name: get ad app info ---- by object ID
- azure_rm_adapplication_info:
- object_id: "{{ object_id }}"
- tenant: "{{ tenant_id }}"
-
- - name: get ad app info ---- by identifier uri
- azure_rm_adapplication_info:
- identifier_uri: "{{ identifier_uri }}"
- tenant: "{{ tenant_id }}"
-
+- name: get ad app info by App ID
+ azure_rm_adapplication_info:
+ app_id: "{{ app_id }}"
+ tenant: "{{ tenant_id }}"
+
+- name: get ad app info ---- by object ID
+ azure_rm_adapplication_info:
+ object_id: "{{ object_id }}"
+ tenant: "{{ tenant_id }}"
+
+- name: get ad app info ---- by identifier uri
+ azure_rm_adapplication_info:
+ identifier_uri: "{{ identifier_uri }}"
+ tenant: "{{ tenant_id }}"
'''
RETURN = '''
@@ -101,7 +100,6 @@ applications:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup.py
index 092ed8c78..812b6953c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup.py
@@ -74,100 +74,99 @@ author:
'''
EXAMPLES = '''
- - name: Create Group
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'present'
-
- - name: Delete Group using display_name and mail_nickname
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'absent'
-
- - name: Delete Group using object_id
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: 'absent'
-
- - name: Ensure Users are Members of a Group using display_name and mail_nickname
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'present'
- present_members:
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
-
- - name: Ensure Users are Members of a Group using object_id
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: 'present'
- present_members:
- - "https://graph.windows.net/{{ ad_object_1_tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
- - "https://graph.windows.net/{{ ad_object_2_tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
-
- - name: Ensure Users are not Members of a Group using display_name and mail_nickname
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'present'
- absent_members:
- - "{{ ad_object_1_object_id }}"
-
- - name: Ensure Users are Members of a Group using object_id
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: 'present'
- absent_members:
- - "{{ ad_object_1_object_id }}"
-
- - name: Ensure Users are Owners of a Group using display_name and mail_nickname
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'present'
- present_owners:
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
-
- - name: Ensure Users are Owners of a Group using object_id
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: 'present'
- present_owners:
- - "https://graph.windows.net/{{ ad_object_1_tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
- - "https://graph.windows.net/{{ ad_object_2_tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
-
- - name: Ensure Users are not Owners of a Group using display_name and mail_nickname
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- display_name: "Group-Name"
- mail_nickname: "Group-Mail-Nickname"
- state: 'present'
- absent_owners:
- - "{{ ad_object_1_object_id }}"
- - "{{ ad_object_2_object_id }}"
-
- - name: Ensure Users are Owners of a Group using object_id
- azure_rm_adgroup:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: 'present'
- absent_owners:
- - "{{ ad_object_1_object_id }}"
- - "{{ ad_object_2_object_id }}"
+- name: Create Group
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'present'
+
+- name: Delete Group using display_name and mail_nickname
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'absent'
+
+- name: Delete Group using object_id
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: 'absent'
+
+- name: Ensure Users are Members of a Group using display_name and mail_nickname
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'present'
+ present_members:
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
+
+- name: Ensure Users are Members of a Group using object_id
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: 'present'
+ present_members:
+ - "https://graph.windows.net/{{ ad_object_1_tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
+ - "https://graph.windows.net/{{ ad_object_2_tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
+
+- name: Ensure Users are not Members of a Group using display_name and mail_nickname
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'present'
+ absent_members:
+ - "{{ ad_object_1_object_id }}"
+- name: Ensure Users are Members of a Group using object_id
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: 'present'
+ absent_members:
+ - "{{ ad_object_1_object_id }}"
+
+- name: Ensure Users are Owners of a Group using display_name and mail_nickname
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'present'
+ present_owners:
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
+
+- name: Ensure Users are Owners of a Group using object_id
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: 'present'
+ present_owners:
+ - "https://graph.windows.net/{{ ad_object_1_tenant_id }}/directoryObjects/{{ ad_object_1_object_id }}"
+ - "https://graph.windows.net/{{ ad_object_2_tenant_id }}/directoryObjects/{{ ad_object_2_object_id }}"
+
+- name: Ensure Users are not Owners of a Group using display_name and mail_nickname
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ display_name: "Group-Name"
+ mail_nickname: "Group-Mail-Nickname"
+ state: 'present'
+ absent_owners:
+ - "{{ ad_object_1_object_id }}"
+ - "{{ ad_object_2_object_id }}"
+
+- name: Ensure Users are Owners of a Group using object_id
+ azure_rm_adgroup:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: 'present'
+ absent_owners:
+ - "{{ ad_object_1_object_id }}"
+ - "{{ ad_object_2_object_id }}"
'''
RETURN = '''
@@ -222,7 +221,6 @@ group_members:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
from azure.graphrbac.models import GroupCreateParameters
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup_info.py
index 9e8c5e456..37bc1febb 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adgroup_info.py
@@ -73,52 +73,51 @@ author:
'''
EXAMPLES = '''
- - name: Return a specific group using object_id
- azure_rm_adgroup_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return a specific group using object_id and return the owners of the group
- azure_rm_adgroup_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- return_owners: True
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return a specific group using object_id and return the owners and members of the group
- azure_rm_adgroup_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- return_owners: True
- return_group_members: True
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return a specific group using object_id and return the groups the group is a member of
- azure_rm_adgroup_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- return_member_groups: True
- tenant: "{{ tenant_id }}"
-
- - name: Return a specific group using object_id and check an ID for membership
- azure_rm_adgroup_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- check_membership: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return a specific group using displayName for attribute_name
- azure_rm_adgroup_info:
- attribute_name: "displayName"
- attribute_value: "Display-Name-Of-AD-Group"
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return groups matching odata_filter
- azure_rm_adgroup_info:
- odata_filter: "mailNickname eq 'Mail-Nickname-Of-AD-Group'"
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Return all groups
- azure_rm_adgroup_info:
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- all: True
-
+- name: Return a specific group using object_id
+ azure_rm_adgroup_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return a specific group using object_id and return the owners of the group
+ azure_rm_adgroup_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ return_owners: true
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return a specific group using object_id and return the owners and members of the group
+ azure_rm_adgroup_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ return_owners: true
+ return_group_members: true
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return a specific group using object_id and return the groups the group is a member of
+ azure_rm_adgroup_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ return_member_groups: true
+ tenant: "{{ tenant_id }}"
+
+- name: Return a specific group using object_id and check an ID for membership
+ azure_rm_adgroup_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ check_membership: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return a specific group using displayName for attribute_name
+ azure_rm_adgroup_info:
+ attribute_name: "displayName"
+ attribute_value: "Display-Name-Of-AD-Group"
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return groups matching odata_filter
+ azure_rm_adgroup_info:
+ odata_filter: "mailNickname eq 'Mail-Nickname-Of-AD-Group'"
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Return all groups
+ azure_rm_adgroup_info:
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ all: true
'''
RETURN = '''
@@ -173,7 +172,6 @@ group_members:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
from azure.graphrbac.models import CheckGroupMembershipParameters
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword.py
index d56791864..587d842b5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword.py
@@ -5,7 +5,6 @@
# 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
-import datetime
__metaclass__ = type
@@ -66,7 +65,6 @@ options:
extends_documentation_fragment:
- azure.azcollection.azure
- - azure.azcollection.azure_tags
author:
haiyuan_zhang (@haiyuazhang)
@@ -75,12 +73,12 @@ author:
'''
EXAMPLES = '''
- - name: create ad password
- azure_rm_adpassword:
- app_id: "{{ app_id }}"
- state: present
- value: "$abc12345678"
- tenant: "{{ tenant_id }}"
+- name: create ad password
+ azure_rm_adpassword:
+ app_id: "{{ app_id }}"
+ state: present
+ value: "$abc12345678"
+ tenant: "{{ tenant_id }}"
'''
RETURN = '''
@@ -90,7 +88,7 @@ end_date:
- Default value is one year after current time.
type: str
returned: always
- sample: 2021-06-28T06:00:32.637070+00:00
+ sample: "2021-06-28T06:00:32.637070+00:00"
key_id:
description:
- The password key ID
@@ -103,15 +101,15 @@ start_date:
- Default value is current time.
type: str
returned: always
- sample: 2020-06-28T06:00:32.637070+00:00
+ sample: "2020-06-28T06:00:32.637070+00:00"
'''
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
import uuid
+import datetime
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
from azure.graphrbac.models import PasswordCredential
from azure.graphrbac.models import ApplicationUpdateParameters
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword_info.py
index 8fc99cb7e..7c82b7b9f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adpassword_info.py
@@ -5,7 +5,6 @@
# 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
-import datetime
__metaclass__ = type
@@ -62,11 +61,11 @@ author:
'''
EXAMPLES = '''
- - name: get ad password info
- azure_rm_adpassword_info:
- app_id: "{{ app_id }}"
- tenant: "{{ tenant_id }}"
- key_id: "{{ key_id }}"
+- name: get ad password info
+ azure_rm_adpassword_info:
+ app_id: "{{ app_id }}"
+ tenant: "{{ tenant_id }}"
+ key_id: "{{ key_id }}"
'''
RETURN = '''
@@ -86,9 +85,9 @@ passwords:
description:
- Date or datemtime after which credentials expire.
- Default value is one year after current time.
- type: datetime
+ type: str
returned: always
- sample: 2021-06-18T06:51:25.508304+00:00
+ sample: "2021-06-18T06:51:25.508304+00:00"
key_id:
description:
- The password key ID.
@@ -99,19 +98,16 @@ passwords:
description:
- Date or datetime at which credentials become valid.
- Default value is current time
- type: datetime
+ type: str
returned: always
- sample: 2020-06-18T06:51:25.508304+00:00
+ sample: "2020-06-18T06:51:25.508304+00:00"
'''
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
- from azure.graphrbac.models import PasswordCredential
- from azure.graphrbac.models import ApplicationUpdateParameters
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal.py
index ca5586e48..a7d3b39fd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal.py
@@ -46,7 +46,6 @@ options:
extends_documentation_fragment:
- azure.azcollection.azure
- - azure.azcollection.azure_tags
author:
haiyuan_zhang (@haiyuazhang)
@@ -54,11 +53,11 @@ author:
'''
EXAMPLES = '''
- - name: create ad sp
- azure_rm_adserviceprincipal:
- app_id: "{{ app_id }}"
- state: present
- tenant: "{{ tenant_id }}"
+- name: create ad sp
+ azure_rm_adserviceprincipal:
+ app_id: "{{ app_id }}"
+ state: present
+ tenant: "{{ tenant_id }}"
'''
RETURN = '''
@@ -92,12 +91,10 @@ object_id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
from azure.graphrbac.models import ServicePrincipalCreateParameters
- from azure.graphrbac.models import ServicePrincipalUpdateParameters
except Exception:
pass
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal_info.py
index 80e30b47f..db27ccae8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adserviceprincipal_info.py
@@ -42,11 +42,10 @@ author:
'''
EXAMPLES = '''
- - name: get ad sp info
- azure_rm_adserviceprincipal_info:
- app_id: "{{ app_id }}"
- tenant: "{{ tenant_id }}"
-
+- name: get ad sp info
+ azure_rm_adserviceprincipal_info:
+ app_id: "{{ app_id }}"
+ tenant: "{{ tenant_id }}"
'''
RETURN = '''
@@ -81,7 +80,6 @@ object_id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser.py
index 2bfa04aac..b41c5ae7e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser.py
@@ -151,7 +151,6 @@ EXAMPLES = '''
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
state: "absent"
-
'''
RETURN = '''
@@ -202,7 +201,6 @@ user_type:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import UserUpdateParameters
from azure.graphrbac.models import UserCreateParameters
from azure.graphrbac.models import PasswordProfile
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser_info.py
index 36d27d547..85460e741 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aduser_info.py
@@ -71,37 +71,37 @@ author:
'''
EXAMPLES = '''
- - name: Using user_principal_name
- azure.azcollection.azure_rm_aduser_info:
- user_principal_name: user@contoso.com
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Using object_id
- azure.azcollection.azure_rm_aduser_info:
- object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Using attribute mailNickname - not a collection
- azure.azcollection.azure_rm_aduser_info:
- attribute_name: mailNickname
- attribute_value: users_mailNickname
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Using attribute proxyAddresses - a collection
- azure.azcollection.azure_rm_aduser_info:
- attribute_name: proxyAddresses
- attribute_value: SMTP:user@contoso.com
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Using Filter mailNickname
- azure.azcollection.azure_rm_aduser_info:
- odata_filter: mailNickname eq 'user@contoso.com'
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Using Filter proxyAddresses
- azure.azcollection.azure_rm_aduser_info:
- odata_filter: proxyAddresses/any(c:c eq 'SMTP:user@contoso.com')
- tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+- name: Using user_principal_name
+ azure.azcollection.azure_rm_aduser_info:
+ user_principal_name: user@contoso.com
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Using object_id
+ azure.azcollection.azure_rm_aduser_info:
+ object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Using attribute mailNickname - not a collection
+ azure.azcollection.azure_rm_aduser_info:
+ attribute_name: mailNickname
+ attribute_value: users_mailNickname
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Using attribute proxyAddresses - a collection
+ azure.azcollection.azure_rm_aduser_info:
+ attribute_name: proxyAddresses
+ attribute_value: SMTP:user@contoso.com
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Using Filter mailNickname
+ azure.azcollection.azure_rm_aduser_info:
+ odata_filter: mailNickname eq 'user@contoso.com'
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Using Filter proxyAddresses
+ azure.azcollection.azure_rm_aduser_info:
+ odata_filter: proxyAddresses/any(c:c eq 'SMTP:user@contoso.com')
+ tenant: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
'''
RETURN = '''
@@ -152,7 +152,6 @@ user_type:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.graphrbac.models import GraphErrorException
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py
index 56e4fae2d..bb034b48b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks.py
@@ -21,59 +21,74 @@ options:
description:
- Name of a resource group where the managed Azure Container Services (AKS) exists or will be created.
required: true
+ type: str
name:
description:
- Name of the managed Azure Container Services (AKS) instance.
required: true
+ type: str
state:
description:
- Assert the state of the AKS. Use C(present) to create or update an AKS and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid azure location. Defaults to location of the resource group.
+ type: str
dns_prefix:
description:
- DNS prefix specified when creating the managed cluster.
+ type: str
kubernetes_version:
description:
- Version of Kubernetes specified when creating the managed cluster.
+ type: str
linux_profile:
description:
- The Linux profile suboptions.
- Optional, provide if you need an ssh access to the cluster nodes.
+ type: dict
suboptions:
admin_username:
description:
- The Admin Username for the cluster.
required: true
+ type: str
ssh_key:
description:
- The Public SSH Key used to access the cluster.
required: true
+ type: str
agent_pool_profiles:
description:
- The agent pool profile suboptions.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Unique name of the agent pool profile in the context of the subscription and resource group.
required: true
+ type: str
count:
description:
- Number of agents (VMs) to host docker containers.
- Allowed values must be in the range of C(1) to C(100) (inclusive).
required: true
+ type: int
vm_size:
description:
- The VM Size of each of the Agent Pool VM's (e.g. C(Standard_F1) / C(Standard_D2v2)).
required: true
+ type: str
os_disk_size_gb:
description:
- Size of the OS disk.
+ type: int
enable_auto_scaling:
description:
- To enable auto-scaling.
@@ -130,17 +145,43 @@ options:
- 1
- 2
- 3
+ os_type:
+ description:
+ - The operating system type.
+ type: str
+ choices:
+ - Linux
+ - Windows
+ storage_profiles:
+ description:
+ - Storage profile specifies what kind of storage used.
+ type: str
+ choices:
+ - StorageAccount
+ - ManagedDisks
+ ports:
+ description:
+ - List of the agent pool's port.
+ type: list
+ elements: int
+ dns_prefix:
+ description:
+ - DNS prefix specified when creating the managed cluster.
+ type: str
service_principal:
description:
- The service principal suboptions. If not provided - use system-assigned managed identity.
+ type: dict
suboptions:
client_id:
description:
- The ID for the Service Principal.
+ type: str
required: true
client_secret:
description:
- The secret password associated with the service principal.
+ type: str
enable_rbac:
description:
- Enable RBAC.
@@ -150,6 +191,7 @@ options:
network_profile:
description:
- Profile of network configuration.
+ type: dict
suboptions:
network_plugin:
description:
@@ -158,12 +200,13 @@ options:
- With C(kubenet), nodes get an IP address from the Azure virtual network subnet.
- AKS features such as Virtual Nodes or network policies aren't supported with C(kubenet).
- C(azure) enables Azure Container Networking Interface(CNI), every pod gets an IP address from the subnet and can be accessed directly.
- default: kubenet
+ type: str
choices:
- azure
- kubenet
network_policy:
description: Network policy used for building Kubernetes network.
+ type: str
choices:
- azure
- calico
@@ -172,26 +215,27 @@ options:
- A CIDR notation IP range from which to assign pod IPs when I(network_plugin=kubenet) is used.
- It should be a large address space that isn't in use elsewhere in your network environment.
- This address range must be large enough to accommodate the number of nodes that you expect to scale up to.
- default: "10.244.0.0/16"
+ type: str
service_cidr:
description:
- A CIDR notation IP range from which to assign service cluster IPs.
- It must not overlap with any Subnet IP ranges.
- It should be the *.10 address of your service IP address range.
- default: "10.0.0.0/16"
+ type: str
dns_service_ip:
description:
- An IP address assigned to the Kubernetes DNS service.
- It must be within the Kubernetes service address range specified in serviceCidr.
- default: "10.0.0.10"
+ type: str
docker_bridge_cidr:
description:
- A CIDR notation IP range assigned to the Docker bridge network.
- It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
- default: "172.17.0.1/16"
+ type: str
load_balancer_sku:
description:
- The load balancer sku for the managed cluster.
+ type: str
choices:
- standard
- basic
@@ -199,12 +243,14 @@ options:
description:
- How outbound traffic will be configured for a cluster.
type: str
+ default: loadBalancer
choices:
- loadBalancer
- userDefinedRouting
api_server_access_profile:
description:
- Profile of API Access configuration.
+ type: dict
suboptions:
authorized_ip_ranges:
description:
@@ -220,17 +266,22 @@ options:
aad_profile:
description:
- Profile of Azure Active Directory configuration.
+ type: dict
suboptions:
client_app_id:
description: The client AAD application ID.
+ type: str
server_app_id:
description: The server AAD application ID.
+ type: str
server_app_secret:
description: The server AAD application secret.
+ type: str
tenant_id:
description:
- The AAD tenant ID to use for authentication.
- If not specified, will use the tenant of the deployment subscription.
+ type: str
managed:
description:
- Whether to enable manged AAD.
@@ -252,39 +303,54 @@ options:
description:
- The HTTP application routing solution makes it easy to access applications that are deployed to your cluster.
type: dict
+ aliases:
+ - httpApplicationRouting
suboptions:
enabled:
description:
- Whether the solution enabled.
type: bool
+ default: true
monitoring:
description:
- It gives you performance visibility by collecting memory and processor metrics from controllers, nodes,
and containers that are available in Kubernetes through the Metrics API.
type: dict
+ aliases:
+ - omsagent
suboptions:
enabled:
description:
- Whether the solution enabled.
type: bool
+ default: true
log_analytics_workspace_resource_id:
description:
- Where to store the container metrics.
+ type: str
required: true
+ aliases:
+ - logAnalyticsWorkspaceResourceID
virtual_node:
description:
- With virtual nodes, you have quick provisioning of pods, and only pay per second for their execution time.
- You don't need to wait for Kubernetes cluster autoscaler to deploy VM compute nodes to run the additional pods.
type: dict
+ aliases:
+ - aciConnector
suboptions:
enabled:
description:
- Whether the solution enabled.
type: bool
+ default: true
subnet_resource_id:
description:
- Subnet associated to the cluster.
+ type: str
required: true
+ aliases:
+ - SubnetName
node_resource_group:
description:
- Name of the resource group containing agent pool nodes.
@@ -302,106 +368,106 @@ author:
'''
EXAMPLES = '''
- - name: Create an AKS instance With A System Node Pool & A User Node Pool
- azure_rm_aks:
- name: myAKS
- resource_group: myResourceGroup
- location: eastus
- dns_prefix: akstest
- kubernetes_version: 1.14.6
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
- service_principal:
- client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
- client_secret: "Password1234!"
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- enable_auto_scaling: True
- type: VirtualMachineScaleSets
- mode: System
- max_count: 3
- min_count: 1
- enable_rbac: yes
- - name: user
- count: 1
- vm_size: Standard_D2_v2
- enable_auto_scaling: True
- type: VirtualMachineScaleSets
- mode: User
- max_count: 3
- min_count: 1
- enable_rbac: yes
-
- - name: Create a managed Azure Container Services (AKS) instance
- azure_rm_aks:
- name: myAKS
- location: eastus
- resource_group: myResourceGroup
- dns_prefix: akstest
- kubernetes_version: 1.14.6
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
- service_principal:
- client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
- client_secret: "Password123!"
- agent_pool_profiles:
- - name: default
- count: 5
- mode: System
- vm_size: Standard_B2s
- tags:
- Environment: Production
-
- - name: Use minimal parameters and system-assigned identity
- azure_rm_aks:
- name: myMinimalCluster
- location: eastus
- resource_group: myExistingResourceGroup
- dns_prefix: akstest
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_D2_v2
-
- - name: Create AKS with userDefinedRouting "Link:https://docs.microsoft.com/en-us/azure/aks/limit-egress-traffic#add-a-dnat-rule-to-azure-firewall"
- azure_rm_aks:
- name: "minimal{{ rpfx }}"
- location: eastus
- resource_group: "{{ resource_group }}"
- kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
- dns_prefix: "aks{{ rpfx }}"
- service_principal:
- client_id: "{{ client_id }}"
- client_secret: "{{ client_secret }}"
- network_profile:
- network_plugin: azure
- load_balancer_sku: standard
- outbound_type: userDefinedRouting
- service_cidr: "10.41.0.0/16"
- dns_service_ip: "10.41.0.10"
- docker_bridge_cidr: "172.17.0.1/16"
- api_server_access_profile:
- authorized_ip_ranges:
- - "20.106.246.252/32"
- enable_private_cluster: no
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- mode: System
- vnet_subnet_id: "{{ output.subnets[0].id }}"
- type: VirtualMachineScaleSets
- enable_auto_scaling: false
-
- - name: Remove a managed Azure Container Services (AKS) instance
- azure_rm_aks:
- name: myAKS
- resource_group: myResourceGroup
- state: absent
+- name: Create an AKS instance With A System Node Pool & A User Node Pool
+ azure_rm_aks:
+ name: myAKS
+ resource_group: myResourceGroup
+ location: eastus
+ dns_prefix: akstest
+ kubernetes_version: 1.14.6
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
+ service_principal:
+ client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
+ client_secret: "Password1234!"
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ enable_auto_scaling: true
+ type: VirtualMachineScaleSets
+ mode: System
+ max_count: 3
+ min_count: 1
+ enable_rbac: true
+ - name: user
+ count: 1
+ vm_size: Standard_D2_v2
+ enable_auto_scaling: true
+ type: VirtualMachineScaleSets
+ mode: User
+ max_count: 3
+ min_count: 1
+ enable_rbac: true
+
+- name: Create a managed Azure Container Services (AKS) instance
+ azure_rm_aks:
+ name: myAKS
+ location: eastus
+ resource_group: myResourceGroup
+ dns_prefix: akstest
+ kubernetes_version: 1.14.6
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
+ service_principal:
+ client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
+ client_secret: "Password123!"
+ agent_pool_profiles:
+ - name: default
+ count: 5
+ mode: System
+ vm_size: Standard_B2s
+ tags:
+ Environment: Production
+
+- name: Use minimal parameters and system-assigned identity
+ azure_rm_aks:
+ name: myMinimalCluster
+ location: eastus
+ resource_group: myExistingResourceGroup
+ dns_prefix: akstest
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_D2_v2
+
+- name: Create AKS with userDefinedRouting "Link:https://docs.microsoft.com/en-us/azure/aks/limit-egress-traffic#add-a-dnat-rule-to-azure-firewall"
+ azure_rm_aks:
+ name: "minimal{{ rpfx }}"
+ location: eastus
+ resource_group: "{{ resource_group }}"
+ kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
+ dns_prefix: "aks{{ rpfx }}"
+ service_principal:
+ client_id: "{{ client_id }}"
+ client_secret: "{{ client_secret }}"
+ network_profile:
+ network_plugin: azure
+ load_balancer_sku: standard
+ outbound_type: userDefinedRouting
+ service_cidr: "10.41.0.0/16"
+ dns_service_ip: "10.41.0.10"
+ docker_bridge_cidr: "172.17.0.1/16"
+ api_server_access_profile:
+ authorized_ip_ranges:
+ - "20.106.246.252/32"
+ enable_private_cluster: false
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ mode: System
+ vnet_subnet_id: "{{ output.subnets[0].id }}"
+ type: VirtualMachineScaleSets
+ enable_auto_scaling: false
+
+- name: Remove a managed Azure Container Services (AKS) instance
+ azure_rm_aks:
+ name: myAKS
+ resource_group: myResourceGroup
+ state: absent
'''
RETURN = '''
state:
@@ -611,8 +677,8 @@ agent_pool_profile_spec = dict(
availability_zones=dict(type='list', elements='int', choices=[1, 2, 3]),
os_type=dict(type='str', choices=['Linux', 'Windows']),
orchestrator_version=dict(type='str', required=False),
- type=dict(type='str', choice=['VirtualMachineScaleSets', 'AvailabilitySet']),
- mode=dict(type='str', choice=['System', 'User']),
+ type=dict(type='str', choices=['VirtualMachineScaleSets', 'AvailabilitySet']),
+ mode=dict(type='str', choices=['System', 'User']),
enable_auto_scaling=dict(type='bool'),
max_count=dict(type='int'),
node_labels=dict(type='dict'),
@@ -623,12 +689,12 @@ agent_pool_profile_spec = dict(
network_profile_spec = dict(
network_plugin=dict(type='str', choices=['azure', 'kubenet']),
- network_policy=dict(type='str'),
+ network_policy=dict(type='str', choices=['azure', 'calico']),
pod_cidr=dict(type='str'),
service_cidr=dict(type='str'),
dns_service_ip=dict(type='str'),
docker_bridge_cidr=dict(type='str'),
- load_balancer_sku=dict(type='str'),
+ load_balancer_sku=dict(type='str', choices=['standard', 'basic']),
outbound_type=dict(type='str', default='loadBalancer', choices=['userDefinedRouting', 'loadBalancer'])
)
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks_info.py
index 19e802833..c97bd893e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aks_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific resource group.
+ type: str
resource_group:
description:
- The resource group to search for the desired Azure Kubernetes Service
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -35,6 +37,7 @@ options:
description:
- Show kubeconfig of the AKS cluster.
- Note the operation will cost more network overhead, not recommended when listing AKS.
+ type: str
choices:
- user
- admin
@@ -47,18 +50,18 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one Azure Kubernetes Service
- azure_rm_aks_info:
- name: Testing
- resource_group: myResourceGroup
-
- - name: Get facts for all Azure Kubernetes Services
- azure_rm_aks_info:
-
- - name: Get facts by tags
- azure_rm_aks_info:
- tags:
- - testing
+- name: Get facts for one Azure Kubernetes Service
+ azure_rm_aks_info:
+ name: Testing
+ resource_group: myResourceGroup
+
+- name: Get facts for all Azure Kubernetes Services
+ azure_rm_aks_info:
+
+- name: Get facts by tags
+ azure_rm_aks_info:
+ tags:
+ - testing
'''
RETURN = '''
@@ -118,10 +121,12 @@ class AzureRMManagedClusterInfo(AzureRMModuleBase):
for key in self.module_args:
setattr(self, key, kwargs[key])
- self.results['aks'] = (
- self.get_item() if self.name
- else self.list_items()
- )
+ if self.name is not None and self.resource_group is not None:
+ self.results['aks'] = self.get_item()
+ elif self.resource_group is not None:
+ self.results['aks'] = self.list_by_resourcegroup()
+ else:
+ self.results['aks'] = self.list_items()
return self.results
@@ -145,13 +150,33 @@ class AzureRMManagedClusterInfo(AzureRMModuleBase):
return result
+ def list_by_resourcegroup(self):
+ """Get all Azure Kubernetes Services"""
+
+ self.log('List all Azure Kubernetes Services under resource group')
+
+ try:
+ response = self.managedcluster_client.managed_clusters.list_by_resource_group(self.resource_group)
+ except Exception as exc:
+ self.fail('Failed to list all items - {0}'.format(str(exc)))
+
+ results = []
+ for item in response:
+ if self.has_tags(item.tags, self.tags):
+ item_dict = self.serialize_obj(item, AZURE_OBJECT_CLASS)
+ if self.show_kubeconfig:
+ item_dict['kube_config'] = self.get_aks_kubeconfig(self.resource_group, item.name)
+ results.append(item_dict)
+
+ return results
+
def list_items(self):
"""Get all Azure Kubernetes Services"""
self.log('List all Azure Kubernetes Services')
try:
- response = self.managedcluster_client.managed_clusters.list(self.resource_group)
+ response = self.managedcluster_client.managed_clusters.list()
except Exception as exc:
self.fail('Failed to list all items - {0}'.format(str(exc)))
@@ -160,7 +185,7 @@ class AzureRMManagedClusterInfo(AzureRMModuleBase):
if self.has_tags(item.tags, self.tags):
item_dict = self.serialize_obj(item, AZURE_OBJECT_CLASS)
if self.show_kubeconfig:
- item_dict['kube_config'] = self.get_aks_kubeconfig(self.resource_group, item.name)
+ item_dict['kube_config'] = self.get_aks_kubeconfig(item.resource_group, item.name)
results.append(item_dict)
return results
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool.py
index b578826f6..f84362e95 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool.py
@@ -500,7 +500,7 @@ class AzureRMAksAgentPool(AzureRMModuleBase):
mode=agent_pool.mode,
orchestrator_version=agent_pool.orchestrator_version,
node_image_version=agent_pool.node_image_version,
- upgrade_settings=agent_pool.upgrade_settings,
+ upgrade_settings=dict(),
provisioning_state=agent_pool.provisioning_state,
availability_zones=[],
enable_node_public_ip=agent_pool.enable_node_public_ip,
@@ -511,6 +511,9 @@ class AzureRMAksAgentPool(AzureRMModuleBase):
node_taints=agent_pool.node_taints,
)
+ if agent_pool.upgrade_settings is not None:
+ agent_pool_dict['upgrade_settings']['max_surge'] = agent_pool.upgrade_settings.max_surge
+
if agent_pool.availability_zones is not None:
for key in agent_pool.availability_zones:
agent_pool_dict['availability_zones'].append(int(key))
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool_info.py
index 977261da8..59f3b696d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpool_info.py
@@ -41,17 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get node agent pool by cluster name
- azure_rm_aksagentpool_info:
- resource_group: myRG
- cluster_name: testcluster
-
- - name: Get node agent pool by name
- azure_rm_aksagentpool_info:
- resource_group: myRG
- cluster_name: testcluster
- name: default
+- name: Get node agent pool by cluster name
+ azure_rm_aksagentpool_info:
+ resource_group: myRG
+ cluster_name: testcluster
+- name: Get node agent pool by name
+ azure_rm_aksagentpool_info:
+ resource_group: myRG
+ cluster_name: testcluster
+ name: default
'''
RETURN = '''
@@ -310,7 +309,7 @@ class AzureRMAgentPoolInfo(AzureRMModuleBase):
availability_zones=[],
orchestrator_version=agent_pool.orchestrator_version,
node_image_version=agent_pool.node_image_version,
- upgrade_settings=agent_pool.upgrade_settings,
+ upgrade_settings=dict(),
provisioning_state=agent_pool.provisioning_state,
enable_node_public_ip=agent_pool.enable_node_public_ip,
scale_set_priority=agent_pool.scale_set_priority,
@@ -320,6 +319,9 @@ class AzureRMAgentPoolInfo(AzureRMModuleBase):
node_taints=agent_pool.node_taints,
)
+ if agent_pool.upgrade_settings is not None:
+ agent_pool_dict['upgrade_settings']['max_surge'] = agent_pool.upgrade_settings.max_surge
+
if agent_pool.availability_zones is not None:
for key in agent_pool.availability_zones:
agent_pool_dict['availability_zones'].append(int(key))
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpoolversion_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpoolversion_info.py
index 33cf24317..790e8d278 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpoolversion_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksagentpoolversion_info.py
@@ -40,10 +40,10 @@ author:
'''
EXAMPLES = '''
- - name: Get available versions an AKS can be upgrade to
- azure_rm_aksagentpoolversion_info:
- resource_group: myResourceGroup
- cluster_name: myAKSName
+- name: Get available versions an AKS can be upgrade to
+ azure_rm_aksagentpoolversion_info:
+ resource_group: myResourceGroup
+ cluster_name: myAKSName
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksupgrade_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksupgrade_info.py
index ae17906a2..b4a40f86a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksupgrade_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksupgrade_info.py
@@ -39,11 +39,11 @@ author:
'''
EXAMPLES = '''
- - name: Get available upgrade versions for AKS instance
- azure_rm_aksupgrade_info:
- name: myAKS
- resource_group: myResourceGroup
- register: myAKSupgrades
+- name: Get available upgrade versions for AKS instance
+ azure_rm_aksupgrade_info:
+ name: myAKS
+ resource_group: myResourceGroup
+ register: myAKSupgrades
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksversion_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksversion_info.py
index 4306fcce8..9e5af42ce 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksversion_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_aksversion_info.py
@@ -24,9 +24,11 @@ options:
description:
- Get the versions available for creating a managed Kubernetes cluster.
required: true
+ type: str
version:
description:
- Get the upgrade versions available for a managed Kubernetes cluster version.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -36,13 +38,13 @@ author:
'''
EXAMPLES = '''
- - name: Get available versions for AKS in location eastus
- azure_rm_aksversion_info:
- location: eastus
- - name: Get available versions an AKS can be upgrade to
- azure_rm_aksversion_info:
- location: eastis
- version: 1.11.6
+- name: Get available versions for AKS in location eastus
+ azure_rm_aksversion_info:
+ location: eastus
+- name: Get available versions an AKS can be upgrade to
+ azure_rm_aksversion_info:
+ location: eastis
+ version: 1.11.6
'''
RETURN = '''
@@ -54,13 +56,6 @@ azure_aks_versions:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-try:
- from msrestazure.azure_exceptions import CloudError
- from azure.common import AzureHttpError
-except Exception:
- # handled in azure_rm_common
- pass
-
class AzureRMAKSVersion(AzureRMModuleBase):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement.py
index 221bd44b9..97a7868d1 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement.py
@@ -243,33 +243,33 @@ author:
'''
EXAMPLES = '''
- - name: Create a new API instance
- azure_rm_apimanagement:
- resource_group: 'myResourceGroup'
- service_name: myService
- api_id: testApi
- description: testDescription
- display_name: TestAPI
- service_url: 'http://testapi.example.net/api'
- path: myapiPath
- protocols:
- - https
- - name: Update an existing API instance.
- azure_rm_apimanagement:
- resource_group: myResourceGroup
- service_name: myService
- api_id: testApi
- display_name: newTestAPI
- service_url: 'http://testapi.example.net/api'
- path: myapiPath
- protocols:
- - https
- - name: ApiManagementDeleteApi
- azure_rm_apimanagement:
- resource_group: myResourceGroup
- service_name: myService
- api_id: testApi
- state: absent
+- name: Create a new API instance
+ azure_rm_apimanagement:
+ resource_group: 'myResourceGroup'
+ service_name: myService
+ api_id: testApi
+ description: testDescription
+ display_name: TestAPI
+ service_url: 'http://testapi.example.net/api'
+ path: myapiPath
+ protocols:
+ - https
+- name: Update an existing API instance.
+ azure_rm_apimanagement:
+ resource_group: myResourceGroup
+ service_name: myService
+ api_id: testApi
+ display_name: newTestAPI
+ service_url: 'http://testapi.example.net/api'
+ path: myapiPath
+ protocols:
+ - https
+- name: ApiManagementDeleteApi
+ azure_rm_apimanagement:
+ resource_group: myResourceGroup
+ service_name: myService
+ api_id: testApi
+ state: absent
'''
RETURN = \
@@ -284,15 +284,7 @@ id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-from copy import deepcopy
-import time
import json
-import re
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -544,6 +536,7 @@ class AzureApiManagement(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
old_response = self.get_resource()
@@ -609,13 +602,13 @@ class AzureApiManagement(AzureRMModuleBaseExt):
600,
30,
)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error while creating/updating the Api instance.')
self.fail('Error creating the Api instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -633,7 +626,7 @@ class AzureApiManagement(AzureRMModuleBaseExt):
30,
)
isDeleted = True
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the Api instance.')
self.fail('Error deleting the Api instance: {0}'.format(str(e)))
@@ -653,9 +646,9 @@ class AzureApiManagement(AzureRMModuleBaseExt):
30,
)
isFound = True
- response = json.loads(response.text)
+ response = json.loads(response.body())
self.log("Response : {0}".format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not find the Api instance from the given parameters.')
if isFound is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement_info.py
index d223ede2e..30120b5e5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagement_info.py
@@ -48,15 +48,15 @@ author:
'''
EXAMPLES = '''
- - name: Get the information of api
- azure_rm_apimanagement_info:
- resource_group: myResourceGroup
- service_name: myService
- - name: Get the information of api
- azure_rm_apimanagement_info:
- resource_group: myResourceGroup
- service_name: myService
- api_id: testApi
+- name: Get the information of api
+ azure_rm_apimanagement_info:
+ resource_group: myResourceGroup
+ service_name: myService
+- name: Get the information of api
+ azure_rm_apimanagement_info:
+ resource_group: myResourceGroup
+ service_name: myService
+ api_id: testApi
'''
RETURN = '''
@@ -100,15 +100,7 @@ api:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-from copy import deepcopy
-import time
import json
-import re
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class AzureApiManagementInfo(AzureRMModuleBaseExt):
@@ -163,6 +155,7 @@ class AzureApiManagementInfo(AzureRMModuleBaseExt):
self.body[key] = kwargs[key]
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and
@@ -210,10 +203,10 @@ class AzureApiManagementInfo(AzureRMModuleBaseExt):
600,
30,
)
- except CloudError as e:
+ except Exception as e:
self.log('Could not get the information.{0}'.format(e))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
return None
@@ -233,10 +226,10 @@ class AzureApiManagementInfo(AzureRMModuleBaseExt):
600,
30,
)
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for the given api tags {0}'.format(e))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
return None
@@ -256,8 +249,8 @@ class AzureApiManagementInfo(AzureRMModuleBaseExt):
600,
30,
)
- response = json.loads(response.text)
- except CloudError as e:
+ response = json.loads(response.body())
+ except Exception as e:
self.log('Could not get info for a given services.{0}'.format(e))
try:
response = json.loads(response.text)
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice.py
index 0c2860191..8c694bec4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice.py
@@ -100,15 +100,8 @@ id:
import time
import json
-import re
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -197,6 +190,7 @@ class AzureRMApiManagementService(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -286,14 +280,14 @@ class AzureRMApiManagementService(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the ApiManagementService instance.')
self.fail('Error creating the ApiManagementService instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
pass
return response
@@ -309,7 +303,7 @@ class AzureRMApiManagementService(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the ApiManagementService instance.')
self.fail('Error deleting the ApiManagementService instance: {0}'.format(str(e)))
@@ -329,10 +323,10 @@ class AzureRMApiManagementService(AzureRMModuleBaseExt):
30)
found = True
self.log("Response : {0}".format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the ApiManagementService instance.')
if found is True:
- return json.loads(response.text)
+ return json.loads(response.body())
return False
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice_info.py
index 72891fe14..663e87e78 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_apimanagementservice_info.py
@@ -117,16 +117,9 @@ api_management_service:
sample: null
'''
-import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class AzureRMApiManagementServiceInfo(AzureRMModuleBaseExt):
@@ -163,6 +156,7 @@ class AzureRMApiManagementServiceInfo(AzureRMModuleBaseExt):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and self.name is not None):
@@ -197,8 +191,8 @@ class AzureRMApiManagementServiceInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
- except CloudError as e:
+ results = json.loads(response.body())
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return self.format_item(results)
@@ -226,8 +220,8 @@ class AzureRMApiManagementServiceInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
- except CloudError as e:
+ results = json.loads(response.body())
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
@@ -252,8 +246,8 @@ class AzureRMApiManagementServiceInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
- except CloudError as e:
+ results = json.loads(response.body())
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway.py
index 01f3b2eb5..f95766fa9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway.py
@@ -21,13 +21,16 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the application gateway.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
sku:
description:
- SKU of the application gateway resource.
@@ -36,6 +39,7 @@ options:
name:
description:
- Name of an application gateway SKU.
+ type: str
choices:
- 'standard_small'
- 'standard_medium'
@@ -47,6 +51,7 @@ options:
tier:
description:
- Tier of an application gateway.
+ type: str
choices:
- 'standard'
- 'standard_v2'
@@ -55,6 +60,7 @@ options:
capacity:
description:
- Capacity (instance count) of an application gateway.
+ type: int
ssl_policy:
description:
- SSL policy of the application gateway resource.
@@ -72,12 +78,14 @@ options:
policy_type:
description:
- Type of SSL Policy.
+ type: str
choices:
- 'predefined'
- 'custom'
policy_name:
description:
- Name of Ssl C(predefined) policy.
+ type: str
choices:
- 'ssl_policy20150501'
- 'ssl_policy20170401'
@@ -119,6 +127,7 @@ options:
min_protocol_version:
description:
- Minimum version of SSL protocol to be supported on application gateway.
+ type: str
choices:
- 'tls_v1_0'
- 'tls_v1_1'
@@ -137,15 +146,19 @@ options:
id:
description:
- Full ID of the subnet resource. Required if I(name) and I(virtual_network_name) are not provided.
+ type: str
name:
description:
- Name of the subnet. Only used if I(virtual_network_name) is also provided.
+ type: str
virtual_network_name:
description:
- Name of the virtual network. Only used if I(name) is also provided.
+ type: str
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
authentication_certificates:
description:
- Authentication certificates of the application gateway resource.
@@ -155,9 +168,11 @@ options:
data:
description:
- Certificate public data - base64 encoded pfx.
+ type: str
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
redirect_configurations:
description:
- Redirect configurations of the application gateway resource.
@@ -167,6 +182,7 @@ options:
redirect_type:
description:
- Redirection type.
+ type: str
choices:
- 'permanent'
- 'found'
@@ -175,13 +191,18 @@ options:
target_listener:
description:
- Reference to a listener to redirect the request to.
+ type: str
request_routing_rules:
description:
- List of c(basic) request routing rule names within the application gateway to which the redirect is bound.
version_added: "1.10.0"
+ type: list
+ elements: str
url_path_maps:
description:
- List of URL path map names (c(path_based_routing) rules) within the application gateway to which the redirect is bound.
+ type: list
+ elements: str
version_added: "1.10.0"
path_rules:
description:
@@ -192,19 +213,24 @@ options:
name:
description:
- Name of the URL rule.
+ type: str
path_map_name:
description:
- Name of URL path map.
+ type: str
version_added: "1.10.0"
include_path:
description:
- Include path in the redirected url.
+ type: bool
include_query_string:
description:
- Include query string in the redirected url.
+ type: bool
name:
description:
- Name of the resource that is unique within a resource group.
+ type: str
rewrite_rule_sets:
description:
- List of rewrite configurations for the application gateway resource.
@@ -215,6 +241,7 @@ options:
name:
description:
- Name of the rewrite rule set.
+ type: str
required: True
rewrite_rules:
description:
@@ -227,23 +254,28 @@ options:
description:
- Name of the rewrite rule.
required: True
+ type: str
rule_sequence:
description:
- Sequence of the rule that determines the order of execution within the set.
required: True
+ type: int
conditions:
description:
- Conditions based on which the action set execution will be evaluated.
type: list
elements: dict
+ default: []
suboptions:
variable:
description:
- The parameter for the condition.
+ type: str
required: True
pattern:
description:
- The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition.
+ type: str
required: True
ignore_case:
description:
@@ -266,29 +298,37 @@ options:
- List of actions to be taken on request headers.
type: list
elements: dict
+ default: []
suboptions:
header_name:
description:
- Name of the header.
+ type: str
required: True
header_value:
description:
- Value of the header.
- Leave the parameter unset to remove the header.
+ type: str
+ default: ''
response_header_configurations:
description:
- List of actions to be taken on response headers.
type: list
elements: dict
+ default: []
suboptions:
header_name:
description:
- Name of the header.
+ type: str
required: True
header_value:
description:
- Value of the header.
- Leave the parameter unset to remove the header.
+ type: str
+ default: ''
url_configuration:
description:
- Action to be taken on the URL.
@@ -298,10 +338,12 @@ options:
description:
- Value to which the URL path will be rewriten.
- Leave parameter unset to keep the original URL path.
+ type: str
modified_query_string:
description:
- Value to which the URL query string will be rewriten.
- Leave parameter unset to keep the original URL query string.
+ type: str
reroute:
description:
- If set to true, will re-evaluate the path map provided in path-based request routing rules using modified path.
@@ -317,13 +359,16 @@ options:
description:
- Base-64 encoded pfx certificate.
- Only applicable in PUT Request.
+ type: str
password:
description:
- Password for the pfx file specified in I(data).
- Only applicable in PUT request.
+ type: str
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
trusted_root_certificates:
version_added: "1.15.0"
description:
@@ -342,6 +387,7 @@ options:
key_vault_secret_id:
description:
- Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault.
+ default: ''
type: str
frontend_ip_configurations:
description:
@@ -352,9 +398,11 @@ options:
private_ip_address:
description:
- PrivateIPAddress of the network interface IP Configuration.
+ type: str
private_ip_allocation_method:
description:
- PrivateIP allocation method.
+ type: str
choices:
- 'static'
- 'dynamic'
@@ -366,18 +414,23 @@ options:
id:
description:
- Full ID of the subnet resource. Required if I(name) and I(virtual_network_name) are not provided.
+ type: str
name:
description:
- Name of the subnet. Only used if I(virtual_network_name) is also provided.
+ type: str
virtual_network_name:
description:
- Name of the virtual network. Only used if I(name) is also provided.
+ type: str
public_ip_address:
description:
- Reference of the PublicIP resource.
+ type: raw
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
frontend_ports:
description:
- List of frontend ports of the application gateway resource.
@@ -387,9 +440,11 @@ options:
port:
description:
- Frontend port.
+ type: str
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
backend_address_pools:
description:
- List of backend address pool of the application gateway resource.
@@ -405,12 +460,15 @@ options:
fqdn:
description:
- Fully qualified domain name (FQDN).
+ type: str
ip_address:
description:
- IP address.
+ type: str
name:
description:
- Resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
probes:
description:
- Probes available to the application gateway resource.
@@ -420,35 +478,42 @@ options:
name:
description:
- Name of the I(probe) that is unique within an Application Gateway.
+ type: str
protocol:
description:
- The protocol used for the I(probe).
+ type: str
choices:
- 'http'
- 'https'
host:
description:
- Host name to send the I(probe) to.
+ type: str
path:
description:
- Relative path of I(probe).
- Valid path starts from '/'.
- Probe is sent to <Protocol>://<host>:<port><path>.
+ type: str
timeout:
description:
- The probe timeout in seconds.
- Probe marked as failed if valid response is not received with this timeout period.
- Acceptable values are from 1 second to 86400 seconds.
+ type: int
interval:
description:
- The probing interval in seconds.
- This is the time interval between two consecutive probes.
- Acceptable values are from 1 second to 86400 seconds.
+ type: int
unhealthy_threshold:
description:
- The I(probe) retry count.
- Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold.
- Acceptable values are from 1 second to 20.
+ type: int
pick_host_name_from_backend_http_settings:
description:
- Whether host header should be picked from the host name of the backend HTTP settings. Default value is false.
@@ -463,18 +528,22 @@ options:
probe:
description:
- Probe resource of an application gateway.
+ type: raw
port:
description:
- The destination port on the backend.
+ type: int
protocol:
description:
- The protocol used to communicate with the backend.
+ type: str
choices:
- 'http'
- 'https'
cookie_based_affinity:
description:
- Cookie based affinity.
+ type: str
choices:
- 'enabled'
- 'disabled'
@@ -497,6 +566,7 @@ options:
- Request timeout in seconds.
- Application Gateway will fail the request if response is not received within RequestTimeout.
- Acceptable values are from 1 second to 86400 seconds.
+ type: int
authentication_certificates:
description:
- List of references to application gateway authentication certificates.
@@ -507,29 +577,35 @@ options:
id:
description:
- Resource ID.
+ type: str
trusted_root_certificates:
version_added: "1.15.0"
description:
- Array of references to application gateway trusted root certificates.
- Can be the name of the trusted root certificate or full resource ID.
type: list
- elements: str
+ elements: raw
host_name:
description:
- Host header to be sent to the backend servers.
+ type: str
pick_host_name_from_backend_address:
description:
- Whether host header should be picked from the host name of the backend server. Default value is false.
+ type: bool
affinity_cookie_name:
description:
- Cookie name to use for the affinity cookie.
+ type: str
path:
description:
- Path which should be used as a prefix for all C(http) requests.
- Null means no path will be prefixed. Default value is null.
+ type: str
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
http_listeners:
description:
- List of HTTP listeners of the application gateway resource.
@@ -539,27 +615,34 @@ options:
frontend_ip_configuration:
description:
- Frontend IP configuration resource of an application gateway.
+ type: raw
frontend_port:
description:
- Frontend port resource of an application gateway.
+ type: raw
protocol:
description:
- Protocol of the C(http) listener.
+ type: str
choices:
- 'http'
- 'https'
host_name:
description:
- Host name of C(http) listener.
+ type: str
ssl_certificate:
description:
- SSL certificate resource of an application gateway.
+ type: raw
require_server_name_indication:
description:
- Applicable only if I(protocol) is C(https). Enables SNI for multi-hosting.
+ type: bool
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
url_path_maps:
description:
- List of URL path maps of the application gateway resource.
@@ -569,18 +652,22 @@ options:
name:
description:
- Name of the resource that is unique within the application gateway. This name can be used to access the resource.
+ type: str
default_backend_address_pool:
description:
- Backend address pool resource of the application gateway which will be used if no path matches occur.
- Mutually exclusive with I(default_redirect_configuration).
+ type: str
default_backend_http_settings:
description:
- Backend http settings resource of the application gateway; used with I(default_backend_address_pool).
+ type: str
default_rewrite_rule_set:
description:
- Default rewrite rule set for the path map.
- Can be the name of the rewrite rule set or full resource ID.
version_added: "1.11.0"
+ type: str
path_rules:
description:
- List of URL path rules.
@@ -590,22 +677,27 @@ options:
name:
description:
- Name of the resource that is unique within the path map.
+ type: str
backend_address_pool:
description:
- Backend address pool resource of the application gateway which will be used if the path is matched.
- Mutually exclusive with I(redirect_configuration).
+ type: str
backend_http_settings:
description:
- Backend http settings resource of the application gateway; used for the path's I(backend_address_pool).
+ type: str
rewrite_rule_set:
description:
- Rewrite rule set for the path map.
- Can be the name of the rewrite rule set or full resource ID.
+ type: str
version_added: "1.11.0"
redirect_configuration:
description:
- Name of redirect configuration resource of the application gateway which will be used if the path is matched.
- Mutually exclusive with I(backend_address_pool).
+ type: str
version_added: "1.10.0"
paths:
description:
@@ -616,6 +708,7 @@ options:
description:
- Name of redirect configuration resource of the application gateway which will be used if no path matches occur.
- Mutually exclusive with I(default_backend_address_pool).
+ type: str
version_added: "1.10.0"
request_routing_rules:
description:
@@ -626,31 +719,39 @@ options:
rule_type:
description:
- Rule type.
+ type: str
choices:
- 'basic'
- 'path_based_routing'
backend_address_pool:
description:
- Backend address pool resource of the application gateway. Not used if I(rule_type) is C(path_based_routing).
+ type: raw
backend_http_settings:
description:
- Backend C(http) settings resource of the application gateway.
+ type: raw
http_listener:
description:
- Http listener resource of the application gateway.
+ type: raw
name:
description:
- Name of the resource that is unique within a resource group. This name can be used to access the resource.
+ type: str
redirect_configuration:
description:
- Redirect configuration resource of the application gateway.
+ type: raw
url_path_map:
description:
- URL path map resource of the application gateway. Required if I(rule_type) is C(path_based_routing).
+ type: raw
rewrite_rule_set:
description:
- Rewrite rule set for the path map.
- Can be the name of the rewrite rule set or full resource ID.
+ type: raw
version_added: "1.11.0"
autoscale_configuration:
version_added: "1.15.0"
@@ -683,6 +784,7 @@ options:
- The disabled rule groups.
type: list
elements: dict
+ default: []
suboptions:
rule_group_name:
description:
@@ -693,6 +795,7 @@ options:
- The list of rules that will be disabled. If null, all rules of the rule group will be disabled.
type: list
elements: int
+ default: []
enabled:
description:
- Whether the web application firewall is enabled or not.
@@ -702,6 +805,7 @@ options:
- The exclusion list.
type: list
elements: dict
+ default: []
suboptions:
match_variable:
description:
@@ -761,6 +865,7 @@ options:
description:
- Assert the state of the application gateway. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -803,15 +908,15 @@ EXAMPLES = '''
protocol: http
cookie_based_affinity: enabled
connection_draining:
- drain_timeout_in_sec: 60
- enabled: true
+ drain_timeout_in_sec: 60
+ enabled: true
name: sample_appgateway_http_settings
http_listeners:
- frontend_ip_configuration: sample_gateway_frontend_ip_config
frontend_port: ag_frontend_port
name: sample_http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
@@ -848,8 +953,8 @@ EXAMPLES = '''
protocol: http
cookie_based_affinity: enabled
connection_draining:
- drain_timeout_in_sec: 60
- enabled: true
+ drain_timeout_in_sec: 60
+ enabled: true
name: sample_appgateway_http_settings
trusted_root_certificates:
- "root_cert"
@@ -858,7 +963,7 @@ EXAMPLES = '''
frontend_port: ag_frontend_port
name: sample_http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
@@ -899,7 +1004,7 @@ EXAMPLES = '''
frontend_port: ag_frontend_port
name: sample_http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
@@ -1196,20 +1301,20 @@ EXAMPLES = '''
- header_name: "Foo"
header_value: "Bar"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1261,7 +1366,7 @@ EXAMPLES = '''
frontend_port: ag_frontend_port
name: sample_http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
@@ -1300,7 +1405,7 @@ EXAMPLES = '''
frontend_port: ag_frontend_port
name: sample_http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
@@ -1376,7 +1481,7 @@ from ansible.module_utils.common.dict_transformations import (
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.tools import parse_resource_id, is_valid_resource_id
+ from azure.mgmt.core.tools import parse_resource_id, is_valid_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
@@ -1394,11 +1499,21 @@ sku_spec = dict(
ssl_policy_spec = dict(
- disabled_ssl_protocols=dict(type='list'),
+ disabled_ssl_protocols=dict(type='list', elements='str', choices=['tls_v1_0', 'tls_v1_1', 'tls_v1_2']),
policy_type=dict(type='str', choices=['predefined', 'custom']),
policy_name=dict(type='str', choices=['ssl_policy20150501', 'ssl_policy20170401', 'ssl_policy20170401_s']),
- cipher_suites=dict(type='list'),
- min_protocol_version=dict(type='str', choices=['tls_v1_0', 'tls_v1_1', 'tls_v1_2'])
+ min_protocol_version=dict(type='str', choices=['tls_v1_0', 'tls_v1_1', 'tls_v1_2']),
+ cipher_suites=dict(type='list', elements='str',
+ choices=['tls_ecdhe_rsa_with_aes_256_gcm_sha384', 'tls_ecdhe_rsa_with_aes_128_gcm_sha256', 'tls_ecdhe_rsa_with_aes_256_cbc_sha384',
+ 'tls_ecdhe_rsa_with_aes_128_cbc_sha256', 'tls_ecdhe_rsa_with_aes_256_cbc_sha', 'tls_ecdhe_rsa_with_aes_128_cbc_sha',
+ 'tls_dhe_rsa_with_aes_256_gcm_sha384', 'tls_dhe_rsa_with_aes_128_gcm_sha256', 'tls_dhe_rsa_with_aes_256_cbc_sha',
+ 'tls_dhe_rsa_with_aes_128_cbc_sha', 'tls_rsa_with_aes_256_gcm_sha384', 'tls_rsa_with_aes_128_gcm_sha256',
+ 'tls_rsa_with_aes_256_cbc_sha256', 'tls_rsa_with_aes_128_cbc_sha256', 'tls_rsa_with_aes_256_cbc_sha',
+ 'tls_rsa_with_aes_128_cbc_sha', 'tls_ecdhe_ecdsa_with_aes_256_gcm_sha384', 'tls_ecdhe_ecdsa_with_aes_128_gcm_sha256',
+ 'tls_ecdhe_ecdsa_with_aes_256_cbc_sha384', 'tls_ecdhe_ecdsa_with_aes_128_cbc_sha256',
+ 'tls_ecdhe_ecdsa_with_aes_256_cbc_sha', 'tls_ecdhe_ecdsa_with_aes_128_cbc_sha', 'tls_dhe_dss_with_aes_256_cbc_sha256',
+ 'tls_dhe_dss_with_aes_128_cbc_sha256', 'tls_dhe_dss_with_aes_256_cbc_sha', 'tls_dhe_dss_with_aes_128_cbc_sha',
+ 'tls_rsa_with_3des_ede_cbc_sha', 'tls_dhe_dss_with_3des_ede_cbc_sha']),
)
@@ -1561,13 +1676,36 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
options=ssl_policy_spec
),
gateway_ip_configurations=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ name=dict(type='str'),
+ subnet=dict(
+ type='dict',
+ options=dict(
+ id=dict(type='str'),
+ name=dict(type='str'),
+ virtual_network_name=dict(type='str')
+ )
+ )
+ )
),
authentication_certificates=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ name=dict(type='str'),
+ data=dict(type='str')
+ ),
),
ssl_certificates=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ data=dict(type='str'),
+ password=dict(type='str', no_log=True),
+ name=dict(type='str')
+ )
),
trusted_root_certificates=dict(
type='list',
@@ -1585,16 +1723,76 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
options=rewrite_rule_set_spec
),
frontend_ip_configurations=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ private_ip_address=dict(type='str'),
+ private_ip_allocation_method=dict(type='str', choices=['static', 'dynamic']),
+ public_ip_address=dict(type='raw'),
+ name=dict(type='str'),
+ subnet=dict(
+ type='dict',
+ options=dict(
+ id=dict(type='str'),
+ name=dict(type='str'),
+ virtual_network_name=dict(type='str')
+ )
+ )
+ )
),
frontend_ports=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ port=dict(type='str'),
+ name=dict(type='str')
+ )
),
backend_address_pools=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ name=dict(type='str'),
+ backend_addresses=dict(
+ type='list',
+ elements='dict',
+ options=dict(
+ fqdn=dict(type='str'),
+ ip_address=dict(type='str')
+ )
+ )
+ )
),
backend_http_settings_collection=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ probe=dict(type='raw'),
+ port=dict(type='int'),
+ protocol=dict(type='str', choices=['http', 'https']),
+ cookie_based_affinity=dict(type='str', choices=['enabled', 'disabled']),
+ connection_draining=dict(
+ type='dict',
+ options=dict(
+ drain_timeout_in_sec=dict(type='int'),
+ enabled=dict(type='bool')
+ )
+ ),
+ request_timeout=dict(type='int'),
+ authentication_certificates=dict(
+ type='list',
+ elements='dict',
+ options=dict(
+ id=dict(type='str')
+ )
+ ),
+ trusted_root_certificates=dict(type='list', elements='raw'),
+ host_name=dict(type='str'),
+ pick_host_name_from_backend_address=dict(type='bool'),
+ affinity_cookie_name=dict(type='str'),
+ path=dict(type='str'),
+ name=dict(type='str')
+ )
),
probes=dict(
type='list',
@@ -1602,7 +1800,17 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
options=probe_spec
),
http_listeners=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ frontend_ip_configuration=dict(type='raw'),
+ frontend_port=dict(type='raw'),
+ protocol=dict(type='str', choices=['http', 'https']),
+ host_name=dict(type='str'),
+ ssl_certificate=dict(type='raw'),
+ require_server_name_indication=dict(type='bool'),
+ name=dict(type='str'),
+ )
),
url_path_maps=dict(
type='list',
@@ -1613,7 +1821,18 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
required_together=[('default_backend_address_pool', 'default_backend_http_settings')],
),
request_routing_rules=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ rule_type=dict(type='str', choices=['basic', 'path_based_routing']),
+ backend_address_pool=dict(type='raw'),
+ backend_http_settings=dict(type='raw'),
+ http_listener=dict(type='raw'),
+ name=dict(type='str'),
+ redirect_configuration=dict(type='raw'),
+ rewrite_rule_set=dict(type='raw'),
+ url_path_map=dict(type='raw'),
+ )
),
autoscale_configuration=dict(
type='dict',
@@ -1730,7 +1949,8 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'subnet' in item and 'name' in item['subnet'] and 'virtual_network_name' in item['subnet']:
+ if 'subnet' in item and item['subnet'] is not None and 'name' in item['subnet'] and item['subnet']['name'] is not None and \
+ 'virtual_network_name' in item['subnet'] and item['subnet']['virtual_network_name'] is not None:
id = subnet_id(self.subscription_id,
kwargs['resource_group'],
item['subnet']['virtual_network_name'],
@@ -1806,14 +2026,15 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'private_ip_allocation_method' in item:
+ if 'private_ip_allocation_method' in item and item['private_ip_allocation_method'] is not None:
item['private_ip_allocation_method'] = _snake_to_camel(item['private_ip_allocation_method'], True)
- if 'public_ip_address' in item:
+ if 'public_ip_address' in item and item['public_ip_address'] is not None:
id = public_ip_id(self.subscription_id,
kwargs['resource_group'],
item['public_ip_address'])
item['public_ip_address'] = {'id': id}
- if 'subnet' in item and 'name' in item['subnet'] and 'virtual_network_name' in item['subnet']:
+ if 'subnet' in item and item['subnet'] is not None and 'name' in item['subnet'] and item['subnet']['name'] is not None and \
+ 'virtual_network_name' in item['subnet'] and item['subnet']['virtual_network_name'] is not None:
id = subnet_id(self.subscription_id,
kwargs['resource_group'],
item['subnet']['virtual_network_name'],
@@ -1828,7 +2049,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'protocol' in item:
+ if 'protocol' in item and item['protocol'] is not None:
item['protocol'] = _snake_to_camel(item['protocol'], True)
if 'pick_host_name_from_backend_http_settings' in item and item['pick_host_name_from_backend_http_settings'] and 'host' in item:
del item['host']
@@ -1837,17 +2058,17 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'protocol' in item:
+ if 'protocol' in item and item['protocol'] is not None:
item['protocol'] = _snake_to_camel(item['protocol'], True)
- if 'cookie_based_affinity' in item:
+ if 'cookie_based_affinity' in item and item['cookie_based_affinity'] is not None:
item['cookie_based_affinity'] = _snake_to_camel(item['cookie_based_affinity'], True)
- if 'probe' in item:
+ if 'probe' in item and item['probe'] is not None:
id = probe_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['probe'])
item['probe'] = {'id': id}
- if 'trusted_root_certificates' in item:
+ if 'trusted_root_certificates' in item and item['trusted_root_certificates'] is not None:
for j in range(len(item['trusted_root_certificates'])):
id = item['trusted_root_certificates'][j]
id = id if is_valid_resource_id(id) else trusted_root_certificate_id(self.subscription_id,
@@ -1860,26 +2081,26 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'frontend_ip_configuration' in item:
+ if 'frontend_ip_configuration' in item and item['frontend_ip_configuration'] is not None:
id = frontend_ip_configuration_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['frontend_ip_configuration'])
item['frontend_ip_configuration'] = {'id': id}
- if 'frontend_port' in item:
+ if 'frontend_port' in item and item['frontend_port'] is not None:
id = frontend_port_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['frontend_port'])
item['frontend_port'] = {'id': id}
- if 'ssl_certificate' in item:
+ if 'ssl_certificate' in item and item['ssl_certificate'] is not None:
id = ssl_certificate_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['ssl_certificate'])
item['ssl_certificate'] = {'id': id}
- if 'protocol' in item:
+ if 'protocol' in item and item['protocol'] is not None:
item['protocol'] = _snake_to_camel(item['protocol'], True)
ev[i] = item
self.parameters["http_listeners"] = ev
@@ -1887,7 +2108,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if item['default_backend_address_pool']:
+ if item['default_backend_address_pool'] and item['default_backend_address_pool'] is not None:
id = backend_address_pool_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
@@ -1895,7 +2116,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
item['default_backend_address_pool'] = {'id': id}
else:
del item['default_backend_address_pool']
- if item['default_backend_http_settings']:
+ if item['default_backend_http_settings'] and item['default_backend_http_settings'] is not None:
id = backend_http_settings_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
@@ -1907,7 +2128,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev2 = item['path_rules']
for j in range(len(ev2)):
item2 = ev2[j]
- if item2['backend_address_pool']:
+ if item2['backend_address_pool'] and item2['backend_address_pool'] is not None:
id = backend_address_pool_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
@@ -1915,7 +2136,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
item2['backend_address_pool'] = {'id': id}
else:
del item2['backend_address_pool']
- if item2['backend_http_settings']:
+ if item2['backend_http_settings'] and item2['backend_http_settings'] is not None:
id = backend_http_settings_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
@@ -1923,7 +2144,7 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
item2['backend_http_settings'] = {'id': id}
else:
del item2['backend_http_settings']
- if item2['redirect_configuration']:
+ if item2['redirect_configuration'] and item2['redirect_configuration'] is not None:
id = redirect_configuration_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
@@ -1964,37 +2185,38 @@ class AzureRMApplicationGateways(AzureRMModuleBase):
ev = kwargs[key]
for i in range(len(ev)):
item = ev[i]
- if 'rule_type' in item and item['rule_type'] == 'path_based_routing' and 'backend_address_pool' in item:
+ if 'rule_type' in item and item['rule_type'] is not None and item['rule_type'] == 'path_based_routing' and \
+ 'backend_address_pool' in item and item['backend_address_pool'] is not None:
del item['backend_address_pool']
- if 'backend_address_pool' in item:
+ if 'backend_address_pool' in item and item['backend_address_pool'] is not None:
id = backend_address_pool_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['backend_address_pool'])
item['backend_address_pool'] = {'id': id}
- if 'backend_http_settings' in item:
+ if 'backend_http_settings' in item and item['backend_http_settings'] is not None:
id = backend_http_settings_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['backend_http_settings'])
item['backend_http_settings'] = {'id': id}
- if 'http_listener' in item:
+ if 'http_listener' in item and item['http_listener'] is not None:
id = http_listener_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['http_listener'])
item['http_listener'] = {'id': id}
- if 'protocol' in item:
+ if 'protocol' in item and item['protocol'] is not None:
item['protocol'] = _snake_to_camel(item['protocol'], True)
- if 'rule_type' in item:
+ if 'rule_type' in item and item['rule_type'] is not None:
item['rule_type'] = _snake_to_camel(item['rule_type'], True)
- if 'redirect_configuration' in item:
+ if 'redirect_configuration' in item and item['redirect_configuration'] is not None:
id = redirect_configuration_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
item['redirect_configuration'])
item['redirect_configuration'] = {'id': id}
- if 'url_path_map' in item:
+ if 'url_path_map' in item and item['url_path_map'] is not None:
id = url_path_map_id(self.subscription_id,
kwargs['resource_group'],
kwargs['name'],
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway_info.py
index da5c5ecd2..f6ede2a71 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appgateway_info.py
@@ -33,17 +33,17 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for application gateway by name.
- azure_rm_appgateway_info:
- name: MyAppgw
- resource_group: MyResourceGroup
+- name: Get facts for application gateway by name.
+ azure_rm_appgateway_info:
+ name: MyAppgw
+ resource_group: MyResourceGroup
- - name: Get facts for application gateways in resource group.
- azure_rm_appgateway_info:
- resource_group: MyResourceGroup
+- name: Get facts for application gateways in resource group.
+ azure_rm_appgateway_info:
+ resource_group: MyResourceGroup
- - name: Get facts for all application gateways.
- azure_rm_appgateway_info:
+- name: Get facts for all application gateways.
+ azure_rm_appgateway_info:
'''
RETURN = '''
@@ -116,7 +116,7 @@ from ansible.module_utils.common.dict_transformations import _camel_to_snake
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup.py
index d135ca193..630142785 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup.py
@@ -21,21 +21,25 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the application security group.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
state:
- description:
- - Assert the state of the Application Security Group.
- - Use C(present) to create or update an Application Security Group and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Application Security Group.
+ - Use C(present) to create or update an Application Security Group and C(absent) to delete it.
+ type: str
+ default: present
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -47,13 +51,13 @@ author:
'''
EXAMPLES = '''
- - name: Create application security group
- azure_rm_applicationsecuritygroup:
- resource_group: myResourceGroup
- name: mySecurityGroup
- location: eastus
- tags:
- foo: bar
+- name: Create application security group
+ azure_rm_applicationsecuritygroup:
+ resource_group: myResourceGroup
+ name: mySecurityGroup
+ location: eastus
+ tags:
+ foo: bar
'''
RETURN = '''
@@ -71,7 +75,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.azure_operation import AzureOperationPoller
except ImportError:
# This is handled in azure_rm_common
pass
@@ -193,7 +196,7 @@ class AzureRMApplicationSecurityGroup(AzureRMModuleBase):
response = self.network_client.application_security_groups.begin_create_or_update(resource_group_name=self.resource_group,
application_security_group_name=self.name,
parameters=param)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup_info.py
index 738404b4e..9e758c6ed 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_applicationsecuritygroup_info.py
@@ -20,9 +20,11 @@ options:
resource_group:
description:
- The name of the resource group.
+ type: str
name:
description:
- The name of the application security group.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -38,19 +40,19 @@ author:
'''
EXAMPLES = '''
- - name: List application security groups in specific resource group
- azure_rm_applicationsecuritygroup_info:
- resource_group: myResourceGroup
-
- - name: List application security groups in specific subscription
- azure_rm_applicationsecuritygroup_info:
-
- - name: Get application security group by name
- azure_rm_applicationsecuritygroup_info:
- resource_group: myResourceGroup
- name: myApplicationSecurityGroup
- tags:
- - foo
+- name: List application security groups in specific resource group
+ azure_rm_applicationsecuritygroup_info:
+ resource_group: myResourceGroup
+
+- name: List application security groups in specific subscription
+ azure_rm_applicationsecuritygroup_info:
+
+- name: Get application security group by name
+ azure_rm_applicationsecuritygroup_info:
+ resource_group: myResourceGroup
+ name: myApplicationSecurityGroup
+ tags:
+ - foo
'''
RETURN = '''
@@ -90,7 +92,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan.py
index 2c0e883bf..1ca293f8a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan.py
@@ -21,21 +21,24 @@ options:
description:
- Name of the resource group to which the resource belongs.
required: True
+ type: str
name:
description:
- Unique name of the app service plan to create or update.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
-
+ type: str
sku:
description:
- The pricing tiers, e.g., C(F1), C(D1), C(B1), C(B2), C(B3), C(S1), C(P1), C(P1V2) etc.
- Please see U(https://azure.microsoft.com/en-us/pricing/details/app-service/plans/) for more detail.
- For Linux app service plan, please see U(https://azure.microsoft.com/en-us/pricing/details/app-service/linux/) for more detail.
+ type: str
is_linux:
description:
- Describe whether to host webapp on Linux worker.
@@ -45,15 +48,17 @@ options:
number_of_workers:
description:
- Describe number of workers to be allocated.
+ type: str
state:
- description:
- - Assert the state of the app service plan.
- - Use C(present) to create or update an app service plan and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the app service plan.
+ - Use C(present) to create or update an app service plan and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -65,28 +70,28 @@ author:
'''
EXAMPLES = '''
- - name: Create a windows app service plan
- azure_rm_appserviceplan:
- resource_group: myResourceGroup
- name: myAppPlan
- location: eastus
- sku: S1
-
- - name: Create a linux app service plan
- azure_rm_appserviceplan:
- resource_group: myResourceGroup
- name: myAppPlan
- location: eastus
- sku: S1
- is_linux: true
- number_of_workers: 1
-
- - name: update sku of existing windows app service plan
- azure_rm_appserviceplan:
- resource_group: myResourceGroup
- name: myAppPlan
- location: eastus
- sku: S2
+- name: Create a windows app service plan
+ azure_rm_appserviceplan:
+ resource_group: myResourceGroup
+ name: myAppPlan
+ location: eastus
+ sku: S1
+
+- name: Create a linux app service plan
+ azure_rm_appserviceplan:
+ resource_group: myResourceGroup
+ name: myAppPlan
+ location: eastus
+ sku: S1
+ is_linux: true
+ number_of_workers: 1
+
+- name: update sku of existing windows app service plan
+ azure_rm_appserviceplan:
+ resource_group: myResourceGroup
+ name: myAppPlan
+ location: eastus
+ sku: S2
'''
RETURN = '''
@@ -99,13 +104,11 @@ azure_appserviceplan:
}
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.web.models import AppServicePlan, SkuDescription
except ImportError:
# This is handled in azure_rm_common
@@ -337,7 +340,7 @@ class AzureRMAppServicePlans(AzureRMModuleBase):
name=self.name,
app_service_plan=plan_def)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
self.log("Response : {0}".format(response))
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan_info.py
index 826ecc175..c57570976 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_appserviceplan_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Only show results for a specific app service plan.
+ type: str
resource_group:
description:
- Limit results by resource group.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -40,20 +42,20 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for app service plan by name
- azure_rm_appserviceplan_info:
- resource_group: myResourceGroup
- name: myAppServicePlan
-
- - name: Get azure_rm_appserviceplan_facts for app service plan in resource group
- azure_rm_appserviceplan_info:
- resource_group: myResourceGroup
-
- - name: Get facts for app service plan with tags
- azure_rm_appserviceplan_info:
- tags:
- - testtag
- - foo:bar
+- name: Get facts for app service plan by name
+ azure_rm_appserviceplan_info:
+ resource_group: myResourceGroup
+ name: myAppServicePlan
+
+- name: Get azure_rm_appserviceplan_facts for app service plan in resource group
+ azure_rm_appserviceplan_info:
+ resource_group: myResourceGroup
+
+- name: Get facts for app service plan with tags
+ azure_rm_appserviceplan_info:
+ tags:
+ - testtag
+ - foo:bar
'''
RETURN = '''
@@ -217,14 +219,14 @@ class AzureRMAppServicePlanInfo(AzureRMModuleBase):
curated_output = dict()
curated_output['id'] = plan_facts['id']
curated_output['name'] = plan_facts['name']
- curated_output['resource_group'] = plan_facts['properties']['resourceGroup']
+ curated_output['resource_group'] = plan_facts['resource_group']
curated_output['location'] = plan_facts['location']
curated_output['tags'] = plan_facts.get('tags', None)
curated_output['is_linux'] = False
curated_output['kind'] = plan_facts['kind']
curated_output['sku'] = plan_facts['sku']
- if plan_facts['properties'].get('reserved', None):
+ if plan_facts.get('reserved', None):
curated_output['is_linux'] = True
return curated_output
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationaccount_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationaccount_info.py
index defbb7f2a..dd02169d9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationaccount_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationaccount_info.py
@@ -58,18 +58,18 @@ author:
EXAMPLES = '''
- name: Get details of an automation account
azure_rm_automationaccount_info:
- name: Testing
- resource_group: myResourceGroup
- list_statistics: yes
- list_usages: yes
- list_keys: yes
- tags:
- - key
- - key:value
+ name: Testing
+ resource_group: myResourceGroup
+ list_statistics: true
+ list_usages: true
+ list_keys: true
+ tags:
+ - key
+ - key:value
- name: List automation account in a resource group
azure_rm_automationaccount_info:
- resource_group: myResourceGroup
+ resource_group: myResourceGroup
- name: List automation account in a resource group
azure_rm_automationaccount_info:
@@ -240,7 +240,7 @@ automation_accounts:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook.py
index 5f4cc10b1..e983db439 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook.py
@@ -102,8 +102,8 @@ EXAMPLES = '''
runbook_type: "Script"
description: "Fred test"
log_activity_trace: 3
- log_progress: True
- log_verbose: False
+ log_progress: true
+ log_verbose: false
tags:
key1: value1
@@ -112,7 +112,7 @@ EXAMPLES = '''
resource_group: "{{ resource_group }}"
automation_account_name: "{{ account-name }}"
name: "{{ runbook-name }}"
- publish: True
+ publish: true
- name: Delete automation runbook
azure_rm_automationrunbook:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook_info.py
index 7f3385362..341edc3d9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_automationrunbook_info.py
@@ -66,8 +66,7 @@ EXAMPLES = '''
resource_group: "{{ resource_group }}"
automation_account_name: "{{ account-name }}"
name: "{{ runbook-name }}"
- show_content: True
-
+ show_content: true
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale.py
index adcb6dfb9..f21505f81 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale.py
@@ -21,10 +21,12 @@ options:
- The identifier of the resource to apply autoscale setting.
- It could be the resource id string.
- It also could be a dict contains the C(name), C(subscription_id), C(namespace), C(types), C(resource_group) of the resource.
+ type: raw
resource_group:
required: true
description:
- Resource group of the resource.
+ type: str
enabled:
type: bool
description:
@@ -34,29 +36,36 @@ options:
description:
- The collection of automatic scaling profiles that specify different scaling parameters for different time periods.
- A maximum of 20 profiles can be specified.
+ type: list
+ elements: dict
suboptions:
name:
required: true
description:
- The name of the profile.
+ type: str
count:
required: true
description:
- The number of instances that will be set if metrics are not available for evaluation.
- The default is only used if the current instance count is lower than the default.
+ type: str
min_count:
description:
- The minimum number of instances for the resource.
+ type: str
max_count:
description:
- The maximum number of instances for the resource.
- The actual maximum number of instances is limited by the cores that are available in the subscription.
+ type: str
recurrence_frequency:
default: None
description:
- How often the schedule profile should take effect.
- If this value is C(Week), meaning each week will have the same set of profiles.
- This element is not used if the FixedDate element is used.
+ type: str
choices:
- None
- Second
@@ -70,39 +79,52 @@ options:
description:
- The timezone of repeating times at which this profile begins.
- This element is not used if the FixedDate element is used.
+ type: str
recurrence_days:
description:
- The days of repeating times at which this profile begins.
- This element is not used if the FixedDate element is used.
+ type: list
+ elements: str
recurrence_hours:
description:
- The hours of repeating times at which this profile begins.
- This element is not used if the FixedDate element is used.
+ type: list
+ elements: str
recurrence_mins:
description:
- The mins of repeating times at which this profile begins.
- This element is not used if the FixedDate element is used.
+ type: list
+ elements: str
fixed_date_timezone:
description:
- The specific date-time timezone for the profile.
- This element is not used if the Recurrence element is used.
+ type: str
fixed_date_start:
description:
- The specific date-time start for the profile.
- This element is not used if the Recurrence element is used.
+ type: str
fixed_date_end:
description:
- The specific date-time end for the profile.
- This element is not used if the Recurrence element is used.
+ type: str
rules:
description:
- The collection of rules that provide the triggers and parameters for the scaling action.
- A maximum of 10 rules can be specified.
+ type: list
+ elements: dict
suboptions:
time_aggregation:
default: Average
description:
- How the data that is collected should be combined over time.
+ type: str
choices:
- Average
- Minimum
@@ -115,9 +137,11 @@ options:
- The range of time(minutes) in which instance data is collected.
- This value must be greater than the delay in metric collection, which can vary from resource-to-resource.
- Must be between 5 ~ 720.
+ type: float
direction:
description:
- Whether the scaling action increases or decreases the number of instances.
+ type: str
choices:
- Increase
- Decrease
@@ -125,17 +149,21 @@ options:
required: true
description:
- The name of the metric that defines what the rule monitors.
+ type: str
metric_resource_uri:
description:
- The resource identifier of the resource the rule monitors.
+ type: str
value:
description:
- The number of instances that are involved in the scaling action.
- This value must be 1 or greater.
+ type: str
operator:
default: GreaterThan
description:
- The operator that is used to compare the metric data and the threshold.
+ type: str
choices:
- Equals
- NotEquals
@@ -147,16 +175,19 @@ options:
description:
- The amount of time (minutes) to wait since the last scaling action before this action occurs.
- It must be between 1 ~ 10080.
+ type: float
time_grain:
required: true
description:
- The granularity(minutes) of metrics the rule monitors.
- Must be one of the predefined values returned from metric definitions for the metric.
- Must be between 1 ~ 720.
+ type: float
statistic:
default: Average
description:
- How the metrics from multiple instances are combined.
+ type: str
choices:
- Average
- Min
@@ -166,9 +197,11 @@ options:
default: 70
description:
- The threshold of the metric that triggers the scale action.
+ type: float
type:
description:
- The type of action that should occur when the scale rule fires.
+ type: str
choices:
- PercentChangeCount
- ExactCount
@@ -176,37 +209,50 @@ options:
notifications:
description:
- The collection of notifications.
+ type: list
+ elements: dict
suboptions:
custom_emails:
description:
- The custom e-mails list. This value can be null or empty, in which case this attribute will be ignored.
+ type: list
+ elements: str
send_to_subscription_administrator:
type: bool
default: False
description:
- A value indicating whether to send email to subscription administrator.
+ aliases:
+ - email_admin
webhooks:
description:
- The list of webhook notifications service uri.
+ type: list
+ elements: str
send_to_subscription_co_administrators:
type: bool
default: False
description:
- A value indicating whether to send email to subscription co-administrators.
+ aliases:
+ - email_co_admin
state:
default: present
description:
- Assert the state of the virtual network. Use C(present) to create or update and C(absent) to delete.
+ type: str
choices:
- present
- absent
location:
description:
- location of the resource.
+ type: str
name:
required: true
description:
- name of the resource.
+ type: str
extends_documentation_fragment:
@@ -221,63 +267,63 @@ author:
EXAMPLES = '''
- name: Create an auto scale
azure_rm_autoscale:
- target: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVmss"
- enabled: true
- profiles:
+ target: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVmss"
+ enabled: true
+ profiles:
- count: '1'
recurrence_days:
- - Monday
+ - Monday
name: Auto created scale condition
recurrence_timezone: China Standard Time
recurrence_mins:
- - '0'
+ - '0'
min_count: '1'
max_count: '1'
recurrence_frequency: Week
recurrence_hours:
- - '18'
- name: scale
- resource_group: myResourceGroup
+ - '18'
+ name: scale
+ resource_group: myResourceGroup
- name: Create an auto scale with complicated profile
azure_rm_autoscale:
- target: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets
+ target: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets
/myVmss"
- enabled: true
- profiles:
+ enabled: true
+ profiles:
- count: '1'
recurrence_days:
- - Monday
+ - Monday
name: Auto created scale condition 0
rules:
- - time_aggregation: Average
- time_window: 10
- direction: Increase
- metric_name: Percentage CPU
- metric_resource_uri: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtua
+ - time_aggregation: Average
+ time_window: 10
+ direction: Increase
+ metric_name: Percentage CPU
+ metric_resource_uri: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtua
lMachineScaleSets/vmss"
- value: '1'
- threshold: 70
- cooldown: 5
- time_grain: 1
- statistic: Average
- operator: GreaterThan
- type: ChangeCount
+ value: '1'
+ threshold: 70
+ cooldown: 5
+ time_grain: 1
+ statistic: Average
+ operator: GreaterThan
+ type: ChangeCount
max_count: '1'
recurrence_mins:
- - '0'
+ - '0'
min_count: '1'
recurrence_timezone: China Standard Time
recurrence_frequency: Week
recurrence_hours:
- - '6'
- notifications:
- - email_admin: True
- email_co_admin: False
+ - '6'
+ notifications:
+ - email_admin: true
+ email_co_admin: false
custom_emails:
- - yuwzho@microsoft.com
- name: scale
- resource_group: myResourceGroup
+ - yuwzho@microsoft.com
+ name: scale
+ resource_group: myResourceGroup
- name: Delete an Azure Auto Scale Setting
azure_rm_autoscale:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale_info.py
index 49411ad48..db5ebfea3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_autoscale_info.py
@@ -21,9 +21,11 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the Auto Scale Setting.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -39,17 +41,17 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Auto Scale Setting
- azure_rm_autoscale_info:
- resource_group: myResourceGroup
- name: auto_scale_name
-
- - name: List instances of Auto Scale Setting
- azure_rm_autoscale_info:
- resource_group: myResourceGroup
- tags:
- - key
- - key:value
+- name: Get instance of Auto Scale Setting
+ azure_rm_autoscale_info:
+ resource_group: myResourceGroup
+ name: auto_scale_name
+
+- name: List instances of Auto Scale Setting
+ azure_rm_autoscale_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
+ - key:value
'''
RETURN = '''
@@ -117,12 +119,6 @@ autoscales:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils._text import to_native
-try:
- from msrest.serialization import Model
-except ImportError:
- # This is handled in azure_rm_common
- pass
-
# duplicated in azure_rm_autoscale
def timedelta_to_minutes(time):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset.py
index 1188a07c5..1ba334eba 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset.py
@@ -25,21 +25,25 @@ options:
description:
- Name of a resource group where the availability set exists or will be created.
required: true
+ type: str
name:
description:
- Name of the availability set.
+ type: str
required: true
state:
description:
- Assert the state of the availability set.
- Use C(present) to create or update a availability set and C(absent) to delete a availability set.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
platform_update_domain_count:
description:
- Update domains indicate groups of virtual machines and underlying physical hardware that can be rebooted at the same time.
@@ -59,6 +63,7 @@ options:
description:
- Define if the availability set supports managed disks.
default: Classic
+ type: str
choices:
- Classic
- Aligned
@@ -71,28 +76,28 @@ author:
'''
EXAMPLES = '''
- - name: Create an availability set with default options
- azure_rm_availabilityset:
- name: myAvailabilitySet
- location: eastus
- resource_group: myResourceGroup
-
- - name: Create an availability set with advanced options
- azure_rm_availabilityset:
- name: myAvailabilitySet
- location: eastus
- resource_group: myResourceGroup
- platform_update_domain_count: 5
- platform_fault_domain_count: 3
- proximity_placement_group: myProximityPlacementGroup
- sku: Aligned
-
- - name: Delete an availability set
- azure_rm_availabilityset:
- name: myAvailabilitySet
- location: eastus
- resource_group: myResourceGroup
- state: absent
+- name: Create an availability set with default options
+ azure_rm_availabilityset:
+ name: myAvailabilitySet
+ location: eastus
+ resource_group: myResourceGroup
+
+- name: Create an availability set with advanced options
+ azure_rm_availabilityset:
+ name: myAvailabilitySet
+ location: eastus
+ resource_group: myResourceGroup
+ platform_update_domain_count: 5
+ platform_fault_domain_count: 3
+ proximity_placement_group: myProximityPlacementGroup
+ sku: Aligned
+
+- name: Delete an availability set
+ azure_rm_availabilityset:
+ name: myAvailabilitySet
+ location: eastus
+ resource_group: myResourceGroup
+ state: absent
'''
RETURN = '''
@@ -152,7 +157,7 @@ changed:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset_info.py
index 16122f67a..95050263b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_availabilityset_info.py
@@ -41,18 +41,17 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one availability set
- azure_rm_availabilityset_info:
- name: Testing
- resource_group: myResourceGroup
-
- - name: Get facts for all availability sets in a specific resource group
- azure_rm_availabilityset_info:
- resource_group: myResourceGroup
- tags:
- - key
- - key:value
-
+- name: Get facts for one availability set
+ azure_rm_availabilityset_info:
+ name: Testing
+ resource_group: myResourceGroup
+
+- name: Get facts for all availability sets in a specific resource group
+ azure_rm_availabilityset_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
+ - key:value
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py
index 099fb57fc..f960f024d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall.py
@@ -34,6 +34,7 @@ options:
description:
- Collection of application rule collections used by Azure Firewall.
type: list
+ elements: dict
suboptions:
priority:
description:
@@ -50,6 +51,7 @@ options:
description:
- Collection of rules used by a application rule collection.
type: list
+ elements: raw
suboptions:
name:
description:
@@ -63,18 +65,31 @@ options:
description:
- List of source IP addresses for this rule.
type: list
+ elements: str
protocols:
description:
- Array of ApplicationRuleProtocols.
+ elements: dict
type: list
+ suboptions:
+ type:
+ description:
+ - The type of the protocols.
+ type: str
+ port:
+ description:
+ - The ports of the protocols.
+ type: str
target_fqdns:
description:
- List of FQDNs for this rule.
type: list
+ elements: raw
fqdn_tags:
description:
- List of FQDN Tags for this rule.
type: list
+ elements: raw
name:
description:
- Gets name of the resource that is unique within a resource group.
@@ -84,6 +99,7 @@ options:
description:
- Collection of NAT rule collections used by Azure Firewall.
type: list
+ elements: dict
suboptions:
priority:
description:
@@ -100,6 +116,7 @@ options:
description:
- Collection of rules used by a NAT rule collection.
type: list
+ elements: dict
suboptions:
name:
description:
@@ -113,18 +130,22 @@ options:
description:
- List of source IP addresses for this rule.
type: list
+ elements: str
destination_addresses:
description:
- List of destination IP addresses for this rule.
type: list
+ elements: str
destination_ports:
description:
- List of destination ports.
type: list
+ elements: str
protocols:
description:
- Array of AzureFirewallNetworkRuleProtocols applicable to this NAT rule.
type: list
+ elements: raw
translated_address:
description:
- The translated address for this NAT rule.
@@ -142,6 +163,7 @@ options:
description:
- Collection of network rule collections used by Azure Firewall.
type: list
+ elements: dict
suboptions:
priority:
description:
@@ -158,6 +180,7 @@ options:
description:
- Collection of rules used by a network rule collection.
type: list
+ elements: dict
suboptions:
name:
description:
@@ -171,18 +194,22 @@ options:
description:
- Array of AzureFirewallNetworkRuleProtocols.
type: list
+ elements: raw
source_addresses:
description:
- List of source IP addresses for this rule.
type: list
+ elements: str
destination_addresses:
description:
- List of destination IP addresses.
type: list
+ elements: str
destination_ports:
description:
- List of destination ports.
type: list
+ elements: str
name:
description:
- Gets name of the resource that is unique within a resource group.
@@ -192,6 +219,7 @@ options:
description:
- IP configuration of the Azure Firewall resource.
type: list
+ elements: dict
suboptions:
subnet:
description:
@@ -300,7 +328,6 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: myAzureFirewall
state: absent
-
'''
RETURN = '''
@@ -314,15 +341,8 @@ id:
import time
import json
-import re
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -350,6 +370,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
application_rule_collections=dict(
type='list',
+ elements='dict',
disposition='/properties/applicationRuleCollections',
options=dict(
priority=dict(
@@ -365,6 +386,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
rules=dict(
type='list',
+ elements='raw',
disposition='properties/*',
options=dict(
name=dict(
@@ -375,10 +397,12 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
source_addresses=dict(
type='list',
+ elements='str',
disposition='sourceAddresses'
),
protocols=dict(
type='list',
+ elements='dict',
options=dict(
type=dict(
type='str',
@@ -391,10 +415,12 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
target_fqdns=dict(
type='list',
+ elements='raw',
disposition='targetFqdns'
),
fqdn_tags=dict(
type='list',
+ elements='raw',
disposition='fqdnTags'
)
)
@@ -406,6 +432,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
nat_rule_collections=dict(
type='list',
+ elements='dict',
disposition='/properties/natRuleCollections',
options=dict(
priority=dict(
@@ -421,6 +448,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
rules=dict(
type='list',
+ elements='dict',
disposition='properties/*',
options=dict(
name=dict(
@@ -431,18 +459,22 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
source_addresses=dict(
type='list',
+ elements='str',
disposition='sourceAddresses'
),
destination_addresses=dict(
type='list',
+ elements='str',
disposition='destinationAddresses'
),
destination_ports=dict(
type='list',
+ elements='str',
disposition='destinationPorts'
),
protocols=dict(
- type='list'
+ type='list',
+ elements='raw'
),
translated_address=dict(
type='str',
@@ -461,6 +493,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
network_rule_collections=dict(
type='list',
+ elements='dict',
disposition='/properties/networkRuleCollections',
options=dict(
priority=dict(
@@ -476,6 +509,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
rules=dict(
type='list',
+ elements='dict',
disposition='properties/*',
options=dict(
name=dict(
@@ -485,18 +519,22 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
type='str'
),
protocols=dict(
- type='list'
+ type='list',
+ elements='raw'
),
source_addresses=dict(
type='list',
+ elements='str',
disposition='sourceAddresses'
),
destination_addresses=dict(
type='list',
+ elements='str',
disposition='destinationAddresses'
),
destination_ports=dict(
type='list',
+ elements='str',
disposition='destinationPorts'
)
)
@@ -508,6 +546,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
),
ip_configurations=dict(
type='list',
+ elements='dict',
disposition='/properties/ipConfigurations',
options=dict(
subnet=dict(
@@ -571,6 +610,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -661,14 +701,14 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the AzureFirewall instance.')
self.fail('Error creating the AzureFirewall instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -683,7 +723,7 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the AzureFirewall instance.')
self.fail('Error deleting the AzureFirewall instance: {0}'.format(str(e)))
@@ -701,11 +741,11 @@ class AzureRMAzureFirewalls(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("AzureFirewall instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the AzureFirewall instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py
index be6b08a36..d86932693 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_azurefirewall_info.py
@@ -41,7 +41,6 @@ EXAMPLES = '''
azure_rm_azurefirewall_info:
resource_group: myResourceGroup
name: myAzureFirewall
-
'''
RETURN = '''
@@ -102,16 +101,9 @@ firewalls:
'''
-import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except Exception:
- # handled in azure_rm_common
- pass
class AzureRMAzureFirewallsInfo(AzureRMModuleBase):
@@ -148,6 +140,7 @@ class AzureRMAzureFirewallsInfo(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and self.name is not None):
@@ -183,9 +176,9 @@ class AzureRMAzureFirewallsInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return self.format_item(results)
@@ -213,9 +206,9 @@ class AzureRMAzureFirewallsInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
@@ -240,25 +233,31 @@ class AzureRMAzureFirewallsInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
def format_item(self, item):
+ if item is None or item == {}:
+ return {}
d = {
- 'id': item['id'],
- 'name': item['name'],
- 'location': item['location'],
- 'etag': item['etag'],
+ 'id': item.get('id'),
+ 'name': item.get('name'),
+ 'location': item.get('location'),
+ 'etag': item.get('etag'),
'tags': item.get('tags'),
- 'nat_rule_collections': item['properties']['natRuleCollections'],
- 'network_rule_collections': item['properties']['networkRuleCollections'],
- 'ip_configurations': item['properties']['ipConfigurations'],
- 'provisioning_state': item['properties']['provisioningState']
+ 'nat_rule_collections': dict(),
+ 'network_rule_collections': dict(),
+ 'ip_configurations': dict(),
}
+ 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['ip_configurations'] = item.get('properties').get('ipConfigurations')
+ d['provisioning_state'] = item.get('properties').get('provisioningState')
return d
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm.py
index 25e9870d9..77d6d92ed 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm.py
@@ -74,40 +74,40 @@ author:
EXAMPLES = \
'''
- - name: Enabling/Updating protection for the Azure VM
- azure_rm_backupazurevm:
- resource_group: 'myResourceGroup'
- recovery_vault_name: 'testVault'
- resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
- backup_policy_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/ProdPolicy'
- state: 'create'
- - name: Stop protection but retain existing data
- azure_rm_backupazurevm:
- resource_group: 'myResourceGroup'
- recovery_vault_name: 'testVault'
- resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
- state: 'stop'
- - name: Stop protection and delete data
- azure_rm_backupazurevm:
- resource_group: 'myResourceGroup'
- recovery_vault_name: 'testVault'
- resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
- state: 'delete'
- - name: Trigger an on-demand backup for a protected Azure VM
- azure_rm_backupazurevm:
- resource_group: 'myResourceGroup'
- recovery_vault_name: 'testVault'
- resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
- backup_policy_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/ProdPolicy'
- recovery_point_expiry_time: '2023-02-09T06:00:00Z'
- state: 'backup'
- '''
+- name: Enabling/Updating protection for the Azure VM
+ azure_rm_backupazurevm:
+ resource_group: 'myResourceGroup'
+ recovery_vault_name: 'testVault'
+ resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
+ backup_policy_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/ProdPolicy'
+ state: 'create'
+- name: Stop protection but retain existing data
+ azure_rm_backupazurevm:
+ resource_group: 'myResourceGroup'
+ recovery_vault_name: 'testVault'
+ resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
+ state: 'stop'
+- name: Stop protection and delete data
+ azure_rm_backupazurevm:
+ resource_group: 'myResourceGroup'
+ recovery_vault_name: 'testVault'
+ resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
+ state: 'delete'
+- name: Trigger an on-demand backup for a protected Azure VM
+ azure_rm_backupazurevm:
+ resource_group: 'myResourceGroup'
+ recovery_vault_name: 'testVault'
+ resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
+ backup_policy_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/ProdPolicy'
+ recovery_point_expiry_time: '2023-02-09T06:00:00Z'
+ state: 'backup'
+'''
RETURN = \
'''
@@ -121,9 +121,7 @@ id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-import re
import json
-import time
class Actions:
@@ -186,8 +184,11 @@ class BackupAzureVM(AzureRMModuleBaseExt):
return '2019-05-13' if self.state == 'create' or self.state == 'update' or self.state == 'delete' or self.state == 'stop' else '2016-12-01'
def get_url(self):
+ sub_id = self.subscription_id
+ if self.module.params.get('subscription_id'):
+ sub_id = self.module.params.get('subscription_id')
if self.state == 'create' or self.state == 'update' or self.state == 'delete' or self.state == 'stop':
- return '/subscriptions' + '/' + self.subscription_id \
+ return '/subscriptions' + '/' + sub_id \
+ '/resourceGroups' + '/' + self.resource_group + '/providers' \
+ '/Microsoft.RecoveryServices' + '/vaults' + '/' \
+ self.recovery_vault_name \
@@ -197,7 +198,7 @@ class BackupAzureVM(AzureRMModuleBaseExt):
+ 'vm;iaasvmcontainerv2;' + self.parse_resource_to_dict(self.resource_id)['resource_group'] + ';' \
+ self.parse_resource_to_dict(self.resource_id)['name']
if self.state == 'backup':
- return '/subscriptions' + '/' + self.subscription_id \
+ return '/subscriptions' + '/' + sub_id \
+ '/resourceGroups' + '/' + self.resource_group + '/providers' \
+ '/Microsoft.RecoveryServices' + '/vaults' + '/' \
+ self.recovery_vault_name \
@@ -254,6 +255,7 @@ class BackupAzureVM(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
changed = False
@@ -295,9 +297,9 @@ class BackupAzureVM(AzureRMModuleBaseExt):
'Error in creating/updating protection for Azure VM {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -321,9 +323,9 @@ class BackupAzureVM(AzureRMModuleBaseExt):
self.fail('Error in disabling the protection: {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -347,9 +349,9 @@ class BackupAzureVM(AzureRMModuleBaseExt):
self.fail('Error deleting the azure backup: {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -374,9 +376,9 @@ class BackupAzureVM(AzureRMModuleBaseExt):
'Error while taking on-demand backup: {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm_info.py
index b8ad0cc8a..b4ba22fc1 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backupazurevm_info.py
@@ -42,13 +42,13 @@ author:
EXAMPLES = \
'''
- - name: Get Recovery Point Details
- azure_rm_backupazurevm_info:
- resource_group: 'myResourceGroup'
- recovery_vault_name: 'testVault'
- resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
- resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
- '''
+- name: Get Recovery Point Details
+ azure_rm_backupazurevm_info:
+ resource_group: 'myResourceGroup'
+ recovery_vault_name: 'testVault'
+ resource_id: '/subscriptions/00000000-0000-0000-0000-000000000000/ \
+ resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/testVM'
+'''
RETURN = \
'''
@@ -62,9 +62,7 @@ id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-import re
import json
-import time
class Actions:
@@ -132,6 +130,7 @@ class BackupAzureVMInfo(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
response = self.get_recovery_point_info()
@@ -158,9 +157,9 @@ class BackupAzureVMInfo(AzureRMModuleBaseExt):
self.fail('Error in fetching recovery point {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy.py
index 7ec699566..4c1f6cca9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy.py
@@ -103,43 +103,42 @@ author:
'''
EXAMPLES = '''
- - name: Delete a backup policy
- azure_rm_backuppolicy:
- vault_name: Vault_Name
- name: Policy_Name
- resource_group: Resource_Group_Name
- state: absent
-
- - name: Create a daily VM backup policy
- azure_rm_backuppolicy:
- vault_name: Vault_Name
- name: Policy_Name
- resource_group: Resource_Group_Name
- state: present
- backup_management_type: "AzureIaasVM"
- schedule_run_frequency: "Daily"
- instant_recovery_snapshot_retention: 2
- daily_retention_count: 12
- time_zone: "Pacific Standard Time"
- schedule_run_time: 14
-
- - name: Create a weekly VM backup policy
- azure.azcollection.azure_rm_backuppolicy:
- vault_name: Vault_Name
- name: Policy_Name
- resource_group: Resource_Group_Name
- state: present
- backup_management_type: "AzureIaasVM"
- schedule_run_frequency: "Weekly"
- instant_recovery_snapshot_retention: 5
- weekly_retention_count: 4
- schedule_days:
- - "Monday"
- - "Wednesday"
- - "Friday"
- time_zone: "Pacific Standard Time"
- schedule_run_time: 8
-
+- name: Delete a backup policy
+ azure_rm_backuppolicy:
+ vault_name: Vault_Name
+ name: Policy_Name
+ resource_group: Resource_Group_Name
+ state: absent
+
+- name: Create a daily VM backup policy
+ azure_rm_backuppolicy:
+ vault_name: Vault_Name
+ name: Policy_Name
+ resource_group: Resource_Group_Name
+ state: present
+ backup_management_type: "AzureIaasVM"
+ schedule_run_frequency: "Daily"
+ instant_recovery_snapshot_retention: 2
+ daily_retention_count: 12
+ time_zone: "Pacific Standard Time"
+ schedule_run_time: 14
+
+- name: Create a weekly VM backup policy
+ azure.azcollection.azure_rm_backuppolicy:
+ vault_name: Vault_Name
+ name: Policy_Name
+ resource_group: Resource_Group_Name
+ state: present
+ backup_management_type: "AzureIaasVM"
+ schedule_run_frequency: "Weekly"
+ instant_recovery_snapshot_retention: 5
+ weekly_retention_count: 4
+ schedule_days:
+ - "Monday"
+ - "Wednesday"
+ - "Friday"
+ time_zone: "Pacific Standard Time"
+ schedule_run_time: 8
'''
RETURN = '''
@@ -169,7 +168,6 @@ type:
sample: Microsoft.RecoveryServices/vaults/backupPolicies
'''
-import uuid
from datetime import datetime
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy_info.py
index d4a086766..ddebb2862 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_backuppolicy_info.py
@@ -45,12 +45,12 @@ author:
'''
EXAMPLES = '''
- - name: Get backup policy information
- azure_rm_backuppolicy_info:
- vault_name: Vault_Name
- name: Policy_Name
- resource_group: Resource_Group_Name
- register: backup_policy
+- name: Get backup policy information
+ azure_rm_backuppolicy_info:
+ vault_name: Vault_Name
+ name: Policy_Name
+ resource_group: Resource_Group_Name
+ register: backup_policy
'''
RETURN = '''
@@ -80,8 +80,6 @@ type:
sample: Microsoft.RecoveryServices/vaults/backupPolicies
'''
-import uuid
-from datetime import datetime
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_bastionhost.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_bastionhost.py
index c6b8e0d4d..29369a463 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_bastionhost.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_bastionhost.py
@@ -139,12 +139,12 @@ EXAMPLES = '''
private_ip_allocation_method: Dynamic
sku:
name: Standard
- enable_tunneling: False
- enable_shareable_link: False
- enable_ip_connect: False
- enable_file_copy: False
+ enable_tunneling: false
+ enable_shareable_link: false
+ enable_ip_connect: false
+ enable_file_copy: false
scale_units: 6
- disable_copy_paste: False
+ disable_copy_paste: false
tags:
key1: value1
@@ -153,7 +153,6 @@ EXAMPLES = '''
name: bastion-name
resource_group: myResourceGroup
state: absent
-
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount.py
index afb4d3d51..ac237294c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount.py
@@ -49,6 +49,7 @@ options:
- It can be the storage account ID. Fox example "/subscriptions/{subscription_id}/resourceGroups/
{resource_group}/providers/Microsoft.Storage/storageAccounts/{name}".
- It can be a dict which contains I(name) and I(resource_group) of the storage account.
+ type: raw
key_vault:
description:
- Existing key vault with which to associate the Batch Account.
@@ -56,6 +57,7 @@ options:
- It can be the key vault ID. For example "/subscriptions/{subscription_id}/resourceGroups/
{resource_group}/providers/Microsoft.KeyVault/vaults/{name}".
- It can be a dict which contains I(name) and I(resource_group) of the key vault.
+ type: raw
pool_allocation_mode:
description:
- The pool acclocation mode of the Batch Account.
@@ -83,14 +85,14 @@ author:
'''
EXAMPLES = '''
- - name: Create Batch Account
- azure_rm_batchaccount:
- resource_group: MyResGroup
- name: mybatchaccount
- location: eastus
- auto_storage_account:
- name: mystorageaccountname
- pool_allocation_mode: batch_service
+- name: Create Batch Account
+ azure_rm_batchaccount:
+ resource_group: MyResGroup
+ name: mybatchaccount
+ location: eastus
+ auto_storage_account:
+ name: mystorageaccountname
+ pool_allocation_mode: batch_service
'''
RETURN = '''
@@ -108,17 +110,13 @@ account_endpoint:
sample: sampleacct.westus.batch.azure.com
'''
-import time
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import normalize_location_name
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
- from msrestazure.azure_exceptions import CloudError
- from msrest.polling import LROPoller
- from msrestazure.azure_operation import AzureOperationPoller
- from msrest.serialization import Model
+ from azure.core.polling import LROPoller
from azure.mgmt.batch import BatchManagementClient
+ from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
pass
@@ -172,7 +170,6 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
self.resource_group = None
self.name = None
self.batch_account = dict()
- self.tags = None
self.results = dict(changed=False)
self.mgmt_client = None
@@ -215,7 +212,8 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(BatchManagementClient,
- base_url=self._cloud_environment.endpoints.resource_manager)
+ base_url=self._cloud_environment.endpoints.resource_manager,
+ is_track2=True)
old_response = self.get_batchaccount()
@@ -232,7 +230,13 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
elif self.state == 'present':
self.results['old'] = old_response
self.results['new'] = self.batch_account
- if not self.idempotency_check(old_response, self.batch_account):
+
+ update_tags, self.tags = self.update_tags(old_response['tags'])
+
+ if self.batch_account.get('auto_storage_account') is not None:
+ if old_response['auto_storage']['storage_account_id'] != self.batch_account['auto_storage']['storage_account_id']:
+ self.to_do = Actions.Update
+ if update_tags:
self.to_do = Actions.Update
if (self.to_do == Actions.Create) or (self.to_do == Actions.Update):
@@ -275,17 +279,17 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
try:
if self.to_do == Actions.Create:
- response = self.mgmt_client.batch_account.create(resource_group_name=self.resource_group,
- account_name=self.name,
- parameters=self.batch_account)
+ response = self.mgmt_client.batch_account.begin_create(resource_group_name=self.resource_group,
+ account_name=self.name,
+ parameters=self.batch_account)
else:
response = self.mgmt_client.batch_account.update(resource_group_name=self.resource_group,
account_name=self.name,
- tags=self.tags,
- auto_storage=self.batch_account.get('auto_storage'))
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ parameters=dict(tags=self.tags,
+ auto_storage=self.batch_account.get('self.batch_account')))
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the Batch Account instance.')
self.fail("Error creating the Batch Account instance: {0}".format(str(exc)))
return response.as_dict()
@@ -298,13 +302,13 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
'''
self.log("Deleting the Batch Account instance {0}".format(self.name))
try:
- response = self.mgmt_client.batch_account.delete(resource_group_name=self.resource_group,
- account_name=self.name)
- except CloudError as e:
+ response = self.mgmt_client.batch_account.begin_delete(resource_group_name=self.resource_group,
+ account_name=self.name)
+ except Exception as e:
self.log('Error attempting to delete the Batch Account instance.')
self.fail("Error deleting the Batch Account instance: {0}".format(str(e)))
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
return True
@@ -321,12 +325,30 @@ class AzureRMBatchAccount(AzureRMModuleBaseExt):
found = True
self.log("Response : {0}".format(response))
self.log("Batch Account instance : {0} found".format(response.name))
- except CloudError as e:
- self.log('Did not find the Batch Account instance.')
+ except ResourceNotFoundError as e:
+ self.log('Did not find the Batch Account instance. Exception as {0}'.format(e))
if found is True:
- return response.as_dict()
+ return self.format_item(response.as_dict())
return False
+ def format_item(self, item):
+ result = {
+ 'id': item['id'],
+ 'name': item['name'],
+ 'type': item['type'],
+ 'location': item['location'],
+ 'account_endpoint': item['account_endpoint'],
+ 'provisioning_state': item['provisioning_state'],
+ 'pool_allocation_mode': item['pool_allocation_mode'],
+ 'auto_storage': item['auto_storage'],
+ 'dedicated_core_quota': item['dedicated_core_quota'],
+ 'low_priority_core_quota': item['low_priority_core_quota'],
+ 'pool_quota': item['pool_quota'],
+ 'active_job_and_job_schedule_quota': item['active_job_and_job_schedule_quota'],
+ 'tags': item.get('tags')
+ }
+ return result
+
def main():
"""Main execution"""
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount_info.py
new file mode 100644
index 000000000..fb61248e4
--- /dev/null
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_batchaccount_info.py
@@ -0,0 +1,196 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2023 xuzhang3 (@xuzhang3), Fred-sun (@Fred-sun)
+#
+# 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_batchaccount_info
+version_added: "0.1.2"
+short_description: Get the Batch Account on Azure facts
+description:
+ - Get the Batch Account on Azure facts.
+
+options:
+ resource_group:
+ description:
+ - The name of the resource group in which to create the Batch Account.
+ type: str
+ name:
+ description:
+ - The name of the Batch Account.
+ 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:
+ - xuzhang3 (@xuzhang3)
+ - Fred Sun (@Fred-sun)
+'''
+
+EXAMPLES = '''
+- name: Get the Batch Account by name
+ azure_rm_batchaccount_info:
+ resource_group: MyResGroup
+ name: mybatchaccount
+
+- name: List the Batch Account by subscription
+ azure_rm_batchaccount_info:
+ tags:
+ - key1
+'''
+
+RETURN = '''
+id:
+ description:
+ - The ID of the Batch account.
+ returned: always
+ type: str
+ sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Batch/batchAccounts/sampleacct"
+account_endpoint:
+ description:
+ - The account endpoint used to interact with the Batch service.
+ returned: always
+ type: str
+ sample: sampleacct.westus.batch.azure.com
+'''
+
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
+
+try:
+ from azure.core.exceptions import ResourceNotFoundError
+ from azure.mgmt.batch import BatchManagementClient
+except ImportError:
+ # This is handled in azure_rm_common
+ pass
+
+
+class AzureRMBatchAccountInfo(AzureRMModuleBaseExt):
+ """Configuration class for an Azure RM Batch Account resource"""
+
+ def __init__(self):
+ self.module_arg_spec = dict(
+ resource_group=dict(
+ type='str',
+ ),
+ name=dict(
+ type='str',
+ ),
+ tags=dict(
+ type='list',
+ elements='str'
+ )
+ )
+
+ self.resource_group = None
+ self.name = None
+ self.tags = None
+
+ self.results = dict(changed=False)
+ self.mgmt_client = None
+
+ super(AzureRMBatchAccountInfo, self).__init__(derived_arg_spec=self.module_arg_spec,
+ supports_check_mode=True,
+ supports_tags=False)
+
+ def exec_module(self, **kwargs):
+ """Main module execution method"""
+
+ for key in list(self.module_arg_spec.keys()) + ['tags']:
+ setattr(self, key, kwargs[key])
+
+ response = []
+
+ self.mgmt_client = self.get_mgmt_svc_client(BatchManagementClient,
+ base_url=self._cloud_environment.endpoints.resource_manager,
+ is_track2=True)
+
+ if self.resource_group is not None and self.name is not None:
+ response = [self.get_batchaccount()]
+ elif self.resource_group is not None:
+ response = self.list_by_resourcegroup()
+ else:
+ response = self.list_all()
+
+ self.results['batch_account'] = [self.format_item(item) for item in response if item and self.has_tags(item.get('tags'), self.tags)]
+
+ return self.results
+
+ def list_by_resourcegroup(self):
+ self.log("List all Batch Account in the rsource group {0}".format(self.resource_group))
+ result = []
+ response = []
+ try:
+ response = self.mgmt_client.batch_account.list_by_resource_group(resource_group_name=self.resource_group)
+ self.log("Response : {0}".format(response))
+ except Exception as e:
+ self.log('Did not find the Batch Account instance. Exception as {0}'.format(e))
+ for item in response:
+ result.append(item.as_dict())
+ return result
+
+ def list_all(self):
+ self.log("List all Batch Account in the same subscritpion")
+ result = []
+ response = []
+ try:
+ response = self.mgmt_client.batch_account.list()
+ self.log("Response : {0}".format(response))
+ except Exception as e:
+ self.log('Did not find the Batch Account instance.')
+ for item in response:
+ result.append(item.as_dict())
+ return result
+
+ def get_batchaccount(self):
+ '''
+ Gets the properties of the specified Batch Account
+ :return: deserialized Batch Account instance state dictionary
+ '''
+ self.log("Checking if the Batch Account instance {0} is present".format(self.name))
+ try:
+ response = self.mgmt_client.batch_account.get(resource_group_name=self.resource_group,
+ account_name=self.name)
+ self.log("Response : {0}".format(response))
+ self.log("Batch Account instance : {0} found".format(response.name))
+ except ResourceNotFoundError as e:
+ self.log('Did not find the Batch Account instance.')
+ return
+ return response.as_dict()
+
+ def format_item(self, item):
+ result = {
+ 'id': item['id'],
+ 'name': item['name'],
+ 'type': item['type'],
+ 'location': item['location'],
+ 'account_endpoint': item['account_endpoint'],
+ 'provisioning_state': item['provisioning_state'],
+ 'pool_allocation_mode': item['pool_allocation_mode'],
+ 'auto_storage': item['auto_storage'],
+ 'dedicated_core_quota': item['dedicated_core_quota'],
+ 'low_priority_core_quota': item['low_priority_core_quota'],
+ 'pool_quota': item['pool_quota'],
+ 'active_job_and_job_schedule_quota': item['active_job_and_job_schedule_quota'],
+ 'tags': item.get('tags')
+ }
+ return result
+
+
+def main():
+ """Main execution"""
+ AzureRMBatchAccountInfo()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint.py
index c289ad0fe..2f3a3d76f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint.py
@@ -20,13 +20,16 @@ options:
description:
- Name of a resource group where the Azure CDN endpoint exists or will be created.
required: true
+ type: str
name:
description:
- Name of the Azure CDN endpoint.
required: true
+ type: str
location:
description:
- Valid azure location. Defaults to location of the resource group.
+ type: str
started:
description:
- Use with I(state=present) to start the endpoint.
@@ -45,19 +48,25 @@ options:
description:
- Name of the CDN profile where the endpoint attached to.
required: true
+ type: str
origins:
description:
- Set of source of the content being delivered via CDN.
+ - Required when creating.
+ elements: dict
+ type: list
suboptions:
name:
description:
- Origin name.
required: true
+ type: str
host_name:
description:
- The address of the origin.
- It can be a domain name, IPv4 address, or IPv6 address.
required: true
+ type: str
http_port:
description:
- The value of the HTTP port. Must be between C(1) and C(65535).
@@ -66,7 +75,6 @@ options:
description:
- The value of the HTTPS port. Must be between C(1) and C(65535).
type: int
- required: true
origin_host_header:
description:
- The host header value sent to the origin with each request.
@@ -111,6 +119,7 @@ options:
description:
- Assert the state of the Azure CDN endpoint. Use C(present) to create or update a Azure CDN endpoint and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -124,24 +133,24 @@ author:
'''
EXAMPLES = '''
- - name: Create a Azure CDN endpoint
- azure_rm_cdnendpoint:
- resource_group: myResourceGroup
- profile_name: myProfile
- name: myEndpoint
- origins:
- - name: TestOrig
- host_name: "www.example.com"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- - name: Delete a Azure CDN endpoint
- azure_rm_cdnendpoint:
- resource_group: myResourceGroup
- profile_name: myProfile
- name: myEndpoint
- state: absent
+- name: Create a Azure CDN endpoint
+ azure_rm_cdnendpoint:
+ resource_group: myResourceGroup
+ profile_name: myProfile
+ name: myEndpoint
+ origins:
+ - name: TestOrig
+ host_name: "www.example.com"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+- name: Delete a Azure CDN endpoint
+ azure_rm_cdnendpoint:
+ resource_group: myResourceGroup
+ profile_name: myProfile
+ name: myEndpoint
+ state: absent
'''
RETURN = '''
state:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint_info.py
index 897071eb9..9f89408d0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnendpoint_info.py
@@ -24,13 +24,16 @@ options:
description:
- Name of resource group where this CDN profile belongs to.
required: true
+ type: str
profile_name:
description:
- Name of CDN profile.
required: true
+ type: str
name:
description:
- Limit results to a specific Azure CDN endpoint.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -46,19 +49,19 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for all endpoints in CDN profile
- azure_rm_cdnendpoint_info:
- resource_group: myResourceGroup
- profile_name: myCDNProfile
- tags:
- - key
- - key:value
-
- - name: Get facts of specific CDN endpoint
- azure_rm_cdnendpoint_info:
- resource_group: myResourceGroup
- profile_name: myCDNProfile
- name: myEndpoint1
+- name: Get facts for all endpoints in CDN profile
+ azure_rm_cdnendpoint_info:
+ resource_group: myResourceGroup
+ profile_name: myCDNProfile
+ tags:
+ - key
+ - key:value
+
+- name: Get facts of specific CDN endpoint
+ azure_rm_cdnendpoint_info:
+ resource_group: myResourceGroup
+ profile_name: myCDNProfile
+ name: myEndpoint1
'''
RETURN = '''
@@ -149,6 +152,7 @@ cdnendpoints:
"https_port": null,
"name": "xxxxxxxx-blob-core-windows-net"
}
+ type: dict
origin_host_header:
description:
- The host header value sent to the origin with each request.
@@ -170,8 +174,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.mgmt.cdn import CdnManagementClient
- from azure.mgmt.cdn.models import ErrorResponseException
- from azure.common import AzureHttpError
except ImportError:
# handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile.py
index 012a9cba8..96761228f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile.py
@@ -20,17 +20,21 @@ options:
description:
- Name of a resource group where the CDN profile exists or will be created.
required: true
+ type: str
name:
description:
- Name of the CDN profile.
required: true
+ type: str
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
sku:
description:
- The pricing tier, defines a CDN provider, feature list and rate of the CDN profile.
- Detailed pricing can be find at U(https://azure.microsoft.com/en-us/pricing/details/cdn/).
+ type: str
choices:
- standard_verizon
- premium_verizon
@@ -42,6 +46,7 @@ options:
description:
- Assert the state of the CDN profile. Use C(present) to create or update a CDN profile and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -56,19 +61,19 @@ author:
'''
EXAMPLES = '''
- - name: Create a CDN profile
- azure_rm_cdnprofile:
- resource_group: myResourceGroup
- name: myCDN
- sku: standard_akamai
- tags:
- testing: testing
-
- - name: Delete the CDN profile
- azure_rm_cdnprofile:
- resource_group: myResourceGroup
- name: myCDN
- state: absent
+- name: Create a CDN profile
+ azure_rm_cdnprofile:
+ resource_group: myResourceGroup
+ name: myCDN
+ sku: standard_akamai
+ tags:
+ testing: testing
+
+- name: Delete the CDN profile
+ azure_rm_cdnprofile:
+ resource_group: myResourceGroup
+ name: myCDN
+ state: absent
'''
RETURN = '''
id:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile_info.py
index 0a0e7c9c9..92b9b7957 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cdnprofile_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific CDN profile.
+ type: str
resource_group:
description:
- The resource group to search for the desired CDN profile.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -41,18 +43,18 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one CDN profile
- azure_rm_cdnprofile_info:
- name: Testing
- resource_group: myResourceGroup
+- name: Get facts for one CDN profile
+ azure_rm_cdnprofile_info:
+ name: Testing
+ resource_group: myResourceGroup
- - name: Get facts for all CDN profiles
- azure_rm_cdnprofile_info:
+- name: Get facts for all CDN profiles
+ azure_rm_cdnprofile_info:
- - name: Get facts by tags
- azure_rm_cdnprofile_info:
- tags:
- - Environment:Test
+- name: Get facts by tags
+ azure_rm_cdnprofile_info:
+ tags:
+ - Environment:Test
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch.py
index 037cee7f1..a8852c583 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch.py
@@ -116,10 +116,10 @@ author:
'''
EXAMPLES = '''
- - name: Create Azure Cognitive Search
- azure_rm_cognitivesearch:
- resource_group: myResourceGroup
- name: myAzureSearch
+- name: Create Azure Cognitive Search
+ azure_rm_cognitivesearch:
+ resource_group: myResourceGroup
+ name: myAzureSearch
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch_info.py
index 4ae5cf819..261712dce 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cognitivesearch_info.py
@@ -38,17 +38,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Azure Cognitive Search info from resource group 'myResourceGroup' and name 'myAzureSearch'
- azure_rm_cognitivesearch_info:
- resource_group: myResourceGroup
- name: myAzureSearch
+- name: Get Azure Cognitive Search info from resource group 'myResourceGroup' and name 'myAzureSearch'
+ azure_rm_cognitivesearch_info:
+ resource_group: myResourceGroup
+ name: myAzureSearch
- - name: Get Azure Cognitive Search info from resource group 'myResourceGroup'
- azure_rm_cognitivesearch_info:
- resource_group: myResourceGroup
+- name: Get Azure Cognitive Search info from resource group 'myResourceGroup'
+ azure_rm_cognitivesearch_info:
+ resource_group: myResourceGroup
- - name: Get all Azure Cognitive Search info
- azure_rm_cognitivesearch_info:
+- name: Get all Azure Cognitive Search info
+ azure_rm_cognitivesearch_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance.py
index 2b0bffbc5..05df1ee8b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance.py
@@ -63,6 +63,7 @@ options:
- This option is deprecated, using I(ports) under I(containers)".
type: list
elements: int
+ default: []
location:
description:
- Valid azure location. Defaults to location of the resource group.
@@ -249,82 +250,82 @@ author:
'''
EXAMPLES = '''
- - name: Create sample container group
- azure_rm_containerinstance:
- resource_group: myResourceGroup
- name: myContainerInstanceGroup
- os_type: linux
- ip_address: public
- containers:
- - name: myContainer1
- image: httpd
- memory: 1.5
- ports:
- - 80
- - 81
-
- - name: Create sample container group with azure file share volume
- azure_rm_containerinstance:
- resource_group: myResourceGroup
- name: myContainerInstanceGroupz
- os_type: linux
- ip_address: public
- containers:
- - name: mycontainer1
- image: httpd
- memory: 1
- volume_mounts:
- - name: filesharevolume
- mount_path: "/data/files"
- ports:
- - 80
- - 81
- volumes:
- - name: filesharevolume
- azure_file:
- storage_account_name: mystorageaccount
- share_name: acishare
- storage_account_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-
- - name: Create sample container group with git repo volume
- azure_rm_containerinstance:
- resource_group: myResourceGroup
- name: myContainerInstanceGroup
- os_type: linux
- ip_address: public
- containers:
- - name: mycontainer1
- image: httpd
- memory: 1
- volume_mounts:
- - name: myvolume1
- mount_path: "/mnt/test"
- ports:
- - 80
- - 81
- volumes:
- - name: myvolume1
- git_repo:
- repository: "https://github.com/Azure-Samples/aci-helloworld.git"
-
- - name: Create sample container instance with subnet
- azure_rm_containerinstance:
- resource_group: myResourceGroup
- name: myContainerInstanceGroup
- os_type: linux
- ip_address: private
- location: eastus
- subnet_ids:
- - "{{ subnet_id }}"
- ports:
- - 80
- containers:
- - name: mycontainer1
- image: httpd
- memory: 1.5
- ports:
- - 80
- - 81
+- name: Create sample container group
+ azure_rm_containerinstance:
+ resource_group: myResourceGroup
+ name: myContainerInstanceGroup
+ os_type: linux
+ ip_address: public
+ containers:
+ - name: myContainer1
+ image: httpd
+ memory: 1.5
+ ports:
+ - 80
+ - 81
+
+- name: Create sample container group with azure file share volume
+ azure_rm_containerinstance:
+ resource_group: myResourceGroup
+ name: myContainerInstanceGroupz
+ os_type: linux
+ ip_address: public
+ containers:
+ - name: mycontainer1
+ image: httpd
+ memory: 1
+ volume_mounts:
+ - name: filesharevolume
+ mount_path: "/data/files"
+ ports:
+ - 80
+ - 81
+ volumes:
+ - name: filesharevolume
+ azure_file:
+ storage_account_name: mystorageaccount
+ share_name: acishare
+ storage_account_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+- name: Create sample container group with git repo volume
+ azure_rm_containerinstance:
+ resource_group: myResourceGroup
+ name: myContainerInstanceGroup
+ os_type: linux
+ ip_address: public
+ containers:
+ - name: mycontainer1
+ image: httpd
+ memory: 1
+ volume_mounts:
+ - name: myvolume1
+ mount_path: "/mnt/test"
+ ports:
+ - 80
+ - 81
+ volumes:
+ - name: myvolume1
+ git_repo:
+ repository: "https://github.com/Azure-Samples/aci-helloworld.git"
+
+- name: Create sample container instance with subnet
+ azure_rm_containerinstance:
+ resource_group: myResourceGroup
+ name: myContainerInstanceGroup
+ os_type: linux
+ ip_address: private
+ location: eastus
+ subnet_ids:
+ - "{{ subnet_id }}"
+ ports:
+ - 80
+ containers:
+ - name: mycontainer1
+ image: httpd
+ memory: 1.5
+ ports:
+ - 80
+ - 81
'''
RETURN = '''
id:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance_info.py
index 3ad3b9722..9ef9b254c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerinstance_info.py
@@ -41,17 +41,17 @@ author:
'''
EXAMPLES = '''
- - name: Get specific Container Instance facts
- azure_rm_containerinstance_info:
- resource_group: myResourceGroup
- name: myContainer
-
- - name: List Container Instances in a specified resource group name
- azure_rm_containerinstance_info:
- resource_group: myResourceGroup
- tags:
- - key
- - key:value
+- name: Get specific Container Instance facts
+ azure_rm_containerinstance_info:
+ resource_group: myResourceGroup
+ name: myContainer
+
+- name: List Container Instances in a specified resource group name
+ azure_rm_containerinstance_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
+ - key:value
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry.py
index cf974f378..ff94c537c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry.py
@@ -63,22 +63,22 @@ author:
'''
EXAMPLES = '''
- - name: Create an azure container registry
- azure_rm_containerregistry:
- name: myRegistry
- location: eastus
- resource_group: myResourceGroup
- admin_user_enabled: true
- sku: Premium
- tags:
- Release: beta1
- Environment: Production
-
- - name: Remove an azure container registry
- azure_rm_containerregistry:
- name: myRegistry
- resource_group: myResourceGroup
- state: absent
+- name: Create an azure container registry
+ azure_rm_containerregistry:
+ name: myRegistry
+ location: eastus
+ resource_group: myResourceGroup
+ admin_user_enabled: true
+ sku: Premium
+ tags:
+ Release: beta1
+ Environment: Production
+
+- name: Remove an azure container registry
+ azure_rm_containerregistry:
+ name: myRegistry
+ resource_group: myResourceGroup
+ state: absent
'''
RETURN = '''
id:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry_info.py
index 8148674fa..8be247d37 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistry_info.py
@@ -46,17 +46,17 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Registry
- azure_rm_containerregistry_info:
- resource_group: myResourceGroup
- name: myRegistry
-
- - name: List instances of Registry
- azure_rm_containerregistry_info:
- resource_group: myResourceGroup
- tags:
- - key
- - key:value
+- name: Get instance of Registry
+ azure_rm_containerregistry_info:
+ resource_group: myResourceGroup
+ name: myRegistry
+
+- name: List instances of Registry
+ azure_rm_containerregistry_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
+ - key:value
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication.py
index 115d55c29..040214f03 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication.py
@@ -21,20 +21,34 @@ options:
description:
- The name of the resource group to which the container registry belongs.
required: True
+ type: str
registry_name:
description:
- The name of the container registry.
required: True
+ type: str
replication_name:
description:
- The name of the I(replication).
required: True
+ type: str
replication:
description:
- The parameters for creating a replication.
+ type: dict
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
+ state:
+ description:
+ - Assert the state of the Container registery replication.
+ - Use C(present) to create or update Container registery replication and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -45,13 +59,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) Replication
- azure_rm_containerregistryreplication:
- resource_group: myResourceGroup
- registry_name: myRegistry
- replication_name: myReplication
- replication: replication
- location: eastus
+- name: Create (or update) Replication
+ azure_rm_containerregistryreplication:
+ resource_group: myResourceGroup
+ registry_name: myRegistry
+ replication_name: myReplication
+ replication: replication
+ location: eastus
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication_info.py
index 123a83288..769910577 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistryreplication_info.py
@@ -21,14 +21,17 @@ options:
description:
- The name of the resource group to which the container registry belongs.
required: True
+ type: str
registry_name:
description:
- The name of the container registry.
required: True
+ type: str
replication_name:
description:
- The name of the replication.
required: True
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -39,11 +42,11 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Replication
- azure_rm_containerregistryreplication_info:
- resource_group: resource_group_name
- registry_name: registry_name
- replication_name: replication_name
+- name: Get instance of Replication
+ azure_rm_containerregistryreplication_info:
+ resource_group: resource_group_name
+ registry_name: registry_name
+ replication_name: replication_name
'''
RETURN = '''
@@ -86,7 +89,6 @@ replications:
- The status of the replication at the time the operation was called.
returned: always
type: complex
- sample: status
contains:
message:
description:
@@ -98,7 +100,7 @@ replications:
description:
- The timestamp when the status was changed to the current value.
returned: always
- type: datetime
+ type: str
sample: "2017-03-01T23:15:37.0707808Z"
'''
@@ -106,7 +108,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.core.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
pass
@@ -137,7 +138,7 @@ class AzureRMReplicationsFacts(AzureRMModuleBase):
self.resource_group = None
self.registry_name = None
self.replication_name = None
- super(AzureRMReplicationsFacts, self).__init__(self.module_arg_spec, supports_check_mode=True)
+ super(AzureRMReplicationsFacts, self).__init__(self.module_arg_spec, supports_tags=False, supports_check_mode=True)
def exec_module(self, **kwargs):
for key in self.module_arg_spec:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook.py
index 0175af3e6..cdc77d20c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook.py
@@ -21,26 +21,33 @@ options:
description:
- The name of the resource group to which the container registry belongs.
required: True
+ type: str
registry_name:
description:
- The name of the container registry.
required: True
+ type: str
webhook_name:
description:
- The name of the webhook.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
service_uri:
description:
- The service URI for the webhook to post notifications.
+ type: str
custom_headers:
description:
- Custom headers that will be added to the webhook notifications.
+ type: dict
status:
description:
- The status of the webhook at the time the operation was called.
+ type: str
choices:
- 'enabled'
- 'disabled'
@@ -48,10 +55,21 @@ options:
description:
- "The scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' m
eans events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events."
+ type: str
actions:
description:
- The list of actions that trigger the webhook to post notifications.
type: list
+ elements: str
+ state:
+ description:
+ - Assert the state of the Container registery replication.
+ - Use C(present) to create or update Container registery replication and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -62,12 +80,12 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) Webhook
- azure_rm_containerregistrywebhook:
- resource_group: myResourceGroup
- registry_name: myRegistry
- webhook_name: myWebhook
- location: eastus
+- name: Create (or update) Webhook
+ azure_rm_containerregistrywebhook:
+ resource_group: myResourceGroup
+ registry_name: myRegistry
+ webhook_name: myWebhook
+ location: eastus
'''
RETURN = '''
@@ -150,7 +168,8 @@ class AzureRMWebhooks(AzureRMModuleBase):
type='str'
),
actions=dict(
- type='list'
+ type='list',
+ elements='str'
),
state=dict(
type='str',
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook_info.py
index c15ed3ef3..379e072e0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_containerregistrywebhook_info.py
@@ -21,14 +21,17 @@ options:
description:
- The name of the resource group to which the container registry belongs.
required: True
+ type: str
registry_name:
description:
- The name of the container registry.
required: True
+ type: str
webhook_name:
description:
- The name of the webhook.
required: True
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -39,11 +42,11 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Webhook
- azure_rm_containerregistrywebhook_info:
- resource_group: resource_group_name
- registry_name: registry_name
- webhook_name: webhook_name
+- name: Get instance of Webhook
+ azure_rm_containerregistrywebhook_info:
+ resource_group: resource_group_name
+ registry_name: registry_name
+ webhook_name: webhook_name
'''
RETURN = '''
@@ -136,7 +139,7 @@ class AzureRMWebhooksFacts(AzureRMModuleBase):
self.resource_group = None
self.registry_name = None
self.webhook_name = None
- super(AzureRMWebhooksFacts, self).__init__(self.module_arg_spec, supports_check_mode=True)
+ super(AzureRMWebhooksFacts, self).__init__(self.module_arg_spec, supports_tags=False, supports_check_mode=True)
def exec_module(self, **kwargs):
for key in self.module_arg_spec:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount.py
index b3066126d..d1f3dd987 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount.py
@@ -21,17 +21,21 @@ options:
description:
- Name of an Azure resource group.
required: True
+ type: str
name:
description:
- Cosmos DB database account name.
required: True
+ type: str
location:
description:
- The location of the resource group to which the resource belongs.
- Required when I(state=present).
+ type: str
kind:
description:
- Indicates the type of database account. This can only be set at database account creation.
+ type: str
choices:
- 'global_document_db'
- 'mongo_db'
@@ -39,11 +43,13 @@ options:
consistency_policy:
description:
- The consistency policy for the Cosmos DB account.
+ type: dict
suboptions:
default_consistency_level:
description:
- The default consistency level and configuration settings of the Cosmos DB account.
- Required when I(state=present).
+ type: str
choices:
- 'eventual'
- 'session'
@@ -65,20 +71,25 @@ options:
- An array that contains the georeplication locations enabled for the Cosmos DB account.
- Required when I(state=present).
type: list
+ elements: dict
suboptions:
name:
description:
- The name of the region.
+ type: str
+ required: true
failover_priority:
description:
- The failover priority of the region. A failover priority of 0 indicates a write region.
- The maximum value for a failover priority = (total number of regions - 1).
- Failover priority values must be unique for each of the regions in which the database account exists.
type: int
+ required: true
database_account_offer_type:
description:
- Database account offer type, for example I(Standard)
- Required when I(state=present).
+ type: str
enable_free_tier:
description:
- If enabled the account is free-tier.
@@ -91,6 +102,7 @@ options:
- In CIDR form to be included as the allowed list of client IPs for a given database account.
- IP addresses/ranges must be comma separated and must not contain any spaces.
- This value has been deprecated, and will be removed in a later version. Use I(ip_rules) instead.
+ type: str
ip_rules:
description:
- The IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs.
@@ -137,11 +149,14 @@ options:
description:
- List of Virtual Network ACL rules configured for the Cosmos DB account.
type: list
+ elements: dict
suboptions:
subnet:
description:
- It can be a string containing resource id of a subnet.
- It can be a dictionary containing 'resource_group', 'virtual_network_name' and 'subnet_name'
+ type: raw
+ required: true
ignore_missing_v_net_service_endpoint:
description:
- Create Cosmos DB account without existing virtual network service endpoint.
@@ -151,13 +166,14 @@ options:
- Enables the account to write in multiple locations
type: bool
state:
- description:
- - Assert the state of the Database Account.
- - Use C(present) to create or update an Database Account and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Database Account.
+ - Use C(present) to create or update an Database Account and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -169,36 +185,36 @@ author:
'''
EXAMPLES = '''
- - name: Create Cosmos DB Account - min
- azure_rm_cosmosdbaccount:
- resource_group: myResourceGroup
- name: myDatabaseAccount
- location: westus
- geo_rep_locations:
- - name: southcentralus
- failover_priority: 0
- database_account_offer_type: Standard
-
- - name: Create Cosmos DB Account - max
- azure_rm_cosmosdbaccount:
- resource_group: myResourceGroup
- name: myDatabaseAccount
- location: westus
- kind: mongo_db
- geo_rep_locations:
- - name: southcentralus
- failover_priority: 0
- database_account_offer_type: Standard
- ip_rules:
- - 10.10.10.10
- enable_multiple_write_locations: yes
- virtual_network_rules:
- - subnet: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVi
- rtualNetwork/subnets/mySubnet"
- consistency_policy:
- default_consistency_level: bounded_staleness
- max_staleness_prefix: 10
- max_interval_in_seconds: 1000
+- name: Create Cosmos DB Account - min
+ azure_rm_cosmosdbaccount:
+ resource_group: myResourceGroup
+ name: myDatabaseAccount
+ location: westus
+ geo_rep_locations:
+ - name: southcentralus
+ failover_priority: 0
+ database_account_offer_type: Standard
+
+- name: Create Cosmos DB Account - max
+ azure_rm_cosmosdbaccount:
+ resource_group: myResourceGroup
+ name: myDatabaseAccount
+ location: westus
+ kind: mongo_db
+ geo_rep_locations:
+ - name: southcentralus
+ failover_priority: 0
+ database_account_offer_type: Standard
+ ip_rules:
+ - 10.10.10.10
+ enable_multiple_write_locations: true
+ virtual_network_rules:
+ - subnet: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVi
+ rtualNetwork/subnets/mySubnet"
+ consistency_policy:
+ default_consistency_level: bounded_staleness
+ max_staleness_prefix: 10
+ max_interval_in_seconds: 1000
'''
RETURN = '''
@@ -217,7 +233,6 @@ from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.cosmosdb import CosmosDBManagementClient
from ansible.module_utils.six import string_types
except ImportError:
@@ -272,6 +287,7 @@ class AzureRMCosmosDBAccount(AzureRMModuleBase):
),
geo_rep_locations=dict(
type='list',
+ elements='dict',
options=dict(
name=dict(
type='str',
@@ -322,9 +338,10 @@ class AzureRMCosmosDBAccount(AzureRMModuleBase):
),
virtual_network_rules=dict(
type='list',
+ elements='dict',
options=dict(
- id=dict(
- type='str',
+ subnet=dict(
+ type='raw',
required=True
),
ignore_missing_v_net_service_endpoint=dict(
@@ -474,7 +491,7 @@ class AzureRMCosmosDBAccount(AzureRMModuleBase):
response = self.mgmt_client.database_accounts.begin_create_or_update(resource_group_name=self.resource_group,
account_name=self.name,
create_update_parameters=self.parameters)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
@@ -493,7 +510,7 @@ class AzureRMCosmosDBAccount(AzureRMModuleBase):
response = self.mgmt_client.database_accounts.begin_delete(resource_group_name=self.resource_group,
account_name=self.name)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as e:
self.log('Error attempting to delete the Database Account instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount_info.py
index c97b59ea7..61414272a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_cosmosdbaccount_info.py
@@ -20,9 +20,11 @@ options:
resource_group:
description:
- Name of an Azure resource group.
+ type: str
name:
description:
- Cosmos DB database account name.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -49,17 +51,17 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Database Account
- azure_rm_cosmosdbaccount_info:
- resource_group: myResourceGroup
- name: testaccount
-
- - name: List instances of Database Account
- azure_rm_cosmosdbaccount_info:
- resource_group: myResourceGroup
- tags:
- - key
- - key:value
+- name: Get instance of Database Account
+ azure_rm_cosmosdbaccount_info:
+ resource_group: myResourceGroup
+ name: testaccount
+
+- name: List instances of Database Account
+ azure_rm_cosmosdbaccount_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
+ - key:value
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory.py
index 66e75f0c8..eabe176de 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory.py
@@ -114,7 +114,6 @@ EXAMPLES = '''
collaboration_branch: testbranch
root_folder: "./"
repository_name: vault
-
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py
index cdd63d717..825afb67f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datafactory_info.py
@@ -46,19 +46,19 @@ author:
'''
EXAMPLES = '''
- - name: Get data factory by name
- azure_rm_datafactory_info:
- resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+- name: Get data factory by name
+ azure_rm_datafactory_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ name }}"
- - name: Get data factory by resource group
- azure_rm_datafactory_info:
- resource_group: "{{ resource_group }}"
+- name: Get data factory by resource group
+ azure_rm_datafactory_info:
+ resource_group: "{{ resource_group }}"
- - name: Get data factory in relate subscription
- azure_rm_datafactory_info:
- tags:
- - key1
+- name: Get data factory in relate subscription
+ azure_rm_datafactory_info:
+ tags:
+ - key1
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore.py
index edce24665..eaecb9df5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore.py
@@ -167,10 +167,10 @@ author:
'''
EXAMPLES = '''
- - name: Create Azure Data Lake Store
- azure_rm_datalakestore:
- resource_group: myResourceGroup
- name: myDataLakeStore
+- name: Create Azure Data Lake Store
+ azure_rm_datalakestore:
+ resource_group: myResourceGroup
+ name: myDataLakeStore
'''
RETURN = '''
@@ -417,7 +417,6 @@ state:
'''
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-import datetime
try:
from azure.core.exceptions import ResourceNotFoundError
@@ -472,7 +471,6 @@ class AzureRMDatalakeStore(AzureRMModuleBase):
'Commitment_500TB', 'Commitment_1PB', 'Commitment_5PB']),
resource_group=dict(type='str', required=True, aliases=['resource_group_name']),
state=dict(type='str', default='present', choices=['present', 'absent']),
- tags=dict(type='dict'),
virtual_network_rules=dict(
type='list',
elements='dict',
@@ -484,7 +482,6 @@ class AzureRMDatalakeStore(AzureRMModuleBase):
self.name = None
self.resource_group = None
self.location = None
- self.tags = None
self.new_tier = None
self.default_group = None
self.encryption_config = dict()
@@ -504,7 +501,7 @@ class AzureRMDatalakeStore(AzureRMModuleBase):
super(AzureRMDatalakeStore, self).__init__(derived_arg_spec=self.module_arg_spec,
supports_check_mode=False,
- supports_tags=False)
+ supports_tags=True)
def exec_module(self, **kwargs):
for key in list(self.module_arg_spec.keys()) + ['tags']:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore_info.py
index 842330cc0..2417ff74a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_datalakestore_info.py
@@ -37,17 +37,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Azure Data Lake Store info from resource group 'myResourceGroup' and name 'myDataLakeStore'
- azure_rm_datalakestore_info:
- resource_group: myResourceGroup
- name: myDataLakeStore
+- name: Get Azure Data Lake Store info from resource group 'myResourceGroup' and name 'myDataLakeStore'
+ azure_rm_datalakestore_info:
+ resource_group: myResourceGroup
+ name: myDataLakeStore
- - name: Get Azure Data Lake Store info from resource group 'myResourceGroup'
- azure_rm_datalakestore_info:
- resource_group: myResourceGroup
+- name: Get Azure Data Lake Store info from resource group 'myResourceGroup'
+ azure_rm_datalakestore_info:
+ resource_group: myResourceGroup
- - name: Get Azure Data Lake Store info
- azure_rm_datalakestore_info:
+- name: Get Azure Data Lake Store info
+ azure_rm_datalakestore_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py
index 0ae5e82f8..642248d29 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan.py
@@ -28,14 +28,14 @@ options:
- Resource location. If not set, location from the resource group will be used as default.
type: str
state:
- description:
- - Assert the state of the DDoS protection plan.
- - Use C(present) to create or update an DDoS protection plan and C(absent) to delete it.
- type: str
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the DDoS protection plan.
+ - Use C(present) to create or update an DDoS protection plan and C(absent) to delete it.
+ type: str
+ default: present
+ choices:
+ - absent
+ - present
log_path:
description:
- parent argument.
@@ -87,7 +87,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.network import NetworkManagementClient
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py
index 70b37ac73..74eb190a3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ddosprotectionplan_info.py
@@ -34,10 +34,10 @@ author:
EXAMPLES = '''
- - name: Get facts of specific DDoS protection plan
- azure_rm_ddosprotectionplan_info:
- resource_group: myResourceGroup
- name: myDDoSProtectionPlan
+- name: Get facts of specific DDoS protection plan
+ azure_rm_ddosprotectionplan_info:
+ resource_group: myResourceGroup
+ name: myDDoSProtectionPlan
'''
RETURN = '''
@@ -47,7 +47,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py
index 2b6a23a52..07cf93d8e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment.py
@@ -21,67 +21,75 @@ description:
- For more information on Azure Resource Manager templates see U(https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-deploy/).
options:
- resource_group:
- description:
- - The resource group name to use or create to host the deployed template.
- required: true
- aliases:
- - resource_group_name
- name:
- description:
- - The name of the deployment to be tracked in the resource group deployment history.
- - Re-using a deployment name will overwrite the previous value in the resource group's deployment history.
- default: ansible-arm
- aliases:
- - deployment_name
- location:
- description:
- - The geo-locations in which the resource group will be located.
- default: westus
- deployment_mode:
- description:
- - In incremental mode, resources are deployed without deleting existing resources that are not included in the template.
- - In complete mode resources are deployed and existing resources in the resource group not included in the template are deleted.
- default: incremental
- choices:
- - complete
- - incremental
- template:
- description:
- - A hash containing the templates inline. This parameter is mutually exclusive with I(template_link).
- - Either I(template) or I(template_link) is required if I(state=present).
- type: dict
- template_link:
- description:
- - Uri of file containing the template body. This parameter is mutually exclusive with I(template).
- - Either I(template) or I(template_link) is required if I(state=present).
- parameters:
- description:
- - A hash of all the required template variables for the deployment template. This parameter is mutually exclusive with I(parameters_link).
- - Either I(parameters_link) or I(parameters) is required if I(state=present).
- type: dict
- parameters_link:
- description:
- - Uri of file containing the parameters body. This parameter is mutually exclusive with I(parameters).
- - Either I(parameters_link) or I(parameters) is required if I(state=present).
- wait_for_deployment_completion:
- description:
- - Whether or not to block until the deployment has completed.
- type: bool
- default: 'yes'
- wait_for_deployment_polling_period:
- description:
- - Time (in seconds) to wait between polls when waiting for deployment completion.
- default: 10
- state:
- description:
- - If I(state=present), template will be created.
- - If I(state=present) and deployment exists, it will be updated.
- - If I(state=absent), the resource group will be removed.
- default: present
- choices:
- - present
- - absent
+ resource_group:
+ description:
+ - The resource group name to use or create to host the deployed template.
+ required: true
+ type: str
+ aliases:
+ - resource_group_name
+ name:
+ description:
+ - The name of the deployment to be tracked in the resource group deployment history.
+ - Re-using a deployment name will overwrite the previous value in the resource group's deployment history.
+ default: ansible-arm
+ type: str
+ aliases:
+ - deployment_name
+ location:
+ description:
+ - The geo-locations in which the resource group will be located.
+ default: westus
+ type: str
+ deployment_mode:
+ description:
+ - In incremental mode, resources are deployed without deleting existing resources that are not included in the template.
+ - In complete mode resources are deployed and existing resources in the resource group not included in the template are deleted.
+ default: incremental
+ type: str
+ choices:
+ - complete
+ - incremental
+ template:
+ description:
+ - A hash containing the templates inline. This parameter is mutually exclusive with I(template_link).
+ - Either I(template) or I(template_link) is required if I(state=present).
+ type: dict
+ template_link:
+ description:
+ - Uri of file containing the template body. This parameter is mutually exclusive with I(template).
+ - Either I(template) or I(template_link) is required if I(state=present).
+ type: str
+ parameters:
+ description:
+ - A hash of all the required template variables for the deployment template. This parameter is mutually exclusive with I(parameters_link).
+ - Either I(parameters_link) or I(parameters) is required if I(state=present).
+ type: dict
+ parameters_link:
+ description:
+ - Uri of file containing the parameters body. This parameter is mutually exclusive with I(parameters).
+ - Either I(parameters_link) or I(parameters) is required if I(state=present).
+ type: str
+ wait_for_deployment_completion:
+ description:
+ - Whether or not to block until the deployment has completed.
+ type: bool
+ default: true
+ wait_for_deployment_polling_period:
+ description:
+ - Time (in seconds) to wait between polls when waiting for deployment completion.
+ default: 10
+ type: int
+ state:
+ description:
+ - If I(state=present), template will be created.
+ - If I(state=present) and deployment exists, it will be updated.
+ - If I(state=absent), the resource group will be removed.
+ default: present
+ type: str
+ choices:
+ - present
+ - absent
extends_documentation_fragment:
- azure.azcollection.azure
@@ -394,7 +402,7 @@ deployment:
outputs:
description:
- Dictionary of outputs received from the deployment.
- type: complex
+ type: dict
returned: always
sample: { "hostname": { "type": "String", "value": "myvirtualmachine.eastus2.cloudapp.azure.com" } }
'''
@@ -402,17 +410,12 @@ deployment:
import time
try:
- from azure.common.credentials import ServicePrincipalCredentials
import time
- import yaml
except ImportError as exc:
IMPORT_ERROR = "Error importing module prerequisites: %s" % exc
try:
- from itertools import chain
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.resource.resources import ResourceManagementClient
- from azure.mgmt.network import NetworkManagementClient
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
index 95dd56195..6fcaa1265 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
@@ -21,9 +21,11 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the deployment.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -34,10 +36,10 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Deployment
- azure_rm_deployment_info:
- resource_group: myResourceGroup
- name: myDeployment
+- name: Get instance of Deployment
+ azure_rm_deployment_info:
+ resource_group: myResourceGroup
+ name: myDeployment
'''
RETURN = '''
@@ -58,31 +60,36 @@ deployments:
- Resource group name.
returned: always
sample: myResourceGroup
+ type: str
name:
description:
- Deployment name.
returned: always
+ type: str
sample: myDeployment
provisioning_state:
description:
- Provisioning state of the deployment.
returned: always
+ type: str
sample: Succeeded
template_link:
description:
- Link to the template.
returned: always
+ type: str
sample: "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/d01a5c06f4f1bc03a049ca17bbbd6e06d62657b3/101-vm-simple-linux/
azuredeploy.json"
parameters:
description:
- Dictionary containing deployment parameters.
returned: always
- type: complex
+ type: dict
outputs:
description:
- Dictionary containing deployment outputs.
returned: always
+ type: dict
output_resources:
description:
- List of resources.
@@ -122,8 +129,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py
index 531cbf55a..1424be8c9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab.py
@@ -21,16 +21,20 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the lab.
required: True
+ type: str
location:
description:
- The location of the resource.
+ type: str
storage_type:
description:
- Type of storage used by the lab. It can be either C(premium) or C(standard).
+ type: str
choices:
- 'standard'
- 'premium'
@@ -39,13 +43,14 @@ options:
- Allow creation of premium data disks.
type: bool
state:
- description:
- - Assert the state of the DevTest Lab.
- - Use C(present) to create or update an DevTest Lab and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the DevTest Lab.
+ - Use C(present) to create or update an DevTest Lab and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -57,11 +62,11 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) DevTest Lab
- azure_rm_devtestlab:
- resource_group: myResourceGroup
- name: mylab
- storage_type: standard
+- name: Create (or update) DevTest Lab
+ azure_rm_devtestlab:
+ resource_group: myResourceGroup
+ name: mylab
+ storage_type: standard
'''
RETURN = '''
@@ -73,16 +78,13 @@ id:
sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/mylab
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -200,7 +202,7 @@ class AzureRMDevTestLab(AzureRMModuleBase):
self.delete_devtestlab()
# This currently doesnt' work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("DevTest Lab instance unchanged")
@@ -225,7 +227,7 @@ class AzureRMDevTestLab(AzureRMModuleBase):
response = self.mgmt_client.labs.begin_create_or_update(resource_group_name=self.resource_group,
name=self.name,
lab=self.lab)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab_info.py
index 63abdd357..6add55e59 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlab_info.py
@@ -39,19 +39,19 @@ author:
'''
EXAMPLES = '''
- - name: List instances of DevTest Lab by resource group
- azure_rm_devtestlab_info:
- resource_group: testrg
- tags:
- - key:value
+- name: List instances of DevTest Lab by resource group
+ azure_rm_devtestlab_info:
+ resource_group: testrg
+ tags:
+ - key:value
- - name: List instances of DevTest Lab in subscription
- azure_rm_devtestlab_info:
+- name: List instances of DevTest Lab in subscription
+ azure_rm_devtestlab_info:
- - name: Get instance of DevTest Lab
- azure_rm_devtestlab_info:
- resource_group: testrg
- name: testlab
+- name: Get instance of DevTest Lab
+ azure_rm_devtestlab_info:
+ resource_group: testrg
+ name: testlab
'''
RETURN = '''
@@ -137,7 +137,7 @@ labs:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag': 'MyValue' }"
'''
@@ -145,7 +145,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabarmtemplate_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabarmtemplate_info.py
index 42556856c..783a272dd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabarmtemplate_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabarmtemplate_info.py
@@ -46,12 +46,12 @@ author:
'''
EXAMPLES = '''
- - name: Get information on DevTest Lab ARM Template
- azure_rm_devtestlabarmtemplate_info:
- resource_group: myResourceGroup
- lab_name: myLab
- artifact_source_name: public environment repo
- name: WebApp
+- name: Get information on DevTest Lab ARM Template
+ azure_rm_devtestlabarmtemplate_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ artifact_source_name: public environment repo
+ name: WebApp
'''
RETURN = '''
@@ -72,36 +72,43 @@ arm_templates:
description:
- Resource group name.
returned: always
+ type: str
sample: myResourceGroup
lab_name:
description:
- DevTest Lab name.
returned: always
+ type: str
sample: myLab
artifact_source_name:
description:
- Artifact source name.
returned: always
+ type: str
sample: public environment repo
name:
description:
- ARM Template name.
returned: always
+ type: str
sample: WebApp
display_name:
description:
- The tags of the resource.
returned: always
+ type: str
sample: Web App
description:
description:
- The tags of the resource.
returned: always
+ type: str
sample: This template creates an Azure Web App without a data store.
publisher:
description:
- The tags of the resource.
returned: always
+ type: str
sample: Microsoft
'''
@@ -110,7 +117,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifact_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifact_info.py
index 7100ad122..9ec729257 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifact_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifact_info.py
@@ -46,12 +46,12 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of DevTest Lab Artifact
- azure_rm_devtestlabartifact_info:
- resource_group: myResourceGroup
- lab_name: myLab
- artifact_source_name: myArtifactSource
- name: myArtifact
+- name: Get instance of DevTest Lab Artifact
+ azure_rm_devtestlabartifact_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ artifact_source_name: myArtifactSource
+ name: myArtifact
'''
RETURN = '''
@@ -126,7 +126,7 @@ artifacts:
description:
- A dictionary containing parameters definition of the artifact.
returned: always
- type: complex
+ type: dict
sample: {}
'''
@@ -135,7 +135,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource.py
index 5ca4a5772..87f19bbd9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource.py
@@ -20,51 +20,62 @@ options:
resource_group:
description:
- The name of the resource group.
+ type: str
required: True
lab_name:
description:
- The name of the lab.
+ type: str
required: True
name:
description:
- The name of the artifact source.
+ type: str
required: True
display_name:
description:
- The artifact source's display name.
+ type: str
uri:
description:
- The artifact source's URI.
+ type: str
source_type:
description:
- The artifact source's type.
+ type: str
choices:
- 'vso'
- 'github'
folder_path:
description:
- The folder containing artifacts.
+ type: str
arm_template_folder_path:
description:
- The folder containing Azure Resource Manager templates.
+ type: str
branch_ref:
description:
- The artifact source's branch reference.
+ type: str
security_token:
description:
- The security token to authenticate to the artifact source.
+ type: str
is_enabled:
description:
- Indicates whether the artifact source is enabled.
type: bool
state:
- description:
- - Assert the state of the DevTest Labs Artifacts Source.
- - Use C(present) to create or update an DevTest Labs Artifacts Source and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the DevTest Labs Artifacts Source.
+ - Use C(present) to create or update an DevTest Labs Artifacts Source and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -76,15 +87,15 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) DevTest Labs Artifacts Source
- azure_rm_devtestlabartifactsource:
- resource_group: myrg
- lab_name: mylab
- name: myartifacts
- uri: https://github.com/myself/myrepo.git
- source_type: github
- folder_path: /
- security_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+- name: Create (or update) DevTest Labs Artifacts Source
+ azure_rm_devtestlabartifactsource:
+ resource_group: myrg
+ lab_name: mylab
+ name: myartifacts
+ uri: https://github.com/myself/myrepo.git
+ source_type: github
+ folder_path: /
+ security_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'''
RETURN = '''
@@ -102,16 +113,12 @@ is_enabled:
sample: true
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -305,7 +312,7 @@ class AzureRMDevTestLabArtifactsSource(AzureRMModuleBase):
lab_name=self.lab_name,
name=self.name,
artifact_source=self.artifact_source)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource_info.py
index 96bdde553..036a3da45 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabartifactsource_info.py
@@ -46,11 +46,11 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of DevTest Lab Artifact Source
- azure_rm_devtestlabartifactsource_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myArtifactSource
+- name: Get instance of DevTest Lab Artifact Source
+ azure_rm_devtestlabartifactsource_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myArtifactSource
'''
RETURN = '''
@@ -131,7 +131,7 @@ artifactsources:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag': 'MyValue' }"
'''
@@ -140,7 +140,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage.py
index 7b611706b..f24c6f7e5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage.py
@@ -21,20 +21,25 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
lab_name:
description:
- The name of the lab.
required: True
+ type: str
name:
description:
- The name of the custom image.
required: True
+ type: str
source_vm:
description:
- Source DevTest Lab virtual machine name.
+ type: str
windows_os_state:
description:
- The state of the Windows OS.
+ type: str
choices:
- 'non_sysprepped'
- 'sysprep_requested'
@@ -42,6 +47,7 @@ options:
linux_os_state:
description:
- The state of the Linux OS.
+ type: str
choices:
- 'non_deprovisioned'
- 'deprovision_requested'
@@ -49,17 +55,20 @@ options:
description:
description:
- The description of the custom image.
+ type: str
author:
description:
- The author of the custom image.
+ type: str
state:
- description:
- - Assert the state of the Custom Image.
- - Use C(present) to create or update an Custom Image and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Custom Image.
+ - Use C(present) to create or update an Custom Image and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -89,16 +98,13 @@ id:
sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/myLab/images/myImage"
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -238,7 +244,7 @@ class AzureRMDtlCustomImage(AzureRMModuleBase):
self.delete_customimage()
# This currently doesnt' work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("Custom Image instance unchanged")
@@ -264,7 +270,7 @@ class AzureRMDtlCustomImage(AzureRMModuleBase):
lab_name=self.lab_name,
name=self.name,
custom_image=self.custom_image)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage_info.py
index 46ba637df..2c6d559aa 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabcustomimage_info.py
@@ -46,17 +46,17 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Custom Image
- azure_rm_devtestlabcustomimage_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myImage
-
- - name: List instances of Custom Image in the lab
- azure_rm_devtestlabcustomimage_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myImage
+- name: Get instance of Custom Image
+ azure_rm_devtestlabcustomimage_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myImage
+
+- name: List instances of Custom Image in the lab
+ azure_rm_devtestlabcustomimage_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myImage
'''
RETURN = '''
@@ -108,7 +108,7 @@ custom_images:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag':'MyValue' }"
'''
@@ -117,7 +117,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -137,7 +136,6 @@ class AzureRMDtlCustomImageInfo(AzureRMModuleBase):
),
name=dict(
type='str',
- required=True
),
tags=dict(
type='list',
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment.py
index cd3735ce0..214ddbbe1 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment.py
@@ -49,6 +49,7 @@ options:
description:
- The parameters of the Azure Resource Manager template.
type: list
+ elements: dict
suboptions:
name:
description:
@@ -101,16 +102,12 @@ id:
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -149,6 +146,7 @@ class AzureRMDtlEnvironment(AzureRMModuleBase):
),
deployment_parameters=dict(
type='list',
+ elements='dict',
options=dict(
name=dict(
type='str'
@@ -248,7 +246,7 @@ class AzureRMDtlEnvironment(AzureRMModuleBase):
self.delete_environment()
# This currently doesn't work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("Environment instance unchanged")
@@ -282,7 +280,7 @@ class AzureRMDtlEnvironment(AzureRMModuleBase):
user_name=self.user_name,
name=self.name,
dtl_environment=self.dtl_environment)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment_info.py
index 675f6e848..4648ed1b7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabenvironment_info.py
@@ -51,14 +51,14 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Environment
- azure_rm_devtestlabenvironment_info:
- resource_group: myResourceGroup
- lab_name: myLab
- user_name: myUser
- name: myEnvironment
- tags:
- - key:value
+- name: Get instance of Environment
+ azure_rm_devtestlabenvironment_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ user_name: myUser
+ name: myEnvironment
+ tags:
+ - key:value
'''
RETURN = '''
@@ -116,7 +116,7 @@ environments:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag': 'MyValue' }"
'''
@@ -125,7 +125,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy.py
index f7aece825..2a3f2f953 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy.py
@@ -21,24 +21,30 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
lab_name:
description:
- The name of the lab.
required: True
+ type: str
policy_set_name:
description:
- The name of the policy set.
required: True
+ type: str
name:
description:
- The name of the policy.
required: True
+ type: str
description:
description:
- The description of the policy.
+ type: str
fact_name:
description:
- The fact name of the policy (e.g. C(lab_vm_count), C(lab_vm_size)), MaxVmsAllowedPerLab, etc.
+ type: str
choices:
- 'user_owned_lab_vm_count'
- 'user_owned_lab_premium_vm_count'
@@ -53,13 +59,14 @@ options:
- The threshold of the policy (it could be either a maximum value or a list of allowed values).
type: raw
state:
- description:
- - Assert the state of the Policy.
- - Use C(present) to create or update an Policy and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Policy.
+ - Use C(present) to create or update an Policy and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -92,16 +99,13 @@ id:
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -237,7 +241,7 @@ class AzureRMDtlPolicy(AzureRMModuleBase):
self.delete_policy()
# This currently doesnt' work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("Policy instance unchanged")
@@ -265,7 +269,7 @@ class AzureRMDtlPolicy(AzureRMModuleBase):
policy_set_name=self.policy_set_name,
name=self.name,
policy=self.policy)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy_info.py
index d6d452871..a8f3b104a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabpolicy_info.py
@@ -51,14 +51,14 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Policy
- azure_rm_devtestlabpolicy_info:
- resource_group: myResourceGroup
- lab_name: myLab
- policy_set_name: myPolicySet
- name: myPolicy
- tags:
- - key:value
+- name: Get instance of Policy
+ azure_rm_devtestlabpolicy_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ policy_set_name: myPolicySet
+ name: myPolicy
+ tags:
+ - key:value
'''
RETURN = '''
@@ -115,7 +115,7 @@ policies:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag': 'MyValue' }"
'''
@@ -124,7 +124,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule.py
index c672cb274..060b3baa0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule.py
@@ -21,31 +21,37 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
lab_name:
description:
- The name of the lab.
required: True
+ type: str
name:
description:
- The name of the schedule.
required: True
+ type: str
choices:
- lab_vms_startup
- lab_vms_shutdown
time:
description:
- The time of day the schedule will occur.
+ type: str
time_zone_id:
description:
- The time zone ID.
+ type: str
state:
- description:
- - Assert the state of the Schedule.
- - Use C(present) to create or update an Schedule and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Schedule.
+ - Use C(present) to create or update an Schedule and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -57,13 +63,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) DevTest Lab Schedule
- azure_rm_devtestlabschedule:
- resource_group: myResourceGroup
- lab_name: myLab
- name: lab_vms_shutdown
- time: "1030"
- time_zone_id: "UTC+12"
+- name: Create (or update) DevTest Lab Schedule
+ azure_rm_devtestlabschedule:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: lab_vms_shutdown
+ time: "1030"
+ time_zone_id: "UTC+12"
'''
RETURN = '''
@@ -76,16 +82,12 @@ id:
abVmsShutdown"
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -211,7 +213,7 @@ class AzureRMSchedule(AzureRMModuleBase):
self.delete_schedule()
# This currently doesn't work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("Schedule instance unchanged")
@@ -237,7 +239,7 @@ class AzureRMSchedule(AzureRMModuleBase):
lab_name=self.lab_name,
name=self.name,
schedule=self.schedule)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule_info.py
index dae349d2d..e366e0f99 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabschedule_info.py
@@ -46,13 +46,13 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of Schedule
- azure_rm_devtestlabschedule_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: mySchedule
- tags:
- - key:value
+- name: Get instance of Schedule
+ azure_rm_devtestlabschedule_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: mySchedule
+ tags:
+ - key:value
'''
RETURN = '''
@@ -103,7 +103,7 @@ schedules:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'MyTag': 'MyValue' }"
'''
@@ -113,7 +113,6 @@ from ansible.module_utils.common.dict_transformations import _camel_to_snake, _s
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine.py
index f1edde75b..62e7db77a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine.py
@@ -21,20 +21,25 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
lab_name:
description:
- The name of the lab.
required: True
+ type: str
name:
description:
- The name of the virtual machine.
required: True
+ type: str
notes:
description:
- The notes of the virtual machine.
+ type: str
os_type:
description:
- Base type of operating system.
+ type: str
choices:
- windows
- linux
@@ -44,84 +49,106 @@ options:
- The list of choices varies depending on the subscription and location. Check your subscription for available choices.
- Available values can be found on this website, link U(https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes-general).
- Required when I(state=present).
+ type: str
user_name:
description:
- The user name of the virtual machine.
+ type: str
password:
description:
- The password of the virtual machine administrator.
+ type: str
ssh_key:
description:
- The SSH key of the virtual machine administrator.
+ type: str
lab_subnet:
description:
- An existing subnet within lab's virtual network.
- It can be the subnet's resource id.
- It can be a dict which contains C(virtual_network_name) and C(name).
+ type: raw
disallow_public_ip_address:
description:
- Indicates whether the virtual machine is to be created without a public IP address.
+ type: str
artifacts:
description:
- The artifacts to be installed on the virtual machine.
type: list
+ elements: dict
suboptions:
source_name:
description:
- The artifact's source name.
+ type: str
source_path:
description:
- The artifact's path in the source repository.
+ type: str
parameters:
description:
- The parameters of the artifact.
type: list
+ elements: dict
suboptions:
name:
description:
- The name of the artifact parameter.
+ type: str
value:
description:
- The value of the artifact parameter.
+ type: str
image:
description:
- The Microsoft Azure Marketplace image reference of the virtual machine.
+ type: dict
suboptions:
offer:
description:
- The offer of the gallery image.
+ type: str
publisher:
description:
- The publisher of the gallery image.
+ type: str
sku:
description:
- The SKU of the gallery image.
+ type: str
os_type:
description:
- The OS type of the gallery image.
+ type: str
version:
description:
- The version of the gallery image.
+ type: str
expiration_date:
description:
- The expiration date for VM.
+ type: str
allow_claim:
description:
- Indicates whether another user can take ownership of the virtual machine.
+ type: str
storage_type:
description:
- Storage type to use for virtual machine.
+ type: str
choices:
- standard
- premium
state:
- description:
- - Assert the state of the Virtual Machine.
- - Use C(present) to create or update an Virtual Machine and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Virtual Machine.
+ - Use C(present) to create or update an Virtual Machine and C(absent) to delete it.
+ type: str
+ default: present
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -133,31 +160,31 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) Virtual Machine
- azure_rm_devtestlabvirtualmachine:
- resource_group: myrg
- lab_name: mylab
- name: myvm
- notes: Virtual machine notes....
- os_type: linux
- vm_size: Standard_A2_v2
- user_name: vmadmin
- password: ZSuppas$$21!
- lab_subnet:
- name: myvnSubnet
- virtual_network_name: myvn
- disallow_public_ip_address: no
- image:
- offer: UbuntuServer
- publisher: Canonical
- sku: 16.04-LTS
- os_type: Linux
- version: latest
- artifacts:
- - source_name: myartifact
- source_path: "/Artifacts/linux-install-mongodb"
- allow_claim: no
- expiration_date: "2019-02-22T01:49:12.117974Z"
+- name: Create (or update) Virtual Machine
+ azure_rm_devtestlabvirtualmachine:
+ resource_group: myrg
+ lab_name: mylab
+ name: myvm
+ notes: Virtual machine notes....
+ os_type: linux
+ vm_size: Standard_A2_v2
+ user_name: vmadmin
+ password: ZSuppas$$21!
+ lab_subnet:
+ name: myvnSubnet
+ virtual_network_name: myvn
+ disallow_public_ip_address: false
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ os_type: Linux
+ version: latest
+ artifacts:
+ - source_name: myartifact
+ source_path: "/Artifacts/linux-install-mongodb"
+ allow_claim: false
+ expiration_date: "2019-02-22T01:49:12.117974Z"
'''
RETURN = '''
@@ -181,16 +208,13 @@ fqdn:
sample: myvm.eastus.cloudapp.azure.com
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -246,12 +270,17 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
),
artifacts=dict(
type='list',
+ elements='dict',
options=dict(
- artifact_id=dict(
+ source_name=dict(
+ type='str',
+ ),
+ source_path=dict(
type='str'
),
parameters=dict(
type='list',
+ elements='dict',
options=dict(
name=dict(
type='str'
@@ -463,7 +492,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
lab_name=self.lab_name,
name=self.name,
lab_virtual_machine=self.lab_virtual_machine)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
@@ -486,7 +515,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
self.log('Error attempting to delete the Virtual Machine instance.')
self.fail("Error deleting the Virtual Machine instance: {0}".format(str(e)))
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
return True
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine_info.py
index f33f2b976..24398136e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualmachine_info.py
@@ -46,13 +46,13 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of DTL Virtual Machine
- azure_rm_devtestlabvirtualmachine_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myVm
- tags:
- - key:value
+- name: Get instance of DTL Virtual Machine
+ azure_rm_devtestlabvirtualmachine_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myVm
+ tags:
+ - key:value
'''
RETURN = '''
@@ -128,7 +128,7 @@ virtualmachines:
- The SKU of the gallery image.
returned: when created from gallery image
type: str
- sample: 16.04-LTS
+ sample: 20_04-lts
publisher:
description:
- The publisher of the gallery image.
@@ -199,7 +199,7 @@ virtualmachines:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: "{ 'foo': 'bar' }"
'''
@@ -208,7 +208,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork.py
index 0ecd93098..a47a8c8f9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork.py
@@ -21,28 +21,34 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
lab_name:
description:
- The name of the lab.
required: True
+ type: str
name:
description:
- The name of the virtual network.
required: True
+ type: str
location:
description:
- The location of the resource.
+ type: str
description:
description:
- The description of the virtual network.
+ type: str
state:
- description:
- - Assert the state of the Virtual Network.
- - Use C(present) to create or update an Virtual Network and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Virtual Network.
+ - Use C(present) to create or update an Virtual Network and C(absent) to delete it.
+ type: str
+ default: present
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -54,12 +60,12 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) Virtual Network
- azure_rm_devtestlabvirtualnetwork:
- resource_group: myResourceGroup
- lab_name: mylab
- name: myvn
- description: My Lab Virtual Network
+- name: Create (or update) Virtual Network
+ azure_rm_devtestlabvirtualnetwork:
+ resource_group: myResourceGroup
+ lab_name: mylab
+ name: myvn
+ description: My Lab Virtual Network
'''
RETURN = '''
@@ -79,16 +85,12 @@ external_provider_resource_id:
rtualNetworks/myvn"
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -205,7 +207,7 @@ class AzureRMDevTestLabVirtualNetwork(AzureRMModuleBase):
return self.results
self.delete_virtualnetwork()
# This currently doesn't work as there is a bug in SDK / Service
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
self.log("Virtual Network instance unchanged")
@@ -232,7 +234,7 @@ class AzureRMDevTestLabVirtualNetwork(AzureRMModuleBase):
lab_name=self.lab_name,
name=self.name,
virtual_network=self.virtual_network)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py
index b66b2f45b..23392468b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py
@@ -41,17 +41,17 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of DevTest Lab Virtual Network
- azure_rm_devtestlabvirtualnetwork_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myVirtualNetwork
-
- - name: List all Virtual Networks in DevTest Lab
- azure_rm_devtestlabvirtualnetwork_info:
- resource_group: myResourceGroup
- lab_name: myLab
- name: myVirtualNetwork
+- name: Get instance of DevTest Lab Virtual Network
+ azure_rm_devtestlabvirtualnetwork_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myVirtualNetwork
+
+- name: List all Virtual Networks in DevTest Lab
+ azure_rm_devtestlabvirtualnetwork_info:
+ resource_group: myResourceGroup
+ lab_name: myLab
+ name: myVirtualNetwork
'''
RETURN = '''
@@ -112,7 +112,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.devtestlabs import DevTestLabsClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_diskencryptionset.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_diskencryptionset.py
index 93bd8ab47..f76f784eb 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_diskencryptionset.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_diskencryptionset.py
@@ -153,7 +153,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, \
format_resource_id, normalize_location_name
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnsrecordset.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnsrecordset.py
index 55b682be6..32448964a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnsrecordset.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnsrecordset.py
@@ -151,9 +151,9 @@ EXAMPLES = '''
record_type: "{{ item.type }}"
records: "{{ item.records }}"
with_items:
- - { name: 'servera', type: 'A', records: [ { entry: '10.10.10.20' }, { entry: '10.10.10.21' }] }
- - { name: 'serverb', type: 'A', records: [ { entry: '10.10.10.30' }, { entry: '10.10.10.41' }] }
- - { name: 'serverc', type: 'A', records: [ { entry: '10.10.10.40' }, { entry: '10.10.10.41' }] }
+ - {name: 'servera', type: 'A', records: [{entry: '10.10.10.20'}, {entry: '10.10.10.21'}]}
+ - {name: 'serverb', type: 'A', records: [{entry: '10.10.10.30'}, {entry: '10.10.10.41'}]}
+ - {name: 'serverc', type: 'A', records: [{entry: '10.10.10.40'}, {entry: '10.10.10.41'}]}
- name: create SRV records in a new record set
azure_rm_dnsrecordset:
@@ -163,11 +163,11 @@ EXAMPLES = '''
time_to_live: 7200
record_type: SRV
records:
- - entry: sip.testing.com
- preference: 10
- priority: 20
- weight: 10
- port: 5060
+ - entry: sip.testing.com
+ preference: 10
+ priority: 20
+ weight: 10
+ port: 5060
- name: create PTR record in a new record set
azure_rm_dnsrecordset:
@@ -176,7 +176,7 @@ EXAMPLES = '''
zone_name: testing.com
record_type: PTR
records:
- - entry: servera.testing.com
+ - entry: servera.testing.com
- name: create TXT record in a new record set
azure_rm_dnsrecordset:
@@ -185,7 +185,7 @@ EXAMPLES = '''
zone_name: testing.com
record_type: TXT
records:
- - entry: 'v=spf1 a -all'
+ - entry: 'v=spf1 a -all'
- name: Update SOA record
azure_rm_dnsrecordset:
@@ -201,7 +201,6 @@ EXAMPLES = '''
retry_time: 399
expire_time: 2419299
minimum_ttl: 399
-
'''
RETURN = '''
@@ -277,12 +276,9 @@ state:
]
'''
-import inspect
-import sys
import copy
from ansible.module_utils.basic import _load_params
-from ansible.module_utils.six import iteritems
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone.py
index f5033be38..3d95d33a7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone.py
@@ -37,20 +37,24 @@ options:
description:
- name of resource group.
required: true
+ type: str
name:
description:
- Name of the DNS zone.
required: true
+ type: str
state:
description:
- Assert the state of the zone. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
type:
description:
- The type of this DNS zone (C(public) or C(private)).
+ type: str
choices:
- public
- private
@@ -89,7 +93,6 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: example.com
state: absent
-
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone_info.py
index 8a37a131d..75a228e6b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_dnszone_info.py
@@ -23,9 +23,11 @@ options:
resource_group:
description:
- Limit results by resource group. Required when filtering by name.
+ type: str
name:
description:
- Only show results for a specific zone.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -81,14 +83,17 @@ dnszones:
description:
- id of the DNS Zone.
sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/dnszones/azure.com"
+ type: str
name:
description:
- name of the DNS zone.
sample: azure.com
+ type: str
type:
description:
- The type of this DNS zone (C(public) or C(private)).
sample: private
+ type: str
registration_virtual_networks:
description:
- A list of references to virtual networks that register hostnames in this DNS zone.
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub.py
index ecc8bc424..5da748a17 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub.py
@@ -99,7 +99,7 @@ EXAMPLES = '''
namespace_name: myNamespace
name: myhub
tags:
- - a: b
+ - a: b
sku: free
- name: Delete Event Hub
@@ -122,7 +122,6 @@ EXAMPLES = '''
resource_group: testgroupans
namespace_name: myNamespace
state: absent
-
'''
RETURN = '''
@@ -157,7 +156,6 @@ state:
'''
try:
- from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.eventhub.models import Eventhub, EHNamespace
from azure.mgmt.eventhub.models import Sku
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub_info.py
index 9e0084ca6..c62ef3a7b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_eventhub_info.py
@@ -38,10 +38,10 @@ author:
EXAMPLES = '''
- - name: Get facts of specific Event hub
- community.azure.azure_rm_eventhub_info:
- resource_group: myResourceGroup
- name: myEventHub
+- name: Get facts of specific Event hub
+ community.azure.azure_rm_eventhub_info:
+ resource_group: myResourceGroup
+ name: myEventHub
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute.py
index 93b53dc70..fa585f90d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute.py
@@ -113,9 +113,9 @@ EXAMPLES = '''
allow_classic_operations: true
global_reach_enabled: false
tags:
- - a: b
+ - a: b
authorizations:
- - name: authorization_test
+ - name: authorization_test
service_provider_properties:
service_provider_name: Aryaka Networks
peering_location: Seattle
@@ -129,7 +129,6 @@ EXAMPLES = '''
resource_group: rg
name: exp
state: absent
-
'''
RETURN = '''
@@ -179,7 +178,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.network import NetworkManagementClient
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute_info.py
index fead26069..b23ef3dde 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_expressroute_info.py
@@ -42,13 +42,12 @@ author:
EXAMPLES = '''
- - name: Get facts of specific expressroute
- community.azure.azure_rm_expressroute_info:
- resource_group: myResourceGroup
- name: myExpressRoute
- tags:
- - key:value
-
+- name: Get facts of specific expressroute
+ community.azure.azure_rm_expressroute_info:
+ resource_group: myResourceGroup
+ name: myExpressRoute
+ tags:
+ - key:value
'''
RETURN = '''
@@ -98,8 +97,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.network import NetworkManagementClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy.py
index e7dfdafe2..dab7f5403 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy.py
@@ -246,7 +246,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, \
format_resource_id, normalize_location_name
import copy
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy_info.py
index 2c5c6c5dc..4dc7c7053 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_firewallpolicy_info.py
@@ -104,7 +104,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.common import AzureMissingResourceHttpError, AzureHttpError
except Exception:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp.py
index cf0bc00b0..a76a94ef9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp.py
@@ -22,13 +22,16 @@ options:
required: true
aliases:
- resource_group_name
+ type: str
name:
description:
- Name of the Azure Function App.
required: true
+ type: str
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
plan:
description:
- App service plan.
@@ -38,35 +41,46 @@ options:
- It can be a dict which contains C(name), C(resource_group).
- C(name). Name of app service plan.
- C(resource_group). Resource group name of app service plan.
+ type: raw
container_settings:
- description: Web app container settings.
+ description:
+ - Web app container settings.
+ type: dict
suboptions:
name:
description:
- Name of container. For example "imagename:tag".
+ required: True
+ type: str
registry_server_url:
description:
- Container registry server url. For example C(mydockerregistry.io).
+ type: str
registry_server_user:
description:
- The container registry server user name.
+ type: str
registry_server_password:
description:
- The container registry server password.
+ type: str
storage_account:
description:
- Name of the storage account to use.
- required: true
+ - Required when creating.
+ type: str
aliases:
- storage
- storage_account_name
app_settings:
description:
- Dictionary containing application settings.
+ type: dict
state:
description:
- Assert the state of the Function App. Use C(present) to create or update a Function App and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp_info.py
index 3b4904e35..4a33fb684 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_functionapp_info.py
@@ -19,11 +19,13 @@ options:
name:
description:
- Only show results for a specific Function App.
+ type: str
resource_group:
description:
- Limit results to a resource group. Required when filtering by name.
aliases:
- resource_group_name
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -38,19 +40,19 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one Function App
- azure_rm_functionapp_info:
- resource_group: myResourceGroup
- name: myfunctionapp
+- name: Get facts for one Function App
+ azure_rm_functionapp_info:
+ resource_group: myResourceGroup
+ name: myfunctionapp
- - name: Get facts for all Function Apps in a resource group
- azure_rm_functionapp_info:
- resource_group: myResourceGroup
+- name: Get facts for all Function Apps in a resource group
+ azure_rm_functionapp_info:
+ resource_group: myResourceGroup
- - name: Get facts for all Function Apps by tags
- azure_rm_functionapp_info:
- tags:
- - testing
+- name: Get facts for all Function Apps by tags
+ azure_rm_functionapp_info:
+ tags:
+ - testing
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery.py
index 3b5e14408..cb902ace7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery.py
@@ -72,15 +72,8 @@ id:
import time
import json
-import re
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -152,6 +145,7 @@ class AzureRMGalleries(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -243,14 +237,14 @@ class AzureRMGalleries(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the Gallery instance.')
self.fail('Error creating the Gallery instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -265,7 +259,7 @@ class AzureRMGalleries(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the Gallery instance.')
self.fail('Error deleting the Gallery instance: {0}'.format(str(e)))
@@ -283,11 +277,11 @@ class AzureRMGalleries(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("AzureFirewall instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the AzureFirewall instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery_info.py
index 58cb29dd5..cd02bec28 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_gallery_info.py
@@ -41,7 +41,6 @@ EXAMPLES = '''
azure_rm_gallery_info:
resource_group: myResourceGroup
name: myGallery
-
'''
RETURN = '''
@@ -90,16 +89,9 @@ galleries:
'''
-import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except Exception:
- # handled in azure_rm_common
- pass
class AzureRMGalleriesInfo(AzureRMModuleBase):
@@ -136,6 +128,7 @@ class AzureRMGalleriesInfo(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and self.name is not None):
@@ -174,9 +167,9 @@ class AzureRMGalleriesInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return self.format_item(results)
@@ -204,9 +197,9 @@ class AzureRMGalleriesInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
@@ -231,9 +224,9 @@ class AzureRMGalleriesInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage.py
index a0335fa01..c14aedd4a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage.py
@@ -56,18 +56,18 @@ options:
os_type:
description:
- This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image.
+ - Required when creating.
choices:
- windows
- linux
- required: true
type: str
os_state:
description:
- The allowed values for OS State are C(generalized).
+ - Required when creating.
choices:
- generalized
- specialized
- required: true
type: str
hypervgeneration:
description:
@@ -86,7 +86,7 @@ options:
identifier:
description:
- Image identifier.
- required: true
+ - Required when creating.
type: dict
suboptions:
publisher:
@@ -144,6 +144,7 @@ options:
description:
- A list of disallowed disk types.
type: list
+ elements: str
purchase_plan:
description:
- Purchase plan.
@@ -205,15 +206,8 @@ id:
import time
import json
-import re
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -338,6 +332,7 @@ class AzureRMGalleryImages(AzureRMModuleBaseExt):
options=dict(
disk_types=dict(
type='list',
+ elements='str',
disposition='diskTypes'
)
)
@@ -399,6 +394,7 @@ class AzureRMGalleryImages(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -492,14 +488,14 @@ class AzureRMGalleryImages(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the GalleryImage instance.')
self.fail('Error creating the GalleryImage instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -514,7 +510,7 @@ class AzureRMGalleryImages(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the GalleryImage instance.')
self.fail('Error deleting the GalleryImage instance: {0}'.format(str(e)))
@@ -532,11 +528,11 @@ class AzureRMGalleryImages(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("AzureFirewall instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the AzureFirewall instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage_info.py
index 90bcbe244..0f1c5020f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimage_info.py
@@ -47,7 +47,6 @@ EXAMPLES = '''
resource_group: myResourceGroup
gallery_name: myGallery
name: myImage
-
'''
RETURN = '''
@@ -85,12 +84,12 @@ images:
os_state:
description:
- The allowed values for OS State are C(generalized).
- type: OperatingSystemStateTypes
+ type: str
sample: "Generalized"
os_type:
description:
- This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image.
- type: OperatingSystemTypes
+ type: str
sample: "linux/windows"
identifier:
description:
@@ -115,16 +114,9 @@ images:
'''
-import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except Exception:
- # handled in azure_rm_common
- pass
class AzureRMGalleryImagesInfo(AzureRMModuleBase):
@@ -167,6 +159,7 @@ class AzureRMGalleryImagesInfo(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and
@@ -208,9 +201,9 @@ class AzureRMGalleryImagesInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return self.format_item(results)
@@ -241,9 +234,9 @@ class AzureRMGalleryImagesInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py
index c539e3d4a..9d61bf874 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion.py
@@ -45,7 +45,7 @@ options:
storage_profile:
description:
- Storage profile
- required: true
+ - Required when creating.
type: dict
suboptions:
source_image:
@@ -59,12 +59,12 @@ options:
description:
- os disk snapshot
- Mutual exclusive with source_image
- type: raw
+ type: dict
suboptions:
source:
description:
- Reference to os disk snapshot. Could be resource ID or dictionary containing I(resource_group) and I(name)
- type: str
+ type: raw
host_caching:
description:
- host disk caching
@@ -79,11 +79,12 @@ options:
- list of data disk snapshot
- Mutual exclusive with source_image
type: list
+ elements: raw
suboptions:
source:
description:
- Reference to data disk snapshot. Could be resource ID or dictionary containing I(resource_group) and I(name)
- type: str
+ type: raw
lun:
description:
- lun of the data disk
@@ -100,7 +101,6 @@ options:
publishing_profile:
description:
- Publishing profile.
- required: true
type: dict
suboptions:
target_regions:
@@ -108,17 +108,19 @@ options:
- The target regions where the Image Version is going to be replicated to.
- This property is updatable.
type: list
+ elements: raw
suboptions:
name:
description:
- Region name.
type: str
+ required: true
regional_replica_count:
description:
- The number of replicas of the Image Version to be created per region.
- This property would take effect for a region when regionalReplicaCount is not specified.
- This property is updatable.
- type: str
+ type: int
storage_account_type:
description:
- Storage account type.
@@ -127,10 +129,12 @@ options:
description:
- Managed image reference, could be resource ID, or dictionary containing I(resource_group) and I(name)
- Obsolete since 2.10, use storage_profile instead
+ type: raw
snapshot:
description:
- Source snapshot to be used.
- Obsolete since 2.10, use storage_profile instead
+ type: raw
replica_count:
description:
- The number of replicas of the Image Version to be created per region.
@@ -152,6 +156,9 @@ options:
- Specifies the storage account type to be used to store the image.
- This property is not updatable.
type: str
+ choices:
+ - Standard_LRS
+ - Standard_ZRS
state:
description:
- Assert the state of the GalleryImageVersion.
@@ -179,7 +186,7 @@ EXAMPLES = '''
location: East US
publishing_profile:
end_of_life_date: "2020-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 4
storage_account_type: Standard_LRS
target_regions:
@@ -189,7 +196,7 @@ EXAMPLES = '''
regional_replica_count: 3
storage_account_type: Standard_LRS
storage_profile:
- source_image: /subscriptions/sub123/resourceGroups/group123/providers/Microsoft.Compute/images/myOsImage
+ source_image: /subscriptions/sub123/resourceGroups/group123/providers/Microsoft.Compute/images/myOsImage
- name: Create a gallery image version from another gallery image version
azure_rm_galleryimageversion:
@@ -200,7 +207,7 @@ EXAMPLES = '''
location: East US
publishing_profile:
end_of_life_date: "2020-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 4
storage_account_type: Standard_LRS
target_regions:
@@ -210,10 +217,10 @@ EXAMPLES = '''
regional_replica_count: 3
storage_account_type: Standard_LRS
storage_profile:
- source_image:
- version: 1.1.0
- gallery_name: myGallery2
- gallery_image_name: myGalleryImage2
+ source_image:
+ version: 1.1.0
+ gallery_name: myGallery2
+ gallery_image_name: myGalleryImage2
- name: Create gallery image by using one os dist snapshot and zero or many data disk snapshots
azure_rm_galleryimageversion:
@@ -224,7 +231,7 @@ EXAMPLES = '''
location: East US
publishing_profile:
end_of_life_date: "2020-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 1
storage_account_type: Standard_LRS
target_regions:
@@ -233,13 +240,13 @@ EXAMPLES = '''
storage_account_type: Standard_LRS
storage_profile:
os_disk:
- source: "/subscriptions/mySub/resourceGroups/myGroup/providers/Microsoft.Compute/snapshots/os_snapshot_vma"
+ source: "/subscriptions/mySub/resourceGroups/myGroup/providers/Microsoft.Compute/snapshots/os_snapshot_vma"
data_disks:
- - lun: 0
- source:
- name: data_snapshot_vma
- - lun: 1
- source: "/subscriptions/mySub/resourceGroups/myGroup/providers/Microsoft.Compute/snapshots/data_snapshot_vmb"
+ - lun: 0
+ source:
+ name: data_snapshot_vma
+ - lun: 1
+ source: "/subscriptions/mySub/resourceGroups/myGroup/providers/Microsoft.Compute/snapshots/data_snapshot_vmb"
'''
RETURN = '''
@@ -256,11 +263,6 @@ import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # This is handled in azure_rm_common
- pass
class Actions:
@@ -347,6 +349,7 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
),
data_disks=dict(
type='list',
+ elements='raw',
disposition='dataDiskImages',
purgeIfNone=True,
options=dict(
@@ -376,6 +379,7 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
options=dict(
target_regions=dict(
type='list',
+ elements='raw',
disposition='targetRegions',
options=dict(
name=dict(
@@ -481,6 +485,7 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -574,14 +579,14 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the GalleryImageVersion instance.')
self.fail('Error creating the GalleryImageVersion instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
while response['properties']['provisioningState'] == 'Creating':
time.sleep(60)
@@ -600,7 +605,7 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the GalleryImageVersion instance.')
self.fail('Error deleting the GalleryImageVersion instance: {0}'.format(str(e)))
return True
@@ -617,11 +622,11 @@ class AzureRMGalleryImageVersions(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("AzureFirewall instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the AzureFirewall instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion_info.py
index 1d448ca12..b4c7e89a2 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_galleryimageversion_info.py
@@ -54,7 +54,6 @@ EXAMPLES = '''
gallery_name: myGallery
gallery_image_name: myImage
name: myVersion
-
'''
RETURN = '''
@@ -101,16 +100,9 @@ versions:
'''
-import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-from copy import deepcopy
-try:
- from msrestazure.azure_exceptions import CloudError
-except Exception:
- # handled in azure_rm_common
- pass
class AzureRMGalleryImageVersionsInfo(AzureRMModuleBase):
@@ -158,6 +150,7 @@ class AzureRMGalleryImageVersionsInfo(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and
@@ -202,9 +195,9 @@ class AzureRMGalleryImageVersionsInfo(AzureRMModuleBase):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return self.format_item(results)
@@ -247,7 +240,7 @@ class AzureRMGalleryImageVersionsInfo(AzureRMModuleBase):
0,
0)
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
if isinstance(response, dict):
if response.get('value'):
results['response'] = results['response'] + response['value']
@@ -259,7 +252,7 @@ class AzureRMGalleryImageVersionsInfo(AzureRMModuleBase):
if not skiptoken:
break
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['response']] if results['response'] else []
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster.py
index ce498df22..2ce7e16f3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster.py
@@ -21,34 +21,42 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
name:
description:
- The name of the cluster.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
cluster_version:
description:
- The version of the cluster. For example C(3.6).
+ type: str
os_type:
description:
- The type of operating system.
+ type: str
choices:
- 'linux'
tier:
description:
- The cluster tier.
+ type: str
choices:
- 'standard'
- 'premium'
cluster_definition:
description:
- The cluster definition.
+ type: dict
suboptions:
kind:
description:
- The type of cluster.
+ type: str
choices:
- hadoop
- spark
@@ -57,17 +65,21 @@ options:
gateway_rest_username:
description:
- Gateway REST user name.
+ type: str
gateway_rest_password:
description:
- Gateway REST password.
+ type: str
compute_profile_roles:
description:
- The list of roles in the cluster.
type: list
+ elements: dict
suboptions:
name:
description:
- The name of the role.
+ type: str
choices:
- 'headnode'
- 'workernode'
@@ -75,47 +87,59 @@ options:
min_instance_count:
description:
- The minimum instance count of the cluster.
+ type: int
target_instance_count:
description:
- The instance count of the cluster.
+ type: int
vm_size:
description:
- The size of the VM.
+ type: str
linux_profile:
description:
- The Linux OS profile.
+ type: dict
suboptions:
username:
description:
- SSH user name.
+ type: str
password:
description:
- SSH password.
+ type: str
storage_accounts:
description:
- The list of storage accounts in the cluster.
type: list
+ elements: dict
suboptions:
name:
description:
- Blob storage endpoint. For example storage_account_name.blob.core.windows.net.
+ type: str
is_default:
description:
- Whether or not the storage account is the default storage account.
+ type: bool
container:
description:
- The container in the storage account.
+ type: str
key:
description:
- The storage account access key.
+ type: str
state:
- description:
- - Assert the state of the cluster.
- - Use C(present) to create or update a cluster and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the cluster.
+ - Use C(present) to create or update a cluster and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -141,14 +165,13 @@ EXAMPLES = '''
gateway_rest_password: MuABCPassword!!@123
storage_accounts:
- name: myStorageAccount.blob.core.windows.net
- is_default: yes
+ is_default: true
container: myContainer
key: GExmaxH4lDNdHA9nwAsCt8t4AOQas2y9vXQP1kKALTram7Q3/5xLVIab3+nYG1x63Xyak9/VXxQyNBHA9pDWw==
compute_profile_roles:
- name: headnode
target_instance_count: 2
- hardware_profile:
- vm_size: Standard_D3
+ vm_size: Standard_D3
linux_profile:
username: sshuser
password: MuABCPassword!!@123
@@ -169,15 +192,12 @@ id:
sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.HDInsight/clusters/myCluster
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.mgmt.hdinsight import HDInsightManagementClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -219,10 +239,31 @@ class AzureRMClusters(AzureRMModuleBase):
type='dict'
),
compute_profile_roles=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ name=dict(type='str', choices=['headnode', 'workernode', 'zookepernode']),
+ min_instance_count=dict(type='int'),
+ target_instance_count=dict(type='int'),
+ vm_size=dict(type='str'),
+ linux_profile=dict(
+ type='dict',
+ options=dict(
+ username=dict(type='str'),
+ password=dict(type='str', no_log=True)
+ )
+ ),
+ )
),
storage_accounts=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ name=dict(type='str'),
+ is_default=dict(type='bool'),
+ container=dict(type='str'),
+ key=dict(type='str', no_log=True)
+ )
),
state=dict(
type='str',
@@ -360,21 +401,21 @@ class AzureRMClusters(AzureRMModuleBase):
response = self.mgmt_client.clusters.begin_create(resource_group_name=self.resource_group,
cluster_name=self.name,
parameters=self.parameters)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
else:
if self.tags_changed:
response = self.mgmt_client.clusters.update(resource_group_name=self.resource_group,
cluster_name=self.name,
parameters={'tags': self.parameters.get('tags')})
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
if self.new_instance_count:
response = self.mgmt_client.clusters.begin_resize(resource_group_name=self.resource_group,
cluster_name=self.name,
role_name='workernode',
parameters={'target_instance_count': self.new_instance_count})
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.fail("Error creating or updating Cluster instance: {0}".format(str(exc)))
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster_info.py
index 09dce3ee3..afb3211ea 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hdinsightcluster_info.py
@@ -20,9 +20,11 @@ options:
resource_group:
description:
- Name of an Azure resource group.
+ type: str
name:
description:
- HDInsight cluster name.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -38,16 +40,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of HDInsight Cluster
- azure_rm_hdinsightcluster_info:
- resource_group: myResourceGroup
- name: myCluster
-
- - name: List instances of HDInsight Cluster
- azure_rm_hdinsightcluster_info:
- resource_group: myResourceGroup
- tags:
- - key:value
+- name: Get instance of HDInsight Cluster
+ azure_rm_hdinsightcluster_info:
+ resource_group: myResourceGroup
+ name: myCluster
+
+- name: List instances of HDInsight Cluster
+ azure_rm_hdinsightcluster_info:
+ resource_group: myResourceGroup
+ tags:
+ - key:value
'''
RETURN = '''
@@ -102,6 +104,7 @@ clusters:
cluster_definition:
description:
- The cluster definition.
+ type: complex
contains:
kind:
description:
@@ -112,7 +115,7 @@ clusters:
compute_profile_roles:
description:
- The list of roles in the cluster.
- type: list
+ type: complex
contains:
name:
description:
@@ -135,6 +138,7 @@ clusters:
linux_profile:
description:
- The Linux OS profile.
+ type: dict
contains:
username:
description:
@@ -145,7 +149,7 @@ clusters:
connectivity_endpoints:
description:
- Cluster's connectivity endpoints.
- type: list
+ type: complex
contains:
location:
description:
@@ -175,17 +179,15 @@ clusters:
description:
- The tags of the resource.
returned: always
- type: complex
+ type: dict
sample: {}
'''
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.common.dict_transformations import _camel_to_snake
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.hdinsight import HDInsightManagementClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hostgroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hostgroup.py
index d7e80bf14..235728b64 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hostgroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_hostgroup.py
@@ -143,7 +143,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, \
normalize_location_name
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_image.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_image.py
index 8c4fb4475..5efd76074 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_image.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_image.py
@@ -39,6 +39,7 @@ options:
- List of data disk sources, including unmanaged blob URI, managed disk id or name, or snapshot id or name.
type: list
elements: str
+ default: []
location:
description:
- Location of the image. Derived from I(resource_group) if not specified.
@@ -87,8 +88,8 @@ EXAMPLES = '''
name: myImage
source: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Compute/disks/disk001
data_disk_sources:
- - datadisk001
- - datadisk002
+ - datadisk001
+ - datadisk002
os_type: Linux
- name: Create an image from os disk via dict
@@ -96,12 +97,12 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: myImage
source:
- type: disks
- resource_group: myResourceGroup
- name: disk001
+ type: disks
+ resource_group: myResourceGroup
+ name: disk001
data_disk_sources:
- - datadisk001
- - datadisk002
+ - datadisk001
+ - datadisk002
os_type: Linux
- name: Delete an image
@@ -124,7 +125,7 @@ id:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
try:
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice.py
index f05198506..be007b8d8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice.py
@@ -108,6 +108,8 @@ EXAMPLES = '''
name: Testing
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- name: Create Azure IoT Edge device
azure_rm_iotdevice:
@@ -115,7 +117,9 @@ EXAMPLES = '''
name: Testing
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- edge_enabled: yes
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ edge_enabled: true
- name: Create Azure IoT Hub device with device twin properties and tag
azure_rm_iotdevice:
@@ -123,13 +127,15 @@ EXAMPLES = '''
name: Testing
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
twin_tags:
- location:
- country: US
- city: Redmond
- sensor: humidity
+ location:
+ country: US
+ city: Redmond
+ sensor: humidity
desired:
- period: 100
+ period: 100
'''
RETURN = '''
@@ -219,16 +225,12 @@ device:
}
''' # NOQA
-import json
-import copy
import re
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.tools import parse_resource_id
- from msrestazure.azure_exceptions import CloudError
+ from azure.iot.hub import IoTHubRegistryManager
except ImportError:
# This is handled in azure_rm_common
pass
@@ -272,14 +274,7 @@ class AzureRMIoTDevice(AzureRMModuleBase):
self.secondary_key = None
self._base_url = None
- self._mgmt_client = None
- self.query_parameters = {
- 'api-version': '2018-06-30'
- }
- self.header_parameters = {
- 'Content-Type': 'application/json; charset=utf-8',
- 'accept-language': 'en-US'
- }
+ self.mgmt_client = None
super(AzureRMIoTDevice, self).__init__(self.module_arg_spec, supports_check_mode=True)
def exec_module(self, **kwargs):
@@ -288,38 +283,23 @@ class AzureRMIoTDevice(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self._base_url = '{0}.azure-devices.net'.format(self.hub)
- config = {
- 'base_url': self._base_url,
- 'key': self.hub_policy_key,
- 'policy': self.hub_policy_name
- }
- self._mgmt_client = self.get_data_svc_client(**config)
+
+ connect_str = "HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}".format(self._base_url, self.hub_policy_name, self.hub_policy_key)
+ self.mgmt_client = IoTHubRegistryManager.from_connection_string(connect_str)
changed = False
+ update_changed = False
device = self.get_device()
+
+ if self.status is not None and not self.status:
+ device['status'] = 'disabled'
+
if self.state == 'present':
if not device:
changed = True
- auth = {'type': _snake_to_camel(self.auth_method)}
- if self.auth_method == 'self_signed':
- auth['x509Thumbprint'] = {
- 'primaryThumbprint': self.primary_key,
- 'secondaryThumbprint': self.secondary_key
- }
- elif self.auth_method == 'sas':
- auth['symmetricKey'] = {
- 'primaryKey': self.primary_key,
- 'secondaryKey': self.secondary_key
- }
- device = {
- 'deviceId': self.name,
- 'capabilities': {'iotEdge': self.edge_enabled or False},
- 'authentication': auth
- }
- if self.status is not None and not self.status:
- device['status'] = 'disabled'
else:
+ update_changed = True
if self.edge_enabled is not None and self.edge_enabled != device['capabilities']['iotEdge']:
changed = True
device['capabilities']['iotEdge'] = self.edge_enabled
@@ -328,9 +308,14 @@ class AzureRMIoTDevice(AzureRMModuleBase):
if status != device['status']:
changed = True
device['status'] = status
- if changed and not self.check_mode:
- device = self.create_or_update_device(device)
+ if not self.check_mode:
+ if changed and update_changed:
+ device = self.update_device(device)
+ elif changed:
+ device = self.create_device()
+
twin = self.get_twin()
+
if twin:
if not twin.get('tags'):
twin['tags'] = dict()
@@ -340,18 +325,26 @@ class AzureRMIoTDevice(AzureRMModuleBase):
if self.desired and not self.is_equal(self.desired, twin['properties']['desired']):
twin_change = True
if twin_change and not self.check_mode:
- self.update_twin(twin)
+ twin_dict = dict()
+ twin_dict['tags'] = self.twin_tags
+ twin_dict['properties'] = dict()
+ twin_dict['properties']['desired'] = self.desired
+
+ twin = self.update_twin(twin_dict)
+
changed = changed or twin_change
device['tags'] = twin.get('tags') or dict()
- device['properties'] = twin['properties']
+ device['properties'] = twin.get('properties') or dict()
device['modules'] = self.list_device_modules()
elif self.twin_tags or self.desired:
self.fail("Device twin is not supported in IoT Hub with basic tier.")
- elif device:
+ else:
if not self.check_mode:
- self.delete_device(device['etag'])
- changed = True
- device = None
+ if device:
+ changed = True
+ self.delete_device(device['etag'])
+ else:
+ changed = True
self.results = device or dict()
self.results['changed'] = changed
return self.results
@@ -376,83 +369,140 @@ class AzureRMIoTDevice(AzureRMModuleBase):
original[key] = updated_value
return not changed
- def create_or_update_device(self, device):
+ def update_device(self, device):
+ response = None
try:
- url = '/devices/{0}'.format(self.name)
- headers = copy.copy(self.header_parameters)
- if device.get('etag'):
- headers['If-Match'] = '"{0}"'.format(device['etag'])
- request = self._mgmt_client.put(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers, content=device)
- if response.status_code not in [200, 201, 202]:
- raise CloudError(response)
- return json.loads(response.text)
+ if self.auth_method == 'sas':
+ response = self.mgmt_client.update_device_with_sas(self.name, device['etag'],
+ self.primary_key, self.secondary_key, self.status, iot_edge=self.edge_enabled)
+ elif self.auth_method == 'self_signed':
+ response = self.mgmt_client.update_device_with_certificate_authority(self.name, self.status, iot_edge=self.edge_enabled)
+ elif self.auth_method == 'certificate_authority':
+ response = self.mgmt_client.update_device_with_x509(self.name, device['etag'], self.primary_thumbprint,
+ self.secondary_thumbprint, self.status, iot_edge=self.edge_enabled)
+
+ return self.format_item(response)
except Exception as exc:
- if exc.status_code in [403] and self.edge_enabled:
- self.fail('Edge device is not supported in IoT Hub with Basic tier.')
- else:
- self.fail('Error when creating or updating IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+ self.fail('Error when creating or updating IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+
+ def create_device(self):
+ response = None
+ try:
+ if self.auth_method == 'sas':
+ response = self.mgmt_client.create_device_with_sas(self.name, self.primary_key, self.secondary_key, self.status, iot_edge=self.edge_enabled)
+ elif self.auth_method == 'self_signed':
+ response = self.mgmt_client.create_device_with_certificate_authority(self.name, self.status, iot_edge=self.edge_enabled)
+ elif self.auth_method == 'certificate_authority':
+ response = self.mgmt_client.create_device_with_x509(self.name,
+ self.primary_thumbprint, self.secondary_thumbprint, self.status, iot_edge=self.edge_enabled)
+
+ return self.format_item(response)
+ except Exception as exc:
+ self.fail('Error when creating or updating IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
def delete_device(self, etag):
try:
- url = '/devices/{0}'.format(self.name)
- headers = copy.copy(self.header_parameters)
- headers['If-Match'] = '"{0}"'.format(etag)
- request = self._mgmt_client.delete(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers)
- if response.status_code not in [204]:
- raise CloudError(response)
+ response = self.mgmt_client.delete_device(self.name, etag=etag)
+ return response
+
except Exception as exc:
self.fail('Error when deleting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
def get_device(self):
try:
- url = '/devices/{0}'.format(self.name)
- device = self._https_get(url, self.query_parameters, self.header_parameters)
- return device
+ response = self.mgmt_client.get_device(self.name)
+
+ response = self.format_item(response)
+ return response
except Exception as exc:
- if exc.status_code in [404]:
- return None
- else:
- self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+ self.log('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc))
def get_twin(self):
try:
- url = '/twins/{0}'.format(self.name)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = self.mgmt_client.get_twin(self.name)
+ return self.format_twin(response)
except Exception as exc:
- if exc.status_code in [403]:
- # The Basic sku has nothing to to with twin
- return None
- else:
- self.fail('Error when getting IoT Hub device {0} twin: {1}'.format(self.name, exc.message or str(exc)))
+ self.fail('Error when getting IoT Hub device {0} twin: {1}'.format(self.name, exc.message or str(exc)))
def update_twin(self, twin):
try:
- url = '/twins/{0}'.format(self.name)
- headers = copy.copy(self.header_parameters)
- headers['If-Match'] = '"{0}"'.format(twin['etag'])
- request = self._mgmt_client.patch(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers, content=twin)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
+ response = self.mgmt_client.update_twin(self.name, twin)
+
+ return self.format_twin(response)
except Exception as exc:
self.fail('Error when creating or updating IoT Hub device twin {0}: {1}'.format(self.name, exc.message or str(exc)))
def list_device_modules(self):
try:
- url = '/devices/{0}/modules'.format(self.name)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = None
+ response = self.mgmt_client.get_modules(self.name)
+
+ response = [self.format_item(item) for item in response]
+ return response
+
except Exception as exc:
- self.fail('Error when listing IoT Hub device {0} modules: {1}'.format(self.name, exc.message or str(exc)))
-
- def _https_get(self, url, query_parameters, header_parameters):
- request = self._mgmt_client.get(url, query_parameters)
- response = self._mgmt_client.send(request=request, headers=header_parameters, content=None)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
+ if hasattr(exc, 'message'):
+ pass
+ else:
+ self.fail('Error when listing IoT Hub devices in {0}: {1}'.format(self.hub, exc))
+
+ def format_twin(self, item):
+ if not item:
+ return None
+ format_twin = dict(
+ device_id=item.device_id,
+ module_id=item.module_id,
+ tags=item.tags,
+ properties=dict(),
+ etag=item.etag,
+ version=item.version,
+ device_etag=item.device_etag,
+ status=item.status,
+ cloud_to_device_message_count=item.cloud_to_device_message_count,
+ authentication_type=item.authentication_type,
+ )
+ if item.properties is not None:
+ format_twin['properties']['desired'] = item.properties.desired
+ format_twin['properties']['reported'] = item.properties.reported
+
+ return format_twin
+
+ def format_item(self, item):
+ if not item:
+ return None
+ format_item = dict(
+ authentication=dict(),
+ capabilities=dict(),
+ cloudToDeviceMessageCount=item.cloud_to_device_message_count,
+ connectionState=item.connection_state,
+ connectionStateUpdatedTime=item.connection_state_updated_time,
+ deviceId=item.device_id,
+ etag=item.etag,
+ generationId=item.generation_id,
+ lastActivityTime=item.last_activity_time
+ )
+ if hasattr(item, 'status_updated_time'):
+ format_item['statusUpdatedTime'] = item.status_updated_time
+ if hasattr(item, 'status_reason'):
+ format_item['status_reason'] = item.status_reason
+ if hasattr(item, 'status'):
+ format_item['status'] = item.status
+ if hasattr(item, 'modules'):
+ format_item['modules'] = item.modules
+ if item.authentication:
+ format_item['authentication']['symmetricKey'] = dict()
+ format_item['authentication']['symmetricKey']['primaryKey'] = item.authentication.symmetric_key.primary_key
+ format_item['authentication']['symmetricKey']['secondaryKey'] = item.authentication.symmetric_key.secondary_key
+
+ format_item['authentication']['type'] = item.authentication.type
+ format_item['authentication']["x509Thumbprint"] = dict()
+ format_item['authentication']["x509Thumbprint"]["primaryThumbprint"] = item.authentication.x509_thumbprint.primary_thumbprint
+ format_item['authentication']["x509Thumbprint"]['secondaryThumbprint'] = item.authentication.x509_thumbprint.secondary_thumbprint
+ format_item['capabilities'] = dict()
+ if hasattr(item, 'capabilities') and item.capabilities is not None:
+ format_item['capabilities']["iotEdge"] = item.capabilities.iot_edge
+
+ return format_item
def main():
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice_info.py
index ef82bdc17..359192f47 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevice_info.py
@@ -69,9 +69,15 @@ EXAMPLES = '''
hub_policy_name: registryRead
hub_policy_key: XXXXXXXXXXXXXXXXXXXX
+- name: Query devices
+ azure_rm_iotdevice_info:
+ hub: "hub{{ rpfx }}"
+ query: "SELECT * FROM devices"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
+
- name: Query all device modules in an IoT Hub
azure_rm_iotdevice_info:
- query: "SELECT * FROM devices.modules"
hub: MyIoTHub
hub_policy_name: registryRead
hub_policy_key: XXXXXXXXXXXXXXXXXXXX
@@ -170,14 +176,10 @@ iot_devices:
}
''' # NOQA
-import json
-
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
-from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.tools import parse_resource_id
- from msrestazure.azure_exceptions import CloudError
+ from azure.iot.hub import IoTHubRegistryManager
except ImportError:
# This is handled in azure_rm_common
pass
@@ -208,16 +210,11 @@ class AzureRMIoTDeviceFacts(AzureRMModuleBase):
self.hub_policy_name = None
self.hub_policy_key = None
self.top = None
+ self.query = None
- self._mgmt_client = None
+ self.mgmt_client = None
self._base_url = None
- self.query_parameters = {
- 'api-version': '2018-06-30'
- }
- self.header_parameters = {
- 'Content-Type': 'application/json; charset=utf-8',
- 'accept-language': 'en-US'
- }
+
super(AzureRMIoTDeviceFacts, self).__init__(self.module_arg_spec, supports_check_mode=True)
def exec_module(self, **kwargs):
@@ -226,21 +223,16 @@ class AzureRMIoTDeviceFacts(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self._base_url = '{0}.azure-devices.net'.format(self.hub)
- config = {
- 'base_url': self._base_url,
- 'key': self.hub_policy_key,
- 'policy': self.hub_policy_name
- }
- if self.top:
- self.query_parameters['top'] = self.top
- self._mgmt_client = self.get_data_svc_client(**config)
+
+ connect_str = "HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}".format(self._base_url, self.hub_policy_name, self.hub_policy_key)
+ self.mgmt_client = IoTHubRegistryManager.from_connection_string(connect_str)
response = []
if self.module_id:
response = [self.get_device_module()]
elif self.name:
response = [self.get_device()]
- elif self.query:
+ elif self.query is not None:
response = self.hub_query()
else:
response = self.list_devices()
@@ -248,56 +240,140 @@ class AzureRMIoTDeviceFacts(AzureRMModuleBase):
self.results['iot_devices'] = response
return self.results
- def hub_query(self):
- try:
- url = '/devices/query'
- request = self._mgmt_client.post(url, self.query_parameters)
- query = {
- 'query': self.query
- }
- response = self._mgmt_client.send(request=request, headers=self.header_parameters, content=query)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
- except Exception as exc:
- self.fail('Error when running query "{0}" in IoT Hub {1}: {2}'.format(self.query, self.hub, exc.message or str(exc)))
-
def get_device(self):
try:
- url = '/devices/{0}'.format(self.name)
- device = self._https_get(url, self.query_parameters, self.header_parameters)
- device['modules'] = self.list_device_modules()
- return device
+ response = self.mgmt_client.get_device(self.name)
+
+ response = self.format_item(response)
+ return response
except Exception as exc:
- self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+ self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc))
def get_device_module(self):
try:
- url = '/devices/{0}/modules/{1}'.format(self.name, self.module_id)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = self.mgmt_client.get_module(self.name, self.module_id)
+ return self.format_module(response)
except Exception as exc:
- self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+ self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc))
def list_device_modules(self):
try:
- url = '/devices/{0}/modules'.format(self.name)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = self.mgmt_client.get_modules(self.name)
+
+ return [self.format_module(item) for item in response]
except Exception as exc:
- self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+ self.fail('Error when getting IoT Hub device {0}: {1}'.format(self.name, exc))
def list_devices(self):
try:
- url = '/devices'
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = None
+ response = self.mgmt_client.get_devices(max_number_of_devices=1000)
+
+ response = [self.format_item(item) for item in response]
+ if self.top is not None:
+ return response[self.top - 1]
+ else:
+ return response
+ except Exception as exc:
+ if hasattr(exc, 'message'):
+ pass
+ else:
+ self.fail('Error when listing IoT Hub devices in {0}: {1}'.format(self.hub, exc))
+
+ def hub_query(self):
+ try:
+ response = None
+ response = self.mgmt_client.query_iot_hub(dict(query=self.query))
+
+ return [self.format_twin(item) for item in response.items]
+
except Exception as exc:
- self.fail('Error when listing IoT Hub devices in {0}: {1}'.format(self.hub, exc.message or str(exc)))
-
- def _https_get(self, url, query_parameters, header_parameters):
- request = self._mgmt_client.get(url, query_parameters)
- response = self._mgmt_client.send(request=request, headers=header_parameters, content=None)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
+ if hasattr(exc, 'message'):
+ pass
+ else:
+ self.fail('Error when listing IoT Hub devices in {0}: {1}'.format(self.hub, exc))
+
+ def format_module(self, item):
+ if not item:
+ return None
+ format_item = dict(
+ authentication=dict(),
+ cloudToDeviceMessageCount=item.cloud_to_device_message_count,
+ connectionState=item.connection_state,
+ connectionStateUpdatedTime=item.connection_state_updated_time,
+ deviceId=item.device_id,
+ etag=item.etag,
+ generationId=item.generation_id,
+ lastActivityTime=item.last_activity_time,
+ managedBy=item.managed_by,
+ moduleId=item.module_id
+ )
+ if item.authentication:
+ format_item['authentication']['symmetricKey'] = dict()
+ format_item['authentication']['symmetricKey']['primaryKey'] = item.authentication.symmetric_key.primary_key
+ format_item['authentication']['symmetricKey']['secondaryKey'] = item.authentication.symmetric_key.secondary_key
+
+ format_item['authentication']['type'] = item.authentication.type
+ format_item['authentication']["x509Thumbprint"] = dict()
+ format_item['authentication']["x509Thumbprint"]["primaryThumbprint"] = item.authentication.x509_thumbprint.primary_thumbprint
+ format_item['authentication']["x509Thumbprint"]['secondaryThumbprint'] = item.authentication.x509_thumbprint.secondary_thumbprint
+
+ return format_item
+
+ def format_item(self, item):
+ if not item:
+ return None
+ format_item = dict(
+ authentication=dict(),
+ capabilities=dict(),
+ cloudToDeviceMessageCount=item.cloud_to_device_message_count,
+ connectionState=item.connection_state,
+ connectionStateUpdatedTime=item.connection_state_updated_time,
+ deviceId=item.device_id,
+ etag=item.etag,
+ generationId=item.generation_id,
+ lastActivityTime=item.last_activity_time,
+ status=item.status,
+ statusReason=item.status_reason
+ )
+ if hasattr(item, 'status_updated_time'):
+ format_item['statusUpdatedTime'] = item.status_updated_time
+ if hasattr(item, 'modules'):
+ format_item['modules'] = item.modules
+ if item.authentication:
+ format_item['authentication']['symmetricKey'] = dict()
+ format_item['authentication']['symmetricKey']['primaryKey'] = item.authentication.symmetric_key.primary_key
+ format_item['authentication']['symmetricKey']['secondaryKey'] = item.authentication.symmetric_key.secondary_key
+
+ format_item['authentication']['type'] = item.authentication.type
+ format_item['authentication']["x509Thumbprint"] = dict()
+ format_item['authentication']["x509Thumbprint"]["primaryThumbprint"] = item.authentication.x509_thumbprint.primary_thumbprint
+ format_item['authentication']["x509Thumbprint"]['secondaryThumbprint'] = item.authentication.x509_thumbprint.secondary_thumbprint
+ if item.capabilities:
+ format_item['capabilities']["iotEdge"] = item.capabilities.iot_edge
+
+ return format_item
+
+ def format_twin(self, item):
+ if not item:
+ return None
+ format_twin = dict(
+ device_id=item.device_id,
+ module_id=item.module_id,
+ tags=item.tags,
+ properties=dict(),
+ etag=item.etag,
+ version=item.version,
+ device_etag=item.device_etag,
+ status=item.status,
+ cloud_to_device_message_count=item.cloud_to_device_message_count,
+ authentication_type=item.authentication_type,
+ )
+ if item.properties is not None:
+ format_twin['properties']['desired'] = item.properties.desired
+ format_twin['properties']['reported'] = item.properties.reported
+
+ return format_twin
def main():
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevicemodule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevicemodule.py
index d23435130..2f2ad679d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevicemodule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iotdevicemodule.py
@@ -103,6 +103,8 @@ EXAMPLES = '''
device: mydevice
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- name: Create Azure IoT Edge device module
azure_rm_iotdevice:
@@ -111,7 +113,9 @@ EXAMPLES = '''
name: Testing
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- edge_enabled: yes
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ edge_enabled: true
- name: Create Azure IoT Hub device module with module twin properties and tag
azure_rm_iotdevice:
@@ -120,13 +124,15 @@ EXAMPLES = '''
device: mydevice
hub_policy_name: iothubowner
hub_policy_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ primary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ secondary_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
twin_tags:
- location:
- country: US
- city: Redmond
- sensor: humidity
+ location:
+ country: US
+ city: Redmond
+ sensor: humidity
desired:
- period: 100
+ period: 100
'''
RETURN = '''
@@ -159,16 +165,12 @@ module:
}
''' # NOQA
-import json
-import copy
import re
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
-from ansible.module_utils.common.dict_transformations import _snake_to_camel
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.tools import parse_resource_id
- from msrestazure.azure_exceptions import CloudError
+ from azure.iot.hub import IoTHubRegistryManager
except ImportError:
# This is handled in azure_rm_common
pass
@@ -208,16 +210,11 @@ class AzureRMIoTDeviceModule(AzureRMModuleBase):
self.auth_method = None
self.primary_key = None
self.secondary_key = None
+ self.managed_by = None
+ self.etag = None
self._base_url = None
- self._mgmt_client = None
- self.query_parameters = {
- 'api-version': '2018-06-30'
- }
- self.header_parameters = {
- 'Content-Type': 'application/json; charset=utf-8',
- 'accept-language': 'en-US'
- }
+ self.mgmt_client = None
super(AzureRMIoTDeviceModule, self).__init__(self.module_arg_spec, supports_check_mode=True)
def exec_module(self, **kwargs):
@@ -226,12 +223,9 @@ class AzureRMIoTDeviceModule(AzureRMModuleBase):
setattr(self, key, kwargs[key])
self._base_url = '{0}.azure-devices.net'.format(self.hub)
- config = {
- 'base_url': self._base_url,
- 'key': self.hub_policy_key,
- 'policy': self.hub_policy_name
- }
- self._mgmt_client = self.get_data_svc_client(**config)
+ connect_str = "HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}".format(self._base_url, self.hub_policy_name, self.hub_policy_key)
+
+ self.mgmt_client = IoTHubRegistryManager.from_connection_string(connect_str)
changed = False
@@ -239,24 +233,11 @@ class AzureRMIoTDeviceModule(AzureRMModuleBase):
if self.state == 'present':
if not module:
changed = True
- auth = {'type': _snake_to_camel(self.auth_method)}
- if self.auth_method == 'self_signed':
- auth['x509Thumbprint'] = {
- 'primaryThumbprint': self.primary_key,
- 'secondaryThumbprint': self.secondary_key
- }
- elif self.auth_method == 'sas':
- auth['symmetricKey'] = {
- 'primaryKey': self.primary_key,
- 'secondaryKey': self.secondary_key
- }
- module = {
- 'deviceId': self.device,
- 'moduleId': self.name,
- 'authentication': auth
- }
- if changed and not self.check_mode:
- module = self.create_or_update_module(module)
+ if not self.check_mode:
+ module = self.create_module()
+ else:
+ self.etag = module.get('etag')
+
twin = self.get_twin()
if not twin.get('tags'):
twin['tags'] = dict()
@@ -267,15 +248,20 @@ class AzureRMIoTDeviceModule(AzureRMModuleBase):
self.module.warn('desired')
twin_change = True
if twin_change and not self.check_mode:
- twin = self.update_twin(twin)
+ twin_dict = dict()
+ twin_dict['tags'] = self.twin_tags
+ twin_dict['properties'] = dict()
+ twin_dict['properties']['desired'] = self.desired
+ twin = self.update_twin(twin_dict)
+
changed = changed or twin_change
module['tags'] = twin.get('tags') or dict()
- module['properties'] = twin['properties']
- elif module:
- if not self.check_mode:
- self.delete_module(module['etag'])
- changed = True
- module = None
+ module['properties'] = twin.get('properties') or dict()
+ else:
+ if module and not self.check_mode:
+ self.delete_module()
+ changed = True
+
self.results = module or dict()
self.results['changed'] = changed
return self.results
@@ -300,65 +286,114 @@ class AzureRMIoTDeviceModule(AzureRMModuleBase):
original[key] = updated_value
return not changed
- def create_or_update_module(self, module):
+ def update_module(self):
+ response = None
+ try:
+ if self.auth_method == 'sas':
+ response = self.mgmt_client.update_module_with_sas(self.device, self.name, self.managed_by, self.etag, self.primary_key, self.secondary_key)
+ elif self.auth_method == 'self_signed':
+ response = self.mgmt_client.update_module_with_certificate_authority(self.device, self.name, self.managed_by, self.etag)
+ elif self.auth_method == 'certificate_authority':
+ response = self.mgmt_client.update_module_with_x509(self.device,
+ self.name, self.managed_by, self.etag, self.primary_thumbprint, self.secondary_thumbprint)
+
+ return self.format_module(response)
+ except Exception as exc:
+ if exc.status_code in [403] and self.edge_enabled:
+ self.fail('Edge device is not supported in IoT Hub with Basic tier.')
+ else:
+ self.fail('Error when creating or updating IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
+
+ def create_module(self):
+ response = None
try:
- url = '/devices/{0}/modules/{1}'.format(self.device, self.name)
- headers = copy.copy(self.header_parameters)
- if module.get('etag'):
- headers['If-Match'] = '"{0}"'.format(module['etag'])
- request = self._mgmt_client.put(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers, content=module)
- if response.status_code not in [200, 201]:
- raise CloudError(response)
- return json.loads(response.text)
+ if self.auth_method == 'sas':
+ response = self.mgmt_client.create_module_with_sas(self.device, self.name, self.managed_by, self.primary_key, self.secondary_key)
+ elif self.auth_method == 'self_signed':
+ response = self.mgmt_client.create_module_with_certificate_authority(self.device, self.name, self.managed_by)
+ elif self.auth_method == 'certificate_authority':
+ response = self.mgmt_client.create_module_with_x509(self.device_id,
+ self.name, self.managed_by, self.primary_thumbprint, self.secondary_thumbprint)
+
+ return self.format_module(response)
except Exception as exc:
self.fail('Error when creating or updating IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
def delete_module(self, etag):
try:
- url = '/devices/{0}/modules/{1}'.format(self.device, self.name)
- headers = copy.copy(self.header_parameters)
- headers['If-Match'] = '"{0}"'.format(etag)
- request = self._mgmt_client.delete(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers)
- if response.status_code not in [204]:
- raise CloudError(response)
+ response = self.mgmt_client.delete_module(self.device, self.name)
+ return response
except Exception as exc:
self.fail('Error when deleting IoT Hub device {0}: {1}'.format(self.name, exc.message or str(exc)))
def get_module(self):
try:
- url = '/devices/{0}/modules/{1}'.format(self.device, self.name)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = self.mgmt_client.get_module(self.device, self.name)
+ return self.format_module(response)
except Exception:
return None
def get_twin(self):
try:
- url = '/twins/{0}/modules/{1}'.format(self.device, self.name)
- return self._https_get(url, self.query_parameters, self.header_parameters)
+ response = self.mgmt_client.get_twin(self.device)
+ return self.format_twin(response)
except Exception as exc:
self.fail('Error when getting IoT Hub device {0} module twin {1}: {2}'.format(self.device, self.name, exc.message or str(exc)))
def update_twin(self, twin):
try:
- url = '/twins/{0}/modules/{1}'.format(self.device, self.name)
- headers = copy.copy(self.header_parameters)
- headers['If-Match'] = twin['etag']
- request = self._mgmt_client.patch(url, self.query_parameters)
- response = self._mgmt_client.send(request=request, headers=headers, content=twin)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
+ response = self.mgmt_client.update_twin(self.device, twin)
+ return self.format_twin(response)
except Exception as exc:
self.fail('Error when creating or updating IoT Hub device {0} module twin {1}: {2}'.format(self.device, self.name, exc.message or str(exc)))
- def _https_get(self, url, query_parameters, header_parameters):
- request = self._mgmt_client.get(url, query_parameters)
- response = self._mgmt_client.send(request=request, headers=header_parameters, content=None)
- if response.status_code not in [200]:
- raise CloudError(response)
- return json.loads(response.text)
+ def format_module(self, item):
+ if not item:
+ return None
+ format_item = dict(
+ authentication=dict(),
+ cloudToDeviceMessageCount=item.cloud_to_device_message_count,
+ connectionState=item.connection_state,
+ connectionStateUpdatedTime=item.connection_state_updated_time,
+ deviceId=item.device_id,
+ etag=item.etag,
+ generationId=item.generation_id,
+ lastActivityTime=item.last_activity_time,
+ managedBy=item.managed_by,
+ moduleId=item.module_id
+ )
+ if item.authentication:
+ format_item['authentication']['symmetricKey'] = dict()
+ format_item['authentication']['symmetricKey']['primaryKey'] = item.authentication.symmetric_key.primary_key
+ format_item['authentication']['symmetricKey']['secondaryKey'] = item.authentication.symmetric_key.secondary_key
+
+ format_item['authentication']['type'] = item.authentication.type
+ format_item['authentication']["x509Thumbprint"] = dict()
+ format_item['authentication']["x509Thumbprint"]["primaryThumbprint"] = item.authentication.x509_thumbprint.primary_thumbprint
+ format_item['authentication']["x509Thumbprint"]['secondaryThumbprint'] = item.authentication.x509_thumbprint.secondary_thumbprint
+
+ return format_item
+
+ def format_twin(self, item):
+ if not item:
+ return None
+ format_twin = dict(
+ device_id=item.device_id,
+ module_id=item.module_id,
+ tags=item.tags,
+ properties=dict(),
+ etag=item.etag,
+ version=item.version,
+ device_etag=item.device_etag,
+ status=item.status,
+ cloud_to_device_message_count=item.cloud_to_device_message_count,
+ authentication_type=item.authentication_type,
+ )
+ if item.properties is not None:
+ format_twin['properties']['desired'] = item.properties.desired
+ format_twin['properties']['reported'] = item.properties.reported
+
+ return format_twin
def main():
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub.py
index daf59783a..931cede97 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub.py
@@ -204,15 +204,15 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: Testing
routing_endpoints:
- - connection_string: "Endpoint=sb://qux.servicebus.windows.net/;SharedAccessKeyName=quux;SharedAccessKey=****;EntityPath=myQueue"
- name: foo
- resource_type: queue
- resource_group: myResourceGroup1
+ - connection_string: "Endpoint=sb://qux.servicebus.windows.net/;SharedAccessKeyName=quux;SharedAccessKey=****;EntityPath=myQueue"
+ name: foo
+ resource_type: queue
+ resource_group: myResourceGroup1
routes:
- - name: bar
- source: device_messages
- endpoint_name: foo
- enabled: yes
+ - name: bar
+ source: device_messages
+ endpoint_name: foo
+ enabled: true
'''
RETURN = '''
@@ -507,16 +507,10 @@ routes:
sample: "true"
''' # NOQA
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
import re
-try:
- from msrestazure.tools import parse_resource_id
-except ImportError:
- # This is handled in azure_rm_common
- pass
-
ip_filter_spec = dict(
name=dict(type='str', required=True),
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub_info.py
index 22b2335f4..64706a71d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothub_info.py
@@ -70,22 +70,22 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one IoT Hub
- azure_rm_iothub_info:
- name: Testing
- resource_group: myResourceGroup
+- name: Get facts for one IoT Hub
+ azure_rm_iothub_info:
+ name: Testing
+ resource_group: myResourceGroup
- - name: Get facts for all IoT Hubs
- azure_rm_iothub_info:
+- name: Get facts for all IoT Hubs
+ azure_rm_iothub_info:
- - name: Get facts for all IoT Hubs in a specific resource group
- azure_rm_iothub_info:
- resource_group: myResourceGroup
+- name: Get facts for all IoT Hubs in a specific resource group
+ azure_rm_iothub_info:
+ resource_group: myResourceGroup
- - name: Get facts by tags
- azure_rm_iothub_info:
- tags:
- - testing
+- name: Get facts by tags
+ azure_rm_iothub_info:
+ tags:
+ - testing
'''
RETURN = '''
@@ -396,7 +396,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
from ansible.module_utils.common.dict_transformations import _camel_to_snake
try:
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
except Exception:
# handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothubconsumergroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothubconsumergroup.py
index 21dde7fbb..fca748d0b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothubconsumergroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_iothubconsumergroup.py
@@ -43,6 +43,7 @@ options:
description:
- Name of the consumer group.
type: str
+ required: True
extends_documentation_fragment:
- azure.azcollection.azure
- azure.azcollection.azure_tags
@@ -76,15 +77,7 @@ name:
type: str
''' # NOQA
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
-from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
-import re
-
-try:
- from msrestazure.tools import parse_resource_id
-except ImportError:
- # This is handled in azure_rm_common
- pass
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
class AzureRMIoTHubConsumerGroup(AzureRMModuleBase):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup.py
index 717923770..1e464ced2 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup.py
@@ -162,8 +162,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
- format_resource_id, normalize_location_name
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, normalize_location_name
try:
from azure.core.exceptions import ResourceNotFoundError
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup_info.py
index 3ed6423a6..21a922c3b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_ipgroup_info.py
@@ -84,7 +84,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.common import AzureMissingResourceHttpError, AzureHttpError
except Exception:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault.py
index f117b380c..efeddaacc 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault.py
@@ -21,28 +21,35 @@ options:
description:
- The name of the Resource Group to which the server belongs.
required: True
+ type: str
vault_name:
description:
- Name of the vault.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
vault_tenant:
description:
- The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
+ type: str
sku:
description:
- SKU details.
+ type: dict
suboptions:
family:
description:
- SKU family name.
+ type: str
required: True
name:
description:
- SKU name to specify whether the key vault is a standard vault or a premium vault.
required: True
+ type: str
choices:
- 'standard'
- 'premium'
@@ -50,23 +57,30 @@ options:
description:
- An array of 0 to 16 identities that have access to the key vault.
- All identities in the array must use the same tenant ID as the key vault's tenant ID.
+ type: list
+ elements: dict
suboptions:
tenant_id:
description:
- The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
- Current keyvault C(tenant_id) value will be used if not specified.
+ type: str
object_id:
description:
- The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault.
- The object ID must be unique for the list of access policies.
- Please note this is not application id. Object id can be obtained by running "az ad sp show --id <application id>".
+ type: str
required: True
application_id:
description:
- Application ID of the client making request on behalf of a principal.
+ type: str
keys:
description:
- List of permissions to keys.
+ type: list
+ elements: str
choices:
- 'encrypt'
- 'decrypt'
@@ -87,6 +101,8 @@ options:
secrets:
description:
- List of permissions to secrets.
+ type: list
+ elements: str
choices:
- 'get'
- 'list'
@@ -99,6 +115,8 @@ options:
certificates:
description:
- List of permissions to certificates.
+ type: list
+ elements: str
choices:
- 'get'
- 'list'
@@ -114,9 +132,13 @@ options:
- 'manageissuers'
- 'recover'
- 'purge'
+ - 'backup'
+ - 'restore'
storage:
description:
- List of permissions to storage accounts.
+ type: list
+ elements: str
enabled_for_deployment:
description:
- Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault.
@@ -151,6 +173,7 @@ options:
description:
- Assert the state of the KeyVault. Use C(present) to create or update an KeyVault and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -165,21 +188,21 @@ author:
'''
EXAMPLES = '''
- - name: Create instance of Key Vault
- azure_rm_keyvault:
- resource_group: myResourceGroup
- vault_name: samplekeyvault
- enabled_for_deployment: yes
- vault_tenant: 72f98888-8666-4144-9199-2d7cd0111111
- sku:
- name: standard
- family: A
- access_policies:
- - tenant_id: 72f98888-8666-4144-9199-2d7cd0111111
- object_id: 99998888-8666-4144-9199-2d7cd0111111
- keys:
- - get
- - list
+- name: Create instance of Key Vault
+ azure_rm_keyvault:
+ resource_group: myResourceGroup
+ vault_name: samplekeyvault
+ enabled_for_deployment: true
+ vault_tenant: 72f98888-8666-4144-9199-2d7cd0111111
+ sku:
+ name: standard
+ family: A
+ access_policies:
+ - tenant_id: 72f98888-8666-4144-9199-2d7cd0111111
+ object_id: 99998888-8666-4144-9199-2d7cd0111111
+ keys:
+ - get
+ - list
'''
RETURN = '''
@@ -191,7 +214,6 @@ id:
sample: id
'''
-import collections
import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
@@ -199,7 +221,6 @@ try:
from azure.core.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.keyvault import KeyVaultManagementClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -239,10 +260,26 @@ class AzureRMVaults(AzureRMModuleBase):
object_id=dict(type='str', required=True),
application_id=dict(type='str'),
# FUTURE: add `choices` support once choices supports lists of values
- keys=dict(type='list', no_log=True),
- secrets=dict(type='list', no_log=True),
- certificates=dict(type='list'),
- storage=dict(type='list')
+ keys=dict(
+ type='list',
+ elements='str',
+ no_log=True,
+ choices=['encrypt', 'decrypt', 'wrapkey', 'unwrapkey', 'sign', 'verify', 'get',
+ 'list', 'create', 'update', 'import', 'delete', 'backup', 'restore', 'recover', 'purge']
+ ),
+ secrets=dict(
+ type='list',
+ elements='str',
+ no_log=True,
+ choices=['get', 'list', 'set', 'delete', 'backup', 'restore', 'recover', 'purge']
+ ),
+ certificates=dict(
+ type='list',
+ elements='str',
+ choices=['get', 'list', 'delete', 'create', 'import', 'update', 'managecontacts',
+ 'getissuers', 'listissuers', 'setissuers', 'deleteissuers', 'manageissuers', 'recover', 'purge', 'backup', 'restore']
+ ),
+ storage=dict(type='list', elements='str')
)
),
enabled_for_deployment=dict(
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault_info.py
index a56a2c378..d7b54515f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvault_info.py
@@ -40,17 +40,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Key Vault by name
- azure_rm_keyvault_info:
- resource_group: myResourceGroup
- name: myVault
+- name: Get Key Vault by name
+ azure_rm_keyvault_info:
+ resource_group: myResourceGroup
+ name: myVault
- - name: List Key Vaults in specific resource group
- azure_rm_keyvault_info:
- resource_group: myResourceGroup
+- name: List Key Vaults in specific resource group
+ azure_rm_keyvault_info:
+ resource_group: myResourceGroup
- - name: List Key Vaults in current subscription
- azure_rm_keyvault_info:
+- name: List Key Vaults in current subscription
+ azure_rm_keyvault_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey.py
index 985775b9a..54cc6eff6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey.py
@@ -17,48 +17,62 @@ description:
- Such as authentication keys, storage account keys, data encryption keys, .PFX files, and passwords.
options:
keyvault_uri:
- description:
- - URI of the keyvault endpoint.
- required: true
+ description:
+ - URI of the keyvault endpoint.
+ required: true
+ type: str
key_name:
description:
- Name of the keyvault key.
required: true
+ type: str
key_type:
description:
- The type of key to create. For valid values, see JsonWebKeyType. Possible values include EC, EC-HSM, RSA, RSA-HSM, oct
default: 'RSA'
+ type: str
key_size:
description:
- The key size in bits. For example 2048, 3072, or 4096 for RSA.
+ type: int
key_attributes:
description:
- The attributes of a key managed by the key vault service.
+ type: dict
suboptions:
enabled:
- description: bool
+ description:
+ - Whether the key is enabled.
+ type: bool
not_before:
description:
- not valid before date in UTC ISO format without the Z at the end
+ type: str
expires:
description:
- not valid after date in UTC ISO format without the Z at the end
+ type: str
curve:
description:
- Elliptic curve name. For valid values, see JsonWebKeyCurveName. Possible values include P-256, P-384, P-521, P-256K.
+ type: str
byok_file:
description:
- BYOK file.
+ type: str
pem_file:
description:
- PEM file.
+ type: str
pem_password:
description:
- PEM password.
+ type: str
state:
description:
- Assert the state of the key. Use C(present) to create a key and C(absent) to delete a key.
default: present
+ type: str
choices:
- absent
- present
@@ -73,16 +87,16 @@ author:
'''
EXAMPLES = '''
- - name: Create a key
- azure_rm_keyvaultkey:
- key_name: MyKey
- keyvault_uri: https://contoso.vault.azure.net/
-
- - name: Delete a key
- azure_rm_keyvaultkey:
- key_name: MyKey
- keyvault_uri: https://contoso.vault.azure.net/
- state: absent
+- name: Create a key
+ azure_rm_keyvaultkey:
+ key_name: MyKey
+ keyvault_uri: https://contoso.vault.azure.net/
+
+- name: Delete a key
+ azure_rm_keyvaultkey:
+ key_name: MyKey
+ keyvault_uri: https://contoso.vault.azure.net/
+ state: absent
'''
RETURN = '''
@@ -102,14 +116,8 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- import re
- import codecs
- from azure.keyvault import KeyVaultClient, KeyVaultId, KeyVaultAuthentication
- from azure.keyvault.models import KeyAttributes, JsonWebKey
- from azure.common.credentials import ServicePrincipalCredentials, get_cli_profile
+ from azure.keyvault.keys import KeyClient
from datetime import datetime
- from msrestazure.azure_active_directory import MSIAuthentication
- from OpenSSL import crypto
except ImportError:
# This is handled in azure_rm_common
pass
@@ -195,8 +203,7 @@ class AzureRMKeyVaultKey(AzureRMModuleBase):
# Create key
if self.state == 'present' and changed:
- results['key_id'] = self.create_key(self.key_name, self.key_type, self.key_size, self.key_attributes,
- self.curve, self.tags)
+ results['key_id'] = self.create_key(self.key_name)
self.results['state'] = results
self.results['state']['status'] = 'Created'
# Delete key
@@ -213,153 +220,47 @@ class AzureRMKeyVaultKey(AzureRMModuleBase):
return self.results
def get_keyvault_client(self):
- kv_url = self.azure_auth._cloud_environment.suffixes.keyvault_dns.split('.', 1).pop()
- # Don't use MSI credentials if the auth_source isn't set to MSI. The below will Always result in credentials when running on an Azure VM.
- if self.module.params['auth_source'] == 'msi':
- try:
- self.log("Get KeyVaultClient from MSI")
- credentials = MSIAuthentication(resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception:
- self.log("Get KeyVaultClient from service principal")
- elif (self.module.params['auth_source'] == 'cli'
- or (self.module.params['auth_source'] == 'auto'
- and self.credentials['client_id'] is None
- and self.credentials['secret'] is None)):
- try:
- profile = get_cli_profile()
- credentials, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=self.credentials['subscription_id'], resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception as exc:
- self.log("Get KeyVaultClient from service principal")
- # self.fail("Failed to load CLI profile {0}.".format(str(exc)))
-
- # Create KeyVault Client using KeyVault auth class and auth_callback
- def auth_callback(server, resource, scope):
- if self.credentials['client_id'] is None or self.credentials['secret'] is None:
- self.fail('Please specify client_id, secret and tenant to access azure Key Vault.')
-
- tenant = self.credentials.get('tenant')
- if not self.credentials['tenant']:
- tenant = "common"
-
- authcredential = ServicePrincipalCredentials(
- client_id=self.credentials['client_id'],
- secret=self.credentials['secret'],
- tenant=tenant,
- cloud_environment=self._cloud_environment,
- resource="https://{0}".format(kv_url))
-
- token = authcredential.token
- return token['token_type'], token['access_token']
-
- return KeyVaultClient(KeyVaultAuthentication(auth_callback))
+
+ return KeyClient(vault_url=self.keyvault_uri, credential=self.azure_auth.azure_credential_track2)
def get_key(self, name, version=''):
''' Gets an existing key '''
- key_bundle = self.client.get_key(self.keyvault_uri, name, version)
+ key_bundle = self.client.get_key(name, version)
+
if key_bundle:
- key_id = KeyVaultId.parse_key_id(key_bundle.key.kid)
- return key_id.id
+ return key_bundle.id
- def create_key(self, name, key_type, key_size, key_attributes, curve, tags):
+ def create_key(self, name):
''' Creates a key '''
- if key_attributes is not None:
- k_enabled = key_attributes.get('enabled', True)
- k_not_before = key_attributes.get('not_before', None)
- k_expires = key_attributes.get('expires', None)
+ if self.key_attributes is not None:
+ k_enabled = self.key_attributes.get('enabled', True)
+ k_not_before = self.key_attributes.get('not_before', None)
+ k_expires = self.key_attributes.get('expires', None)
if k_not_before:
k_not_before = datetime.fromisoformat(k_not_before.replace('Z', '+00:00'))
if k_expires:
k_expires = datetime.fromisoformat(k_expires.replace('Z', '+00:00'))
-
- key_attributes = KeyAttributes(enabled=k_enabled, not_before=k_not_before, expires=k_expires)
-
- key_bundle = self.client.create_key(vault_base_url=self.keyvault_uri, key_name=name, kty=key_type, key_size=key_size,
- key_attributes=key_attributes, curve=curve, tags=tags)
- key_id = KeyVaultId.parse_key_id(key_bundle.key.kid)
- return key_id.id
+ else:
+ k_enabled = True
+ k_not_before = None
+ k_expires = None
+
+ key_bundle = self.client.create_key(name=name,
+ key_type=self.key_type,
+ size=self.key_size,
+ curve=self.curve,
+ tags=self.tags,
+ enabled=k_enabled,
+ not_before=k_not_before,
+ expires_on=k_expires)
+ return key_bundle._properties._id
def delete_key(self, name):
''' Deletes a key '''
- deleted_key = self.client.delete_key(self.keyvault_uri, name)
- key_id = KeyVaultId.parse_key_id(deleted_key.key.kid)
- return key_id.id
-
- def import_key(self, key_name, destination=None, key_ops=None, disabled=False, expires=None,
- not_before=None, tags=None, pem_file=None, pem_password=None, byok_file=None):
- """ Import a private key. Supports importing base64 encoded private keys from PEM files.
- Supports importing BYOK keys into HSM for premium KeyVaults. """
-
- def _to_bytes(hex_string):
- # zero pads and decodes a hex string
- if len(hex_string) % 2:
- hex_string = '{0}'.format(hex_string)
- return codecs.decode(hex_string, 'hex_codec')
-
- def _set_rsa_parameters(dest, src):
- # map OpenSSL parameter names to JsonWebKey property names
- conversion_dict = {
- 'modulus': 'n',
- 'publicExponent': 'e',
- 'privateExponent': 'd',
- 'prime1': 'p',
- 'prime2': 'q',
- 'exponent1': 'dp',
- 'exponent2': 'dq',
- 'coefficient': 'qi'
- }
- # regex: looks for matches that fit the following patterns:
- # integerPattern: 65537 (0x10001)
- # hexPattern:
- # 00:a0:91:4d:00:23:4a:c6:83:b2:1b:4c:15:d5:be:
- # d8:87:bd:c9:59:c2:e5:7a:f5:4a:e7:34:e8:f0:07:
- # The desired match should always be the first component of the match
- regex = re.compile(r'([^:\s]*(:[^\:)]+\))|([^:\s]*(:\s*[0-9A-Fa-f]{2})+))')
- # regex2: extracts the hex string from a format like: 65537 (0x10001)
- regex2 = re.compile(r'(?<=\(0x{1})([0-9A-Fa-f]*)(?=\))')
-
- key_params = crypto.dump_privatekey(crypto.FILETYPE_TEXT, src).decode('utf-8')
- for match in regex.findall(key_params):
- comps = match[0].split(':', 1)
- name = conversion_dict.get(comps[0], None)
- if name:
- value = comps[1].replace(' ', '').replace('\n', '').replace(':', '')
- try:
- value = _to_bytes(value)
- except Exception: # pylint:disable=broad-except
- # if decoding fails it is because of an integer pattern. Extract the hex
- # string and retry
- value = _to_bytes(regex2.findall(value)[0])
- setattr(dest, name, value)
-
- key_attrs = KeyAttributes(not disabled, not_before, expires)
- key_obj = JsonWebKey(key_ops=key_ops)
- if pem_file:
- key_obj.kty = 'RSA'
- with open(pem_file, 'r') as f:
- pem_data = f.read()
- # load private key and prompt for password if encrypted
- try:
- pem_password = str(pem_password).encode() if pem_password else None
- # despite documentation saying password should be a string, it needs to actually
- # be UTF-8 encoded bytes
- pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, pem_data, pem_password)
- except crypto.Error:
- pass # wrong password
- except TypeError:
- pass # no pass provided
- _set_rsa_parameters(key_obj, pkey)
- elif byok_file:
- with open(byok_file, 'rb') as f:
- byok_data = f.read()
- key_obj.kty = 'RSA-HSM'
- key_obj.t = byok_data
-
- return self.client.import_key(
- self.keyvault_uri, key_name, key_obj, destination == 'hsm', key_attrs, tags)
+ deleted_key = self.client.begin_delete_key(name)
+ result = self.get_poller_result(deleted_key)
+ return result.properties._id
def main():
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey_info.py
index 7247ec4eb..b59f89b33 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultkey_info.py
@@ -54,31 +54,31 @@ author:
'''
EXAMPLES = '''
- - name: Get latest version of specific key
- azure_rm_keyvaultkey_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: myKey
-
- - name: List all versions of specific key
- azure_rm_keyvaultkey_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: myKey
- version: all
-
- - name: List specific version of specific key
- azure_rm_keyvaultkey_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: myKey
- version: fd2682392a504455b79c90dd04a1bf46
-
- - name: List all keys in specific key vault
- azure_rm_keyvaultkey_info:
- vault_uri: "https://myVault.vault.azure.net"
-
- - name: List deleted keys in specific key vault
- azure_rm_keyvaultkey_info:
- vault_uri: "https://myVault.vault.azure.net"
- show_deleted_key: True
+- name: Get latest version of specific key
+ azure_rm_keyvaultkey_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: myKey
+
+- name: List all versions of specific key
+ azure_rm_keyvaultkey_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: myKey
+ version: all
+
+- name: List specific version of specific key
+ azure_rm_keyvaultkey_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: myKey
+ version: fd2682392a504455b79c90dd04a1bf46
+
+- name: List all keys in specific key vault
+ azure_rm_keyvaultkey_info:
+ vault_uri: "https://myVault.vault.azure.net"
+
+- name: List deleted keys in specific key vault
+ azure_rm_keyvaultkey_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ show_deleted_key: true
'''
RETURN = '''
@@ -115,6 +115,7 @@ keyvaults:
key:
description:
- public part of a key.
+ type: dict
contains:
n:
description:
@@ -150,6 +151,7 @@ keyvaults:
attributes:
description:
- Key attributes.
+ type: dict
contains:
created:
description:
@@ -193,10 +195,7 @@ keyvaults:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from azure.keyvault import KeyVaultClient, KeyVaultId, KeyVaultAuthentication, KeyId
- from azure.keyvault.models import KeyAttributes, JsonWebKey
- from azure.common.credentials import ServicePrincipalCredentials, get_cli_profile
- from msrestazure.azure_active_directory import MSIAuthentication
+ from azure.keyvault.keys import KeyClient
except ImportError:
# This is handled in azure_rm_common
pass
@@ -204,20 +203,20 @@ except ImportError:
def keybundle_to_dict(bundle):
return dict(
- tags=bundle.tags,
- managed=bundle.managed,
+ tags=bundle.properties.tags,
+ managed=bundle.properties.managed,
attributes=dict(
- enabled=bundle.attributes.enabled,
- not_before=bundle.attributes.not_before,
- expires=bundle.attributes.expires,
- created=bundle.attributes.created,
- updated=bundle.attributes.updated,
- recovery_level=bundle.attributes.recovery_level
+ enabled=bundle.properties.enabled,
+ not_before=bundle.properties.not_before,
+ expires=bundle.properties.expires_on,
+ created=bundle.properties.created_on,
+ updated=bundle.properties.updated_on,
+ recovery_level=bundle.properties.recovery_level
),
- kid=bundle.key.kid,
- version=KeyVaultId.parse_key_id(bundle.key.kid).version,
- type=bundle.key.kty,
- permitted_operations=bundle.key.key_ops,
+ kid=bundle.id,
+ version=bundle.properties.version,
+ type=bundle.key_type,
+ permitted_operations=bundle.key_operations,
key=dict(
n=bundle.key.n if hasattr(bundle.key, 'n') else None,
e=bundle.key.e if hasattr(bundle.key, 'e') else None,
@@ -228,35 +227,96 @@ def keybundle_to_dict(bundle):
)
+def delete_keybundle_to_dict(bundle):
+ return dict(
+ tags=bundle._tags,
+ managed=bundle._managed,
+ attributes=dict(
+ enabled=bundle.enabled,
+ not_before=bundle.not_before,
+ expires=bundle.expires_on,
+ created=bundle.created_on,
+ updated=bundle.updated_on,
+ recovery_level=bundle.recovery_level
+ ),
+ kid=bundle._id,
+ version=bundle.version,
+ )
+
+
+def delete_properties_to_dict(bundle):
+ return dict(
+ tags=bundle.tags,
+ managed=bundle.managed,
+ attributes=dict(
+ enabled=bundle.enabled,
+ not_before=bundle.not_before,
+ expires=bundle.expires_on,
+ created=bundle.created_on,
+ updated=bundle.updated_on,
+ recovery_level=bundle.recovery_level
+ ),
+ kid=bundle.id,
+ version=bundle.version,
+ )
+
+
def deletedkeybundle_to_dict(bundle):
- keybundle = keybundle_to_dict(bundle)
- keybundle['recovery_id'] = bundle.recovery_id,
- keybundle['scheduled_purge_date'] = bundle.scheduled_purge_date,
+ keybundle = delete_properties_to_dict(bundle.properties)
+ keybundle['type'] = bundle.key_type
+ keybundle['permitted_operations'] = bundle.key_operations
+ keybundle['recovery_id'] = bundle.recovery_id
+ keybundle['scheduled_purge_date'] = bundle.scheduled_purge_date
keybundle['deleted_date'] = bundle.deleted_date
+ keybundle['key'] = dict(n=bundle.key.n if hasattr(bundle.key, 'n') else None,
+ e=bundle.key.e if hasattr(bundle.key, 'e') else None,
+ crv=bundle.key.crv if hasattr(bundle.key, 'crv') else None,
+ x=bundle.key.x if hasattr(bundle.key, 'x') else None,
+ y=bundle.key.y if hasattr(bundle.key, 'y') else None)
+ keybundle['id'] = bundle.id
return keybundle
def keyitem_to_dict(keyitem):
return dict(
- kid=keyitem.kid,
- version=KeyVaultId.parse_key_id(keyitem.kid).version,
- tags=keyitem.tags,
- manged=keyitem.managed,
+ kid=keyitem._id,
+ version=keyitem.version,
+ tags=keyitem._tags,
+ manged=keyitem._managed,
attributes=dict(
- enabled=keyitem.attributes.enabled,
- not_before=keyitem.attributes.not_before,
- expires=keyitem.attributes.expires,
- created=keyitem.attributes.created,
- updated=keyitem.attributes.updated,
- recovery_level=keyitem.attributes.recovery_level
+ enabled=keyitem.enabled,
+ not_before=keyitem.not_before,
+ expires=keyitem.expires_on,
+ created=keyitem.created_on,
+ updated=keyitem.updated_on,
+ recovery_level=keyitem.recovery_level
+ )
+ )
+
+
+def delete_item_to_dict(bundle):
+ return dict(
+ tags=bundle.properties._tags,
+ kid=bundle.properties.id,
+ version=bundle.properties.version,
+ managed=bundle.properties.managed,
+ attributes=dict(
+ enabled=bundle.properties.enabled,
+ not_before=bundle.properties.not_before,
+ expires=bundle.properties.expires_on,
+ created=bundle.properties.created_on,
+ updated=bundle.properties.updated_on,
+ recovery_level=bundle.properties.recovery_level
+
+
)
)
def deletedkeyitem_to_dict(keyitem):
- item = keyitem_to_dict(keyitem)
- item['recovery_id'] = keyitem.recovery_id,
- item['scheduled_purge_date'] = keyitem.scheduled_purge_date,
+ item = delete_item_to_dict(keyitem)
+ item['recovery_id'] = keyitem.recovery_id
+ item['scheduled_purge_date'] = keyitem.scheduled_purge_date
item['deleted_date'] = keyitem.deleted_date
return item
@@ -312,48 +372,8 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
return self.results
def get_keyvault_client(self):
- kv_url = self.azure_auth._cloud_environment.suffixes.keyvault_dns.split('.', 1).pop()
- # Don't use MSI credentials if the auth_source isn't set to MSI. The below will Always result in credentials when running on an Azure VM.
- if self.module.params['auth_source'] == 'msi':
- try:
- self.log("Get KeyVaultClient from MSI")
- credentials = MSIAuthentication(resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception:
- self.log("Get KeyVaultClient from service principal")
- elif (self.module.params['auth_source'] == 'cli'
- or (self.module.params['auth_source'] == 'auto'
- and self.credentials['client_id'] is None
- and self.credentials['secret'] is None)):
- try:
- profile = get_cli_profile()
- credentials, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=self.credentials['subscription_id'], resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception as exc:
- self.log("Get KeyVaultClient from service principal")
- # self.fail("Failed to load CLI profile {0}.".format(str(exc)))
-
- # Create KeyVault Client using KeyVault auth class and auth_callback
- def auth_callback(server, resource, scope):
- if self.credentials['client_id'] is None or self.credentials['secret'] is None:
- self.fail('Please specify client_id, secret and tenant to access azure Key Vault.')
-
- tenant = self.credentials.get('tenant')
- if not self.credentials['tenant']:
- tenant = "common"
-
- authcredential = ServicePrincipalCredentials(
- client_id=self.credentials['client_id'],
- secret=self.credentials['secret'],
- tenant=tenant,
- cloud_environment=self._cloud_environment,
- resource="https://{0}".format(kv_url))
-
- token = authcredential.token
- return token['token_type'], token['access_token']
-
- return KeyVaultClient(KeyVaultAuthentication(auth_callback))
+
+ return KeyClient(vault_url=self.vault_uri, credential=self.azure_auth.azure_credential_track2)
def get_key(self):
'''
@@ -366,19 +386,20 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
results = []
try:
if self.version == 'current':
- response = self._client.get_key(vault_base_url=self.vault_uri,
- key_name=self.name,
- key_version='')
+ response = self._client.get_key(name=self.name,
+ version=None)
else:
- response = self._client.get_key(vault_base_url=self.vault_uri,
- key_name=self.name,
- key_version=self.version)
+ response = self._client.get_key(name=self.name,
+ version=self.version)
- if response and self.has_tags(response.tags, self.tags):
- self.log("Response : {0}".format(response))
- results.append(keybundle_to_dict(response))
+ if response:
+ response = keybundle_to_dict(response)
+ if self.has_tags(response['tags'], self.tags):
+ self.log("Response : {0}".format(response))
+ results.append(response)
except Exception as e:
+ self.fail(e)
self.log("Did not find the key vault key {0}: {1}".format(self.name, str(e)))
return results
@@ -392,14 +413,14 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_key_versions(vault_base_url=self.vault_uri,
- key_name=self.name)
+ response = self._client.list_properties_of_key_versions(name=self.name)
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(keyitem_to_dict(item))
+ item = keyitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log("Did not find key versions {0} : {1}.".format(self.name, str(e)))
return results
@@ -414,13 +435,14 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_keys(vault_base_url=self.vault_uri)
+ response = self._client.list_properties_of_keys()
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(keyitem_to_dict(item))
+ item = keyitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log("Did not find key vault in current subscription {0}.".format(str(e)))
return results
@@ -435,12 +457,13 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_deleted_key(vault_base_url=self.vault_uri,
- key_name=self.name)
+ response = self._client.get_deleted_key(name=self.name)
- if response and self.has_tags(response.tags, self.tags):
- self.log("Response : {0}".format(response))
- results.append(deletedkeybundle_to_dict(response))
+ if response:
+ response = deletedkeybundle_to_dict(response)
+ if self.has_tags(response['tags'], self.tags):
+ self.log("Response : {0}".format(response))
+ results.append(response)
except Exception as e:
self.log("Did not find the key vault key {0}: {1}".format(self.name, str(e)))
@@ -456,13 +479,14 @@ class AzureRMKeyVaultKeyInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_deleted_keys(vault_base_url=self.vault_uri)
+ response = self._client.list_deleted_keys()
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(deletedkeyitem_to_dict(item))
+ item = deletedkeyitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log("Did not find key vault in current subscription {0}.".format(str(e)))
return results
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret.py
index 0a5288abb..98a5e0e78 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret.py
@@ -18,9 +18,10 @@ description:
- Such as authentication keys, storage account keys, data encryption keys, .PFX files, and passwords.
options:
keyvault_uri:
- description:
- - URI of the keyvault endpoint.
- required: true
+ description:
+ - URI of the keyvault endpoint.
+ required: true
+ type: str
content_type:
description:
- Type of the secret value such as a password.
@@ -29,9 +30,11 @@ options:
description:
- Name of the keyvault secret.
required: true
+ type: str
secret_value:
description:
- Secret to be secured by keyvault.
+ type: str
secret_expiry:
description:
- Optional expiry datetime for secret
@@ -43,6 +46,7 @@ options:
state:
description:
- Assert the state of the subnet. Use C(present) to create or update a secret and C(absent) to delete a secret .
+ type: str
default: present
choices:
- absent
@@ -58,20 +62,20 @@ author:
'''
EXAMPLES = '''
- - name: Create a secret
- azure_rm_keyvaultsecret:
- secret_name: MySecret
- secret_value: My_Pass_Sec
- keyvault_uri: https://contoso.vault.azure.net/
- tags:
- testing: testing
- delete: never
-
- - name: Delete a secret
- azure_rm_keyvaultsecret:
- secret_name: MySecret
- keyvault_uri: https://contoso.vault.azure.net/
- state: absent
+- name: Create a secret
+ azure_rm_keyvaultsecret:
+ secret_name: MySecret
+ secret_value: My_Pass_Sec
+ keyvault_uri: https://contoso.vault.azure.net/
+ tags:
+ testing: testing
+ delete: never
+
+- name: Delete a secret
+ azure_rm_keyvaultsecret:
+ secret_name: MySecret
+ keyvault_uri: https://contoso.vault.azure.net/
+ state: absent
'''
RETURN = '''
@@ -91,12 +95,8 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from azure.keyvault import KeyVaultClient, KeyVaultAuthentication, KeyVaultId
- from azure.common.credentials import ServicePrincipalCredentials, get_cli_profile
- from msrestazure.azure_active_directory import MSIAuthentication
+ from azure.keyvault.secrets import SecretClient
import dateutil.parser
- from azure.keyvault.models import SecretAttributes
- # from azure.keyvault.models.secret_attributes import SecretAttributes
except ImportError:
# This is handled in azure_rm_common
pass
@@ -162,7 +162,7 @@ class AzureRMKeyVaultSecret(AzureRMModuleBase):
elif self.secret_value and results['secret_value'] != self.secret_value:
changed = True
- except Exception:
+ except Exception as ec:
# Secret doesn't exist
if self.state == 'present':
changed = True
@@ -198,69 +198,32 @@ class AzureRMKeyVaultSecret(AzureRMModuleBase):
return self.results
def get_keyvault_client(self):
- kv_url = self.azure_auth._cloud_environment.suffixes.keyvault_dns.split('.', 1).pop()
- # Don't use MSI credentials if the auth_source isn't set to MSI. The below will Always result in credentials when running on an Azure VM.
- if self.module.params['auth_source'] == 'msi':
- try:
- self.log("Get KeyVaultClient from MSI")
- credentials = MSIAuthentication(resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception:
- self.log("Get KeyVaultClient from service principal")
- elif (self.module.params['auth_source'] == 'cli'
- or (self.module.params['auth_source'] == 'auto'
- and self.credentials['client_id'] is None
- and self.credentials['secret'] is None)):
- try:
- profile = get_cli_profile()
- credentials, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=self.credentials['subscription_id'], resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception as exc:
- self.log("Get KeyVaultClient from service principal")
- # self.fail("Failed to load CLI profile {0}.".format(str(exc)))
-
- # Create KeyVault Client using KeyVault auth class and auth_callback
- def auth_callback(server, resource, scope):
- if self.credentials['client_id'] is None or self.credentials['secret'] is None:
- self.fail('Please specify client_id, secret and tenant to access azure Key Vault.')
-
- tenant = self.credentials.get('tenant')
- if not self.credentials['tenant']:
- tenant = "common"
-
- authcredential = ServicePrincipalCredentials(
- client_id=self.credentials['client_id'],
- secret=self.credentials['secret'],
- tenant=tenant,
- cloud_environment=self._cloud_environment,
- resource="https://{0}".format(kv_url))
-
- token = authcredential.token
- return token['token_type'], token['access_token']
-
- return KeyVaultClient(KeyVaultAuthentication(auth_callback))
+
+ return SecretClient(vault_url=self.keyvault_uri, credential=self.azure_auth.azure_credential_track2)
def get_secret(self, name, version=''):
''' Gets an existing secret '''
- secret_bundle = self.client.get_secret(self.keyvault_uri, name, version)
+ secret_bundle = self.client.get_secret(name=name, version=version)
+
if secret_bundle:
- secret_id = KeyVaultId.parse_secret_id(secret_bundle.id)
- return dict(secret_id=secret_id.id, secret_value=secret_bundle.value)
+ return dict(secret_id=secret_bundle.id, secret_value=secret_bundle.value)
return None
def create_update_secret(self, name, secret, tags, content_type, valid_from, expiry):
''' Creates/Updates a secret '''
- secret_attributes = SecretAttributes(expires=expiry, not_before=valid_from)
- secret_bundle = self.client.set_secret(self.keyvault_uri, name, secret, tags=tags, content_type=content_type, secret_attributes=secret_attributes)
- secret_id = KeyVaultId.parse_secret_id(secret_bundle.id)
- return secret_id.id
+ secret_bundle = self.client.set_secret(name=name,
+ value=secret,
+ tags=tags,
+ content_type=content_type,
+ expires_on=expiry,
+ not_before=valid_from)
+ return secret_bundle._properties._id
def delete_secret(self, name):
''' Deletes a secret '''
- deleted_secret = self.client.delete_secret(self.keyvault_uri, name)
- secret_id = KeyVaultId.parse_secret_id(deleted_secret.id)
- return secret_id.id
+ deleted_secret = self.client.begin_delete_secret(name)
+ result = self.get_poller_result(deleted_secret)
+ return result.properties._id
def main():
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py
index a785b8ce7..b612dce36 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_keyvaultsecret_info.py
@@ -53,31 +53,31 @@ author:
'''
EXAMPLES = '''
- - name: Get latest version of specific secret
- azure_rm_keyvaultsecret_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: mySecret
-
- - name: List all versions of specific secret
- azure_rm_keyvaultsecret_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: mySecret
- version: all
-
- - name: List specific version of specific secret
- azure_rm_keyvaultsecret_info:
- vault_uri: "https://myVault.vault.azure.net"
- name: mySecret
- version: fd2682392a504455b79c90dd04a1bf46
-
- - name: List all secrets in specific key vault
- azure_rm_keyvaultsecret_info:
- vault_uri: "https://myVault.vault.azure.net"
-
- - name: List deleted secrets in specific key vault
- azure_rm_keyvaultsecret_info:
- vault_uri: "https://myVault.vault.azure.net"
- show_deleted_secret: True
+- name: Get latest version of specific secret
+ azure_rm_keyvaultsecret_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: mySecret
+
+- name: List all versions of specific secret
+ azure_rm_keyvaultsecret_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: mySecret
+ version: all
+
+- name: List specific version of specific secret
+ azure_rm_keyvaultsecret_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ name: mySecret
+ version: fd2682392a504455b79c90dd04a1bf46
+
+- name: List all secrets in specific key vault
+ azure_rm_keyvaultsecret_info:
+ vault_uri: "https://myVault.vault.azure.net"
+
+- name: List deleted secrets in specific key vault
+ azure_rm_keyvaultsecret_info:
+ vault_uri: "https://myVault.vault.azure.net"
+ show_deleted_secret: true
'''
RETURN = '''
@@ -162,55 +162,68 @@ secrets:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from azure.keyvault import KeyVaultClient, KeyVaultId, KeyVaultAuthentication
- from azure.common.credentials import ServicePrincipalCredentials, get_cli_profile
- from msrestazure.azure_active_directory import MSIAuthentication
+ from azure.keyvault.secrets import SecretClient
except ImportError:
# This is handled in azure_rm_common
pass
def secretbundle_to_dict(bundle):
+ return dict(tags=bundle._properties._tags,
+ attributes=dict(
+ enabled=bundle._properties._attributes.enabled,
+ not_before=bundle._properties._attributes.not_before,
+ expires=bundle._properties._attributes.expires,
+ created=bundle._properties._attributes.created,
+ updated=bundle._properties._attributes.updated,
+ recovery_level=bundle._properties._attributes.recovery_level),
+ sid=bundle._properties._id,
+ version=bundle._properties.version,
+ content_type=bundle._properties._content_type,
+ secret=bundle._value)
+
+
+def deleted_bundle_to_dict(bundle):
return dict(tags=bundle.tags,
attributes=dict(
- enabled=bundle.attributes.enabled,
- not_before=bundle.attributes.not_before,
- expires=bundle.attributes.expires,
- created=bundle.attributes.created,
- updated=bundle.attributes.updated,
- recovery_level=bundle.attributes.recovery_level),
+ enabled=bundle.enabled,
+ not_before=bundle.not_before,
+ expires=bundle.expires_on,
+ created=bundle.created_on,
+ updated=bundle.updated_on,
+ recovery_level=bundle.recovery_level),
sid=bundle.id,
- version=KeyVaultId.parse_secret_id(bundle.id).version,
+ version=bundle.key_id,
content_type=bundle.content_type,
- secret=bundle.value)
+ secret=bundle.version)
def deletedsecretbundle_to_dict(bundle):
- secretbundle = secretbundle_to_dict(bundle)
- secretbundle['recovery_id'] = bundle.recovery_id,
- secretbundle['scheduled_purge_date'] = bundle.scheduled_purge_date,
- secretbundle['deleted_date'] = bundle.deleted_date
+ secretbundle = deleted_bundle_to_dict(bundle.properties)
+ secretbundle['recovery_id'] = bundle._recovery_id
+ secretbundle['scheduled_purge_date'] = bundle._scheduled_purge_date
+ secretbundle['deleted_date'] = bundle._deleted_date
return secretbundle
def secretitem_to_dict(secretitem):
- return dict(sid=secretitem.id,
- version=KeyVaultId.parse_secret_id(secretitem.id).version,
- tags=secretitem.tags,
+ return dict(sid=secretitem._id,
+ version=secretitem.version,
+ tags=secretitem._tags,
attributes=dict(
- enabled=secretitem.attributes.enabled,
- not_before=secretitem.attributes.not_before,
- expires=secretitem.attributes.expires,
- created=secretitem.attributes.created,
- updated=secretitem.attributes.updated,
- recovery_level=secretitem.attributes.recovery_level))
+ enabled=secretitem._attributes.enabled,
+ not_before=secretitem._attributes.not_before,
+ expires=secretitem._attributes.expires,
+ created=secretitem._attributes.created,
+ updated=secretitem._attributes.updated,
+ recovery_level=secretitem._attributes.recovery_level))
def deletedsecretitem_to_dict(secretitem):
- item = secretitem_to_dict(secretitem)
- item['recovery_id'] = secretitem.recovery_id,
- item['scheduled_purge_date'] = secretitem.scheduled_purge_date,
- item['deleted_date'] = secretitem.deleted_date
+ item = secretitem_to_dict(secretitem.properties)
+ item['recovery_id'] = secretitem._recovery_id
+ item['scheduled_purge_date'] = secretitem._scheduled_purge_date
+ item['deleted_date'] = secretitem._deleted_date
return item
@@ -265,52 +278,8 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
return self.results
def get_keyvault_client(self):
- kv_url = self.azure_auth._cloud_environment.suffixes.keyvault_dns.split('.', 1).pop()
- # Don't use MSI credentials if the auth_source isn't set to MSI. The below will Always result in credentials when running on an Azure VM.
- if self.module.params['auth_source'] == 'msi':
- try:
- self.log("Get KeyVaultClient from MSI")
- resource = self.azure_auth._cloud_environment.suffixes.keyvault_dns.split('.', 1).pop()
- credentials = MSIAuthentication(resource="https://{0}".format(resource))
- return KeyVaultClient(credentials)
- except Exception:
- self.log("Get KeyVaultClient from service principal")
- elif (self.module.params['auth_source'] == 'cli'
- or (self.module.params['auth_source'] == 'auto'
- and self.credentials['client_id'] is None
- and self.credentials['secret'] is None)):
- try:
- profile = get_cli_profile()
- credentials, subscription_id, tenant = profile.get_login_credentials(
- subscription_id=self.credentials['subscription_id'], resource="https://{0}".format(kv_url))
- return KeyVaultClient(credentials)
- except Exception as exc:
- self.log("Get KeyVaultClient from service principal")
- # self.fail("Failed to load CLI profile {0}.".format(str(exc)))
-
- # Create KeyVault Client using KeyVault auth class and auth_callback
- def auth_callback(server, resource, scope):
- if self.credentials['client_id'] is None or self.credentials[
- 'secret'] is None:
- self.fail(
- 'Please specify client_id, secret and tenant to access azure Key Vault.'
- )
-
- tenant = self.credentials.get('tenant')
- if not self.credentials['tenant']:
- tenant = "common"
-
- authcredential = ServicePrincipalCredentials(
- client_id=self.credentials['client_id'],
- secret=self.credentials['secret'],
- tenant=tenant,
- cloud_environment=self._cloud_environment,
- resource="https://{0}".format(kv_url))
-
- token = authcredential.token
- return token['token_type'], token['access_token']
-
- return KeyVaultClient(KeyVaultAuthentication(auth_callback))
+
+ return SecretClient(vault_url=self.vault_uri, credential=self.azure_auth.azure_credential_track2)
def get_secret(self):
'''
@@ -323,19 +292,15 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
results = []
try:
if self.version == 'current':
- response = self._client.get_secret(
- vault_base_url=self.vault_uri,
- secret_name=self.name,
- secret_version='')
+ response = self._client.get_secret(name=self.name, version='')
else:
- response = self._client.get_secret(
- vault_base_url=self.vault_uri,
- secret_name=self.name,
- secret_version=self.version)
+ response = self._client.get_secret(name=self.name, version=self.version)
- if response and self.has_tags(response.tags, self.tags):
- self.log("Response : {0}".format(response))
- results.append(secretbundle_to_dict(response))
+ if response:
+ response = secretbundle_to_dict(response)
+ if self.has_tags(response['tags'], self.tags):
+ self.log("Response : {0}".format(response))
+ results.append(response)
except Exception as e:
self.log("Did not find the key vault secret {0}: {1}".format(
@@ -352,14 +317,14 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_secret_versions(
- vault_base_url=self.vault_uri, secret_name=self.name)
+ response = self._client.list_properties_of_secret_versions(name=self.name)
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(secretitem_to_dict(item))
+ item = secretitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log("Did not find secret versions {0} : {1}.".format(
self.name, str(e)))
@@ -375,13 +340,14 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_secrets(vault_base_url=self.vault_uri)
+ response = self._client.list_properties_of_secrets()
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(secretitem_to_dict(item))
+ item = secretitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log(
"Did not find key vault in current subscription {0}.".format(
@@ -398,12 +364,13 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_deleted_secret(
- vault_base_url=self.vault_uri, secret_name=self.name)
+ response = self._client.get_deleted_secret(name=self.name)
- if response and self.has_tags(response.tags, self.tags):
- self.log("Response : {0}".format(response))
- results.append(deletedsecretbundle_to_dict(response))
+ if response:
+ response = deletedsecretbundle_to_dict(response)
+ if self.has_tags(response['tags'], self.tags):
+ self.log("Response : {0}".format(response))
+ results.append(response)
except Exception as e:
self.log("Did not find the key vault secret {0}: {1}".format(
@@ -420,14 +387,14 @@ class AzureRMKeyVaultSecretInfo(AzureRMModuleBase):
results = []
try:
- response = self._client.get_deleted_secrets(
- vault_base_url=self.vault_uri)
+ response = self._client.list_deleted_secrets()
self.log("Response : {0}".format(response))
if response:
for item in response:
- if self.has_tags(item.tags, self.tags):
- results.append(deletedsecretitem_to_dict(item))
+ item = deletedsecretitem_to_dict(item)
+ if self.has_tags(item['tags'], self.tags):
+ results.append(item)
except Exception as e:
self.log(
"Did not find key vault in current subscription {0}.".format(
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer.py
index 86c4335f8..2c473778c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer.py
@@ -24,43 +24,54 @@ options:
description:
- Name of a resource group where the load balancer exists or will be created.
required: true
+ type: str
name:
description:
- Name of the load balancer.
required: true
+ type: str
state:
description:
- Assert the state of the load balancer. Use C(present) to create/update a load balancer, or C(absent) to delete one.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
sku:
description:
- The load balancer SKU.
+ type: str
choices:
- Basic
- Standard
frontend_ip_configurations:
description:
- List of frontend IPs to be used.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the frontend ip configuration.
+ type: str
required: True
public_ip_address:
description:
- Name of an existing public IP address object in the current resource group to associate with the security group.
+ type: str
private_ip_address:
description:
- The reference of the Public IP resource.
+ type: str
private_ip_allocation_method:
description:
- The Private IP allocation method.
+ type: str
choices:
- Static
- Dynamic
@@ -68,6 +79,7 @@ options:
description:
- The reference of the subnet resource.
- Should be an existing subnet's resource id.
+ type: str
zones:
description:
- list of availability zones denoting the IP allocated for the resource needs to come from.
@@ -77,28 +89,36 @@ options:
backend_address_pools:
description:
- List of backend address pools.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the backend address pool.
required: True
+ type: str
probes:
description:
- List of probe definitions used to check endpoint health.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the probe.
+ type: str
required: True
port:
description:
- Probe port for communicating the probe. Possible values range from 1 to 65535, inclusive.
+ type: int
required: True
protocol:
description:
- The protocol of the end point to be probed.
- If C(Tcp) is specified, a received ACK is required for the probe to be successful.
- If C(Http) or C(Https) is specified, a 200 OK response from the specified URL is required for the probe to be successful.
+ type: str
choices:
- Tcp
- Http
@@ -108,18 +128,21 @@ options:
- The interval, in seconds, for how frequently to probe the endpoint for health status.
- Slightly less than half the allocated timeout period, which allows two full probes before taking the instance out of rotation.
- The default value is C(15), the minimum value is C(5).
+ type: int
default: 15
fail_count:
description:
- The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint.
- This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure.
default: 3
+ type: int
aliases:
- number_of_probes
request_path:
description:
- The URI used for requesting health status from the VM.
- Path is required if I(protocol=Http) or I(protocol=Https). Otherwise, it is not allowed.
+ type: str
inbound_nat_pools:
description:
- Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer.
@@ -128,18 +151,23 @@ options:
- Inbound NAT pools are referenced from virtual machine scale sets.
- NICs that are associated with individual virtual machines cannot reference an inbound NAT pool.
- They have to reference individual inbound NAT rules.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the inbound NAT pool.
+ type: str
required: True
frontend_ip_configuration_name:
description:
- A reference to frontend IP addresses.
required: True
+ type: str
protocol:
description:
- IP protocol for the NAT pool.
+ type: str
choices:
- Tcp
- Udp
@@ -148,39 +176,50 @@ options:
description:
- The first port in the range of external ports that will be used to provide inbound NAT to NICs associated with the load balancer.
- Acceptable values range between 1 and 65534.
+ type: int
required: True
frontend_port_range_end:
description:
- The last port in the range of external ports that will be used to provide inbound NAT to NICs associated with the load balancer.
- Acceptable values range between 1 and 65535.
+ type: int
required: True
backend_port:
description:
- The port used for internal connections on the endpoint.
- Acceptable values are between 1 and 65535.
+ type: int
+ required: true
load_balancing_rules:
description:
- Object collection representing the load balancing rules Gets the provisioning.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the load balancing rule.
+ type: str
required: True
frontend_ip_configuration:
description:
- A reference to frontend IP addresses.
+ type: str
required: True
backend_address_pool:
description:
- A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs.
required: True
+ type: str
probe:
description:
- The name of the load balancer probe this rule should use for health checks.
required: True
+ type: str
protocol:
description:
- IP protocol for the load balancing rule.
+ type: str
choices:
- Tcp
- Udp
@@ -188,6 +227,7 @@ options:
load_distribution:
description:
- The session persistence policy for this rule; C(Default) is no persistence.
+ type: str
choices:
- Default
- SourceIP
@@ -199,26 +239,34 @@ options:
- Frontend port numbers must be unique across all rules within the load balancer.
- Acceptable values are between 0 and 65534.
- Note that value 0 enables "Any Port".
+ type: int
+ required: true
backend_port:
description:
- The port used for internal connections on the endpoint.
- Acceptable values are between 0 and 65535.
- Note that value 0 enables "Any Port".
+ type: int
idle_timeout:
description:
- The timeout for the TCP idle connection.
- The value can be set between 4 and 30 minutes.
- The default value is C(4) minutes.
- This element is only used when the protocol is set to TCP.
+ type: int
+ default: 4
enable_floating_ip:
description:
- Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group.
+ type: bool
disable_outbound_snat:
description:
- Configure outbound source network address translation (SNAT).
- The default behavior when omitted is equivalent to I(disable_outbound_snat=True).
- True is equivalent to "(Recommended) Use outbound rules to provide backend pool members access to the internet" in portal.
- False is equivalent to "Use default outbound access" in portal.
+ type: bool
+ default: False
inbound_nat_rules:
description:
- Collection of inbound NAT Rules used by a load balancer.
@@ -226,18 +274,23 @@ options:
- Inbound NAT pools are referenced from virtual machine scale sets.
- NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool.
- They have to reference individual inbound NAT rules.
+ type: list
+ elements: dict
suboptions:
name:
description:
- name of the inbound nat rule.
+ type: str
required: True
frontend_ip_configuration:
description:
- A reference to frontend IP addresses.
+ type: str
required: True
protocol:
description:
- IP protocol for the inbound nat rule.
+ type: str
choices:
- Tcp
- Udp
@@ -248,30 +301,38 @@ options:
- Frontend port numbers must be unique across all rules within the load balancer.
- Acceptable values are between 0 and 65534.
- Note that value 0 enables "Any Port".
+ type: int
+ required: True
backend_port:
description:
- The port used for internal connections on the endpoint.
- Acceptable values are between 0 and 65535.
- Note that value 0 enables "Any Port".
+ type: int
+ required: true
idle_timeout:
description:
- The timeout for the TCP idle connection.
- The value can be set between 4 and 30 minutes.
- The default value is C(4) minutes.
- This element is only used when I(protocol=Tcp).
+ type: int
enable_floating_ip:
description:
- Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group.
- This setting is required when using the SQL AlwaysOn Availability Groups in SQL server.
- This setting can't be changed after you create the endpoint.
+ type: bool
enable_tcp_reset:
description:
- Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination.
- This element is only used when I(protocol=Tcp).
+ type: bool
public_ip_address_name:
description:
- (deprecated) Name of an existing public IP address object to associate with the security group.
- This option has been deprecated, and will be removed in 2.9. Use I(frontend_ip_configurations) instead.
+ type: str
aliases:
- public_ip_address
- public_ip_name
@@ -280,10 +341,12 @@ options:
description:
- (deprecated) The port that the health probe will use.
- This option has been deprecated, and will be removed in 2.9. Use I(probes) instead.
+ type: int
probe_protocol:
description:
- (deprecated) The protocol to use for the health probe.
- This option has been deprecated, and will be removed in 2.9. Use I(probes) instead.
+ type: str
choices:
- Tcp
- Http
@@ -292,20 +355,24 @@ options:
description:
- (deprecated) Time (in seconds) between endpoint health probes.
- This option has been deprecated, and will be removed in 2.9. Use I(probes) instead.
+ type: int
default: 15
probe_fail_count:
description:
- (deprecated) The amount of probe failures for the load balancer to make a health determination.
- This option has been deprecated, and will be removed in 2.9. Use I(probes) instead.
default: 3
+ type: int
probe_request_path:
description:
- (deprecated) The URL that an HTTP probe or HTTPS probe will use (only relevant if I(probe_protocol=Http) or I(probe_protocol=Https)).
- This option has been deprecated, and will be removed in 2.9. Use I(probes) instead.
+ type: str
protocol:
description:
- (deprecated) The protocol (TCP or UDP) that the load balancer will use.
- This option has been deprecated, and will be removed in 2.9. Use I(load_balancing_rules) instead.
+ type: str
choices:
- Tcp
- Udp
@@ -313,6 +380,7 @@ options:
description:
- (deprecated) The type of load distribution that the load balancer will employ.
- This option has been deprecated, and will be removed in 2.9. Use I(load_balancing_rules) instead.
+ type: str
choices:
- Default
- SourceIP
@@ -321,31 +389,38 @@ options:
description:
- (deprecated) Frontend port that will be exposed for the load balancer.
- This option has been deprecated, and will be removed in 2.9. Use I(load_balancing_rules) instead.
+ type: int
backend_port:
description:
- (deprecated) Backend port that will be exposed for the load balancer.
- This option has been deprecated, and will be removed in 2.9. Use I(load_balancing_rules) instead.
+ type: int
idle_timeout:
description:
- (deprecated) Timeout for TCP idle connection in minutes.
- This option has been deprecated, and will be removed in 2.9. Use I(load_balancing_rules) instead.
+ type: int
default: 4
natpool_frontend_port_start:
description:
- (deprecated) Start of the port range for a NAT pool.
- This option has been deprecated, and will be removed in 2.9. Use I(inbound_nat_pools) instead.
+ type: int
natpool_frontend_port_end:
description:
- (deprecated) End of the port range for a NAT pool.
- This option has been deprecated, and will be removed in 2.9. Use I(inbound_nat_pools) instead.
+ type: int
natpool_backend_port:
description:
- (deprecated) Backend port used by the NAT pool.
- This option has been deprecated, and will be removed in 2.9. Use I(inbound_nat_pools) instead.
+ type: int
natpool_protocol:
description:
- (deprecated) The protocol for the NAT pool.
- This option has been deprecated, and will be removed in 2.9. Use I(inbound_nat_pools) instead.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
- azure.azcollection.azure_tags
@@ -403,12 +478,9 @@ changed:
type: bool
'''
-import random
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
from ansible.module_utils._text import to_native
try:
- from msrestazure.tools import parse_resource_id
- from msrestazure.azure_exceptions import CloudError
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
@@ -427,7 +499,8 @@ frontend_ip_configuration_spec = dict(
type='str'
),
private_ip_allocation_method=dict(
- type='str'
+ type='str',
+ choices=['Static', 'Dynamic']
),
subnet=dict(
type='str'
@@ -578,7 +651,7 @@ load_balancing_rule_spec = dict(
),
disable_outbound_snat=dict(
type='bool',
- default=None
+ default=False
),
)
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer_info.py
index 130e12d5c..45f7df094 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loadbalancer_info.py
@@ -43,22 +43,22 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one load balancer
- azure_rm_loadbalancer_info:
- name: Testing
- resource_group: myResourceGroup
-
- - name: Get facts for all load balancers
- azure_rm_loadbalancer_info:
-
- - name: Get facts for all load balancers in a specific resource group
- azure_rm_loadbalancer_info:
- resource_group: myResourceGroup
-
- - name: Get facts by tags
- azure_rm_loadbalancer_info:
- tags:
- - testing
+- name: Get facts for one load balancer
+ azure_rm_loadbalancer_info:
+ name: Testing
+ resource_group: myResourceGroup
+
+- name: Get facts for all load balancers
+ azure_rm_loadbalancer_info:
+
+- name: Get facts for all load balancers in a specific resource group
+ azure_rm_loadbalancer_info:
+ resource_group: myResourceGroup
+
+- name: Get facts by tags
+ azure_rm_loadbalancer_info:
+ tags:
+ - testing
'''
RETURN = '''
@@ -116,7 +116,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.common import AzureHttpError
except Exception:
# handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_lock_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_lock_info.py
index ef9f3e303..39abbf3b7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_lock_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_lock_info.py
@@ -20,7 +20,6 @@ options:
description:
- Name of the lock.
type: str
- required: true
managed_resource_id:
description:
- ID of the resource where need to manage the lock.
@@ -115,7 +114,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrestazure.azure_exceptions import CloudError
except ImportError:
# This is handled in azure_rm_common
pass
@@ -160,7 +158,7 @@ class AzureRMLockInfo(AzureRMModuleBase):
for key in self.module_arg_spec.keys():
setattr(self, key, kwargs[key])
- self._mgmt_client = self.get_mgmt_svc_client(GenericRestClient, base_url=self._cloud_environment.endpoints.resource_manager)
+ self._mgmt_client = self.get_mgmt_svc_client(GenericRestClient, is_track2=True, base_url=self._cloud_environment.endpoints.resource_manager)
changed = False
# construct scope id
scope = self.get_scope()
@@ -195,8 +193,8 @@ class AzureRMLockInfo(AzureRMModuleBase):
expected_status_codes=[200],
polling_timeout=None,
polling_interval=None)
- return json.loads(resp.text)
- except CloudError as exc:
+ return json.loads(resp.body())
+ except Exception as exc:
self.fail('Error when finding locks {0}: {1}'.format(url, exc.message))
def get_scope(self):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace.py
index 7e8acf260..b323d9292 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace.py
@@ -20,23 +20,28 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the workspace.
required: true
+ type: str
state:
description:
- Assert the state of the image. Use C(present) to create or update a image and C(absent) to delete an image.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Resource location.
+ type: str
sku:
description:
- The SKU of the workspace.
+ type: str
choices:
- free
- standard
@@ -51,6 +56,7 @@ options:
- The workspace data retention in days.
- -1 means Unlimited retention for I(sku=unlimited).
- 730 days is the maximum allowed for all other SKUs.
+ type: int
intelligence_packs:
description:
- Manage intelligence packs possible for this workspace.
@@ -77,7 +83,7 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: myLogAnalyticsWorkspace
intelligence_pack:
- Backup: true
+ Backup: true
'''
RETURN = '''
@@ -154,8 +160,7 @@ usages:
from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
try:
- from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
- from msrestazure.tools import parse_resource_id
+ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace_info.py
index 4861954da..03a55bedc 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_loganalyticsworkspace_info.py
@@ -20,9 +20,11 @@ options:
description:
- Name of resource group.
required: True
+ type: str
name:
description:
- Name of the workspace.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -32,18 +34,22 @@ options:
description:
- Show the intelligence packs for a workspace.
- Note this will cost one more network overhead for each workspace, expected slow response.
+ type: bool
show_management_groups:
description:
- Show the management groups for a workspace.
- Note this will cost one more network overhead for each workspace, expected slow response.
+ type: bool
show_shared_keys:
description:
- Show the shared keys for a workspace.
- Note this will cost one more network overhead for each workspace, expected slow response.
+ type: bool
show_usages:
description:
- Show the list of usages for a workspace.
- Note this will cost one more network overhead for each workspace, expected slow response.
+ type: bool
extends_documentation_fragment:
- azure.azcollection.azure
@@ -134,11 +140,10 @@ usages:
}
''' # NOQA
-from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
+from ansible.module_utils.common.dict_transformations import _camel_to_snake
try:
- from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
- from msrestazure.tools import parse_resource_id
+ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk.py
index e11965381..2b27fbbff 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk.py
@@ -27,20 +27,24 @@ options:
description:
- Name of a resource group where the managed disk exists or will be created.
required: true
+ type: str
name:
description:
- Name of the managed disk.
required: true
+ type: str
state:
description:
- Assert the state of the managed disk. Use C(present) to create or update a managed disk and C(absent) to delete a managed disk.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
storage_account_type:
description:
- Type of storage for the managed disk.
@@ -52,6 +56,7 @@ options:
- C(Premium_ZRS) is for Premium SSD Zone-redundant.
- C(UltraSSD_LRS) (added in 2.8) is for Ultra SSD, which is only available on select instance types.
- See U(https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-types) for more information about disk types.
+ type: str
choices:
- Standard_LRS
- StandardSSD_LRS
@@ -62,6 +67,7 @@ options:
create_option:
description:
- C(import) from a VHD file in I(source_uri) and C(copy) from previous managed disk I(source_uri).
+ type: str
choices:
- empty
- import
@@ -74,6 +80,7 @@ options:
source_uri:
description:
- URI to a valid VHD file to be used or the resource ID of the managed disk to copy.
+ type: str
aliases:
- source_resource_uri
os_type:
@@ -83,6 +90,7 @@ options:
- If omitted during creation, no value is set.
- If omitted during an update, no change is made.
- Once set, this value cannot be cleared.
+ type: str
choices:
- linux
- windows
@@ -90,11 +98,13 @@ options:
description:
- Size in GB of the managed disk to be created.
- If I(create_option=copy) then the value must be greater than or equal to the source's size.
+ type: int
managed_by:
description:
- Name of an existing virtual machine with which the disk is or will be associated, this VM should be in the same resource group.
- To detach a disk from a vm, explicitly set to ''.
- If this option is unset, the value will not be changed.
+ type: str
managed_by_extended:
description:
- List of name and resource group of the VMs that have the disk attached.
@@ -119,6 +129,7 @@ options:
description:
- Disk caching policy controlled by VM. Will be used when attached to the VM defined by C(managed_by).
- If this option is different from the current caching policy, the managed disk will be deattached and attached with current caching option again.
+ type: str
choices:
- ''
- read_only
@@ -127,6 +138,7 @@ options:
description:
- The Azure managed disk's zone.
- Allowed values are C(1), C(2), C(3) and C('').
+ type: str
choices:
- '1'
- '2'
@@ -146,61 +158,61 @@ author:
'''
EXAMPLES = '''
- - name: Create managed disk
- azure_rm_manageddisk:
- name: mymanageddisk
- location: eastus
- resource_group: myResourceGroup
- disk_size_gb: 4
-
- - name: Create managed operating system disk from page blob
- azure_rm_manageddisk:
- name: mymanageddisk
- location: eastus2
- resource_group: myResourceGroup
- create_option: import
- source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
- storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
- os_type: windows
- storage_account_type: Premium_LRS
-
- - name: Mount the managed disk to VM
- azure_rm_manageddisk:
- name: mymanageddisk
- location: eastus
- resource_group: myResourceGroup
- disk_size_gb: 4
- managed_by: testvm001
- attach_caching: read_only
-
- - name: Mount the managed disk to multiple VMs
- azure_rm_manageddisk:
- resource_group: myResourceGroup
- name: freddisk04
- max_shares: 4
- disk_size_gb: 1024
- storage_account_type: Premium_LRS
- managed_by_extended:
- - resource_group: myResourceGroup01
- name: testVM01
- - resource_group: myResourceGroup02
- name: testVM02
- zone: 1
-
- - name: Unmount the managed disk to VM
- azure_rm_manageddisk:
- name: mymanageddisk
- location: eastus
- resource_group: myResourceGroup
- managed_by: ''
- disk_size_gb: 4
-
- - name: Delete managed disk
- azure_rm_manageddisk:
- name: mymanageddisk
- location: eastus
- resource_group: myResourceGroup
- state: absent
+- name: Create managed disk
+ azure_rm_manageddisk:
+ name: mymanageddisk
+ location: eastus
+ resource_group: myResourceGroup
+ disk_size_gb: 4
+
+- name: Create managed operating system disk from page blob
+ azure_rm_manageddisk:
+ name: mymanageddisk
+ location: eastus2
+ resource_group: myResourceGroup
+ create_option: import
+ source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
+ storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
+ os_type: windows
+ storage_account_type: Premium_LRS
+
+- name: Mount the managed disk to VM
+ azure_rm_manageddisk:
+ name: mymanageddisk
+ location: eastus
+ resource_group: myResourceGroup
+ disk_size_gb: 4
+ managed_by: testvm001
+ attach_caching: read_only
+
+- name: Mount the managed disk to multiple VMs
+ azure_rm_manageddisk:
+ resource_group: myResourceGroup
+ name: freddisk04
+ max_shares: 4
+ disk_size_gb: 1024
+ storage_account_type: Premium_LRS
+ managed_by_extended:
+ - resource_group: myResourceGroup01
+ name: testVM01
+ - resource_group: myResourceGroup02
+ name: testVM02
+ zone: 1
+
+- name: Unmount the managed disk to VM
+ azure_rm_manageddisk:
+ name: mymanageddisk
+ location: eastus
+ resource_group: myResourceGroup
+ managed_by: ''
+ disk_size_gb: 4
+
+- name: Delete managed disk
+ azure_rm_manageddisk:
+ name: mymanageddisk
+ location: eastus
+ resource_group: myResourceGroup
+ state: absent
'''
RETURN = '''
@@ -278,14 +290,12 @@ changed:
type: bool
'''
-import re
-
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from concurrent.futures import ThreadPoolExecutor
import multiprocessing
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
@@ -569,7 +579,7 @@ class AzureRMManagedDisk(AzureRMModuleBase):
if self.create_option == 'import':
creation_data['create_option'] = self.compute_models.DiskCreateOption.import_enum
creation_data['source_uri'] = self.source_uri
- creation_data['source_account_id'] = self.storage_account_id
+ creation_data['storage_account_id'] = self.storage_account_id
elif self.create_option == 'copy':
creation_data['create_option'] = self.compute_models.DiskCreateOption.copy
creation_data['source_resource_id'] = self.source_uri
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk_info.py
index 01656929c..be00c149e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_manageddisk_info.py
@@ -68,7 +68,7 @@ EXAMPLES = r'''
- name: Get facts by tags
azure_rm_manageddisk_info:
tags:
- - testing
+ - testing
'''
RETURN = r'''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup.py
index d9bee84fd..35235ccbe 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup.py
@@ -92,7 +92,6 @@ EXAMPLES = '''
azure_rm_managementgroup:
group_id: ChildGroup
state: absent
-
'''
RETURN = '''
@@ -270,6 +269,7 @@ class AzureRMManagementGroups(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
self.url = ('/providers' +
@@ -359,9 +359,9 @@ class AzureRMManagementGroups(AzureRMModuleBaseExt):
self.fail('Error creating the ManagementGroup instance: {0}'.format(str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
pass
return response
@@ -396,7 +396,7 @@ class AzureRMManagementGroups(AzureRMModuleBaseExt):
600,
30)
found = True
- response = json.loads(response.text)
+ response = json.loads(response.body())
self.log("Response : {0}".format(response))
# self.log("ManagementGroup instance : {0} found".format(response.name))
except Exception as e:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup_info.py
index c95d10165..962d01831 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_managementgroup_info.py
@@ -80,14 +80,14 @@ EXAMPLES = '''
- name: Get facts for one management group by id with direct children
azure_rm_managementgroup_info:
id: /providers/Microsoft.Management/managementGroups/contoso-group
- children: True
+ children: true
- name: Get facts for one management group by name with all children, flattened into top list
azure_rm_managementgroup_info:
name: "contoso-group"
- children: True
- recurse: True
- flatten: True
+ children: true
+ recurse: true
+ flatten: true
'''
RETURN = '''
@@ -257,7 +257,7 @@ class AzureRMManagementGroupInfo(AzureRMModuleBase):
def to_dict(self, azure_object):
if not azure_object:
return []
- if azure_object.type == '/providers/Microsoft.Management/managementGroups':
+ if azure_object.type == 'Microsoft.Management/managementGroups':
return_dict = dict(
display_name=azure_object.display_name,
id=azure_object.id,
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration.py
index 69d6d509a..f00085600 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration.py
@@ -55,12 +55,12 @@ author:
'''
EXAMPLES = '''
- - name: Update SQL Server setting
- azure_rm_mariadbconfiguration:
- resource_group: myResourceGroup
- server_name: myServer
- name: event_scheduler
- value: "ON"
+- name: Update SQL Server setting
+ azure_rm_mariadbconfiguration:
+ resource_group: myResourceGroup
+ server_name: myServer
+ name: event_scheduler
+ value: "ON"
'''
RETURN = '''
@@ -73,13 +73,11 @@ id:
gurations/event_scheduler"
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration_info.py
index a1165d3f7..854d4854e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbconfiguration_info.py
@@ -43,16 +43,16 @@ author:
'''
EXAMPLES = '''
- - name: Get specific setting of MariaDB Server
- azure_rm_mariadbconfiguration_info:
- resource_group: myResourceGroup
- server_name: testserver
- name: deadlock_timeout
-
- - name: Get all settings of MariaDB Server
- azure_rm_mariadbconfiguration_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get specific setting of MariaDB Server
+ azure_rm_mariadbconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: deadlock_timeout
+
+- name: Get all settings of MariaDB Server
+ azure_rm_mariadbconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -97,9 +97,7 @@ settings:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase.py
index d97e1a2dd..60a5fccd4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase.py
@@ -22,32 +22,38 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the database.
required: True
+ type: str
charset:
description:
- The charset of the database. Check MariaDB documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
collation:
description:
- The collation of the database. Check MariaDB documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
force_update:
- description:
- - When set to C(true), will delete and recreate the existing MariaDB database if any of the properties don't match what is set.
- - When set to C(false), no change will occur to the database even if any of the properties do not match.
- type: bool
- default: 'no'
+ description:
+ - When set to C(true), will delete and recreate the existing MariaDB database if any of the properties don't match what is set.
+ - When set to C(false), no change will occur to the database even if any of the properties do not match.
+ type: bool
+ default: 'no'
state:
description:
- Assert the state of the MariaDB Database. Use C(present) to create or update a database and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -62,11 +68,11 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MariaDB Database
- azure_rm_mariadbdatabase:
- resource_group: myResourceGroup
- server_name: testserver
- name: db1
+- name: Create (or update) MariaDB Database
+ azure_rm_mariadbdatabase:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: db1
'''
RETURN = '''
@@ -90,7 +96,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase_info.py
index 02e005119..4551122bb 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbdatabase_info.py
@@ -43,16 +43,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MariaDB Database
- azure_rm_mariadbdatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: database_name
-
- - name: List instances of MariaDB Database
- azure_rm_mariadbdatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of MariaDB Database
+ azure_rm_mariadbdatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: database_name
+
+- name: List instances of MariaDB Database
+ azure_rm_mariadbdatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -104,7 +104,6 @@ databases:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule.py
index 0424db9f7..f634ab386 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule.py
@@ -22,24 +22,30 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the MariaDB firewall rule.
required: True
+ type: str
start_ip_address:
description:
- The start IP address of the MariaDB firewall rule. Must be IPv4 format.
+ type: str
end_ip_address:
description:
- The end IP address of the MariaDB firewall rule. Must be IPv4 format.
+ type: str
state:
description:
- Assert the state of the MariaDB firewall rule. Use C(present) to create or update a rule and C(absent) to ensure it is not present.
default: present
+ type: str
choices:
- absent
- present
@@ -54,13 +60,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MariaDB firewall rule
- azure_rm_mariadbfirewallrule:
- resource_group: myResourceGroup
- server_name: testserver
- name: rule1
- start_ip_address: 10.0.0.17
- end_ip_address: 10.0.0.20
+- name: Create (or update) MariaDB firewall rule
+ azure_rm_mariadbfirewallrule:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: rule1
+ start_ip_address: 10.0.0.17
+ end_ip_address: 10.0.0.20
'''
RETURN = '''
@@ -79,7 +85,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule_info.py
index ad7f979c5..5444c2557 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbfirewallrule_info.py
@@ -43,16 +43,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MariaDB Firewall Rule
- azure_rm_mariadbfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: firewall_rule_name
-
- - name: List instances of MariaDB Firewall Rule
- azure_rm_mariadbfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of MariaDB Firewall Rule
+ azure_rm_mariadbfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: firewall_rule_name
+
+- name: List instances of MariaDB Firewall Rule
+ azure_rm_mariadbfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -97,9 +97,7 @@ rules:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver.py
index 3e1b838cc..ed6b423ff 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver.py
@@ -22,20 +22,25 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
name:
description:
- The name of the server.
required: True
+ type: str
sku:
description:
- The SKU (pricing tier) of the server.
+ type: dict
suboptions:
name:
description:
- The name of the SKU, typically, tier + family + cores, for example C(B_Gen4_1), C(GP_Gen5_8).
+ type: str
tier:
description:
- The tier of the particular SKU, for example C(Basic).
+ type: str
choices:
- basic
- standard
@@ -49,6 +54,7 @@ options:
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
storage_mb:
description:
- The maximum storage allowed for a server.
@@ -56,9 +62,10 @@ options:
version:
description:
- Server version.
+ type: str
choices:
- - 10.2
- - 10.3
+ - '10.2'
+ - '10.3'
enforce_ssl:
description:
- Enable SSL enforcement.
@@ -67,17 +74,21 @@ options:
admin_username:
description:
- The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation).
+ type: str
admin_password:
description:
- The password of the administrator login.
+ type: str
create_mode:
description:
- Create mode of SQL Server.
+ type: str
default: Default
state:
description:
- Assert the state of the MariaDB Server. Use C(present) to create or update a server and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -93,19 +104,19 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MariaDB Server
- azure_rm_mariadbserver:
- resource_group: myResourceGroup
- name: testserver
- sku:
- name: B_Gen5_1
- tier: Basic
- location: eastus
- storage_mb: 1024
- enforce_ssl: True
- version: 10.2
- admin_username: cloudsa
- admin_password: password
+- name: Create (or update) MariaDB Server
+ azure_rm_mariadbserver:
+ resource_group: myResourceGroup
+ name: testserver
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: eastus
+ storage_mb: 1024
+ enforce_ssl: true
+ version: 10.2
+ admin_username: cloudsa
+ admin_password: password
'''
RETURN = '''
@@ -141,7 +152,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py
index e5aa0c88f..57c80b2b8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mariadbserver_info.py
@@ -43,16 +43,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MariaDB Server
- azure_rm_mariadbserver_info:
- resource_group: myResourceGroup
- name: server_name
+- name: Get instance of MariaDB Server
+ azure_rm_mariadbserver_info:
+ resource_group: myResourceGroup
+ name: server_name
- - name: List instances of MariaDB Server
- azure_rm_mariadbserver_info:
- resource_group: myResourceGroup
- tags:
- - key:value
+- name: List instances of MariaDB Server
+ azure_rm_mariadbserver_info:
+ resource_group: myResourceGroup
+ tags:
+ - key:value
'''
RETURN = '''
@@ -156,7 +156,6 @@ servers:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py
index 0f08eff9a..534b41bc5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting.py
@@ -354,7 +354,7 @@ state:
'''
try:
- from msrestazure.tools import (parse_resource_id, resource_id)
+ from azure.mgmt.core.tools import (parse_resource_id, resource_id)
from azure.core.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py
index f7081ce79..53a971654 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitordiagnosticsetting_info.py
@@ -212,7 +212,7 @@ settings:
'''
try:
- from msrestazure.tools import (parse_resource_id, resource_id)
+ from azure.mgmt.core.tools import (parse_resource_id, resource_id)
except Exception:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py
index a224c1fba..349ec52f5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_monitorlogprofile.py
@@ -80,28 +80,28 @@ author:
'''
EXAMPLES = '''
- - name: Create a log profile
- azure_rm_monitorlogprofile:
- name: myProfile
- location: eastus
- locations:
- - eastus
- - westus
- categories:
- - Write
- - Action
- retention_policy:
- enabled: False
- days: 1
- storage_account:
- resource_group: myResourceGroup
- name: myStorageAccount
- register: output
-
- - name: Delete a log profile
- azure_rm_monitorlogprofile:
- name: myProfile
- state: absent
+- name: Create a log profile
+ azure_rm_monitorlogprofile:
+ name: myProfile
+ location: eastus
+ locations:
+ - eastus
+ - westus
+ categories:
+ - Write
+ - Action
+ retention_policy:
+ enabled: false
+ days: 1
+ storage_account:
+ resource_group: myResourceGroup
+ name: myStorageAccount
+ register: output
+
+- name: Delete a log profile
+ azure_rm_monitorlogprofile:
+ name: myProfile
+ state: absent
'''
RETURN = '''
@@ -114,13 +114,12 @@ id:
'''
-import time
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
from azure.core.exceptions import HttpResponseError
from azure.core.polling import LROPoller
- from msrestazure.tools import is_valid_resource_id
+ from azure.mgmt.core.tools import is_valid_resource_id
from azure.mgmt.monitor.models import (RetentionPolicy, LogProfileResource)
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py
index 76a57a659..519a3e38a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_multiplemanageddisks.py
@@ -165,77 +165,77 @@ author:
'''
EXAMPLES = '''
- - name: Create managed operating system disks from page blob and attach them to a list of VMs
- azure_rm_multiplemanageddisks:
- managed_disks:
- - name: mymanageddisk1
- location: eastus2
- resource_group: myResourceGroup
- create_option: import
- source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
- storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
- os_type: windows
- storage_account_type: Premium_LRS
- - name: mymanageddisk2
- location: eastus2
- resource_group: myResourceGroup
- create_option: import
- source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
- storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
- os_type: windows
- storage_account_type: Premium_LRS
- managed_by_extended:
- - resource_group: myResourceGroupTest
- name: TestVM
-
- - name: Detach disks from the VMs specified in the list
- azure_rm_multiplemanageddisks:
- state: absent
- managed_disks:
- - name: mymanageddisk1
- location: eastus2
- resource_group: myResourceGroup
- create_option: import
- source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
- storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
- os_type: windows
- storage_account_type: Premium_LRS
- - name: mymanageddisk2
- location: eastus2
- resource_group: myResourceGroup
- create_option: import
- source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
- storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
- os_type: windows
- storage_account_type: Premium_LRS
- managed_by_extended:
- - resource_group: myResourceGroupTest
- name: TestVM1
- - resource_group: myResourceGroupTest
- name: TestVM2
-
- - name: Detach managed disks from all VMs without deletion
- azure_rm_multiplemanageddisks:
- state: present
- managed_disks:
- - name: mymanageddisk1
- location: eastus2
- resource_group: myResourceGroup
- - name: mymanageddisk2
- location: eastus2
- resource_group: myResourceGroup
- managed_by_extended: []
-
- - name: Detach managed disks from all VMs and delete them
- azure_rm_multiplemanageddisks:
- state: absent
- managed_disks:
- - name: mymanageddisk1
- location: eastus2
- resource_group: myResourceGroup
- - name: mymanageddisk2
- location: eastus2
- resource_group: myResourceGroup
+- name: Create managed operating system disks from page blob and attach them to a list of VMs
+ azure_rm_multiplemanageddisks:
+ managed_disks:
+ - name: mymanageddisk1
+ location: eastus2
+ resource_group: myResourceGroup
+ create_option: import
+ source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
+ storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
+ os_type: windows
+ storage_account_type: Premium_LRS
+ - name: mymanageddisk2
+ location: eastus2
+ resource_group: myResourceGroup
+ create_option: import
+ source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
+ storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
+ os_type: windows
+ storage_account_type: Premium_LRS
+ managed_by_extended:
+ - resource_group: myResourceGroupTest
+ name: TestVM
+
+- name: Detach disks from the VMs specified in the list
+ azure_rm_multiplemanageddisks:
+ state: absent
+ managed_disks:
+ - name: mymanageddisk1
+ location: eastus2
+ resource_group: myResourceGroup
+ create_option: import
+ source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
+ storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
+ os_type: windows
+ storage_account_type: Premium_LRS
+ - name: mymanageddisk2
+ location: eastus2
+ resource_group: myResourceGroup
+ create_option: import
+ source_uri: https://storageaccountname.blob.core.windows.net/containername/blob-name.vhd
+ storage_account_id: /subscriptions/<uuid>/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/storageaccountname
+ os_type: windows
+ storage_account_type: Premium_LRS
+ managed_by_extended:
+ - resource_group: myResourceGroupTest
+ name: TestVM1
+ - resource_group: myResourceGroupTest
+ name: TestVM2
+
+- name: Detach managed disks from all VMs without deletion
+ azure_rm_multiplemanageddisks:
+ state: present
+ managed_disks:
+ - name: mymanageddisk1
+ location: eastus2
+ resource_group: myResourceGroup
+ - name: mymanageddisk2
+ location: eastus2
+ resource_group: myResourceGroup
+ managed_by_extended: []
+
+- name: Detach managed disks from all VMs and delete them
+ azure_rm_multiplemanageddisks:
+ state: absent
+ managed_disks:
+ - name: mymanageddisk1
+ location: eastus2
+ resource_group: myResourceGroup
+ - name: mymanageddisk2
+ location: eastus2
+ resource_group: myResourceGroup
'''
RETURN = '''
@@ -312,7 +312,7 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from azure.core.exceptions import ResourceNotFoundError, AzureError
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
import time
except ImportError:
# This is handled in azure_rm_common
@@ -456,7 +456,7 @@ class AzureRMMultipleManagedDisk(AzureRMModuleBase):
if create_option == 'import':
creation_data['create_option'] = self.compute_models.DiskCreateOption.import_enum
creation_data['source_uri'] = source_uri
- creation_data['source_account_id'] = storage_account_id
+ creation_data['storage_account_id'] = storage_account_id
elif create_option == 'copy':
creation_data['create_option'] = self.compute_models.DiskCreateOption.copy
creation_data['source_resource_id'] = source_uri
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py
index 6f4f477ab..9137f591b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration.py
@@ -21,21 +21,26 @@ options:
description:
- The name of the resource group that contains the resource.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the server configuration.
required: True
+ type: str
value:
description:
- Value of the configuration.
+ type: str
state:
description:
- Assert the state of the MySQL configuration. Use C(present) to update setting, or C(absent) to reset to default value.
default: present
+ type: str
choices:
- absent
- present
@@ -49,12 +54,12 @@ author:
'''
EXAMPLES = '''
- - name: Update SQL Server setting
- azure_rm_mysqlconfiguration:
- resource_group: myResourceGroup
- server_name: myServer
- name: event_scheduler
- value: "ON"
+- name: Update SQL Server setting
+ azure_rm_mysqlconfiguration:
+ resource_group: myResourceGroup
+ server_name: myServer
+ name: event_scheduler
+ value: "ON"
'''
RETURN = '''
@@ -67,13 +72,10 @@ id:
gurations/event_scheduler"
'''
-import time
-
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py
index 48fa416a4..f6cd01ea9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlconfiguration_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get specific setting of MySQL Server
- azure_rm_mysqlconfiguration_info:
- resource_group: myResourceGroup
- server_name: testmysqlserver
- name: deadlock_timeout
-
- - name: Get all settings of MySQL Server
- azure_rm_mysqlconfiguration_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get specific setting of MySQL Server
+ azure_rm_mysqlconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: testmysqlserver
+ name: deadlock_timeout
+
+- name: Get all settings of MySQL Server
+ azure_rm_mysqlconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -95,9 +95,7 @@ settings:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase.py
index 09f28fc02..a8caa1745 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase.py
@@ -21,22 +21,27 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the database.
required: True
+ type: str
charset:
description:
- The charset of the database. Check MySQL documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
collation:
description:
- The collation of the database. Check MySQL documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
force_update:
description:
- When set to C(true), will delete and recreate the existing MySQL database if any of the properties don't match what is set.
@@ -47,6 +52,7 @@ options:
description:
- Assert the state of the MySQL Database. Use C(present) to create or update a database and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -60,11 +66,11 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MySQL Database
- azure_rm_mysqldatabase:
- resource_group: myResourceGroup
- server_name: testserver
- name: db1
+- name: Create (or update) MySQL Database
+ azure_rm_mysqldatabase:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: db1
'''
RETURN = '''
@@ -88,7 +94,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase_info.py
index 9c53a686a..db2cb8cdf 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqldatabase_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MySQL Database
- azure_rm_mysqldatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: database_name
-
- - name: List instances of MySQL Database
- azure_rm_mysqldatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of MySQL Database
+ azure_rm_mysqldatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: database_name
+
+- name: List instances of MySQL Database
+ azure_rm_mysqldatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -102,8 +102,6 @@ databases:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule.py
index ef5765718..a17e8cc1f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule.py
@@ -21,26 +21,32 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the MySQL firewall rule.
required: True
+ type: str
start_ip_address:
description:
- The start IP address of the MySQL firewall rule. Must be IPv4 format.
- required: True
+ - Required when creating.
+ type: str
end_ip_address:
description:
- The end IP address of the MySQL firewall rule. Must be IPv4 format.
- required: True
+ - Required when creating.
+ type: str
state:
description:
- Assert the state of the MySQL firewall rule. Use C(present) to create or update a rule and C(absent) to ensure it is not present.
default: present
+ type: str
choices:
- absent
- present
@@ -54,13 +60,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MySQL firewall rule
- azure_rm_mysqlfirewallrule:
- resource_group: myResourceGroup
- server_name: testserver
- name: rule1
- start_ip_address: 10.0.0.17
- end_ip_address: 10.0.0.20
+- name: Create (or update) MySQL firewall rule
+ azure_rm_mysqlfirewallrule:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: rule1
+ start_ip_address: 10.0.0.17
+ end_ip_address: 10.0.0.20
'''
RETURN = '''
@@ -79,7 +85,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -125,6 +130,7 @@ class AzureRMMySqlFirewallRule(AzureRMModuleBase):
self.start_ip_address = None
self.end_ip_address = None
+ required_if = [('state', 'present', ['start_ip_address', 'end_ip_address'])]
self.results = dict(changed=False)
self.state = None
self.parameters = dict()
@@ -132,6 +138,7 @@ class AzureRMMySqlFirewallRule(AzureRMModuleBase):
super(AzureRMMySqlFirewallRule, self).__init__(derived_arg_spec=self.module_arg_spec,
supports_check_mode=True,
+ required_if=required_if,
supports_tags=False)
def exec_module(self, **kwargs):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule_info.py
index 5bc8c1aff..9ee597780 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlfirewallrule_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MySQL Firewall Rule
- azure_rm_mysqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: firewall_rule_name
-
- - name: List instances of MySQL Firewall Rule
- azure_rm_mysqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of MySQL Firewall Rule
+ azure_rm_mysqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: firewall_rule_name
+
+- name: List instances of MySQL Firewall Rule
+ azure_rm_mysqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -95,9 +95,7 @@ rules:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver.py
index 49bfee6a6..f972f29a8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver.py
@@ -132,23 +132,23 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) MySQL Server
- azure_rm_mysqlserver:
- resource_group: myResourceGroup
- name: testserver
- sku:
- name: B_Gen5_1
- tier: Basic
- location: eastus
- storage_profile:
- storage_mb: 51200
- backup_retention_days: 7
- geo_redundant_backup: Disabled
- storage_autogrow: Disabled
- enforce_ssl: True
- version: 5.7
- admin_username: cloudsa
- admin_password: password
+- name: Create (or update) MySQL Server
+ azure_rm_mysqlserver:
+ resource_group: myResourceGroup
+ name: testserver
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: eastus
+ storage_profile:
+ storage_mb: 51200
+ backup_retention_days: 7
+ geo_redundant_backup: Disabled
+ storage_autogrow: Disabled
+ enforce_ssl: true
+ version: 5.7
+ admin_username: cloudsa
+ admin_password: password
'''
RETURN = '''
@@ -184,7 +184,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver_info.py
index 503219cb8..4a0b91c00 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_mysqlserver_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of MySQL Server
- azure_rm_mysqlserver_info:
- resource_group: myResourceGroup
- name: server_name
- tags:
- - key
+- name: Get instance of MySQL Server
+ azure_rm_mysqlserver_info:
+ resource_group: myResourceGroup
+ name: server_name
+ tags:
+ - key
- - name: List instances of MySQL Server
- azure_rm_mysqlserver_info:
- resource_group: myResourceGroup
+- name: List instances of MySQL Server
+ azure_rm_mysqlserver_info:
+ resource_group: myResourceGroup
'''
RETURN = '''
@@ -178,7 +178,6 @@ servers:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway.py
index e4dd46ade..e53f4fddf 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway.py
@@ -94,7 +94,7 @@ EXAMPLES = """
name: myNATGateway
idle_timeout_in_minutes: 10
location: eastus
- zones: [ 1 ]
+ zones: [1]
sku:
name: standard
"""
@@ -132,7 +132,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.tools import parse_resource_id, is_valid_resource_id
+ from azure.mgmt.core.tools import parse_resource_id, is_valid_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway_info.py
index 262dd2d99..27271303a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_natgateway_info.py
@@ -33,17 +33,17 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for NAT gateway by name.
- azure_rm_natgateway_info:
- name: Mynatgw
- resource_group: MyResourceGroup
+- name: Get facts for NAT gateway by name.
+ azure_rm_natgateway_info:
+ name: Mynatgw
+ resource_group: MyResourceGroup
- - name: Get facts for all NAT gateways in resource group.
- azure_rm_natgateway_info:
- resource_group: MyResourceGroup
+- name: Get facts for all NAT gateways in resource group.
+ azure_rm_natgateway_info:
+ resource_group: MyResourceGroup
- - name: Get facts for all NAT gateways.
- azure_rm_natgateway_info:
+- name: Get facts for all NAT gateways.
+ azure_rm_natgateway_info:
'''
RETURN = '''
@@ -114,7 +114,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface.py
index bd988f06a..bb17132d4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface.py
@@ -30,21 +30,25 @@ options:
description:
- Name of a resource group where the network interface exists or will be created.
required: true
+ type: str
name:
description:
- Name of the network interface.
required: true
+ type: str
state:
description:
- Assert the state of the network interface. Use C(present) to create or update an interface and
C(absent) to delete an interface.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
virtual_network:
description:
- An existing virtual network with which the network interface will be associated. Required when creating a network interface.
@@ -52,22 +56,25 @@ options:
- Make sure your virtual network is in the same resource group as NIC when you give only the name.
- It can be the virtual network's resource id.
- It can be a dict which contains I(name) and I(resource_group) of the virtual network.
+ - Required when creating.
+ type: raw
aliases:
- virtual_network_name
- required: true
subnet_name:
description:
- Name of an existing subnet within the specified virtual network. Required when creating a network interface.
- Use the C(virtual_network)'s resource group.
+ - Required when creating.
aliases:
- subnet
- required: true
+ type: str
os_type:
description:
- Determines any rules to be added to a default security group.
- When creating a network interface, if no security group name is provided, a default security group will be created.
- If the I(os_type=Windows), a rule allowing RDP access will be added.
- If the I(os_type=Linux), a rule allowing SSH access will be added.
+ type: str
choices:
- Windows
- Linux
@@ -76,6 +83,7 @@ options:
description:
- (Deprecate) Valid IPv4 address that falls within the specified subnet.
- This option will be deprecated in 2.9, use I(ip_configurations) instead.
+ type: str
private_ip_allocation_method:
description:
- (Deprecate) Whether or not the assigned IP address is permanent.
@@ -83,6 +91,7 @@ options:
- You can update the allocation method to C(Static) after a dynamic private IP address has been assigned.
- This option will be deprecated in 2.9, use I(ip_configurations) instead.
default: Dynamic
+ type: str
choices:
- Dynamic
- Static
@@ -97,6 +106,7 @@ options:
description:
- (Deprecate) Name of an existing public IP address object to associate with the security group.
- This option will be deprecated in 2.9, use I(ip_configurations) instead.
+ type: str
aliases:
- public_ip_address
- public_ip_name
@@ -105,6 +115,7 @@ options:
- (Deprecate) If a I(public_ip_address_name) is not provided, a default public IP address will be created.
- The allocation method determines whether or not the public IP address assigned to the network interface is permanent.
- This option will be deprecated in 2.9, use I(ip_configurations) instead.
+ type: str
choices:
- Dynamic
- Static
@@ -113,17 +124,23 @@ options:
description:
- List of IP configurations. Each configuration object should include
field I(private_ip_address), I(private_ip_allocation_method), I(public_ip_address_name), I(public_ip), I(public_ip_allocation_method), I(name).
+ type: list
+ elements: dict
+ default: []
suboptions:
name:
description:
- Name of the IP configuration.
required: true
+ type: str
private_ip_address:
description:
- Private IP address for the IP configuration.
+ type: str
private_ip_address_version:
description:
- The version of the IP configuration.
+ type: str
choices:
- IPv4
- IPv6
@@ -131,6 +148,7 @@ options:
private_ip_allocation_method:
description:
- Private IP allocation method.
+ type: str
choices:
- Dynamic
- Static
@@ -138,12 +156,14 @@ options:
public_ip_address_name:
description:
- Name of the public IP address. None for disable IP address.
+ type: str
aliases:
- public_ip_address
- public_ip_name
public_ip_allocation_method:
description:
- Public IP allocation method.
+ type: str
choices:
- Dynamic
- Static
@@ -153,11 +173,15 @@ options:
- List of existing load-balancer backend address pools to associate with the network interface.
- Can be written as a resource ID.
- Also can be a dict of I(name) and I(load_balancer).
+ type: list
+ elements: raw
application_gateway_backend_address_pools:
description:
- List of existing application gateway backend address pools to associate with the network interface.
- Can be written as a resource ID.
- Also can be a dict of I(name) and I(application_gateway).
+ type: list
+ elements: raw
version_added: "1.10.0"
primary:
description:
@@ -169,6 +193,8 @@ options:
description:
- List of application security groups in which the IP configuration is included.
- Element of the list could be a resource id of application security group, or dict of I(resource_group) and I(name).
+ type: list
+ elements: raw
enable_accelerated_networking:
description:
- Whether the network interface should be created with the accelerated networking feature or not.
@@ -190,11 +216,14 @@ options:
- It can be a dict contains security_group's I(name) and I(resource_group).
aliases:
- security_group_name
+ type: raw
open_ports:
description:
- When a default security group is created for a Linux host a rule will be added allowing inbound TCP
connections to the default SSH port C(22), and for a Windows host rules will be added allowing inbound
access to RDP ports C(3389) and C(5986). Override the default ports by providing a list of open ports.
+ type: list
+ elements: str
enable_ip_forwarding:
description:
- Whether to enable IP forwarding.
@@ -207,6 +236,7 @@ options:
- Which DNS servers should the NIC lookup.
- List of IP addresses.
type: list
+ elements: str
extends_documentation_fragment:
- azure.azcollection.azure
- azure.azcollection.azure_tags
@@ -218,123 +248,123 @@ author:
'''
EXAMPLES = '''
- - name: Create a network interface with minimal parameters
- azure_rm_networkinterface:
- name: nic001
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- ip_configurations:
- - name: ipconfig1
- public_ip_address_name: publicip001
- primary: True
-
- - name: Create a network interface with private IP address only (no Public IP)
- azure_rm_networkinterface:
- name: nic001
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- create_with_security_group: False
- ip_configurations:
- - name: ipconfig1
- primary: True
-
- - name: Create a network interface for use in a Windows host (opens RDP port) with custom RDP port
- azure_rm_networkinterface:
- name: nic002
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- os_type: Windows
- rdp_port: 3399
- security_group: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurit
- yGroups/nsg001"
- ip_configurations:
- - name: ipconfig1
- public_ip_address_name: publicip001
- primary: True
-
- - name: Create a network interface using existing security group and public IP
- azure_rm_networkinterface:
- name: nic003
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- security_group: secgroup001
- ip_configurations:
- - name: ipconfig1
- public_ip_address_name: publicip001
- primary: True
-
- - name: Create a network with multiple ip configurations
- azure_rm_networkinterface:
- name: nic004
- resource_group: myResourceGroup
- subnet_name: subnet001
- virtual_network: vnet001
- security_group:
- name: testnic002
- resource_group: Testing1
- ip_configurations:
- - name: ipconfig1
- public_ip_address_name: publicip001
- primary: True
- - name: ipconfig2
- load_balancer_backend_address_pools:
- - "{{ loadbalancer001.state.backend_address_pools[0].id }}"
- - name: backendaddrpool1
- load_balancer: loadbalancer001
-
- - name: Create network interface attached to application gateway backend address pool
- azure_rm_networkinterface:
- name: nic-appgw
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- create_with_security_group: false
- public_ip: false
- ip_configurations:
- - name: default
- primary: true
- application_gateway_backend_address_pools:
- - name: myApplicationGatewayBackendAddressPool
- application_gateway: myApplicationGateway
-
- - name: Create a network interface in accelerated networking mode
- azure_rm_networkinterface:
- name: nic005
- resource_group: myResourceGroup
- virtual_network_name: vnet001
- subnet_name: subnet001
- enable_accelerated_networking: True
-
- - name: Create a network interface with IP forwarding
- azure_rm_networkinterface:
- name: nic001
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- ip_forwarding: True
- ip_configurations:
- - name: ipconfig1
- public_ip_address_name: publicip001
- primary: True
-
- - name: Create a network interface with dns servers
- azure_rm_networkinterface:
- name: nic009
- resource_group: myResourceGroup
- virtual_network: vnet001
- subnet_name: subnet001
- dns_servers:
- - 8.8.8.8
-
- - name: Delete network interface
- azure_rm_networkinterface:
- resource_group: myResourceGroup
- name: nic003
- state: absent
+- name: Create a network interface with minimal parameters
+ azure_rm_networkinterface:
+ name: nic001
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_address_name: publicip001
+ primary: true
+
+- name: Create a network interface with private IP address only (no Public IP)
+ azure_rm_networkinterface:
+ name: nic001
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ create_with_security_group: false
+ ip_configurations:
+ - name: ipconfig1
+ primary: true
+
+- name: Create a network interface for use in a Windows host (opens RDP port) with custom RDP port
+ azure_rm_networkinterface:
+ name: nic002
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ os_type: Windows
+ rdp_port: 3399
+ security_group: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurit
+ yGroups/nsg001"
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_address_name: publicip001
+ primary: true
+
+- name: Create a network interface using existing security group and public IP
+ azure_rm_networkinterface:
+ name: nic003
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ security_group: secgroup001
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_address_name: publicip001
+ primary: true
+
+- name: Create a network with multiple ip configurations
+ azure_rm_networkinterface:
+ name: nic004
+ resource_group: myResourceGroup
+ subnet_name: subnet001
+ virtual_network: vnet001
+ security_group:
+ name: testnic002
+ resource_group: Testing1
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_address_name: publicip001
+ primary: true
+ - name: ipconfig2
+ load_balancer_backend_address_pools:
+ - "{{ loadbalancer001.state.backend_address_pools[0].id }}"
+ - name: backendaddrpool1
+ load_balancer: loadbalancer001
+
+- name: Create network interface attached to application gateway backend address pool
+ azure_rm_networkinterface:
+ name: nic-appgw
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ create_with_security_group: false
+ public_ip: false
+ ip_configurations:
+ - name: default
+ primary: true
+ application_gateway_backend_address_pools:
+ - name: myApplicationGatewayBackendAddressPool
+ application_gateway: myApplicationGateway
+
+- name: Create a network interface in accelerated networking mode
+ azure_rm_networkinterface:
+ name: nic005
+ resource_group: myResourceGroup
+ virtual_network_name: vnet001
+ subnet_name: subnet001
+ enable_accelerated_networking: true
+
+- name: Create a network interface with IP forwarding
+ azure_rm_networkinterface:
+ name: nic001
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ ip_forwarding: true
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_address_name: publicip001
+ primary: true
+
+- name: Create a network interface with dns servers
+ azure_rm_networkinterface:
+ name: nic009
+ resource_group: myResourceGroup
+ virtual_network: vnet001
+ subnet_name: subnet001
+ dns_servers:
+ - 8.8.8.8
+
+- name: Delete network interface
+ azure_rm_networkinterface:
+ resource_group: myResourceGroup
+ name: nic003
+ state: absent
'''
RETURN = '''
@@ -485,7 +515,7 @@ state:
'''
try:
- from msrestazure.tools import parse_resource_id, resource_id, is_valid_resource_id
+ from azure.mgmt.core.tools import resource_id, is_valid_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
@@ -565,8 +595,8 @@ ip_configuration_spec = dict(
private_ip_allocation_method=dict(type='str', choices=['Dynamic', 'Static'], default='Dynamic'),
public_ip_address_name=dict(type='str', aliases=['public_ip_address', 'public_ip_name']),
public_ip_allocation_method=dict(type='str', choices=['Dynamic', 'Static'], default='Dynamic'),
- load_balancer_backend_address_pools=dict(type='list'),
- application_gateway_backend_address_pools=dict(type='list'),
+ load_balancer_backend_address_pools=dict(type='list', elements='raw'),
+ application_gateway_backend_address_pools=dict(type='list', elements='raw'),
primary=dict(type='bool', default=False),
application_security_groups=dict(type='list', elements='raw')
)
@@ -591,11 +621,11 @@ class AzureRMNetworkInterface(AzureRMModuleBase):
subnet_name=dict(type='str', aliases=['subnet']),
virtual_network=dict(type='raw', aliases=['virtual_network_name']),
public_ip_allocation_method=dict(type='str', choices=['Dynamic', 'Static'], default='Dynamic'),
- ip_configurations=dict(type='list', default=None, elements='dict', options=ip_configuration_spec),
+ ip_configurations=dict(type='list', default=[], elements='dict', options=ip_configuration_spec),
os_type=dict(type='str', choices=['Windows', 'Linux'], default='Linux'),
- open_ports=dict(type='list'),
+ open_ports=dict(type='list', elements='str'),
enable_ip_forwarding=dict(type='bool', aliases=['ip_forwarding'], default=False),
- dns_servers=dict(type='list'),
+ dns_servers=dict(type='list', elements='str'),
)
required_if = [
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface_info.py
index 10b55c6fc..deeb2c8c6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_networkinterface_info.py
@@ -24,9 +24,11 @@ options:
name:
description:
- Only show results for a specific network interface.
+ type: str
resource_group:
description:
- Name of the resource group containing the network interface(s). Required when searching by name.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -43,21 +45,21 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one network interface
- azure_rm_networkinterface_info:
- resource_group: myResourceGroup
- name: nic001
-
- - name: Get network interfaces within a resource group
- azure_rm_networkinterface_info:
- resource_group: myResourceGroup
-
- - name: Get network interfaces by tag
- azure_rm_networkinterface_info:
- resource_group: myResourceGroup
- tags:
- - testing
- - foo:bar
+- name: Get facts for one network interface
+ azure_rm_networkinterface_info:
+ resource_group: myResourceGroup
+ name: nic001
+
+- name: Get network interfaces within a resource group
+ azure_rm_networkinterface_info:
+ resource_group: myResourceGroup
+
+- name: Get network interfaces by tag
+ azure_rm_networkinterface_info:
+ resource_group: myResourceGroup
+ tags:
+ - testing
+ - foo:bar
'''
RETURN = '''
@@ -111,61 +113,79 @@ networkinterfaces:
id:
description:
- Id of the network interface.
+ type: str
resource_group:
description:
- Name of a resource group where the network interface exists.
+ type: str
name:
description:
- Name of the network interface.
+ type: str
location:
description:
- Azure location.
+ type: str
virtual_network:
description:
- An existing virtual network with which the network interface will be associated.
- It is a dict which contains I(name) and I(resource_group) of the virtual network.
+ type: raw
subnet:
description:
- Name of an existing subnet within the specified virtual network.
+ type: str
tags:
description:
- Tags of the network interface.
+ type: dict
ip_configurations:
description:
- List of IP configurations, if contains multiple configurations.
+ type: complex
contains:
name:
description:
- Name of the IP configuration.
+ type: str
private_ip_address:
description:
- Private IP address for the IP configuration.
+ type: list
private_ip_allocation_method:
description:
- Private IP allocation method.
+ type: str
public_ip_address:
description:
- Name of the public IP address. None for disable IP address.
+ type: str
public_ip_allocation_method:
description:
- Public IP allocation method.
+ type: str
load_balancer_backend_address_pools:
description:
- List of existing load-balancer backend address pools associated with the network interface.
+ type: list
application_gateway_backend_address_pools:
description:
- List of existing application gateway backend address pools associated with the network interface.
version_added: "1.10.0"
+ type: list
primary:
description:
- Whether the IP configuration is the primary one in the list.
+ type: bool
application_security_groups:
description:
- List of Application security groups.
- sample: /subscriptions/<subsid>/resourceGroups/<rg>/providers/Microsoft.Network/applicationSecurityGroups/myASG
+ type: list
+ sample: ['/subscriptions/<subsid>/resourceGroups/<rg>/providers/Microsoft.Network/applicationSecurityGroups/myASG']
enable_accelerated_networking:
description:
- Specifies whether the network interface should be created with the accelerated networking feature or not.
+ type: bool
create_with_security_group:
description:
- Specifies whether a default security group should be be created with the NIC. Only applies when creating a new NIC.
@@ -173,40 +193,49 @@ networkinterfaces:
security_group:
description:
- A security group resource ID with which to associate the network interface.
+ type: str
enable_ip_forwarding:
description:
- Whether to enable IP forwarding
+ type: bool
dns_servers:
description:
- Which DNS servers should the NIC lookup.
- List of IP addresses.
+ type: list
mac_address:
description:
- The MAC address of the network interface.
+ type: str
provisioning_state:
description:
- The provisioning state of the network interface.
+ type: str
dns_settings:
description:
- The DNS settings in network interface.
+ type: complex
contains:
dns_servers:
description:
- List of DNS servers IP addresses.
+ type: list
applied_dns_servers:
description:
- If the VM that uses this NIC is part of an Availability Set, then this list will have the union of all DNS servers
from all NICs that are part of the Availability Set. This property is what is configured on each of those VMs.
+ type: list
internal_dns_name_label:
description:
- Relative DNS name for this NIC used for internal communications between VMs in the same virtual network.
+ type: str
internal_fqdn:
description:
- Fully qualified DNS name supporting internal communications between VMs in the same virtual network.
+ type: str
''' # NOQA
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.common import AzureMissingResourceHttpError, AzureHttpError
except Exception:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub.py
index 53c07cc81..dca1f0dfa 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub.py
@@ -68,7 +68,7 @@ EXAMPLES = '''
namespace_name: myNamespace
name: myhub
tags:
- - a: b
+ - a: b
sku: free
- name: Delete Notification Hub
@@ -83,7 +83,7 @@ EXAMPLES = '''
location: eastus
namespace_name: myNamespace
tags:
- - a: b
+ - a: b
sku: free
- name: Delete Notification Hub Namespace
@@ -91,7 +91,6 @@ EXAMPLES = '''
resource_group: testgroupans
namespace_name: myNamespace
state: absent
-
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub_info.py
index 5ab211c6d..b3635768d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_notificationhub_info.py
@@ -41,11 +41,10 @@ author:
EXAMPLES = '''
- - name: Get facts of specific notification hub
- community.azure.azure_rm_notificationhub_info:
- resource_group: myResourceGroup
- name: myNotificationHub
-
+- name: Get facts of specific notification hub
+ community.azure.azure_rm_notificationhub_info:
+ resource_group: myResourceGroup
+ name: myNotificationHub
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster.py
index cffee5ceb..cc579c998 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster.py
@@ -41,7 +41,6 @@ options:
description:
- Pull secret for the cluster (immutable).
type: str
- default: ""
domain:
description:
- The domain for the cluster (immutable).
@@ -105,6 +104,7 @@ options:
description:
- Configuration for OpenShift worker Vms.
type: list
+ elements: dict
suboptions:
name:
description: name of the worker profile (immutable).
@@ -157,6 +157,7 @@ options:
description:
- Ingress profiles configuration. only one profile is supported at the current API version.
type: list
+ elements: dict
suboptions:
visibility:
description:
@@ -198,34 +199,34 @@ author:
'''
EXAMPLES = '''
- - name: Create openshift cluster
- azure_rm_openshiftmanagedcluster:
- resource_group: "myResourceGroup"
- name: "myCluster"
- location: "eastus"
- cluster_profile:
- cluster_resource_group_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/clusterResourceGroup"
- domain: "mydomain"
- service_principal_profile:
- client_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
- client_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- network_profile:
- pod_cidr: "10.128.0.0/14"
- service_cidr: "172.30.0.0/16"
- worker_profiles:
- - vm_size : "Standard_D4s_v3"
- subnet_id : "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/myResourceGroup/Microsoft.Network/virtualNetworks/myVnet/subnets/worker"
- disk_size : 128
- count : 3
- master_profile:
- vm_size : "Standard_D8s_v3"
- subnet_id: "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/master"
- - name: Delete OpenShift Managed Cluster
- azure_rm_openshiftmanagedcluster:
- resource_group: myResourceGroup
- name: myCluster
- location: eastus
- state: absent
+- name: Create openshift cluster
+ azure_rm_openshiftmanagedcluster:
+ resource_group: "myResourceGroup"
+ name: "myCluster"
+ location: "eastus"
+ cluster_profile:
+ cluster_resource_group_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/clusterResourceGroup"
+ domain: "mydomain"
+ service_principal_profile:
+ client_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ client_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ network_profile:
+ pod_cidr: "10.128.0.0/14"
+ service_cidr: "172.30.0.0/16"
+ worker_profiles:
+ - vm_size: "Standard_D4s_v3"
+ subnet_id: "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/myResourceGroup/Microsoft.Network/virtualNetworks/myVnet/subnets/worker"
+ disk_size: 128
+ count: 3
+ master_profile:
+ vm_size: "Standard_D8s_v3"
+ subnet_id: "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/master"
+- name: Delete OpenShift Managed Cluster
+ azure_rm_openshiftmanagedcluster:
+ resource_group: myResourceGroup
+ name: myCluster
+ location: eastus
+ state: absent
'''
RETURN = '''
@@ -400,11 +401,6 @@ import json
import random
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # this is handled in azure_rm_common
- pass
class Actions:
@@ -526,6 +522,7 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
),
worker_profiles=dict(
type='list',
+ elements='dict',
disposition='/properties/workerProfiles',
options=dict(
name=dict(
@@ -587,6 +584,7 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
),
ingress_profiles=dict(
type='list',
+ elements='dict',
disposition='/properties/ingressProfiles',
options=dict(
name=dict(
@@ -653,6 +651,7 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
self.url = ('/subscriptions' +
@@ -753,14 +752,14 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the OpenShiftManagedCluster instance.')
self.fail('Error creating the OpenShiftManagedCluster instance: {0}'
'\n{1}'.format(str(self.body), str(exc)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
pass
return response
@@ -776,7 +775,7 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the OpenShiftManagedCluster instance.')
self.fail('Error deleting the OpenShiftManagedCluster instance: {0}'.format(str(e)))
@@ -795,11 +794,11 @@ class AzureRMOpenShiftManagedClusters(AzureRMModuleBaseExt):
600,
30)
found = True
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("OpenShiftManagedCluster instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the OpenShiftManagedCluster instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster_info.py
index 0070bd0d3..ed359c641 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_openshiftmanagedcluster_info.py
@@ -211,16 +211,9 @@ properties:
sample: Public
'''
-import time
import json
-import random
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # this is handled in azure_rm_common
- pass
class Actions:
@@ -261,6 +254,7 @@ class AzureRMOpenShiftManagedClustersInfo(AzureRMModuleBaseExt):
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if (self.resource_group is not None and self.name is not None):
@@ -296,9 +290,9 @@ class AzureRMOpenShiftManagedClustersInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return {}
@@ -327,9 +321,9 @@ class AzureRMOpenShiftManagedClustersInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return [self.format_item(x) for x in results['value']] if results['value'] else []
@@ -354,9 +348,9 @@ class AzureRMOpenShiftManagedClustersInfo(AzureRMModuleBaseExt):
self.status_code,
600,
30)
- results = json.loads(response.text)
+ results = json.loads(response.body())
# self.log('Response : {0}'.format(response))
- except CloudError as e:
+ except Exception as e:
self.log('Could not get info for @(Model.ModuleOperationNameUpper).')
return results
# return [self.format_item(x) for x in results['value']] if results['value'] else []
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration.py
index 4d95b5b71..65d3bf060 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration.py
@@ -21,21 +21,26 @@ options:
description:
- The name of the resource group that contains the resource.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- Setting name.
required: True
+ type: str
value:
description:
- Setting value.
+ type: str
state:
description:
- Assert the state of the PostgreSQL setting. Use C(present) to update setting, or C(absent) to reset to default value.
default: present
+ type: str
choices:
- absent
- present
@@ -49,12 +54,12 @@ author:
'''
EXAMPLES = '''
- - name: Update PostgreSQL Server setting
- azure_rm_postgresqlconfiguration:
- resource_group: myResourceGroup
- server_name: myServer
- name: deadlock_timeout
- value: 2000
+- name: Update PostgreSQL Server setting
+ azure_rm_postgresqlconfiguration:
+ resource_group: myResourceGroup
+ server_name: myServer
+ name: deadlock_timeout
+ value: 2000
'''
RETURN = '''
@@ -67,11 +72,8 @@ id:
gurations/event_scheduler"
'''
-import time
-
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrest.serialization import Model
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration_info.py
index 38a97cccb..38f3a9f42 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlconfiguration_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get specific setting of PostgreSQL configuration
- azure_rm_postgresqlconfiguration_info:
- resource_group: myResourceGroup
- server_name: testpostgresqlserver
- name: deadlock_timeout
-
- - name: Get all settings of PostgreSQL Configuration
- azure_rm_postgresqlconfiguration_info:
- resource_group: myResourceGroup
- server_name: testpostgresqlserver
+- name: Get specific setting of PostgreSQL configuration
+ azure_rm_postgresqlconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: testpostgresqlserver
+ name: deadlock_timeout
+
+- name: Get all settings of PostgreSQL Configuration
+ azure_rm_postgresqlconfiguration_info:
+ resource_group: myResourceGroup
+ server_name: testpostgresqlserver
'''
RETURN = '''
@@ -96,8 +96,6 @@ settings:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase.py
index 4c54e6db7..78520e94a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase.py
@@ -21,22 +21,27 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the database.
required: True
+ type: str
charset:
description:
- The charset of the database. Check PostgreSQL documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
collation:
description:
- The collation of the database. Check PostgreSQL documentation for possible values.
- This is only set on creation, use I(force_update) to recreate a database if the values don't match.
+ type: str
force_update:
description:
- When set to C(true), will delete and recreate the existing PostgreSQL database if any of the properties don't match what is set.
@@ -47,6 +52,7 @@ options:
description:
- Assert the state of the PostgreSQL database. Use C(present) to create or update a database and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -60,11 +66,11 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) PostgreSQL Database
- azure_rm_postgresqldatabase:
- resource_group: myResourceGroup
- server_name: testserver
- name: db1
+- name: Create (or update) PostgreSQL Database
+ azure_rm_postgresqldatabase:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: db1
'''
RETURN = '''
@@ -87,10 +93,8 @@ import time
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase_info.py
index d70fbd54b..471344e64 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqldatabase_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of PostgreSQL Database
- azure_rm_postgresqldatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: database_name
-
- - name: List instances of PostgreSQL Database
- azure_rm_postgresqldatabase_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of PostgreSQL Database
+ azure_rm_postgresqldatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: database_name
+
+- name: List instances of PostgreSQL Database
+ azure_rm_postgresqldatabase_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -102,7 +102,6 @@ databases:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule.py
index 4eb702e19..54de3ce6b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule.py
@@ -21,23 +21,29 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the PostgreSQL firewall rule.
required: True
+ type: str
start_ip_address:
description:
- The start IP address of the PostgreSQL firewall rule. Must be IPv4 format.
+ type: str
end_ip_address:
description:
- The end IP address of the PostgreSQL firewall rule. Must be IPv4 format.
+ type: str
state:
description:
- Assert the state of the PostgreSQL firewall rule. Use C(present) to create or update a PostgreSQL firewall rule and C(absent) to delete it.
+ type: str
default: present
choices:
- absent
@@ -52,13 +58,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) PostgreSQL firewall rule
- azure_rm_postgresqlfirewallrule:
- resource_group: myResourceGroup
- server_name: testserver
- name: rule1
- start_ip_address: 10.0.0.16
- end_ip_address: 10.0.0.18
+- name: Create (or update) PostgreSQL firewall rule
+ azure_rm_postgresqlfirewallrule:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: rule1
+ start_ip_address: 10.0.0.16
+ end_ip_address: 10.0.0.18
'''
RETURN = '''
@@ -77,7 +83,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule_info.py
index 578fe6576..e2dc889df 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlfirewallrule_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of PostgreSQL Firewall Rule
- azure_rm_postgresqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
- name: firewall_rule_name
-
- - name: List instances of PostgreSQL Firewall Rule
- azure_rm_postgresqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of PostgreSQL Firewall Rule
+ azure_rm_postgresqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
+ name: firewall_rule_name
+
+- name: List instances of PostgreSQL Firewall Rule
+ azure_rm_postgresqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: server_name
'''
RETURN = '''
@@ -96,7 +96,6 @@ rules:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver.py
index 524050565..ab9022905 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver.py
@@ -128,19 +128,19 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) PostgreSQL Server
- azure_rm_postgresqlserver:
- resource_group: myResourceGroup
- name: testserver
- sku:
- name: B_Gen5_1
- tier: Basic
- location: eastus
- storage_mb: 1024
- enforce_ssl: True
- storage_autogrow: True
- admin_username: cloudsa
- admin_password: password
+- name: Create (or update) PostgreSQL Server
+ azure_rm_postgresqlserver:
+ resource_group: myResourceGroup
+ name: testserver
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: eastus
+ storage_mb: 1024
+ enforce_ssl: true
+ storage_autogrow: true
+ admin_username: cloudsa
+ admin_password: password
'''
RETURN = '''
@@ -176,7 +176,6 @@ try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver_info.py
index 159148e34..04f5edf82 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_postgresqlserver_info.py
@@ -41,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of PostgreSQL Server
- azure_rm_postgresqlserver_info:
- resource_group: myResourceGroup
- name: server_name
+- name: Get instance of PostgreSQL Server
+ azure_rm_postgresqlserver_info:
+ resource_group: myResourceGroup
+ name: server_name
- - name: List instances of PostgreSQL Server
- azure_rm_postgresqlserver_info:
- resource_group: myResourceGroup
- tags:
- - key
+- name: List instances of PostgreSQL Server
+ azure_rm_postgresqlserver_info:
+ resource_group: myResourceGroup
+ tags:
+ - key
'''
RETURN = '''
@@ -168,7 +168,6 @@ servers:
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednsrecordset.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednsrecordset.py
index ca998d1ff..3560139e7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednsrecordset.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednsrecordset.py
@@ -133,9 +133,9 @@ EXAMPLES = '''
record_type: "{{ item.type }}"
records: "{{ item.records }}"
with_items:
- - { name: 'servera', type: 'A', records: [ { entry: '10.10.10.20' }, { entry: '10.10.10.21' }] }
- - { name: 'serverb', type: 'A', records: [ { entry: '10.10.10.30' }, { entry: '10.10.10.41' }] }
- - { name: 'serverc', type: 'A', records: [ { entry: '10.10.10.40' }, { entry: '10.10.10.41' }] }
+ - {name: 'servera', type: 'A', records: [{ entry: '10.10.10.20'}, {entry: '10.10.10.21'}]}
+ - {name: 'serverb', type: 'A', records: [{ entry: '10.10.10.30'}, {entry: '10.10.10.41'}]}
+ - {name: 'serverc', type: 'A', records: [{ entry: '10.10.10.40'}, {entry: '10.10.10.41'}]}
- name: create SRV records in a new record set
azure_rm_privatednsrecordset:
@@ -145,10 +145,10 @@ EXAMPLES = '''
time_to_live: 7200
record_type: SRV
records:
- - entry: sip.testing.com
- priority: 20
- weight: 10
- port: 5060
+ - entry: sip.testing.com
+ priority: 20
+ weight: 10
+ port: 5060
- name: create PTR record in a new record set
azure_rm_privatednsrecordset:
@@ -157,7 +157,7 @@ EXAMPLES = '''
zone_name: testing.com
record_type: PTR
records:
- - entry: servera.testing.com
+ - entry: servera.testing.com
- name: create TXT record in a new record set
azure_rm_privatednsrecordset:
@@ -166,7 +166,7 @@ EXAMPLES = '''
zone_name: testing.com
record_type: TXT
records:
- - entry: 'v=spf1 a -all'
+ - entry: 'v=spf1 a -all'
- name: Update SOA record
azure_rm_privatednsrecordset:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone.py
index 4a84cdbce..0dfa133e9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone.py
@@ -61,7 +61,6 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: example.com
state: absent
-
'''
RETURN = '''
@@ -81,8 +80,7 @@ state:
'''
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, format_resource_id
-from ansible.module_utils._text import to_native
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
from azure.core.exceptions import ResourceNotFoundError
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone_info.py
index 5a5730e4c..3b5cbbca0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszone_info.py
@@ -111,7 +111,6 @@ privatednszones:
'''
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils._text import to_native
try:
from azure.core.exceptions import ResourceNotFoundError
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszonelink.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszonelink.py
index b87b54a6b..65168ea6b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszonelink.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatednszonelink.py
@@ -156,7 +156,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, \
format_resource_id
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpoint_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpoint_info.py
index dbf39e969..bddf2a098 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpoint_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpoint_info.py
@@ -42,19 +42,19 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one private endpoint
- azure_rm_privateendpoint_info:
- resource_group: myResourceGroup
- name: testprivateendpoint
+- name: Get facts for one private endpoint
+ azure_rm_privateendpoint_info:
+ resource_group: myResourceGroup
+ name: testprivateendpoint
- - name: Get all private endpoint under the resource group
- azure_rm_privateendpoint_info:
- resource_group: myResourceGroup
+- name: Get all private endpoint under the resource group
+ azure_rm_privateendpoint_info:
+ resource_group: myResourceGroup
- - name: Get all private endpoint under subscription
- azure_rm_virtualnetwork_info:
- tags:
- - key1:value1
+- name: Get all private endpoint under subscription
+ azure_rm_virtualnetwork_info:
+ tags:
+ - key1:value1
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpointdnszonegroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpointdnszonegroup.py
index 1d5480de3..7c2af8402 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpointdnszonegroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privateendpointdnszonegroup.py
@@ -182,7 +182,7 @@ state:
'''
try:
- from msrestazure.tools import resource_id
+ from azure.mgmt.core.tools import resource_id
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatelinkservice.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatelinkservice.py
index 611adb161..a87302b1c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatelinkservice.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_privatelinkservice.py
@@ -141,7 +141,7 @@ EXAMPLES = '''
azure_rm_privatelinkservice:
name: linkservice-name
resource_group: myResourceGroup
- enable_proxy_protocol: True
+ enable_proxy_protocol: true
fqdns:
- 'dns01.com'
- 'dns02.com'
@@ -154,18 +154,18 @@ EXAMPLES = '''
- xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- yyyyyy-yyyyy-yyyy-yyyy-yyyyyyyyyyy
load_balancer_frontend_ip_configurations:
- - id: load_balancer_frontend_ip_configurations_id
+ - id: load_balancer_frontend_ip_configurations_id
ip_configurations:
- name: testSubnet
properties:
- primary: False
+ primary: false
private_ip_allocation_method: 'Dynamic'
private_ip_address_version: 'IPv4'
subnet:
id: subnet_id
- name: subnetfredprivate-1
properties:
- primary: True
+ primary: true
private_ip_allocation_method: 'Static'
private_ip_address_version: 'IPv4'
subnet:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_proximityplacementgroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_proximityplacementgroup.py
index da68e776e..7852c1dcf 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_proximityplacementgroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_proximityplacementgroup.py
@@ -121,8 +121,7 @@ state:
'''
from ansible.module_utils.basic import _load_params
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, HAS_AZURE, \
- format_resource_id, normalize_location_name
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, normalize_location_name
try:
from azure.core.exceptions import ResourceNotFoundError
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py
index 45fc9c807..4d6cf341c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress.py
@@ -27,10 +27,12 @@ options:
description:
- Name of resource group with which the Public IP is associated.
required: true
+ type: str
allocation_method:
description:
- Control whether the assigned Public IP remains permanently assigned to the object.
- If not set to C(Static), the IP address may changed anytime an associated virtual machine is power cycled.
+ type: str
choices:
- dynamic
- static
@@ -41,27 +43,32 @@ options:
description:
- The customizable portion of the FQDN assigned to public IP address. This is an explicit setting.
- If no value is provided, any existing value will be removed on an existing public IP.
+ type: str
aliases:
- domain_name_label
name:
description:
- Name of the Public IP.
+ type: str
required: true
state:
description:
- Assert the state of the Public IP. Use C(present) to create or update a and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
sku:
description:
- The public IP address SKU.
- When I(version=ipv6), if I(sku=standard) then set I(allocation_method=static).
- When I(version=ipv4), if I(sku=standard) then set I(allocation_method=static).
+ type: str
choices:
- basic
- standard
@@ -71,13 +78,19 @@ options:
description:
- List of IpTag associated with the public IP address.
- Each element should contain type:value pair.
+ type: list
+ elements: dict
suboptions:
type:
description:
- Sets the ip_tags type.
+ type: str
+ required: true
value:
description:
- Sets the ip_tags value.
+ type: str
+ required: true
idle_timeout:
description:
- Idle timeout in minutes.
@@ -85,6 +98,7 @@ options:
version:
description:
- The public IP address version.
+ type: str
choices:
- ipv4
- ipv6
@@ -109,18 +123,18 @@ author:
'''
EXAMPLES = '''
- - name: Create a public ip address
- azure_rm_publicipaddress:
- resource_group: myResourceGroup
- name: my_public_ip
- allocation_method: static
- domain_name: foobar
-
- - name: Delete public ip
- azure_rm_publicipaddress:
- resource_group: myResourceGroup
- name: my_public_ip
- state: absent
+- name: Create a public ip address
+ azure_rm_publicipaddress:
+ resource_group: myResourceGroup
+ name: my_public_ip
+ allocation_method: static
+ domain_name: foobar
+
+- name: Delete public ip
+ azure_rm_publicipaddress:
+ resource_group: myResourceGroup
+ name: my_public_ip
+ state: absent
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress_info.py
index 63c670529..0c2798c7b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_publicipaddress_info.py
@@ -24,9 +24,11 @@ options:
name:
description:
- Only show results for a specific Public IP.
+ type: str
resource_group:
description:
- Limit results by resource group. Required when using name parameter.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -42,16 +44,16 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one Public IP
- azure_rm_publicipaddress_info:
- resource_group: myResourceGroup
- name: publicip001
-
- - name: Get facts for all Public IPs within a resource groups
- azure_rm_publicipaddress_info:
- resource_group: myResourceGroup
- tags:
- - key:value
+- name: Get facts for one Public IP
+ azure_rm_publicipaddress_info:
+ resource_group: myResourceGroup
+ name: publicip001
+
+- name: Get facts for all Public IPs within a resource groups
+ azure_rm_publicipaddress_info:
+ resource_group: myResourceGroup
+ tags:
+ - key:value
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault.py
index d793e75bd..b2c45b2d5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault.py
@@ -49,18 +49,18 @@ author:
'''
EXAMPLES = '''
- - name: Create/Update Azure Recovery Service vault
- azure_rm_recoveryservicesvault:
- resource_group: 'myResourceGroup'
- name: 'testVault'
- location: 'westeurope'
- state: 'present'
- - name: Delete Recovery Service Vault
- azure_rm_recoveryservicesvault:
- resource_group: 'myResourceGroup'
- name: 'testVault'
- location: 'westeurope'
- state: 'absent'
+- name: Create/Update Azure Recovery Service vault
+ azure_rm_recoveryservicesvault:
+ resource_group: 'myResourceGroup'
+ name: 'testVault'
+ location: 'westeurope'
+ state: 'present'
+- name: Delete Recovery Service Vault
+ azure_rm_recoveryservicesvault:
+ resource_group: 'myResourceGroup'
+ name: 'testVault'
+ location: 'westeurope'
+ state: 'absent'
'''
RETURN = '''
@@ -121,9 +121,7 @@ response:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-import re
import json
-import time
class AzureRMRecoveryServicesVault(AzureRMModuleBaseExt):
@@ -210,6 +208,7 @@ class AzureRMRecoveryServicesVault(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
old_response = self.get_resource()
@@ -249,9 +248,9 @@ class AzureRMRecoveryServicesVault(AzureRMModuleBaseExt):
self.fail('Error in creating Azure Recovery Service Vault {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -272,12 +271,6 @@ class AzureRMRecoveryServicesVault(AzureRMModuleBaseExt):
self.log('Error attempting to delete Azure Recovery Service Vault.')
self.fail('Error while deleting Azure Recovery Service Vault: {0}'.format(str(e)))
- try:
- response = json.loads(response.text)
- except Exception:
- response = {'text': response.text}
- return response
-
def get_resource(self):
# self.log('Get Recovery Service Vault Name {0}'.format(self.))
found = False
@@ -296,7 +289,7 @@ class AzureRMRecoveryServicesVault(AzureRMModuleBaseExt):
except Exception as e:
self.log('Recovery Service Vault Does not exist.')
if found is True:
- response = json.loads(response.text)
+ response = json.loads(response.body())
return response
else:
return False
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault_info.py
index e7f2a6192..6b2dee776 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_recoveryservicesvault_info.py
@@ -34,10 +34,10 @@ author:
'''
EXAMPLES = '''
- - name: Get Azure Recovery Services Vault Details.
- azure_rm_recoveryservicesvault_info:
- resource_group: 'myResourceGroup'
- name: 'testVault'
+- name: Get Azure Recovery Services Vault Details.
+ azure_rm_recoveryservicesvault_info:
+ resource_group: 'myResourceGroup'
+ name: 'testVault'
'''
RETURN = '''
@@ -98,9 +98,7 @@ response:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
-import re
import json
-import time
class AzureRMRecoveryServicesVaultInfo(AzureRMModuleBaseExt):
@@ -162,6 +160,7 @@ class AzureRMRecoveryServicesVaultInfo(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
changed = True
@@ -190,9 +189,9 @@ class AzureRMRecoveryServicesVaultInfo(AzureRMModuleBaseExt):
self.fail('Error in fetching Azure Recovery Service Vault Details {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache.py
index e004eb056..b93a52992 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache.py
@@ -21,31 +21,39 @@ options:
description:
- Name of the resource group to which the resource belongs.
required: True
+ type: str
name:
description:
- Unique name of the Azure Cache for Redis to create or update.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
sku:
description:
- SKU info of Azure Cache for Redis.
+ type: dict
+ required: true
suboptions:
name:
description:
- Type of Azure Cache for Redis to deploy.
+ type: str
+ required: true
choices:
- basic
- standard
- premium
- required: True
size:
description:
- Size of Azure Cache for Redis to deploy.
- When I(sku=basic) or I(sku=standard), allowed values are C(C0), C(C1), C(C2), C(C3), C(C4), C(C5), C(C6).
- When I(sku=premium), allowed values are C(P1), C(P2), C(P3), C(P4).
- Please see U(https://docs.microsoft.com/en-us/rest/api/redis/redis/create#sku) for allowed values.
+ type: str
+ required: true
choices:
- C0
- C1
@@ -58,7 +66,6 @@ options:
- P2
- P3
- P4
- required: True
enable_non_ssl_port:
description:
- When set I(enable_non_ssl_port=true), the non-ssl Redis server port 6379 will be enabled.
@@ -68,14 +75,17 @@ options:
description:
- Configures the amount of memory in MB that is reserved to accommodate for memory fragmentation.
- Please see U(https://docs.microsoft.com/en-us/azure/redis-cache/cache-configure#advanced-settings) for more detail.
+ type: int
maxmemory_reserved:
description:
- Configures the amount of memory in MB that is reserved for non-cache operations.
- Please see U(https://docs.microsoft.com/en-us/azure/redis-cache/cache-configure#advanced-settings) for more detail.
+ type: int
maxmemory_policy:
description:
- Configures the eviction policy of the cache.
- Please see U(https://docs.microsoft.com/en-us/azure/redis-cache/cache-configure#advanced-settings) for more detail.
+ type: str
choices:
- volatile_lru
- allkeys_lru
@@ -122,6 +132,7 @@ options:
static_ip:
description:
- Static IP address. Required when deploying an Azure Cache for Redis inside an existing Azure virtual network.
+ type: str
subnet:
description:
- Subnet in a virtual network to deploy the Azure Cache for Redis in.
@@ -131,6 +142,7 @@ options:
- I(name). Name of the subnet.
- I(resource_group). Resource group name of the subnet.
- I(virtual_network_name). Name of virtual network to which this subnet belongs.
+ type: raw
tenant_settings:
description:
- Dict of tenant settings.
@@ -138,26 +150,29 @@ options:
reboot:
description:
- Reboot specified Redis node(s). There can be potential data loss.
+ type: dict
suboptions:
shard_id:
description:
- If clustering is enabled, the id of the shard to be rebooted.
- type: int
+ type: str
reboot_type:
description:
- Which Redis node(s) to reboot.
+ type: str
choices:
- primary
- secondary
- all
- default: all
regenerate_key:
description:
- Regenerate Redis cache's access keys.
+ type: dict
suboptions:
key_type:
description:
- The Redis key to regenerate.
+ type: str
choices:
- primary
- secondary
@@ -170,13 +185,14 @@ options:
type: bool
default: True
state:
- description:
- - Assert the state of the Azure Cache for Redis.
- - Use C(present) to create or update an Azure Cache for Redis and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Azure Cache for Redis.
+ - Use C(present) to create or update an Azure Cache for Redis and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -193,8 +209,8 @@ EXAMPLES = '''
resource_group: myResourceGroup
name: myRedis
sku:
- name: basic
- size: C1
+ name: basic
+ size: C1
- name: Scale up the Azure Cache for Redis
azure_rm_rediscache:
@@ -251,7 +267,6 @@ import time
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.polling import LROPoller
from azure.mgmt.redis import RedisManagementClient
from azure.mgmt.redis.models import (
@@ -265,9 +280,11 @@ except ImportError:
sku_spec = dict(
name=dict(
type='str',
+ required=True,
choices=['basic', 'standard', 'premium']),
size=dict(
type='str',
+ required=True,
choices=['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'P1', 'P2', 'P3', 'P4']
)
)
@@ -362,6 +379,7 @@ class AzureRMRedisCaches(AzureRMModuleBase):
),
sku=dict(
type='dict',
+ required=True,
options=sku_spec
),
enable_non_ssl_port=dict(
@@ -651,7 +669,7 @@ class AzureRMRedisCaches(AzureRMModuleBase):
name=self.name,
parameters=params)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
if self.wait_for_provisioning:
@@ -692,7 +710,7 @@ class AzureRMRedisCaches(AzureRMModuleBase):
response = self._client.redis.update(resource_group_name=self.resource_group,
name=self.name,
parameters=params)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
if self.wait_for_provisioning:
@@ -758,7 +776,7 @@ class AzureRMRedisCaches(AzureRMModuleBase):
response = self._client.redis.force_reboot(resource_group_name=self.resource_group,
name=self.name,
parameters=params)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
if self.wait_for_provisioning:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache_info.py
index fec05cd77..44e47f4d5 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscache_info.py
@@ -24,9 +24,11 @@ options:
description:
- The resource group to search for the desired Azure Cache for Redis.
required: True
+ type: str
name:
description:
- Limit results to a specific Azure Cache for Redis.
+ type: str
return_access_keys:
description:
- Indicate weather to return access keys of the Azure Cache for Redis.
@@ -46,20 +48,20 @@ author:
'''
EXAMPLES = '''
- - name: Get Azure Cache for Redis by name
- azure_rm_rediscache_info:
- resource_group: myResourceGroup
- name: myRedis
-
- - name: Get Azure Cache for Redis with access keys by name
- azure_rm_rediscache_info:
- resource_group: myResourceGroup
- name: myRedis
- return_access_keys: true
-
- - name: Get Azure Cache for Redis in specific resource group
- azure_rm_rediscache_info:
- resource_group: myResourceGroup
+- name: Get Azure Cache for Redis by name
+ azure_rm_rediscache_info:
+ resource_group: myResourceGroup
+ name: myRedis
+
+- name: Get Azure Cache for Redis with access keys by name
+ azure_rm_rediscache_info:
+ resource_group: myResourceGroup
+ name: myRedis
+ return_access_keys: true
+
+- name: Get Azure Cache for Redis in specific resource group
+ azure_rm_rediscache_info:
+ resource_group: myResourceGroup
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscachefirewallrule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscachefirewallrule.py
index 921f982a6..67b2c90b6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscachefirewallrule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_rediscachefirewallrule.py
@@ -21,30 +21,36 @@ options:
description:
- Name of the resource group to which the resource belongs.
required: True
+ type: str
cache_name:
description:
- Name of the Azure Cache for Redis.
required: True
+ type: str
name:
description:
- Name of the Firewall rule.
required: True
+ type: str
start_ip_address:
description:
- The start IP address of the Azure Cache for Redis Firewall rule. Must be IPv4 format.
- Required when creating Firewall rule.
+ type: str
end_ip_address:
description:
- The end IP address of the Azure Cache for Redis Firewall rule. Must be IPv4 format.
- Required when creating Firewall rule.
+ type: str
state:
- description:
- - Assert the state of the Firewall rule of Azure Cache for Redis.
- - Use C(present) to create or update Firewall rule of Azure Cache for Redis and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the Firewall rule of Azure Cache for Redis.
+ - Use C(present) to create or update Firewall rule of Azure Cache for Redis and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -55,20 +61,20 @@ author:
'''
EXAMPLES = '''
- - name: Create a Firewall rule for Azure Cache for Redis
- azure_rm_rediscachefirewallrule:
- resource_group: myResourceGroup
- cache_name: myRedisCache
- name: myRule
- start_ip_address: 192.168.1.1
- end_ip_address: 192.168.1.4
-
- - name: Update a Firewall rule for Azure Cache for Redis
- azure_rm_rediscachefirewallrule:
- resource_group: myResourceGroup
- cache_name: myRedisCache
- name: myRule
- end_ip_address: 192.168.1.5
+- name: Create a Firewall rule for Azure Cache for Redis
+ azure_rm_rediscachefirewallrule:
+ resource_group: myResourceGroup
+ cache_name: myRedisCache
+ name: myRule
+ start_ip_address: 192.168.1.1
+ end_ip_address: 192.168.1.4
+
+- name: Update a Firewall rule for Azure Cache for Redis
+ azure_rm_rediscachefirewallrule:
+ resource_group: myResourceGroup
+ cache_name: myRedisCache
+ name: myRule
+ end_ip_address: 192.168.1.5
'''
RETURN = '''
@@ -80,12 +86,9 @@ id:
sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redis/myRedis/firewallRules/myRule"
'''
-import time
-
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from azure.core.polling import LROPoller
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.redis import RedisManagementClient
from azure.mgmt.redis.models import (
@@ -261,7 +264,7 @@ class AzureRMRedisCacheFirewallRule(AzureRMModuleBase):
cache_name=self.cache_name,
rule_name=self.name,
parameters=params)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment.py
index b895d8883..a70542f80 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment.py
@@ -54,27 +54,26 @@ author:
'''
EXAMPLES = '''
- - name: Delete Registration Assignment
- azure_rm_registrationassignment:
- scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: absent
+- name: Delete Registration Assignment
+ azure_rm_registrationassignment:
+ scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: absent
- - name: Create Registration Assignment in subscription level
- azure_rm_registrationassignment:
- scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- properties:
- registration_definition_id: /subscriptions/xxx-xxx/providers/Microsoft.ManagedServices/registrationDefinitions/xxx-xxx
+- name: Create Registration Assignment in subscription level
+ azure_rm_registrationassignment:
+ scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ properties:
+ registration_definition_id: /subscriptions/xxx-xxx/providers/Microsoft.ManagedServices/registrationDefinitions/xxx-xxx
- - name: Create Registration Assignment in resourcegroup level with randomly generating registration_assignment_id
- azure_rm_registrationassignment:
- scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
- properties:
- registration_definition_id: /subscriptions/xxx-xxx/providers/Microsoft.ManagedServices/registrationDefinitions/xxx-xxx
-
+- name: Create Registration Assignment in resourcegroup level with randomly generating registration_assignment_id
+ azure_rm_registrationassignment:
+ scope: subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
+ properties:
+ registration_definition_id: /subscriptions/xxx-xxx/providers/Microsoft.ManagedServices/registrationDefinitions/xxx-xxx
'''
RETURN = '''
@@ -120,7 +119,6 @@ import uuid
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
from azure.mgmt.managedservices import ManagedServicesClient
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
@@ -238,7 +236,7 @@ class AzureRMRegistrationAssignment(AzureRMModuleBaseExt):
response = self.mgmt_client.registration_assignments.begin_create_or_update(scope=self.scope,
registration_assignment_id=self.registration_assignment_id,
request_body=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the RegistrationAssignment instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment_info.py
index 60003a192..ef8875f7c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationassignment_info.py
@@ -34,17 +34,15 @@ author:
'''
EXAMPLES = '''
- - name: Get Registration Assignment
- azure_rm_registrationassignment_info:
- registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- scope: subscription/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
-
-
- - name: Get All Registration Assignments in scope(subscription)
- azure_rm_registrationassignment_info:
- scope: subscription/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+- name: Get Registration Assignment
+ azure_rm_registrationassignment_info:
+ registration_assignment_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ scope: subscription/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
+- name: Get All Registration Assignments in scope(subscription)
+ azure_rm_registrationassignment_info:
+ scope: subscription/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
'''
RETURN = '''
@@ -89,10 +87,7 @@ registration_assignments:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.mgmt.managedservices import ManagedServicesClient
- from msrestazure.azure_operation import AzureOperationPoller
- from msrest.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition.py
index 9daaf9980..0d89da3a9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition.py
@@ -106,34 +106,33 @@ author:
'''
EXAMPLES = '''
- - name: Create Registration Definition without scope
- azure_rm_registrationdefinition:
- registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- properties:
- description: test
- authorizations:
- - principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- managed_by_tenant_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- registration_definition_name: def4
-
- - name: Create Registration Definition with scope
- azure_rm_registrationdefinition:
- scope: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- properties:
- description: test
- authorizations:
- - principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- managed_by_tenant_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- registration_definition_name: def5
-
- - name: Delete Registration Definition
- azure_rm_registrationdefinition:
- registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: absent
-
+- name: Create Registration Definition without scope
+ azure_rm_registrationdefinition:
+ registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ properties:
+ description: test
+ authorizations:
+ - principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ managed_by_tenant_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ registration_definition_name: def4
+
+- name: Create Registration Definition with scope
+ azure_rm_registrationdefinition:
+ scope: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ properties:
+ description: test
+ authorizations:
+ - principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ managed_by_tenant_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ registration_definition_name: def5
+
+- name: Delete Registration Definition
+ azure_rm_registrationdefinition:
+ registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: absent
'''
RETURN = '''
@@ -241,7 +240,6 @@ import uuid
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
from azure.mgmt.managedservices import ManagedServicesClient
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
@@ -411,7 +409,7 @@ class AzureRMRegistrationDefinition(AzureRMModuleBaseExt):
scope=self.scope,
request_body=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the RegistrationDefinition instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition_info.py
index 3c8fabe95..1c095420c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_registrationdefinition_info.py
@@ -33,17 +33,16 @@ author:
'''
EXAMPLES = '''
- - name: Get Registration Definition
- azure_rm_registrationdefinition_info:
- registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+- name: Get Registration Definition
+ azure_rm_registrationdefinition_info:
+ registration_definition_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- - name: Get All Registration Definitions from AzureRMAuth's subscription
- azure_rm_registrationdefinition_info:
-
- - name: Get All Registration Definitions in the subscription levle
- azure_rm_registrationdefinition_info:
- scope: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+- name: Get All Registration Definitions from AzureRMAuth's subscription
+ azure_rm_registrationdefinition_info:
+- name: Get All Registration Definitions in the subscription levle
+ azure_rm_registrationdefinition_info:
+ scope: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
'''
RETURN = '''
@@ -149,10 +148,7 @@ registration_definitions:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
- from msrestazure.azure_exceptions import CloudError
from azure.mgmt.managedservices import ManagedServicesClient
- from msrestazure.azure_operation import AzureOperationPoller
- from msrest.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource.py
index 0927128cd..a3a0544e2 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource.py
@@ -22,44 +22,58 @@ options:
url:
description:
- Azure RM Resource URL.
+ type: str
api_version:
description:
- Specific API version to be used.
+ type: str
provider:
description:
- Provider type.
- Required if URL is not specified.
+ type: str
resource_group:
description:
- Resource group to be used.
- Required if URL is not specified.
+ type: str
resource_type:
description:
- Resource type.
- Required if URL is not specified.
+ type: str
resource_name:
description:
- Resource name.
- Required if URL Is not specified.
+ type: str
subresource:
description:
- List of subresources.
+ default: []
+ type: list
+ elements: dict
suboptions:
namespace:
description:
- Subresource namespace.
+ type: str
type:
description:
- Subresource type.
+ type: str
name:
description:
- Subresource name.
+ type: str
body:
description:
- The body of the HTTP request/response to the web service.
+ type: raw
method:
description:
- The HTTP method of the request or response. It must be uppercase.
+ type: str
choices:
- GET
- PUT
@@ -73,11 +87,12 @@ options:
description:
- A valid, numeric, HTTP status code that signifies success of the request. Can also be comma separated list of status codes.
type: list
+ elements: int
default: [ 200, 201, 202 ]
idempotency:
description:
- If enabled, idempotency check will be done by using I(method=GET) first and then comparing with I(body).
- default: no
+ default: false
type: bool
polling_timeout:
description:
@@ -93,6 +108,7 @@ options:
description:
- Assert the state of the resource. Use C(present) to create or update resource or C(absent) to delete resource.
default: present
+ type: str
choices:
- absent
- present
@@ -106,14 +122,14 @@ author:
'''
EXAMPLES = '''
- - name: Update scaleset info using azure_rm_resource
- azure_rm_resource:
- resource_group: myResourceGroup
- provider: compute
- resource_type: virtualmachinescalesets
- resource_name: myVmss
- api_version: "2017-12-01"
- body: { body }
+- name: Update scaleset info using azure_rm_resource
+ azure_rm_resource:
+ resource_group: myResourceGroup
+ provider: compute
+ resource_type: virtualmachinescalesets
+ resource_name: myVmss
+ api_version: "2017-12-01"
+ body: { body }
'''
RETURN = '''
@@ -215,9 +231,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
from ansible.module_utils.common.dict_transformations import dict_merge
try:
- from msrestazure.azure_exceptions import CloudError
- from msrest.service_client import ServiceClient
- from msrestazure.tools import resource_id, is_valid_resource_id
+ from azure.mgmt.core.tools import resource_id
import json
except ImportError:
@@ -246,6 +260,7 @@ class AzureRMResource(AzureRMModuleBase):
),
subresource=dict(
type='list',
+ elements='dict',
default=[]
),
api_version=dict(
@@ -261,6 +276,7 @@ class AzureRMResource(AzureRMModuleBase):
),
status_code=dict(
type='list',
+ elements='int',
default=[200, 201, 202]
),
idempotency=dict(
@@ -309,6 +325,7 @@ class AzureRMResource(AzureRMModuleBase):
for key in self.module_arg_spec:
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if self.state == 'absent':
@@ -354,7 +371,7 @@ class AzureRMResource(AzureRMModuleBase):
provider = self.url.split("/providers/")[1].split("/")[0]
resourceType = self.url.split(provider + "/")[1].split("/")[0]
url = "/subscriptions/" + self.subscription_id + "/providers/" + provider
- api_versions = json.loads(self.mgmt_client.query(url, "GET", {'api-version': '2015-01-01'}, None, None, [200], 0, 0).text)
+ api_versions = json.loads(self.mgmt_client.query(url, "GET", {'api-version': '2015-01-01'}, None, None, [200], 0, 0).body())
for rt in api_versions['resourceTypes']:
if rt['resourceType'].lower() == resourceType.lower():
self.api_version = rt['apiVersions'][0]
@@ -384,7 +401,7 @@ class AzureRMResource(AzureRMModuleBase):
needs_update = False
else:
try:
- response = json.loads(original.text)
+ response = json.loads(original.body())
needs_update = (dict_merge(response, self.body) != response)
except Exception:
pass
@@ -398,11 +415,11 @@ class AzureRMResource(AzureRMModuleBase):
self.status_code,
self.polling_timeout,
self.polling_interval)
- if self.state == 'present':
+ if self.state == 'present' and self.method != 'DELETE':
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = response.text
+ response = response.context['deserialized_data']
else:
response = None
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource_info.py
index d1af99ca2..eb5cd93e4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resource_info.py
@@ -22,25 +22,32 @@ options:
url:
description:
- Azure RM Resource URL.
+ type: str
api_version:
description:
- Specific API version to be used.
+ type: str
provider:
description:
- Provider type, should be specified in no URL is given.
+ type: str
resource_group:
description:
- Resource group to be used.
- Required if URL is not specified.
+ type: str
resource_type:
description:
- Resource type.
+ type: str
resource_name:
description:
- Resource name.
+ type: str
method:
description:
- The HTTP method of the request or response. It must be uppercase.
+ type: str
choices:
- GET
- PUT
@@ -53,16 +60,22 @@ options:
subresource:
description:
- List of subresources.
+ type: list
+ elements: dict
+ default: []
suboptions:
namespace:
description:
- Subresource namespace.
+ type: str
type:
description:
- Subresource type.
+ type: str
name:
description:
- Subresource name.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -73,18 +86,18 @@ author:
'''
EXAMPLES = '''
- - name: Get scaleset info
- azure_rm_resource_info:
- resource_group: myResourceGroup
- provider: compute
- resource_type: virtualmachinescalesets
- resource_name: myVmss
- api_version: "2017-12-01"
+- name: Get scaleset info
+ azure_rm_resource_info:
+ resource_group: myResourceGroup
+ provider: compute
+ resource_type: virtualmachinescalesets
+ resource_name: myVmss
+ api_version: "2017-12-01"
- - name: Query all the resources in the resource group
- azure_rm_resource_info:
- resource_group: "{{ resource_group }}"
- resource_type: resources
+- name: Query all the resources in the resource group
+ azure_rm_resource_info:
+ resource_group: "{{ resource_group }}"
+ resource_type: resources
'''
RETURN = '''
@@ -258,7 +271,7 @@ response:
sample: {
"offer": "UbuntuServer",
"publisher": "Canonical",
- "sku": "18.04-LTS",
+ "sku": "20_04-lts",
"version": "latest"
}
osDisk:
@@ -289,9 +302,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
try:
- from msrestazure.azure_exceptions import CloudError
- from msrest.service_client import ServiceClient
- from msrestazure.tools import resource_id, is_valid_resource_id
+ from azure.mgmt.core.tools import resource_id
import json
except ImportError:
@@ -320,7 +331,13 @@ class AzureRMResourceInfo(AzureRMModuleBase):
),
subresource=dict(
type='list',
- default=[]
+ elements='dict',
+ default=[],
+ options=dict(
+ namespace=dict(type='str'),
+ type=dict(type='str'),
+ name=dict(type='str')
+ )
),
method=dict(
type='str',
@@ -353,6 +370,7 @@ class AzureRMResourceInfo(AzureRMModuleBase):
for key in self.module_arg_spec:
setattr(self, key, kwargs[key])
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
if self.url is None:
@@ -394,7 +412,7 @@ class AzureRMResourceInfo(AzureRMModuleBase):
provider = self.url.split("/providers/")[1].split("/")[0]
resourceType = self.url.split(provider + "/")[1].split("/")[0]
url = "/subscriptions/" + self.subscription_id + "/providers/" + provider
- api_versions = json.loads(self.mgmt_client.query(url, self.method, {'api-version': '2015-01-01'}, None, None, [200], 0, 0).text)
+ api_versions = json.loads(self.mgmt_client.query(url, self.method, {'api-version': '2015-01-01'}, None, None, [200], 0, 0).body())
for rt in api_versions['resourceTypes']:
if rt['resourceType'].lower() == resourceType.lower():
self.api_version = rt['apiVersions'][0]
@@ -421,7 +439,7 @@ class AzureRMResourceInfo(AzureRMModuleBase):
query_parameters['skiptoken'] = skiptoken
response = self.mgmt_client.query(self.url, self.method, query_parameters, header_parameters, None, [200, 404], 0, 0)
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
if isinstance(response, dict):
if response.get('value'):
self.results['response'] = self.results['response'] + response['value']
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup.py
index 553330ab1..2fa448fa8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup.py
@@ -29,15 +29,18 @@ options:
description:
- Azure location for the resource group. Required when creating a new resource group.
- Cannot be changed once resource group is created.
+ type: str
name:
description:
- Name of the resource group.
required: true
+ type: str
state:
description:
- Assert the state of the resource group. Use C(present) to create or update and C(absent) to delete.
- When C(absent) a resource group containing resources will not be removed unless the I(force) option is used.
default: present
+ type: str
choices:
- absent
- present
@@ -52,24 +55,24 @@ author:
'''
EXAMPLES = '''
- - name: Create a resource group
- azure_rm_resourcegroup:
- name: myResourceGroup
- location: westus
- tags:
- testing: testing
- delete: never
-
- - name: Delete a resource group
- azure_rm_resourcegroup:
- name: myResourceGroup
- state: absent
-
- - name: Delete a resource group including resources it contains
- azure_rm_resourcegroup:
- name: myResourceGroup
- force_delete_nonempty: yes
- state: absent
+- name: Create a resource group
+ azure_rm_resourcegroup:
+ name: myResourceGroup
+ location: westus
+ tags:
+ testing: testing
+ delete: never
+
+- name: Delete a resource group
+ azure_rm_resourcegroup:
+ name: myResourceGroup
+ state: absent
+
+- name: Delete a resource group including resources it contains
+ azure_rm_resourcegroup:
+ name: myResourceGroup
+ force_delete_nonempty: true
+ state: absent
'''
RETURN = '''
contains_resources:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup_info.py
index 969143a17..d6cc6d27c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_resourcegroup_info.py
@@ -24,6 +24,7 @@ options:
name:
description:
- Limit results to a specific resource group.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -33,6 +34,8 @@ options:
description:
- List all resources under the resource group.
- Note this will cost network overhead for each resource group. Suggest use this when I(name) set.
+ type: bool
+
extends_documentation_fragment:
- azure.azcollection.azure
@@ -44,23 +47,23 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one resource group
- azure_rm_resourcegroup_info:
- name: myResourceGroup
+- name: Get facts for one resource group
+ azure_rm_resourcegroup_info:
+ name: myResourceGroup
- - name: Get facts for all resource groups
- azure_rm_resourcegroup_info:
+- name: Get facts for all resource groups
+ azure_rm_resourcegroup_info:
- - name: Get facts by tags
- azure_rm_resourcegroup_info:
- tags:
- - testing
- - foo:bar
+- name: Get facts by tags
+ azure_rm_resourcegroup_info:
+ tags:
+ - testing
+ - foo:bar
- - name: Get facts for one resource group including resources it contains
- azure_rm_resourcegroup_info:
- name: myResourceGroup
- list_resources: yes
+- name: Get facts for one resource group including resources it contains
+ azure_rm_resourcegroup_info:
+ name: myResourceGroup
+ list_resources: true
'''
RETURN = '''
resourcegroups:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment.py
index 6a930cc4b..f989146a6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment.py
@@ -23,21 +23,25 @@ options:
- The object id of assignee. This maps to the ID inside the Active Directory.
- It can point to a user, service principal or security group.
- Required when creating role assignment.
+ type: str
aliases:
- assignee
id:
description:
- Fully qualified id of assignment to delete or create.
- Mutually Exclusive with I(scope) and I(name)
+ type: str
name:
description:
- Unique name of role assignment.
- The role assignment name must be a GUID, sample as "3ce0cbb0-58c4-4e6d-a16d-99d86a78b3ca".
- Mutually Exclusive with I(id)
+ type: str
role_definition_id:
description:
- The role definition id used in the role assignment.
- Required when creating role assignment.
+ type: str
scope:
description:
- The scope of the role assignment to create.
@@ -45,12 +49,14 @@ options:
- /subscriptions/{subscription-id}/resourceGroups/{resource-group-name} for resource group.
- /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name} for resource.
- Mutually Exclusive with I(id)
+ type: str
state:
description:
- Assert the state of the role assignment.
- Use C(present) to create or update a role assignment and C(absent) to delete it.
- If C(present), then I(role_definition_id) and I(assignee_object_id) are both required
default: present
+ type: str
choices:
- absent
- present
@@ -65,39 +71,39 @@ author:
'''
EXAMPLES = '''
- - name: Create a role assignment
- azure_rm_roleassignment:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id:
- "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
-
- - name: Create a role assignment
- azure_rm_roleassignment:
- name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id:
- "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
-
- - name: Delete a role assignment
- azure_rm_roleassignment:
- name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- state: absent
-
- - name: Delete a role assignment
- azure_rm_roleassignment:
- id: /subscriptions/xxx-sub-guid-xxx/resourceGroups/rgname/providers/Microsoft.Authorization/roleAssignments/xxx-assign-guid-xxx"
- state: absent
-
- - name: Delete a role assignment
- azure_rm_roleassignment:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id:
- "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
- state: absent
+- name: Create a role assignment
+ azure_rm_roleassignment:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id:
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+
+- name: Create a role assignment
+ azure_rm_roleassignment:
+ name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id:
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+
+- name: Delete a role assignment
+ azure_rm_roleassignment:
+ name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ state: absent
+
+- name: Delete a role assignment
+ azure_rm_roleassignment:
+ id: /subscriptions/xxx-sub-guid-xxx/resourceGroups/rgname/providers/Microsoft.Authorization/roleAssignments/xxx-assign-guid-xxx"
+ state: absent
+
+- name: Delete a role assignment
+ azure_rm_roleassignment:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id:
+ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ state: absent
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment_info.py
index 4fa338a81..b77335a38 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roleassignment_info.py
@@ -22,6 +22,7 @@ options:
description:
- Object id of a user, group or service principal.
- Mutually exclusive with I(name) and I(id).
+ type: str
aliases:
- assignee_object_id
id:
@@ -29,14 +30,17 @@ options:
- Fqid of role assignment to look up.
- If set, I(role_definition_id) and I(scope) will be silently ignored.
- Mutually exclusive with I(assignee) and I(name).
+ type: str
name:
description:
- Name of role assignment.
- Requires that I(scope) also be set.
- Mutual exclusive with I(assignee) and I(id).
+ type: str
role_definition_id:
description:
- Resource id of role definition.
+ type: str
scope:
description:
- The scope to query for role assignments.
@@ -44,6 +48,7 @@ options:
- /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name} for a resource group.
- /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name}/providers/{resource-provider}/{resource-type}/{resource-name} for a resource.
- By default will return all inhereted assignments from parent scopes, see I(strict_scope_match).
+ type: str
strict_scope_match:
description:
- If strict_scope_match is True, role assignments will only be returned for the exact scope defined.
@@ -62,28 +67,28 @@ author:
'''
EXAMPLES = '''
- - name: Get role assignments for specific service principal
- azure_rm_roleassignment_info:
- assignee: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Get role assignments for specific scope that matches specific role definition
- azure_rm_roleassignment_info:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- role_definition_id: /subscriptions/xxx-sub-guid-xxx/providers/Microsoft.Authorization/roleDefinitions/xxx-role-guid-xxxx
-
- - name: Get role assignments for specific scope with no inherited assignments
- azure_rm_roleassignment_info:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- strict_scope_match: True
-
- - name: Get role assignments by name
- azure_rm_roleassignment_info:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- - name: Get role assignments by id
- azure_rm_roleassignment_info:
- id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleAssignments/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+- name: Get role assignments for specific service principal
+ azure_rm_roleassignment_info:
+ assignee: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Get role assignments for specific scope that matches specific role definition
+ azure_rm_roleassignment_info:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ role_definition_id: /subscriptions/xxx-sub-guid-xxx/providers/Microsoft.Authorization/roleDefinitions/xxx-role-guid-xxxx
+
+- name: Get role assignments for specific scope with no inherited assignments
+ azure_rm_roleassignment_info:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ strict_scope_match: true
+
+- name: Get role assignments by name
+ azure_rm_roleassignment_info:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ name: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+- name: Get role assignments by id
+ azure_rm_roleassignment_info:
+ id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleAssignments/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition.py
index d1cc4c2a5..8683142d8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition.py
@@ -81,17 +81,17 @@ author:
'''
EXAMPLES = '''
- - name: Create a role definition
- azure_rm_roledefinition:
- name: myTestRole
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourceGroup
- permissions:
- - actions:
- - "Microsoft.Compute/virtualMachines/read"
- data_actions:
- - "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
- assignable_scopes:
- - "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+- name: Create a role definition
+ azure_rm_roledefinition:
+ name: myTestRole
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourceGroup
+ permissions:
+ - actions:
+ - "Microsoft.Compute/virtualMachines/read"
+ data_actions:
+ - "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
+ assignable_scopes:
+ - "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
'''
RETURN = '''
@@ -108,11 +108,8 @@ from ansible.module_utils._text import to_native
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.polling import LROPoller
- from msrest.serialization import Model
from azure.mgmt.authorization import AuthorizationManagementClient
- from azure.mgmt.authorization.model import (RoleDefinition, Permission)
except ImportError:
# This is handled in azure_rm_common
@@ -341,7 +338,7 @@ class AzureRMRoleDefinition(AzureRMModuleBase):
response = self._client.role_definitions.create_or_update(role_definition_id=self.role['name'] if self.role else str(uuid.uuid4()),
scope=self.scope,
role_definition=role_definition)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
@@ -360,7 +357,7 @@ class AzureRMRoleDefinition(AzureRMModuleBase):
try:
response = self._client.role_definitions.delete(scope=scope,
role_definition_id=role_definition_id)
- if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as e:
self.log('Error attempting to delete the role definition.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition_info.py
index 3899ce404..ce8ee238e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_roledefinition_info.py
@@ -47,14 +47,14 @@ author:
'''
EXAMPLES = '''
- - name: List Role Definitions in scope
- azure_rm_roledefinition_info:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
-
- - name: Get Role Definition by name
- azure_rm_roledefinition_info:
- scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
- role_name: myRoleDefinition
+- name: List Role Definitions in scope
+ azure_rm_roledefinition_info:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
+
+- name: Get Role Definition by name
+ azure_rm_roledefinition_info:
+ scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup
+ role_name: myRoleDefinition
'''
RETURN = '''
@@ -120,11 +120,8 @@ roledefinitions:
sample: [ 'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write' ]
'''
-from ansible.module_utils._text import to_native
-
try:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
- from msrest.serialization import Model
from azure.mgmt.authorization import AuthorizationManagementClient
except ImportError:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route.py
index dc1e79260..556c5395e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route.py
@@ -20,23 +20,28 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the route.
required: true
+ type: str
state:
description:
- Assert the state of the route. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
address_prefix:
description:
- The destination CIDR to which the route applies.
+ type: str
next_hop_type:
description:
- The type of Azure hop the packet should be sent to.
+ type: str
choices:
- virtual_network_gateway
- vnet_local
@@ -48,10 +53,12 @@ options:
description:
- The IP address packets should be forwarded to.
- Next hop values are only allowed in routes where the next hop type is VirtualAppliance.
+ type: str
route_table_name:
description:
- The name of the route table.
required: true
+ type: str
extends_documentation_fragment:
@@ -64,20 +71,20 @@ author:
'''
EXAMPLES = '''
- - name: Create a route
- azure_rm_route:
- resource_group: myResourceGroup
- name: myRoute
- address_prefix: 10.1.0.0/16
- next_hop_type: virtual_network_gateway
- route_table_name: table
-
- - name: Delete a route
- azure_rm_route:
- resource_group: myResourceGroup
- name: myRoute
- route_table_name: table
- state: absent
+- name: Create a route
+ azure_rm_route:
+ resource_group: myResourceGroup
+ name: myRoute
+ address_prefix: 10.1.0.0/16
+ next_hop_type: virtual_network_gateway
+ route_table_name: table
+
+- name: Delete a route
+ azure_rm_route:
+ resource_group: myResourceGroup
+ name: myRoute
+ route_table_name: table
+ state: absent
'''
RETURN = '''
id:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route_info.py
index ee5311c21..c9cb3a0e7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_route_info.py
@@ -45,18 +45,17 @@ author:
'''
EXAMPLES = '''
- - name: Get route
- azure_rm_route_info:
- resource_group: myResourceGroup
- name: routename
- route_table_name: routetabename
+- name: Get route
+ azure_rm_route_info:
+ resource_group: myResourceGroup
+ name: routename
+ route_table_name: routetabename
- - name: List routes
- azure_rm_route_info:
- resource_group: myResourceGroup
- route_table_name: routetabename
-
+- name: List routes
+ azure_rm_route_info:
+ resource_group: myResourceGroup
+ route_table_name: routetabename
'''
RETURN = '''
@@ -116,9 +115,6 @@ routes:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.network import NetworkManagementClient
- from msrestazure.azure_operation import AzureOperationPoller
- from msrest.polling import LROPoller
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable.py
index 7558907e9..94468d030 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable.py
@@ -20,14 +20,17 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the route table.
required: true
+ type: str
state:
description:
- Assert the state of the route table. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -40,6 +43,7 @@ options:
description:
- Region of the resource.
- Derived from I(resource_group) if not specified.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -51,19 +55,19 @@ author:
'''
EXAMPLES = '''
- - name: Create a route table
- azure_rm_routetable:
- resource_group: myResourceGroup
- name: myRouteTable
- disable_bgp_route_propagation: False
- tags:
- purpose: testing
-
- - name: Delete a route table
- azure_rm_routetable:
- resource_group: myResourceGroup
- name: myRouteTable
- state: absent
+- name: Create a route table
+ azure_rm_routetable:
+ resource_group: myResourceGroup
+ name: myRouteTable
+ disable_bgp_route_propagation: false
+ tags:
+ purpose: testing
+
+- name: Delete a route table
+ azure_rm_routetable:
+ resource_group: myResourceGroup
+ name: myRouteTable
+ state: absent
'''
RETURN = '''
changed:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable_info.py
index 901319ab8..56c8802ea 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_routetable_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific route table.
+ type: str
resource_group:
description:
- Limit results in a specific resource group.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -41,20 +43,20 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one route table
- azure_rm_routetable_info:
- name: Testing
- resource_group: myResourceGroup
-
- - name: Get facts for all route tables
- azure_rm_routetable_info:
- resource_group: myResourceGroup
-
- - name: Get facts by tags
- azure_rm_routetable_info:
- tags:
- - testing
- - foo:bar
+- name: Get facts for one route table
+ azure_rm_routetable_info:
+ name: Testing
+ resource_group: myResourceGroup
+
+- name: Get facts for all route tables
+ azure_rm_routetable_info:
+ resource_group: myResourceGroup
+
+- name: Get facts by tags
+ azure_rm_routetable_info:
+ tags:
+ - testing
+ - foo:bar
'''
RETURN = '''
id:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup.py
index 28a9b8391..8b25449ca 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup.py
@@ -26,40 +26,142 @@ options:
- The set of default rules automatically added to a security group at creation.
- In general default rules will not be modified. Modify rules to shape the flow of traffic to or from a subnet or NIC.
- See rules below for the makeup of a rule dict.
+ type: list
+ elements: dict
+ suboptions:
+ name:
+ description:
+ - Unique name for the rule.
+ type: str
+ required: true
+ description:
+ description:
+ - Short description of the rule's purpose.
+ type: str
+ protocol:
+ description:
+ - Accepted traffic protocol.
+ type: str
+ choices:
+ - Udp
+ - Tcp
+ - Icmp
+ - "*"
+ default: "*"
+ source_port_range:
+ description:
+ - Port or range of ports from which traffic originates.
+ - It can accept string type or a list of string type.
+ default: "*"
+ type: raw
+ destination_port_range:
+ description:
+ - Port or range of ports to which traffic is headed.
+ - It can accept string type or a list of string type.
+ default: "*"
+ type: raw
+ source_address_prefix:
+ description:
+ - The CIDR or source IP range.
+ - Asterisk C(*) can also be used to match all source IPs.
+ - Default tags such as C(VirtualNetwork), C(AzureLoadBalancer) and C(Internet) can also be used.
+ - If this is an ingress rule, specifies where network traffic originates from.
+ - It can accept string type or a list of string type.
+ - Asterisk C(*) and default tags can only be specified as single string type, not as a list of string.
+ type: raw
+ default: "*"
+ destination_address_prefix:
+ description:
+ - The destination address prefix.
+ - CIDR or destination IP range.
+ - Asterisk C(*) can also be used to match all source IPs.
+ - Default tags such as C(VirtualNetwork), C(AzureLoadBalancer) and C(Internet) can also be used.
+ - It can accept string type or a list of string type.
+ - Asterisk C(*) and default tags can only be specified as single string type, not as a list of string.
+ default: "*"
+ type: raw
+ source_application_security_groups:
+ description:
+ - List of the source application security groups.
+ - It could be list of resource id.
+ - It could be list of names in same resource group.
+ - It could be list of dict containing resource_group and name.
+ - It is mutually exclusive with C(source_address_prefix) and C(source_address_prefixes).
+ type: list
+ elements: raw
+ destination_application_security_groups:
+ description:
+ - List of the destination application security groups.
+ - It could be list of resource id.
+ - It could be list of names in same resource group.
+ - It could be list of dict containing I(resource_group) and I(name).
+ - It is mutually exclusive with C(destination_address_prefix) and C(destination_address_prefixes).
+ type: list
+ elements: raw
+ access:
+ description:
+ - Whether or not to allow the traffic flow.
+ type: str
+ choices:
+ - Allow
+ - Deny
+ default: Allow
+ priority:
+ description:
+ - Order in which to apply the rule. Must a unique integer between 100 and 4096 inclusive.
+ type: int
+ required: true
+ direction:
+ description:
+ - Indicates the direction of the traffic flow.
+ type: str
+ choices:
+ - Inbound
+ - Outbound
+ default: Inbound
location:
description:
- Valid azure location. Defaults to location of the resource group.
+ type: str
name:
description:
- Name of the security group to operate on.
+ type: str
+ required: true
purge_default_rules:
description:
- Remove any existing rules not matching those defined in the default_rules parameter.
type: bool
- default: 'no'
+ default: false
purge_rules:
description:
- Remove any existing rules not matching those defined in the rules parameters.
type: bool
- default: 'no'
+ default: false
resource_group:
description:
- Name of the resource group the security group belongs to.
required: true
+ type: str
rules:
description:
- Set of rules shaping traffic flow to or from a subnet or NIC. Each rule is a dictionary.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Unique name for the rule.
+ type: str
required: true
description:
description:
- Short description of the rule's purpose.
+ type: str
protocol:
description:
- Accepted traffic protocol.
+ type: str
choices:
- Udp
- Tcp
@@ -71,11 +173,13 @@ options:
- Port or range of ports from which traffic originates.
- It can accept string type or a list of string type.
default: "*"
+ type: raw
destination_port_range:
description:
- Port or range of ports to which traffic is headed.
- It can accept string type or a list of string type.
default: "*"
+ type: raw
source_address_prefix:
description:
- The CIDR or source IP range.
@@ -84,6 +188,7 @@ options:
- If this is an ingress rule, specifies where network traffic originates from.
- It can accept string type or a list of string type.
- Asterisk C(*) and default tags can only be specified as single string type, not as a list of string.
+ type: raw
default: "*"
destination_address_prefix:
description:
@@ -94,6 +199,7 @@ options:
- It can accept string type or a list of string type.
- Asterisk C(*) and default tags can only be specified as single string type, not as a list of string.
default: "*"
+ type: raw
source_application_security_groups:
description:
- List of the source application security groups.
@@ -115,6 +221,7 @@ options:
access:
description:
- Whether or not to allow the traffic flow.
+ type: str
choices:
- Allow
- Deny
@@ -122,10 +229,12 @@ options:
priority:
description:
- Order in which to apply the rule. Must a unique integer between 100 and 4096 inclusive.
+ type: int
required: true
direction:
description:
- Indicates the direction of the traffic flow.
+ type: str
choices:
- Inbound
- Outbound
@@ -134,6 +243,7 @@ options:
description:
- Assert the state of the security group. Set to C(present) to create or update a security group. Set to C(absent) to remove a security group.
default: present
+ type: str
choices:
- absent
- present
@@ -149,63 +259,62 @@ author:
'''
EXAMPLES = '''
+- name: Create a security group
+ azure_rm_securitygroup:
+ resource_group: myResourceGroup
+ name: mysecgroup
+ purge_rules: true
+ rules:
+ - name: DenySSH
+ protocol: Tcp
+ destination_port_range: 22
+ access: Deny
+ priority: 100
+ direction: Inbound
+ - name: 'AllowSSH'
+ protocol: Tcp
+ source_address_prefix:
+ - '174.109.158.0/24'
+ - '174.109.159.0/24'
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+ - name: 'AllowMultiplePorts'
+ protocol: Tcp
+ source_address_prefix:
+ - '174.109.158.0/24'
+ - '174.109.159.0/24'
+ destination_port_range:
+ - 80
+ - 443
+ access: Allow
+ priority: 102
-# Create a security group
-- azure_rm_securitygroup:
- resource_group: myResourceGroup
- name: mysecgroup
- purge_rules: yes
- rules:
- - name: DenySSH
- protocol: Tcp
- destination_port_range: 22
- access: Deny
- priority: 100
- direction: Inbound
- - name: 'AllowSSH'
- protocol: Tcp
- source_address_prefix:
- - '174.109.158.0/24'
- - '174.109.159.0/24'
- destination_port_range: 22
- access: Allow
- priority: 101
- direction: Inbound
- - name: 'AllowMultiplePorts'
- protocol: Tcp
- source_address_prefix:
- - '174.109.158.0/24'
- - '174.109.159.0/24'
- destination_port_range:
- - 80
- - 443
- access: Allow
- priority: 102
-
-# Update rules on existing security group
-- azure_rm_securitygroup:
- resource_group: myResourceGroup
- name: mysecgroup
- rules:
- - name: DenySSH
- protocol: Tcp
- destination_port_range: 22-23
- access: Deny
- priority: 100
- direction: Inbound
- - name: AllowSSHFromHome
- protocol: Tcp
- source_address_prefix: '174.109.158.0/24'
- destination_port_range: 22-23
- access: Allow
- priority: 102
- direction: Inbound
- tags:
- testing: testing
- delete: on-exit
-
-# Create a securiy group with I(protocol=Icmp)
-- azure_rm_securitygroup:
+- name: Update rules on existing security group
+ azure_rm_securitygroup:
+ resource_group: myResourceGroup
+ name: mysecgroup
+ rules:
+ - name: DenySSH
+ protocol: Tcp
+ destination_port_range: 22-23
+ access: Deny
+ priority: 100
+ direction: Inbound
+ - name: AllowSSHFromHome
+ protocol: Tcp
+ source_address_prefix: '174.109.158.0/24'
+ destination_port_range: 22-23
+ access: Allow
+ priority: 102
+ direction: Inbound
+ tags:
+ testing: testing
+ delete: on-exit
+
+- name: Create a securiy group with I(protocol=Icmp)
+ azure_rm_securitygroup:
name: mysecgroup
resource_group: myResourceGroup
rules:
@@ -219,11 +328,11 @@ EXAMPLES = '''
protocol: Icmp
priority: 106
-# Delete security group
-- azure_rm_securitygroup:
- resource_group: myResourceGroup
- name: mysecgroup
- state: absent
+- name: Delete security group
+ azure_rm_securitygroup:
+ resource_group: myResourceGroup
+ name: mysecgroup
+ state: absent
'''
RETURN = '''
@@ -417,14 +526,12 @@ state:
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import is_valid_resource_id
- from azure.mgmt.network import NetworkManagementClient
+ from azure.mgmt.core.tools import is_valid_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
-from ansible.module_utils.six import integer_types
from ansible.module_utils._text import to_native
@@ -633,13 +740,25 @@ class AzureRMSecurityGroup(AzureRMModuleBase):
def __init__(self):
self.module_arg_spec = dict(
- default_rules=dict(type='list', elements='dict', options=rule_spec),
+ default_rules=dict(
+ type='list',
+ elements='dict',
+ options=rule_spec,
+ mutually_exclusive=[("source_application_security_groups", "source_address_prefix"),
+ ("destination_application_security_groups", "destination_address_prefix")]
+ ),
location=dict(type='str'),
name=dict(type='str', required=True),
purge_default_rules=dict(type='bool', default=False),
purge_rules=dict(type='bool', default=False),
resource_group=dict(required=True, type='str'),
- rules=dict(type='list', elements='dict', options=rule_spec),
+ rules=dict(
+ type='list',
+ elements='dict',
+ options=rule_spec,
+ mutually_exclusive=[("source_application_security_groups", "source_address_prefix"),
+ ("destination_application_security_groups", "destination_address_prefix")]
+ ),
state=dict(type='str', default='present', choices=['present', 'absent']),
)
@@ -659,14 +778,8 @@ class AzureRMSecurityGroup(AzureRMModuleBase):
state=dict()
)
- mutually_exclusive = [["source_application_security_group", "source_address_prefix"],
- ["source_application_security_group", "source_address_prefixes"],
- ["destination_application_security_group", "destination_address_prefix"],
- ["destination_application_security_group", "destination_address_prefixes"]]
-
super(AzureRMSecurityGroup, self).__init__(self.module_arg_spec,
- supports_check_mode=True,
- mutually_exclusive=mutually_exclusive)
+ supports_check_mode=True)
def exec_module(self, **kwargs):
# tighten up poll interval for security groups; default 30s is an eternity
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup_info.py
index 2a549c631..19fe0c874 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_securitygroup_info.py
@@ -24,10 +24,12 @@ options:
name:
description:
- Only show results for a specific security group.
+ type: str
resource_group:
description:
- Name of the resource group to use.
required: true
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -44,15 +46,14 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one security group
- azure_rm_securitygroup_info:
- resource_group: myResourceGroup
- name: secgroup001
-
- - name: Get facts for all security groups
- azure_rm_securitygroup_info:
- resource_group: myResourceGroup
-
+- name: Get facts for one security group
+ azure_rm_securitygroup_info:
+ resource_group: myResourceGroup
+ name: secgroup001
+
+- name: Get facts for all security groups
+ azure_rm_securitygroup_info:
+ resource_group: myResourceGroup
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus.py
index 07db88849..80c94e9a7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus.py
@@ -20,23 +20,28 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the servicebus namespace.
required: true
+ type: str
state:
description:
- Assert the state of the servicebus. Use C(present) to create or update and use C(absen) to delete.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- The servicebus's location.
+ type: str
sku:
description:
- Namespace SKU.
+ type: str
choices:
- standard
- basic
@@ -55,10 +60,10 @@ author:
EXAMPLES = '''
- name: Create a namespace
azure_rm_servicebus:
- name: deadbeef
- location: eastus
- tags:
- key1: value1
+ name: deadbeef
+ location: eastus
+ tags:
+ key1: value1
'''
RETURN = '''
id:
@@ -75,7 +80,6 @@ except ImportError:
# This is handled in azure_rm_common
pass
-from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
from ansible.module_utils._text import to_native
from datetime import datetime, timedelta
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus_info.py
index 246bb514b..5ccd4dea7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebus_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific servicebus.
+ type: str
resource_group:
description:
- Limit results in a specific resource group.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -37,9 +39,12 @@ options:
- A namespace is a scoping container for all messaging components.
- Multiple queues and topics can reside within a single namespace, and namespaces often serve as application containers.
- Required when I(type=namespace).
+ type: str
type:
description:
- Type of the resource.
+ type: str
+ required: true
choices:
- namespace
- queue
@@ -49,6 +54,7 @@ options:
description:
- Topic name.
- Required when I(type=subscription).
+ type: str
show_sas_policies:
description:
- Whether to show the SAS policies.
@@ -375,8 +381,7 @@ servicebuses:
'''
try:
- from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, azure_id_to_dict
- from msrestazure.azure_exceptions import CloudError
+ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
except Exception:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebusqueue.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebusqueue.py
index edb810374..f63da177a 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebusqueue.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebusqueue.py
@@ -20,20 +20,24 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the queue.
required: true
+ type: str
namespace:
description:
- Servicebus namespace name.
- A namespace is a scoping container for all messaging components.
- Multiple queues and topics can reside within a single namespace, and namespaces often serve as application containers.
required: true
+ type: str
state:
description:
- Assert the state of the queue. Use C(present) to create or update and use C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -68,9 +72,11 @@ options:
forward_dead_lettered_messages_to:
description:
- Queue or topic name to forward the Dead Letter message for a queue.
+ type: str
forward_to:
description:
- Queue or topic name to forward the messages for a queue.
+ type: str
lock_duration_in_seconds:
description:
- Timespan duration of a peek-lock.
@@ -106,6 +112,7 @@ options:
status:
description:
- Status of the entity.
+ type: str
choices:
- active
- disabled
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebussaspolicy.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebussaspolicy.py
index 3acb2f479..63d71a375 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebussaspolicy.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebussaspolicy.py
@@ -20,14 +20,17 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the SAS policy.
required: true
+ type: str
state:
description:
- Assert the state of the route. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -36,14 +39,17 @@ options:
- Manage SAS policy for a namespace without C(queue) or C(topic) set.
- Manage SAS policy for a queue or topic under this namespace.
required: true
+ type: str
queue:
description:
- Type of the messaging queue.
- Cannot set C(topc) when this field set.
+ type: str
topic:
description:
- Name of the messaging topic.
- Cannot set C(queue) when this field set.
+ type: str
regenerate_primary_key:
description:
- Regenerate the SAS policy primary key.
@@ -57,7 +63,8 @@ options:
rights:
description:
- Claim rights of the SAS policy.
- required: True
+ - Required when creating.
+ type: str
choices:
- manage
- listen
@@ -153,10 +160,6 @@ except ImportError:
# This is handled in azure_rm_common
pass
-from ansible.module_utils.common.dict_transformations import _snake_to_camel, _camel_to_snake
-from ansible.module_utils._text import to_native
-from datetime import datetime, timedelta
-
class AzureRMServiceBusSASPolicy(AzureRMModuleBase):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopic.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopic.py
index c2eb25e86..75ae477eb 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopic.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopic.py
@@ -20,20 +20,24 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the topic.
required: true
+ type: str
namespace:
description:
- Servicebus namespace name.
- A namespace is a scoping container for all messaging components.
- Multipletopics can reside within a single namespace.
+ type: str
required: true
state:
description:
- Assert the state of the topic. Use C(present) to create or update and use C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -85,6 +89,7 @@ options:
status:
description:
- Status of the entity.
+ type: str
choices:
- active
- disabled
@@ -156,7 +161,7 @@ class AzureRMServiceBusTopic(AzureRMModuleBase):
max_size_in_mb=dict(type='int'),
max_message_size_in_kb=dict(type='int'),
name=dict(type='str', required=True),
- namespace=dict(type='str'),
+ namespace=dict(type='str', required=True),
requires_duplicate_detection=dict(type='bool'),
resource_group=dict(type='str', required=True),
state=dict(type='str', default='present', choices=['present', 'absent']),
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopicsubscription.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopicsubscription.py
index b6cc523db..aa9ae40dd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopicsubscription.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_servicebustopicsubscription.py
@@ -20,14 +20,17 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the servicebus subscription.
required: true
+ type: str
state:
description:
- Assert the state of the servicebus subscription. Use C(present) to create or update and use C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -37,10 +40,12 @@ options:
- A namespace is a scoping container for all messaging components.
- Multiple subscriptions and topics can reside within a single namespace, and namespaces often serve as application containers.
required: true
+ type: str
topic:
description:
- Topic name which the subscription subscribe to.
required: true
+ type: str
auto_delete_on_idle_in_seconds:
description:
- Time idle interval after which a subscription is automatically deleted.
@@ -67,9 +72,11 @@ options:
forward_dead_lettered_messages_to:
description:
- Queue or topic name to forward the Dead Letter message for a subscription.
+ type: str
forward_to:
description:
- Queue or topic name to forward the messages for a subscription.
+ type: str
lock_duration_in_seconds:
description:
- Timespan duration of a peek-lock.
@@ -92,6 +99,7 @@ options:
status:
description:
- Status of the entity.
+ type: str
choices:
- active
- disabled
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_snapshot.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_snapshot.py
index 15c814414..bd3acd9bd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_snapshot.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_snapshot.py
@@ -24,6 +24,7 @@ options:
name:
description:
- Resource name.
+ required: true
type: str
location:
description:
@@ -130,11 +131,6 @@ import time
import json
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient
-try:
- from msrestazure.azure_exceptions import CloudError
-except ImportError:
- # this is handled in azure_rm_common
- pass
class Actions:
@@ -252,6 +248,7 @@ class AzureRMSnapshots(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
resource_group = self.get_resource_group(self.resource_group)
@@ -328,6 +325,7 @@ class AzureRMSnapshots(AzureRMModuleBaseExt):
def create_update_resource(self):
# self.log('Creating / Updating the Snapshot instance {0}'.format(self.))
+ response = None
try:
response = self.mgmt_client.query(url=self.url,
method='PUT',
@@ -337,14 +335,16 @@ class AzureRMSnapshots(AzureRMModuleBaseExt):
expected_status_codes=self.status_code,
polling_timeout=600,
polling_interval=30)
- except CloudError as exc:
+ except Exception as exc:
self.log('Error attempting to create the Snapshot instance.')
self.fail('Error creating the Snapshot instance: {0}'.format(str(exc)))
- try:
- response = json.loads(response.text)
- except Exception:
- response = {'text': response.text}
+ if hasattr(response, 'body'):
+ response = json.loads(response.body())
+ elif hasattr(response, 'context'):
+ response = response.context['deserialized_data']
+ else:
+ self.fail("Create or Updating fail, no match message return, return info as {0}".format(response))
return response
@@ -359,7 +359,7 @@ class AzureRMSnapshots(AzureRMModuleBaseExt):
expected_status_codes=self.status_code,
polling_timeout=600,
polling_interval=30)
- except CloudError as e:
+ except Exception as e:
self.log('Error attempting to delete the Snapshot instance.')
self.fail('Error deleting the Snapshot instance: {0}'.format(str(e)))
@@ -377,11 +377,11 @@ class AzureRMSnapshots(AzureRMModuleBaseExt):
expected_status_codes=self.status_code,
polling_timeout=600,
polling_interval=30)
- response = json.loads(response.text)
+ response = json.loads(response.body())
found = True
self.log("Response : {0}".format(response))
# self.log("Snapshot instance : {0} found".format(response.name))
- except CloudError as e:
+ except Exception as e:
self.log('Did not find the Snapshot instance.')
if found is True:
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase.py
index 972125b2e..b66e886b6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase.py
@@ -21,20 +21,25 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the database to be operated on (updated or created).
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
collation:
description:
- The collation of the database. If not I(create_mode=default), this value is ignored.
+ type: str
create_mode:
description:
- Specifies the mode of database creation.
@@ -46,6 +51,7 @@ options:
- C(restore), Creates a database by restoring a backup of a deleted database.
- C(restore_long_term_retention_backup), Creates a database by restoring from a long term retention vault.
- C(copy), C(non_readable_secondary), C(online_secondary) and C(restore_long_term_retention_backup) are not supported for C(data_warehouse) edition.
+ type: str
choices:
- 'copy'
- 'default'
@@ -59,24 +65,29 @@ options:
description:
- Required unless I(create_mode=default) or I(create_mode=restore_long_term_retention_backup).
- Specifies the resource ID of the source database.
+ type: str
source_database_deletion_date:
description:
- Required if I(create_mode=restore) and I(source_database_id) is the deleted database's original resource id when it existed (as
opposed to its current restorable dropped database ID), then this value is required. Specifies the time that the database was deleted.
+ type: str
restore_point_in_time:
description:
- Required if I(create_mode=point_in_time_restore), this value is required. If I(create_mode=restore), this value is optional.
- Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
- Must be greater than or equal to the source database's earliestRestoreDate value.
+ type: str
recovery_services_recovery_point_resource_id:
description:
- Required if I(create_mode=restore_long_term_retention_backup), then this value is required.
- Specifies the resource ID of the recovery point to restore from.
+ type: str
edition:
description:
- (Deprecate)The edition of the database. The DatabaseEditions enumeration contains all the valid editions.
- This option will be deprecated in 2.11, use I(sku) instead.
- Cannot set C(sku) when this field set.
+ type: str
choices:
- 'web'
- 'business'
@@ -95,32 +106,40 @@ options:
- To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities)
referred to by operationId:'Capabilities_ListByLocation'.
- Cannot set C(edition) when this field set.
+ type: dict
suboptions:
name:
description:
- Name of the database SKU, typically, a letter + Number code, e.g. P3
required: True
+ type: str
tier:
description:
- The tier or edition of the particular SKU, e.g. Basic, Premium
+ type: str
capacity:
description:
- Capacity of the particular SKU.
+ type: int
size:
description:
- Size of the particular SKU
+ type: str
family:
description:
- If the service has different generations of hardware, for the same SKU, then that can be used here
+ type: str
max_size_bytes:
description:
- The max size of the database expressed in bytes.
- If not I(create_mode=default), this value is ignored.
- To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities).
referred to by operationId:'Capabilities_ListByLocation'.
+ type: str
elastic_pool_name:
description:
- The name of the elastic pool the database is in. Not supported for I(edition=data_warehouse).
+ type: str
read_scale:
description:
- If the database is a geo-secondary, indicates whether read-only connections are allowed to this database or not.
@@ -132,6 +151,7 @@ options:
- Indicates the name of the sample schema to apply when creating this database.
- If not I(create_mode=default), this value is ignored.
- Not supported for I(edition=data_warehouse).
+ type: str
choices:
- 'adventure_works_lt'
zone_redundant:
@@ -140,17 +160,18 @@ options:
type: bool
default: False
force_update:
- description:
- - SQL Database will be updated if given parameters differ from existing resource state.
- - To force SQL Database update in any circumstances set this parameter to True.
- type: bool
+ description:
+ - SQL Database will be updated if given parameters differ from existing resource state.
+ - To force SQL Database update in any circumstances set this parameter to True.
+ type: bool
state:
- description:
- - Assert the state of the SQL Database. Use C(present) to create or update an SQL Database and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - Assert the state of the SQL Database. Use C(present) to create or update an SQL Database and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -162,42 +183,41 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) SQL Database
- azure_rm_sqldatabase:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: testdb
- location: eastus
-
- - name: Restore SQL Database
- azure_rm_sqldatabase:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: restoreddb
- location: eastus
- create_mode: restore
- restorable_dropped_database_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Sql/s
- ervers/testsvr/restorableDroppedDatabases/testdb2,131444841315030000"
-
- - name: Create SQL Database in Copy Mode
- azure_rm_sqldatabase:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: copydb
- location: eastus
- create_mode: copy
- source_database_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Sql/servers/tests
- vr/databases/testdb"
-
- - name: Create (or update) SQL Database with SKU
- azure_rm_sqldatabase:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: testdb
- location: eastus
- sku:
- name: S0
-
+- name: Create (or update) SQL Database
+ azure_rm_sqldatabase:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: testdb
+ location: eastus
+
+- name: Restore SQL Database
+ azure_rm_sqldatabase:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: restoreddb
+ location: eastus
+ create_mode: restore
+ restorable_dropped_database_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Sql/s
+ ervers/testsvr/restorableDroppedDatabases/testdb2,131444841315030000"
+
+- name: Create SQL Database in Copy Mode
+ azure_rm_sqldatabase:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: copydb
+ location: eastus
+ create_mode: copy
+ source_database_id: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Sql/servers/tests
+ vr/databases/testdb"
+
+- name: Create (or update) SQL Database with SKU
+ azure_rm_sqldatabase:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: testdb
+ location: eastus
+ sku:
+ name: S0
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase_info.py
index 9c9af2501..4a53ec243 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqldatabase_info.py
@@ -21,16 +21,20 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the database.
+ type: str
elastic_pool_name:
description:
- The name of the elastic pool.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -46,22 +50,22 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of SQL Database
- azure_rm_sqldatabase_info:
- resource_group: testrg
- server_name: testserver
- name: testdb
-
- - name: List instances of SQL Database
- azure_rm_sqldatabase_info:
- resource_group: testrg
- server_name: testserver
- elastic_pool_name: testep
-
- - name: List instances of SQL Database
- azure_rm_sqldatabase_info:
- resource_group: testrg
- server_name: testserver
+- name: Get instance of SQL Database
+ azure_rm_sqldatabase_info:
+ resource_group: testrg
+ server_name: testserver
+ name: testdb
+
+- name: List instances of SQL Database
+ azure_rm_sqldatabase_info:
+ resource_group: testrg
+ server_name: testserver
+ elastic_pool_name: testep
+
+- name: List instances of SQL Database
+ azure_rm_sqldatabase_info:
+ resource_group: testrg
+ server_name: testserver
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool.py
index 563e9111b..b74432ba0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool.py
@@ -119,25 +119,25 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) SQL Elastic Pool
- azure_rm_elastic_pool:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: testEP
- zone_redundant: False
- sku:
- name: GP_Gen5
- family: Gen5
- capacity: 3
- tags:
- key1: value1
-
- - name: Delete SQL Elastic Pool
- azure_rm_elastic_pool:
- resource_group: myResourceGroup
- server_name: sqlcrudtest-5961
- name: testEP
- state: absent
+- name: Create (or update) SQL Elastic Pool
+ azure_rm_elastic_pool:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: testEP
+ zone_redundant: false
+ sku:
+ name: GP_Gen5
+ family: Gen5
+ capacity: 3
+ tags:
+ key1: value1
+
+- name: Delete SQL Elastic Pool
+ azure_rm_elastic_pool:
+ resource_group: myResourceGroup
+ server_name: sqlcrudtest-5961
+ name: testEP
+ state: absent
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool_info.py
index 4ac9ac86e..2aed051c7 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlelasticpool_info.py
@@ -48,16 +48,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of SQL Elastic Pool
- azure_rm_sqlelasticpool_info:
- resource_group: testrg
- server_name: testserver
- name: testEP
+- name: Get instance of SQL Elastic Pool
+ azure_rm_sqlelasticpool_info:
+ resource_group: testrg
+ server_name: testserver
+ name: testEP
- - name: List instances of SQL Elastic Pool
- azure_rm_sqlelasticpool_info:
- resource_group: testrg
- server_name: testserver
+- name: List instances of SQL Elastic Pool
+ azure_rm_sqlelasticpool_info:
+ resource_group: testrg
+ server_name: testserver
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule.py
index 059256a07..e41e4f66c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule.py
@@ -21,26 +21,32 @@ options:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the firewall rule.
required: True
+ type: str
start_ip_address:
description:
- The start IP address of the firewall rule.
- Must be IPv4 format. Use value C(0.0.0.0) to represent all Azure-internal IP addresses.
+ type: str
end_ip_address:
description:
- The end IP address of the firewall rule.
- Must be IPv4 format. Must be greater than or equal to I(start_ip_address). Use value C(0.0.0.0) to represent all Azure-internal IP addresses.
+ type: str
state:
description:
- State of the SQL Database. Use C(present) to create or update an SQL Database and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -54,13 +60,13 @@ author:
'''
EXAMPLES = '''
- - name: Create (or update) Firewall Rule
- azure_rm_sqlfirewallrule:
- resource_group: myResourceGroup
- server_name: firewallrulecrudtest-6285
- name: firewallrulecrudtest-5370
- start_ip_address: 172.28.10.136
- end_ip_address: 172.28.10.138
+- name: Create (or update) Firewall Rule
+ azure_rm_sqlfirewallrule:
+ resource_group: myResourceGroup
+ server_name: firewallrulecrudtest-6285
+ name: firewallrulecrudtest-5370
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
'''
RETURN = '''
@@ -78,7 +84,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.core.polling import LROPoller
from azure.mgmt.sql.models import FirewallRule
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule_info.py
index 7c9bb0459..73c22f5b9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlfirewallrule_info.py
@@ -21,13 +21,16 @@ options:
description:
- The name of the resource group that contains the server.
required: True
+ type: str
server_name:
description:
- The name of the server.
required: True
+ type: str
name:
description:
- The name of the firewall rule.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -38,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of SQL Firewall Rule
- azure_rm_sqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: testserver
- name: testrule
-
- - name: List instances of SQL Firewall Rule
- azure_rm_sqlfirewallrule_info:
- resource_group: myResourceGroup
- server_name: testserver
+- name: Get instance of SQL Firewall Rule
+ azure_rm_sqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: testserver
+ name: testrule
+
+- name: List instances of SQL Firewall Rule
+ azure_rm_sqlfirewallrule_info:
+ resource_group: myResourceGroup
+ server_name: testserver
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance.py
index c9d905343..b59421062 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance.py
@@ -513,7 +513,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.core.polling import LROPoller
except ImportError:
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance_info.py
index ad0b11012..5434cb6a4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlmanagedinstance_info.py
@@ -40,19 +40,19 @@ author:
'''
EXAMPLES = '''
- - name: Get SQL managed instance by name
- azure_rm_sqlmanagedinstance_info:
- resource_group: testrg
- name: testinstancename
+- name: Get SQL managed instance by name
+ azure_rm_sqlmanagedinstance_info:
+ resource_group: testrg
+ name: testinstancename
- - name: List SQL managed instance by resource group
- azure_rm_sqlmanagedinstance_info:
- resource_group: testrg
+- name: List SQL managed instance by resource group
+ azure_rm_sqlmanagedinstance_info:
+ resource_group: testrg
- - name: List SQL manged instance by subscription and filter by tags
- azure_rm_sqlmanagedinstance_info:
- tags:
- - foo
+- name: List SQL manged instance by subscription and filter by tags
+ azure_rm_sqlmanagedinstance_info:
+ tags:
+ - foo
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver.py
index f4cf45f08..bffd8e7ab 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver.py
@@ -20,27 +20,34 @@ options:
resource_group:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ type: str
required: True
name:
description:
- The name of the server.
+ type: str
required: True
location:
description:
- Resource location.
+ type: str
admin_username:
description:
- Username of the SQL administrator account for server. Once created it cannot be changed.
+ type: str
admin_password:
description:
- Password of the SQL administrator account for server (required for server creation).
+ type: str
version:
description:
- The version of the server. For example C(12.0).
+ type: str
identity:
description:
- The identity type. Set this to C(SystemAssigned) in order to automatically create and assign an Azure Active Directory principal for the resource.
- Possible values include C(SystemAssigned).
+ type: str
minimal_tls_version:
description:
- Require clients to use a specified TLS version.
@@ -111,6 +118,7 @@ options:
description:
- State of the SQL server. Use C(present) to create or update a server and use C(absent) to delete a server.
default: present
+ type: str
choices:
- absent
- present
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver_info.py
index 06e34ea22..51351d3c3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_sqlserver_info.py
@@ -20,10 +20,12 @@ options:
resource_group:
description:
- The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ type: str
required: True
server_name:
description:
- The name of the server.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -35,14 +37,14 @@ author:
'''
EXAMPLES = '''
- - name: Get instance of SQL Server
- azure_rm_sqlserver_info:
- resource_group: myResourceGroup
- server_name: server_name
+- name: Get instance of SQL Server
+ azure_rm_sqlserver_info:
+ resource_group: myResourceGroup
+ server_name: server_name
- - name: List instances of SQL Server
- azure_rm_sqlserver_info:
- resource_group: myResourceGroup
+- name: List instances of SQL Server
+ azure_rm_sqlserver_info:
+ resource_group: myResourceGroup
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount.py
index d3b5bb807..c7c280ef4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount.py
@@ -21,16 +21,20 @@ options:
description:
- Name of the resource group to use.
required: true
+ type: str
aliases:
- resource_group_name
name:
description:
- Name of the storage account to update or create.
+ type: str
+ required: true
state:
description:
- State of the storage account. Use C(present) to create or update a storage account and use C(absent) to delete an account.
- C(failover) is used to failover the storage account to its secondary. This process can take up to a hour.
default: present
+ type: str
choices:
- absent
- present
@@ -38,11 +42,13 @@ options:
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
account_type:
description:
- Type of storage account. Required when creating a storage account.
- C(Standard_ZRS) and C(Premium_LRS) accounts cannot be changed to other account types.
- Other account types cannot be changed to C(Standard_ZRS) or C(Premium_LRS).
+ type: str
choices:
- Premium_LRS
- Standard_GRS
@@ -61,6 +67,7 @@ options:
- Only one custom domain is supported per storage account at this time.
- To clear the existing custom domain, use an empty string for the custom domain name property.
- Can be added to an existing storage account. Will be ignored during storage account creation.
+ type: dict
aliases:
- custom_dns_domain_suffix
kind:
@@ -68,6 +75,7 @@ options:
- The kind of storage.
- The C(FileStorage) and (BlockBlobStorage) only used when I(account_type=Premium_LRS) or I(account_type=Premium_ZRS).
default: 'Storage'
+ type: str
choices:
- Storage
- StorageV2
@@ -82,6 +90,7 @@ options:
access_tier:
description:
- The access tier for this storage account. Required when I(kind=BlobStorage).
+ type: str
choices:
- Hot
- Cool
@@ -101,6 +110,7 @@ options:
description:
- The minimum required version of Transport Layer Security (TLS) for requests to a storage account.
- If omitted, new account creation will default to null which is currently interpreted to TLS1_0. Existing accounts will not be modified.
+ type: str
choices:
- TLS1_0
- TLS1_1
@@ -109,6 +119,7 @@ options:
public_network_access:
description:
- Allow or disallow public network access to Storage Account.
+ type: str
choices:
- Enabled
- Disabled
@@ -129,6 +140,7 @@ options:
description:
- Default firewall traffic rule.
- If I(default_action=Allow) no other settings have effect.
+ type: str
choices:
- Allow
- Deny
@@ -140,28 +152,37 @@ options:
- It can be any combination of the example C(AzureServices), C(Logging), C(Metrics).
- If no Azure components are allowed, explicitly set I(bypass="").
default: AzureServices
+ type: str
virtual_network_rules:
description:
- A list of subnets and their actions.
+ type: list
+ elements: dict
suboptions:
id:
description:
- The complete path to the subnet.
+ type: str
action:
description:
- The only logical I(action=Allow) because this setting is only accessible when I(default_action=Deny).
default: 'Allow'
+ type: str
ip_rules:
description:
- A list of IP addresses or ranges in CIDR format.
+ type: list
+ elements: dict
suboptions:
value:
description:
- The IP address or range.
+ type: str
action:
description:
- The only logical I(action=Allow) because this setting is only accessible when I(default_action=Deny).
default: 'Allow'
+ type: str
blob_cors:
description:
- Specifies CORS rules for the Blob service.
@@ -288,65 +309,65 @@ author:
'''
EXAMPLES = '''
- - name: remove account, if it exists
- azure_rm_storageaccount:
- resource_group: myResourceGroup
- name: clh0002
- state: absent
-
- - name: create an account
- azure_rm_storageaccount:
- resource_group: myResourceGroup
- name: clh0002
- type: Standard_RAGRS
- tags:
- testing: testing
- delete: on-exit
-
- - name: Create an account with kind of FileStorage
- azure_rm_storageaccount:
- resource_group: myResourceGroup
- name: c1h0002
- type: Premium_LRS
- kind: FileStorage
- tags:
- testing: testing
-
- - name: configure firewall and virtual networks
- azure_rm_storageaccount:
- resource_group: myResourceGroup
- name: clh0002
- type: Standard_RAGRS
- network_acls:
- bypass: AzureServices,Metrics
- default_action: Deny
- virtual_network_rules:
- - id: /subscriptions/mySubscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet
- action: Allow
- ip_rules:
- - value: 1.2.3.4
- action: Allow
- - value: 123.234.123.0/24
- action: Allow
-
- - name: create an account with blob CORS
- azure_rm_storageaccount:
- resource_group: myResourceGroup
- name: clh002
- type: Standard_RAGRS
- blob_cors:
- - allowed_origins:
- - http://www.example.com/
- allowed_methods:
- - GET
- - POST
- allowed_headers:
- - x-ms-meta-data*
- - x-ms-meta-target*
- - x-ms-meta-abc
- exposed_headers:
- - x-ms-meta-*
- max_age_in_seconds: 200
+- name: remove account, if it exists
+ azure_rm_storageaccount:
+ resource_group: myResourceGroup
+ name: clh0002
+ state: absent
+
+- name: create an account
+ azure_rm_storageaccount:
+ resource_group: myResourceGroup
+ name: clh0002
+ type: Standard_RAGRS
+ tags:
+ testing: testing
+ delete: on-exit
+
+- name: Create an account with kind of FileStorage
+ azure_rm_storageaccount:
+ resource_group: myResourceGroup
+ name: c1h0002
+ type: Premium_LRS
+ kind: FileStorage
+ tags:
+ testing: testing
+
+- name: configure firewall and virtual networks
+ azure_rm_storageaccount:
+ resource_group: myResourceGroup
+ name: clh0002
+ type: Standard_RAGRS
+ network_acls:
+ bypass: AzureServices,Metrics
+ default_action: Deny
+ virtual_network_rules:
+ - id: /subscriptions/mySubscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet
+ action: Allow
+ ip_rules:
+ - value: 1.2.3.4
+ action: Allow
+ - value: 123.234.123.0/24
+ action: Allow
+
+- name: create an account with blob CORS
+ azure_rm_storageaccount:
+ resource_group: myResourceGroup
+ name: clh002
+ type: Standard_RAGRS
+ blob_cors:
+ - allowed_origins:
+ - http://www.example.com/
+ allowed_methods:
+ - GET
+ - POST
+ allowed_headers:
+ - x-ms-meta-data*
+ - x-ms-meta-target*
+ - x-ms-meta-abc
+ exposed_headers:
+ - x-ms-meta-*
+ max_age_in_seconds: 200
'''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount_info.py
index 2b0c301c3..75f179b6f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageaccount_info.py
@@ -24,9 +24,11 @@ options:
name:
description:
- Only show results for a specific account.
+ type: str
resource_group:
description:
- Limit results to a resource group. Required when filtering by name.
+ type: str
aliases:
- resource_group_name
tags:
@@ -61,20 +63,20 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one account
- azure_rm_storageaccount_info:
- resource_group: myResourceGroup
- name: clh0002
+- name: Get facts for one account
+ azure_rm_storageaccount_info:
+ resource_group: myResourceGroup
+ name: clh0002
- - name: Get facts for all accounts in a resource group
- azure_rm_storageaccount_info:
- resource_group: myResourceGroup
+- name: Get facts for all accounts in a resource group
+ azure_rm_storageaccount_info:
+ resource_group: myResourceGroup
- - name: Get facts for all accounts by tags
- azure_rm_storageaccount_info:
- tags:
- - testing
- - foo:bar
+- name: Get facts for all accounts by tags
+ azure_rm_storageaccount_info:
+ tags:
+ - testing
+ - foo:bar
'''
RETURN = '''
@@ -477,6 +479,7 @@ storageaccounts:
description:
- The account key for the secondary_endpoints
sample: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ type: str
georeplication_stats:
description:
- Parameters related to the status of geo-replication.
@@ -533,11 +536,6 @@ storageaccounts:
sample: error.html
'''
-try:
- from azure.core.exceptions import ResourceNotFoundError
-except Exception:
- # This is handled in azure_rm_common
- pass
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils._text import to_native
@@ -609,7 +607,7 @@ class AzureRMStorageAccountInfo(AzureRMModuleBase):
account = None
try:
expand = None
- if(self.show_georeplication_stats):
+ if (self.show_georeplication_stats):
expand = 'georeplicationstats'
account = self.storage_client.storage_accounts.get_properties(self.resource_group, self.name, expand=expand)
return [account]
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageblob.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageblob.py
index 0999494be..868069f42 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageblob.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageblob.py
@@ -26,6 +26,7 @@ options:
description:
- Name of the storage account to use.
required: true
+ type: str
aliases:
- account_name
- storage_account
@@ -34,10 +35,12 @@ options:
- Name of a blob object within the container.
aliases:
- blob_name
+ type: str
blob_type:
description:
- Type of blob object.
default: block
+ type: str
choices:
- block
- page
@@ -46,31 +49,39 @@ options:
description:
- Name of a blob container within the storage account.
required: true
+ type: str
aliases:
- container_name
content_type:
description:
- Set the blob content-type header. For example C(image/png).
+ type: str
cache_control:
description:
- Set the blob cache-control header.
+ type: str
content_disposition:
description:
- Set the blob content-disposition header.
+ type: str
content_encoding:
description:
- Set the blob encoding header.
+ type: str
content_language:
description:
- Set the blob content-language header.
+ type: str
content_md5:
description:
- Set the blob md5 hash value.
+ type: str
dest:
description:
- Destination file path. Use with state C(present) to download a blob.
aliases:
- destination
+ type: path
force:
description:
- Overwrite existing blob or file when uploading or downloading. Force deletion of a container that contains blobs.
@@ -80,19 +91,23 @@ options:
description:
- Name of the resource group to use.
required: true
+ type: str
aliases:
- resource_group_name
src:
description:
- Source file path. Use with state C(present) to upload a blob.
+ type: str
aliases:
- source
batch_upload_src:
description:
- Batch upload source directory. Use with state C(present) to upload batch of files under the directory.
+ type: path
batch_upload_dst:
description:
- Base directory in container when upload batch of files.
+ type: path
state:
description:
- State of a container or blob.
@@ -105,6 +120,7 @@ options:
to download. If a blob (uploading) or a file (downloading) already exists, it will not be overwritten
unless I(force=true).
default: present
+ type: str
choices:
- absent
- present
@@ -112,6 +128,7 @@ options:
description:
- A container's level of public access. By default containers are private.
- Can only be set at time of container creation.
+ type: str
choices:
- container
- blob
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageshare.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageshare.py
index e4749b87a..747a24ac0 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageshare.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_storageshare.py
@@ -57,7 +57,23 @@ options:
- The maximum size of the file share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120).
For large file shares, the maximum size is 102400. By default 102400
type: int
-
+ enabled_protocols:
+ description:
+ - The authentication protocol that is used for the file share.
+ - Can only be specified when creating a share.
+ type: str
+ choices:
+ - SMB
+ - NFS
+ root_squash:
+ description:
+ - The property is for NFS share only.
+ - The default is C(NoRootSquash).
+ type: str
+ choices:
+ - NoRootSquash
+ - RootSquash
+ - AllSquash
extends_documentation_fragment:
- azure.azcollection.azure
@@ -80,6 +96,15 @@ EXAMPLES = '''
key1: value1
key2: value2
+- name: Create share with enalbed protocols
+ azure_rm_storageshare:
+ name: "{{ share_name }}"
+ resource_group: "{{ resource_group }}"
+ account_name: "{{ storage_account }}"
+ access_tier: "{{ access_tier }}"
+ root_squash: RootSquash
+ enabled_protocols: NFS
+
- name: Delete storage share
azure_rm_storageshare:
name: testShare
@@ -184,6 +209,8 @@ class AzureRMStorageShare(AzureRMModuleBase):
choices=['TransactionOptimized', 'Hot', 'Cool', 'Premium']),
quota=dict(type='int', default=None),
metadata=dict(type='dict', default=None),
+ root_squash=dict(type='str', choices=['NoRootSquash', 'RootSquash', 'AllSquash']),
+ enabled_protocols=dict(type='str', choices=['SMB', 'NFS']),
)
self.results = dict(
changed=False,
@@ -196,6 +223,8 @@ class AzureRMStorageShare(AzureRMModuleBase):
self.state = None
self.quota = None
self.metadata = None
+ self.root_squash = None
+ self.enabled_protocols = None
self.to_do = Actions.NoAction
@@ -259,7 +288,9 @@ class AzureRMStorageShare(AzureRMModuleBase):
'''
return ((self.access_tier is not None) and (self.access_tier != old_response.get('access_tier')) or
(self.quota is not None) and (self.quota != old_response.get('share_quota')) or
- (self.metadata is not None) and (self.metadata != old_response.get('metadata')))
+ (self.metadata is not None) and (self.metadata != old_response.get('metadata')) or
+ (self.root_squash is not None) and (self.root_squash != old_response.get('root_squash')) or
+ (self.enabled_protocols is not None) and (self.enabled_protocols != old_response.get('enabled_protocols')))
def get_share(self):
'''
@@ -294,6 +325,8 @@ class AzureRMStorageShare(AzureRMModuleBase):
share_quota=storage_share.share_quota,
access_tier=storage_share.access_tier,
access_tier_change_time=storage_share.access_tier_change_time,
+ root_squash=storage_share.root_squash,
+ enabled_protocols=storage_share.enabled_protocols
)
def create_storage_share(self):
@@ -308,7 +341,9 @@ class AzureRMStorageShare(AzureRMModuleBase):
share_name=self.name,
file_share=dict(access_tier=self.access_tier,
share_quota=self.quota,
- metadata=self.metadata))
+ metadata=self.metadata,
+ root_squash=self.root_squash,
+ enabled_protocols=self.enabled_protocols))
except Exception as e:
self.fail("Error creating file share {0} : {1}".format(self.name, str(e)))
return self.get_share()
@@ -323,7 +358,9 @@ class AzureRMStorageShare(AzureRMModuleBase):
file_share_details = dict(
access_tier=self.access_tier if self.access_tier else old_responce.get('access_tier'),
share_quota=self.quota if self.quota else old_responce.get('share_quota'),
- metadata=self.metadata if self.metadata else old_responce.get('metadata')
+ metadata=self.metadata if self.metadata else old_responce.get('metadata'),
+ enabled_protocols=self.enabled_protocols if self.enabled_protocols else old_responce.get('enabled_protocols'),
+ root_squash=self.root_squash if self.root_squash else old_responce.get('self.root_squash')
)
try:
self.storage_client.file_shares.update(resource_group_name=self.resource_group,
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet.py
index 063ba1504..ec7117c37 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet.py
@@ -23,13 +23,16 @@ options:
description:
- Name of resource group.
required: true
+ type: str
name:
description:
- Name of the subnet.
required: true
+ type: str
address_prefix_cidr:
description:
- CIDR defining the IPv4 address space of the subnet. Must be valid within the context of the virtual network.
+ type: str
aliases:
- address_prefix
address_prefixes_cidr:
@@ -38,20 +41,23 @@ options:
- If set I(address_prefix), It will not set.
aliases:
- address_prefixes
- type: list
version_added: "1.0.0"
+ type: list
+ elements: str
security_group:
description:
- Existing security group with which to associate the subnet.
- It can be the security group name which is in the same resource group.
- Can be the resource ID of the security group.
- Can be a dict containing the I(name) and I(resource_group) of the security group.
+ type: raw
aliases:
- security_group_name
state:
description:
- Assert the state of the subnet. Use C(present) to create or update a subnet and use C(absent) to delete a subnet.
default: present
+ type: str
choices:
- absent
- present
@@ -59,6 +65,7 @@ options:
description:
- Name of an existing virtual network with which the subnet is or will be associated.
required: true
+ type: str
aliases:
- virtual_network
route_table:
@@ -67,19 +74,23 @@ options:
- Can be the name or resource ID of the route table.
- Can be a dict containing the I(name) and I(resource_group) of the route table.
- Without this configuration, the associated route table will be dissociate. If there is no associated route table, it has no impact.
+ type: raw
service_endpoints:
description:
- An array of service endpoints.
type: list
+ elements: dict
suboptions:
service:
description:
- The type of the endpoint service.
required: True
+ type: str
locations:
description:
- A list of locations.
type: list
+ elements: str
private_endpoint_network_policies:
description:
- C(Enabled) or C(Disabled) apply network policies on private endpoints in the subnet.
@@ -100,15 +111,18 @@ options:
description:
- An array of delegations.
type: list
+ elements: dict
suboptions:
name:
description:
- The name of delegation.
+ type: str
required: True
serviceName:
description:
- The type of the endpoint service.
required: True
+ type: str
choices:
- Microsoft.Web/serverFarms
- Microsoft.ContainerInstance/containerGroups
@@ -143,6 +157,8 @@ options:
description:
- A list of actions.
type: list
+ elements: str
+ default: []
nat_gateway:
description:
- Existing NAT Gateway with which to associate the subnet.
@@ -161,59 +177,59 @@ author:
'''
EXAMPLES = '''
- - name: Create a subnet
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- address_prefix_cidr: "10.1.0.0/24"
-
- - name: Create a subnet refer nsg from other resource group
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- address_prefix_cidr: "10.1.0.0/16"
- security_group:
- name: secgroupfoo
- resource_group: mySecondResourceGroup
- route_table: route
-
- - name: Create a subnet with service endpoint
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- address_prefix_cidr: "10.1.0.0/16"
- service_endpoints:
- - service: "Microsoft.Sql"
- locations:
- - "eastus"
-
- - name: Create a subnet with delegations
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- address_prefix_cidr: "10.1.0.0/16"
- delegations:
- - name: 'mydeleg'
- serviceName: 'Microsoft.ContainerInstance/containerGroups'
-
- - name: Create a subnet with an associated NAT Gateway
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- address_prefix_cidr: "10.1.0.0/16"
- nat_gateway: myNatGateway
-
- - name: Delete a subnet
- azure_rm_subnet:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
- state: absent
+- name: Create a subnet
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ address_prefix_cidr: "10.1.0.0/24"
+
+- name: Create a subnet refer nsg from other resource group
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ address_prefix_cidr: "10.1.0.0/16"
+ security_group:
+ name: secgroupfoo
+ resource_group: mySecondResourceGroup
+ route_table: route
+
+- name: Create a subnet with service endpoint
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ address_prefix_cidr: "10.1.0.0/16"
+ service_endpoints:
+ - service: "Microsoft.Sql"
+ locations:
+ - "eastus"
+
+- name: Create a subnet with delegations
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ address_prefix_cidr: "10.1.0.0/16"
+ delegations:
+ - name: 'mydeleg'
+ serviceName: 'Microsoft.ContainerInstance/containerGroups'
+
+- name: Create a subnet with an associated NAT Gateway
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ address_prefix_cidr: "10.1.0.0/16"
+ nat_gateway: myNatGateway
+
+- name: Delete a subnet
+ azure_rm_subnet:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
+ state: absent
'''
RETURN = '''
@@ -313,7 +329,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import is_valid_resource_id
+ from azure.mgmt.core.tools import is_valid_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
@@ -340,6 +356,7 @@ delegations_spec = dict(
),
actions=dict(
type='list',
+ elements='str',
default=[]
)
)
@@ -387,11 +404,16 @@ class AzureRMSubnet(AzureRMModuleBase):
state=dict(type='str', default='present', choices=['present', 'absent']),
virtual_network_name=dict(type='str', required=True, aliases=['virtual_network']),
address_prefix_cidr=dict(type='str', aliases=['address_prefix']),
- address_prefixes_cidr=dict(type='list', aliases=['address_prefixes']),
+ address_prefixes_cidr=dict(type='list', aliases=['address_prefixes'], elements='str'),
security_group=dict(type='raw', aliases=['security_group_name']),
route_table=dict(type='raw'),
service_endpoints=dict(
- type='list'
+ type='list',
+ elements='dict',
+ options=dict(
+ service=dict(type='str', required=True),
+ locations=dict(type='list', elements='str')
+ )
),
private_endpoint_network_policies=dict(
type='str',
@@ -485,7 +507,7 @@ class AzureRMSubnet(AzureRMModuleBase):
else:
subnet['private_endpoint_network_policies'] = results['private_endpoint_network_policies']
if self.private_link_service_network_policies is not None:
- if results['private_link_service_network_policies'] != self.private_link_service_network_policies is not None:
+ if results['private_link_service_network_policies'] != self.private_link_service_network_policies:
self.log("CHANGED: subnet {0} private_link_service_network_policies".format(self.private_link_service_network_policies))
changed = True
results['private_link_service_network_policies'] = self.private_link_service_network_policies
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet_info.py
index ec75ff6b9..eb004a891 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subnet_info.py
@@ -21,13 +21,16 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
virtual_network_name:
description:
- The name of the virtual network.
required: True
+ type: str
name:
description:
- The name of the subnet.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -38,17 +41,17 @@ author:
'''
EXAMPLES = '''
- - name: Get facts of specific subnet
- azure_rm_subnet_info:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
+- name: Get facts of specific subnet
+ azure_rm_subnet_info:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
- - name: List facts for all subnets in virtual network
- azure_rm_subnet_info:
- resource_group: myResourceGroup
- virtual_network_name: myVirtualNetwork
- name: mySubnet
+- name: List facts for all subnets in virtual network
+ azure_rm_subnet_info:
+ resource_group: myResourceGroup
+ virtual_network_name: myVirtualNetwork
+ name: mySubnet
'''
RETURN = '''
@@ -192,7 +195,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subscription_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subscription_info.py
index 9caeb3ef7..ec544d41c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subscription_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_subscription_info.py
@@ -63,13 +63,13 @@ EXAMPLES = '''
- name: Get facts for all subscriptions, including ones that are disabled.
azure_rm_subscription_info:
- all: True
+ all: true
- name: Get facts for subscriptions containing tags provided.
azure_rm_subscription_info:
tags:
- - testing
- - foo:bar
+ - testing
+ - foo:bar
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanager.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanager.py
index 422a8df14..7764b7142 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanager.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanager.py
@@ -20,24 +20,29 @@ options:
description:
- Name of a resource group where the Traffic Manager profile exists or will be created.
required: true
+ type: str
name:
description:
- Name of the Traffic Manager profile.
required: true
+ type: str
state:
description:
- Assert the state of the Traffic Manager profile. Use C(present) to create or update a Traffic Manager profile and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid azure location. Defaults to 'global'.
+ type: str
profile_status:
description:
- The status of the Traffic Manager profile.
default: Enabled
+ type: str
choices:
- Enabled
- Disabled
@@ -45,6 +50,7 @@ options:
description:
- The traffic routing method of the Traffic Manager profile.
default: Performance
+ type: str
choices:
- Performance
- Priority
@@ -53,22 +59,30 @@ options:
dns_config:
description:
- The DNS settings of the Traffic Manager profile.
+ type: dict
suboptions:
relative_name:
description:
- The relative DNS name provided by this Traffic Manager profile.
- If no provided, name of the Traffic Manager will be used
+ type: str
ttl:
description:
- The DNS Time-To-Live (TTL), in seconds.
- default: 60
+ type: int
monitor_config:
description:
- The endpoint monitoring settings of the Traffic Manager profile.
+ type: dict
suboptions:
+ profile_monitor_status:
+ description:
+ - The profile-level monitoring status of the Traffic Manager.
+ type: str
protocol:
description:
- The protocol (HTTP, HTTPS or TCP) used to probe for endpoint health.
+ type: str
choices:
- HTTP
- HTTPS
@@ -76,18 +90,23 @@ options:
port:
description:
- The TCP port used to probe for endpoint health.
+ type: int
path:
description:
- The path relative to the endpoint domain name used to probe for endpoint health.
+ type: str
interval_in_seconds:
description:
- The monitor interval for endpoints in this profile.
+ type: int
timeout_in_seconds:
description:
- The monitor timeout for endpoints in this profile.
+ type: int
tolerated_number_of_failures:
description:
- The number of consecutive failed health check before declaring an endpoint in this profile Degraded after the next failed health check.
+ type: int
default:
protocol: HTTP
port: 80
@@ -95,28 +114,39 @@ options:
endpoints:
description:
- The list of endpoints in the Traffic Manager profile.
+ type: list
+ elements: dict
+ default: []
suboptions:
+ endpoint_monitor_status:
+ description:
+ - The monitoring status of the endpoint.
+ type: str
id:
description:
- Fully qualified resource Id for the resource.
+ type: str
name:
description:
- The name of the endpoint.
- required: true
+ type: str
type:
description:
- The type of the endpoint. Ex- Microsoft.network/TrafficManagerProfiles/ExternalEndpoints.
- required: true
+ type: str
target_resource_id:
description:
- The Azure Resource URI of the of the endpoint.
- Not applicable to endpoints of type 'ExternalEndpoints'.
+ type: str
target:
description:
- The fully-qualified DNS name of the endpoint.
+ type: str
endpoint_status:
description:
- The status of the endpoint.
+ type: str
choices:
- Enabled
- Disabled
@@ -124,63 +154,69 @@ options:
description:
- The weight of this endpoint when using the 'Weighted' traffic routing method.
- Possible values are from 1 to 1000.
+ type: int
priority:
description:
- The priority of this endpoint when using the 'Priority' traffic routing method.
- Possible values are from 1 to 1000, lower values represent higher priority.
- This is an optional parameter. If specified, it must be specified on all endpoints.
- No two endpoints can share the same priority value.
+ type: int
endpoint_location:
description:
- Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method.
+ type: str
min_child_endpoints:
description:
- The minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available.
- Only applicable to endpoint of type 'NestedEndpoints'.
+ type: int
geo_mapping:
description:
- The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method.
+ type: list
+ elements: str
extends_documentation_fragment:
- azure.azcollection.azure
- azure.azcollection.azure_tags
author:
- - "Hai Cao <t-haicao@microsoft.com>"
+ - Hai Cao (@caohai)
'''
EXAMPLES = '''
- - name: Create a Traffic Manager Profile
- azure_rm_trafficmanager:
- name: tmtest
- resource_group: tmt
- location: global
- profile_status: Enabled
- traffic_routing_method: Priority
- dns_config:
- relative_name: tmtest
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
- endpoints:
- - name: e1
- type: Microsoft.network/TrafficManagerProfiles/ExternalEndpoints
- endpoint_location: West US 2
- endpoint_status: Enabled
- priority: 2
- target: 1.2.3.4
- weight: 1
- tags:
- Environment: Test
-
- - name: Delete a Traffic Manager Profile
- azure_rm_trafficmanager:
- state: absent
- name: tmtest
- resource_group: tmt
+- name: Create a Traffic Manager Profile
+ azure_rm_trafficmanager:
+ name: tmtest
+ resource_group: tmt
+ location: global
+ profile_status: Enabled
+ traffic_routing_method: Priority
+ dns_config:
+ relative_name: tmtest
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ endpoints:
+ - name: e1
+ type: Microsoft.network/TrafficManagerProfiles/ExternalEndpoints
+ endpoint_location: West US 2
+ endpoint_status: Enabled
+ priority: 2
+ target: 1.2.3.4
+ weight: 1
+ tags:
+ Environment: Test
+
+- name: Delete a Traffic Manager Profile
+ azure_rm_trafficmanager:
+ state: absent
+ name: tmtest
+ resource_group: tmt
'''
RETURN = '''
state:
@@ -330,7 +366,7 @@ dns_config_spec = dict(
monitor_config_spec = dict(
profile_monitor_status=dict(type='str'),
- protocol=dict(type='str'),
+ protocol=dict(type='str', choices=['HTTP', 'HTTPS', 'TCP']),
port=dict(type='int'),
path=dict(type='str'),
interval_in_seconds=dict(type='int'),
@@ -344,7 +380,7 @@ endpoint_spec = dict(
type=dict(type='str'),
target_resource_id=dict(type='str'),
target=dict(type='str'),
- endpoint_status=dict(type='str'),
+ endpoint_status=dict(type='str', choices=['Enabled', 'Disabled']),
weight=dict(type='int'),
priority=dict(type='int'),
endpoint_location=dict(type='str'),
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint.py
index df87ed93f..8acf7ede9 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint.py
@@ -35,6 +35,7 @@ options:
description:
- The type of the endpoint.
required: true
+ type: str
choices:
- azure_endpoints
- external_endpoints
@@ -83,6 +84,7 @@ options:
description:
- Assert the state of the Traffic Manager endpoint. Use C(present) to create or update a Traffic Manager endpoint and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -97,16 +99,16 @@ author:
'''
EXAMPLES = '''
- - name: create a endpoint for a traffic manager profile
- azure_rm_trafficmanagerendpoint:
- resource_group: testresourcegroup
- profile_name: myprofilename
- name: testendpoint1
- type: external_endpoints
- location: westus
- priority: 2
- weight: 1
- target: 1.2.3.4
+- name: create a endpoint for a traffic manager profile
+ azure_rm_trafficmanagerendpoint:
+ resource_group: testresourcegroup
+ profile_name: myprofilename
+ name: testendpoint1
+ type: external_endpoints
+ location: westus
+ priority: 2
+ weight: 1
+ target: 1.2.3.4
'''
RETURN = '''
@@ -119,14 +121,12 @@ id:
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/trafficManagerProfiles/testProfil
e/externalEndpoints/testendpoint"
'''
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, normalize_location_name
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
try:
from azure.core.exceptions import ResourceNotFoundError
- from azure.mgmt.trafficmanager.models import (
- Endpoint, DnsConfig, MonitorConfig
- )
+ from azure.mgmt.trafficmanager.models import Endpoint
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint_info.py
index 94bd2ac87..e25608553 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerendpoint_info.py
@@ -23,17 +23,21 @@ options:
name:
description:
- Limit results to a specific Traffic Manager endpoint.
+ type: str
resource_group:
description:
- The resource group to search for the desired Traffic Manager profile.
required: True
+ type: str
profile_name:
description:
- Name of Traffic Manager Profile.
required: True
+ type: str
type:
description:
- Type of endpoint.
+ type: str
choices:
- azure_endpoints
- external_endpoints
@@ -48,17 +52,16 @@ author:
'''
EXAMPLES = '''
- - name: Get endpoints facts of a Traffic Manager profile
- azure_rm_trafficmanagerendpoint_info:
- resource_group: myResourceGroup
- profile_name: Testing
-
- - name: Get specific endpoint of a Traffic Manager profile
- azure_rm_trafficmanager_info:
- resource_group: myResourceGroup
- profile_name: Testing
- name: test_external_endpoint
-
+- name: Get endpoints facts of a Traffic Manager profile
+ azure_rm_trafficmanagerendpoint_info:
+ resource_group: myResourceGroup
+ profile_name: Testing
+
+- name: Get specific endpoint of a Traffic Manager profile
+ azure_rm_trafficmanager_info:
+ resource_group: myResourceGroup
+ profile_name: Testing
+ name: test_external_endpoint
'''
RETURN = '''
@@ -150,8 +153,6 @@ except Exception:
# handled in azure_rm_common
pass
-import re
-
AZURE_OBJECT_CLASS = 'TrafficManagerEndpoints'
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile.py
index b529666d3..c74cd8ccd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile.py
@@ -20,14 +20,17 @@ options:
description:
- Name of a resource group where the Traffic Manager profile exists or will be created.
required: true
+ type: str
name:
description:
- Name of the Traffic Manager profile.
required: true
+ type: str
state:
description:
- Assert the state of the Traffic Manager profile. Use C(present) to create or update a Traffic Manager profile and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -35,11 +38,13 @@ options:
description:
- Valid Azure location. Defaults to C(global) because in default public Azure cloud, Traffic Manager profile can only be deployed globally.
- Reference U(https://docs.microsoft.com/en-us/azure/traffic-manager/quickstart-create-traffic-manager-profile#create-a-traffic-manager-profile).
+ type: str
default: global
profile_status:
description:
- The status of the Traffic Manager profile.
default: enabled
+ type: str
choices:
- enabled
- disabled
@@ -47,6 +52,7 @@ options:
description:
- The traffic routing method of the Traffic Manager profile.
default: performance
+ type: str
choices:
- performance
- priority
@@ -55,33 +61,42 @@ options:
dns_config:
description:
- The DNS settings of the Traffic Manager profile.
+ type: dict
suboptions:
relative_name:
description:
- The relative DNS name provided by this Traffic Manager profile.
- If not provided, name of the Traffic Manager will be used.
+ type: str
ttl:
description:
- The DNS Time-To-Live (TTL), in seconds.
type: int
- default: 60
monitor_config:
description:
- The endpoint monitoring settings of the Traffic Manager profile.
+ type: dict
suboptions:
+ profile_monitor_status:
+ description:
+ - The profile-level monitoring status of the Traffic Manager.
+ type: str
protocol:
description:
- The protocol C(HTTP), C(HTTPS) or C(TCP) used to probe for endpoint health.
+ type: str
choices:
- - HTTP
- HTTPS
+ - HTTP
- TCP
port:
description:
- The TCP port used to probe for endpoint health.
+ type: int
path:
description:
- The path relative to the endpoint domain name used to probe for endpoint health.
+ type: str
interval:
description:
- The monitor interval for endpoints in this profile in seconds.
@@ -93,6 +108,7 @@ options:
tolerated_failures:
description:
- The number of consecutive failed health check before declaring an endpoint in this profile Degraded after the next failed health check.
+ type: int
default:
protocol: HTTP
port: 80
@@ -109,28 +125,28 @@ author:
'''
EXAMPLES = '''
- - name: Create a Traffic Manager Profile
- azure_rm_trafficmanagerprofile:
- name: tmtest
- resource_group: myResourceGroup
- location: global
- profile_status: enabled
- routing_method: priority
- dns_config:
- relative_name: tmtest
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
- tags:
- Environment: Test
-
- - name: Delete a Traffic Manager Profile
- azure_rm_trafficmanagerprofile:
- state: absent
- name: tmtest
- resource_group: myResourceGroup
+- name: Create a Traffic Manager Profile
+ azure_rm_trafficmanagerprofile:
+ name: tmtest
+ resource_group: myResourceGroup
+ location: global
+ profile_status: enabled
+ routing_method: priority
+ dns_config:
+ relative_name: tmtest
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ tags:
+ Environment: Test
+
+- name: Delete a Traffic Manager Profile
+ azure_rm_trafficmanagerprofile:
+ state: absent
+ name: tmtest
+ resource_group: myResourceGroup
'''
RETURN = '''
id:
@@ -156,7 +172,7 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.trafficmanager.models import (
- Profile, Endpoint, DnsConfig, MonitorConfig
+ Profile, DnsConfig, MonitorConfig
)
except ImportError:
# This is handled in azure_rm_common
@@ -240,7 +256,7 @@ dns_config_spec = dict(
monitor_config_spec = dict(
profile_monitor_status=dict(type='str'),
- protocol=dict(type='str'),
+ protocol=dict(type='str', choices=['HTTP', 'HTTPS', 'TCP']),
port=dict(type='int'),
path=dict(type='str'),
interval=dict(type='int'),
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile_info.py
index 43a3492de..e8477e370 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_trafficmanagerprofile_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific Traffic Manager profile.
+ type: str
resource_group:
description:
- The resource group to search for the desired Traffic Manager profile.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -41,18 +43,18 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one Traffic Manager profile
- azure_rm_trafficmanager_info:
- name: Testing
- resource_group: myResourceGroup
-
- - name: Get facts for all Traffic Manager profiles
- azure_rm_trafficmanager_info:
-
- - name: Get facts by tags
- azure_rm_trafficmanager_info:
- tags:
- - Environment:Test
+- name: Get facts for one Traffic Manager profile
+ azure_rm_trafficmanager_info:
+ name: Testing
+ resource_group: myResourceGroup
+
+- name: Get facts for all Traffic Manager profiles
+ azure_rm_trafficmanager_info:
+
+- name: Get facts by tags
+ azure_rm_trafficmanager_info:
+ tags:
+ - Environment:Test
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub.py
index d29abf3be..4de5a13f3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub.py
@@ -208,23 +208,23 @@ author:
'''
EXAMPLES = '''
- - name: Create a VirtualHub
- azure_rm_virtualhub:
- resource_group: myResourceGroup
- name: my_virtual_hub_name
- address_prefix: 10.2.0.0/24
- sku: Standard
- location: eastus
- enable_virtual_router_route_propogation: false
- virtual_wan:
- id: /subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualWans/fredwan
-
- - name: Delete VirtualHub
- azure_rm_virtualhub:
- resource_group: myResourceGroup
- name: my_virtual_hub_name
- location: eastus
- state: absent
+- name: Create a VirtualHub
+ azure_rm_virtualhub:
+ resource_group: myResourceGroup
+ name: my_virtual_hub_name
+ address_prefix: 10.2.0.0/24
+ sku: Standard
+ location: eastus
+ enable_virtual_router_route_propogation: false
+ virtual_wan:
+ id: /subscriptions/xxx-xxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualWans/fredwan
+
+- name: Delete VirtualHub
+ azure_rm_virtualhub:
+ resource_group: myResourceGroup
+ name: my_virtual_hub_name
+ location: eastus
+ state: absent
'''
RETURN = '''
@@ -493,7 +493,6 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
@@ -733,7 +732,7 @@ class AzureRMVirtualHub(AzureRMModuleBaseExt):
response = self.network_client.virtual_hubs.begin_create_or_update(resource_group_name=self.resource_group,
virtual_hub_name=self.name,
virtual_hub_parameters=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the VirtualHub instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub_info.py
index b7c1b8fae..0a81abee4 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhub_info.py
@@ -33,18 +33,17 @@ author:
'''
EXAMPLES = '''
- - name: Get virtual hub info by name
- azure_rm_virtualhub_info:
- resource_group: myResourceGroup
- name: virtualHub
+- name: Get virtual hub info by name
+ azure_rm_virtualhub_info:
+ resource_group: myResourceGroup
+ name: virtualHub
- - name: Get virtual hub info by resource group
- azure_rm_virtualhub_info:
- resource_group: myResourceGroup
-
- - name: Get birtual hub info by sub
- azure_rm_virtualhub_info:
+- name: Get virtual hub info by resource group
+ azure_rm_virtualhub_info:
+ resource_group: myResourceGroup
+- name: Get birtual hub info by sub
+ azure_rm_virtualhub_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection.py
index 5208f665e..a14caf799 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection.py
@@ -155,7 +155,6 @@ EXAMPLES = '''
vhub_name: testhub
name: Myconnection
state: absent
-
'''
RETURN = '''
@@ -289,7 +288,6 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
@@ -467,7 +465,7 @@ class AzureRMVirtualHubConnection(AzureRMModuleBaseExt):
virtual_hub_name=self.vhub_name,
connection_name=self.name,
hub_virtual_network_connection_parameters=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the VirtualHub instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection_info.py
index d2d01dc25..d12d689d3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualhubconnection_info.py
@@ -40,16 +40,16 @@ author:
'''
EXAMPLES = '''
- - name: Get virtual hub connection info by name
- azure_rm_virtualhubconnection_info:
- resource_group: myResourceGroup
- virtual_hub_name: virtualHub
- name: vhubname
+- name: Get virtual hub connection info by name
+ azure_rm_virtualhubconnection_info:
+ resource_group: myResourceGroup
+ virtual_hub_name: virtualHub
+ name: vhubname
- - name: Get virtual hub connection info by resource group
- azure_rm_virtualhubconnection_info:
- resource_group: myResourceGroup
- virtual_hub_name: virtualHub
+- name: Get virtual hub connection info by resource group
+ azure_rm_virtualhubconnection_info:
+ resource_group: myResourceGroup
+ virtual_hub_name: virtualHub
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine.py
index 9fe82d75a..35435b821 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine.py
@@ -30,16 +30,19 @@ options:
description:
- Name of the resource group containing the VM.
required: true
+ type: str
name:
description:
- Name of the VM.
required: true
+ type: str
custom_data:
description:
- Data made available to the VM and used by C(cloud-init).
- Only used on Linux images with C(cloud-init) enabled.
- Consult U(https://docs.microsoft.com/en-us/azure/virtual-machines/linux/using-cloud-init#cloud-init-overview) for cloud-init ready images.
- To enable cloud-init on a Linux image, follow U(https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cloudinit-prepare-custom-image).
+ type: str
state:
description:
- State of the VM.
@@ -47,15 +50,23 @@ options:
- Set to C(absent) to remove a VM.
- Does not affect power state. Use I(started)/I(allocated)/I(restarted) parameters to change the power state of a VM.
default: present
+ type: str
choices:
- absent
- present
started:
description:
- Whether the VM is started or stopped.
- - Set to (true) with I(state=present) to start the VM.
+ - Set to C(true) with I(state=present) to start the VM.
- Set to C(false) to stop the VM.
type: bool
+ force:
+ description:
+ - Use more force during stop of VM
+ - Set to C(true) with I(started=false) to stop the VM forcefully (hard poweroff -- skip_shutdown)
+ - Set to C(false) to power off gracefully
+ default: false
+ type: bool
allocated:
description:
- Whether the VM is allocated or deallocated, only useful with I(state=present).
@@ -76,19 +87,23 @@ options:
location:
description:
- Valid Azure location for the VM. Defaults to location of the resource group.
+ type: str
short_hostname:
description:
- Name assigned internally to the host. On a Linux VM this is the name returned by the C(hostname) command.
- When creating a VM, short_hostname defaults to I(name).
+ type: str
vm_size:
description:
- A valid Azure VM size value. For example, C(Standard_D4).
- Choices vary depending on the subscription and location. Check your subscription for available choices.
- Required when creating a VM.
+ type: str
priority:
description:
- Priority of the VM.
- C(None) is the equivalent of Regular VM.
+ type: str
choices:
- None
- Spot
@@ -96,6 +111,7 @@ options:
description:
- Specifies the eviction policy for the Azure Spot virtual machine.
- Requires priority to be set to Spot.
+ type: str
choices:
- Deallocate
- Delete
@@ -105,15 +121,18 @@ options:
- This price is in US Dollars.
- C(-1) indicates default price to be up-to on-demand.
- Requires priority to be set to Spot.
+ type: float
default: -1
admin_username:
description:
- Admin username used to access the VM after it is created.
- Required when creating a VM.
+ type: str
admin_password:
description:
- Password for the admin username.
- Not required if the I(os_type=Linux) and SSH password authentication is disabled by setting I(ssh_password_enabled=false).
+ type: str
ssh_password_enabled:
description:
- Whether to enable or disable SSH passwords.
@@ -126,16 +145,20 @@ options:
- Accepts a list of dicts where each dictionary contains two keys, I(path) and I(key_data).
- Set I(path) to the default location of the authorized_keys files. For example, I(path=/home/<admin username>/.ssh/authorized_keys).
- Set I(key_data) to the actual value of the public key.
+ type: list
+ elements: dict
image:
description:
- The image used to build the VM.
- For custom images, the name of the image. To narrow the search to a specific resource group, a dict with the keys I(name) and I(resource_group).
- For Marketplace images, a dict with the keys I(publisher), I(offer), I(sku), and I(version).
- Set I(version=latest) to get the most recent version of a given image.
- required: true
+ - Required when creating.
+ type: raw
availability_set:
description:
- Name or ID of an existing availability set to add the VM to. The I(availability_set) should be in the same resource group as VM.
+ type: str
proximity_placement_group:
description:
- The name or ID of the proximity placement group the VM should be associated with.
@@ -157,6 +180,7 @@ options:
description:
- Name of a storage account that supports creation of VHD blobs.
- If not specified for a new VM, a new storage account named <vm name>01 will be created using storage type C(Standard_LRS).
+ type: str
aliases:
- storage_account
storage_container_name:
@@ -164,6 +188,7 @@ options:
- Name of the container to use within the storage account to store VHD blobs.
- If not specified, a default container will be created.
default: vhds
+ type: str
aliases:
- storage_container
storage_blob_name:
@@ -171,6 +196,7 @@ options:
- Name of the storage blob used to hold the OS disk image of the VM.
- Must end with '.vhd'.
- If not specified, defaults to the VM name + '.vhd'.
+ type: str
aliases:
- storage_blob
managed_disk_type:
@@ -178,6 +204,7 @@ options:
- Managed OS disk type.
- Create OS disk with managed disk if defined.
- If not defined, the OS disk will be created with virtual hard disk (VHD).
+ type: str
choices:
- Standard_LRS
- StandardSSD_LRS
@@ -188,9 +215,11 @@ options:
os_disk_name:
description:
- OS disk name.
+ type: str
os_disk_caching:
description:
- Type of OS disk caching.
+ type: str
choices:
- ReadOnly
- ReadWrite
@@ -199,9 +228,11 @@ options:
os_disk_size_gb:
description:
- Size of OS disk in GB.
+ type: int
os_type:
description:
- Base type of operating system.
+ type: str
choices:
- Windows
- Linux
@@ -215,22 +246,27 @@ options:
description:
- Describes list of data disks.
- Use M(azure.azcollection.azure_rm_mangeddisk) to manage the specific disk.
+ type: list
+ elements: dict
suboptions:
lun:
description:
- The logical unit number for data disk.
- This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
required: true
+ type: int
disk_size_gb:
description:
- The initial disk size in GB for blank data disks.
- This value cannot be larger than C(1023) GB.
- Size can be changed only when the virtual machine is deallocated.
- Not sure when I(managed_disk_id) defined.
+ type: int
managed_disk_type:
description:
- Managed data disk type.
- Only used when OS disk created with managed disk.
+ type: str
choices:
- Standard_LRS
- StandardSSD_LRS
@@ -245,6 +281,7 @@ options:
- Only used when OS disk created with virtual hard disk (VHD).
- Used when I(managed_disk_type) not defined.
- Cannot be updated unless I(lun) updated.
+ type: str
storage_container_name:
description:
- Name of the container to use within the storage account to store VHD blobs.
@@ -252,6 +289,7 @@ options:
- Only used when OS disk created with virtual hard disk (VHD).
- Used when I(managed_disk_type) not defined.
- Cannot be updated unless I(lun) updated.
+ type: str
default: vhds
storage_blob_name:
description:
@@ -261,19 +299,21 @@ options:
- Only used when OS disk created with virtual hard disk (VHD).
- Used when I(managed_disk_type) not defined.
- Cannot be updated unless I(lun) updated.
+ type: str
caching:
description:
- Type of data disk caching.
+ type: str
choices:
- ReadOnly
- ReadWrite
- default: ReadOnly
public_ip_allocation_method:
description:
- Allocation method for the public IP of the VM.
- Used only if a network interface is not specified.
- When set to C(Dynamic), the public IP address may change any time the VM is rebooted or power cycled.
- The C(Disabled) choice was added in Ansible 2.6.
+ type: str
choices:
- Dynamic
- Static
@@ -286,6 +326,8 @@ options:
- List of ports to open in the security group for the VM, when a security group and network interface are created with a VM.
- For Linux hosts, defaults to allowing inbound TCP connections to port 22.
- For Windows hosts, defaults to opening ports 3389 and 5986.
+ type: list
+ elements: str
network_interface_names:
description:
- Network interface names to add to the VM.
@@ -294,16 +336,19 @@ options:
- If a network interface name is not provided when the VM is created, a default network interface will be created.
- To create a new network interface, at least one Virtual Network with one Subnet must exist.
type: list
+ elements: raw
aliases:
- network_interfaces
virtual_network_resource_group:
description:
- The resource group to use when creating a VM with another resource group's virtual network.
+ type: str
virtual_network_name:
description:
- The virtual network to use when creating a VM.
- If not specified, a new network interface will be created and assigned to the first virtual network found in the resource group.
- Use with I(virtual_network_resource_group) to place the virtual network in another resource group.
+ type: str
aliases:
- virtual_network
subnet_name:
@@ -311,6 +356,7 @@ options:
- Subnet for the VM.
- Defaults to the first subnet found in the virtual network or the subnet of the I(network_interface_name), if provided.
- If the subnet is in another resource group, specify the resource group with I(virtual_network_resource_group).
+ type: str
aliases:
- subnet
created_nsg:
@@ -318,7 +364,7 @@ options:
- Whether network security group created and attached to network interface or not.
type: bool
default: True
- version_added: '1.15.0'
+ version_added: '1.16.0'
remove_on_absent:
description:
- Associated resources to remove when removing a VM using I(state=absent).
@@ -327,6 +373,7 @@ options:
- To remove only specific resources, set to C(network_interfaces), C(virtual_storage) or C(public_ips).
- Any other input will be ignored.
type: list
+ elements: str
default: ['all']
plan:
description:
@@ -337,17 +384,21 @@ options:
description:
- Billing plan name.
required: true
+ type: str
product:
description:
- Product name.
required: true
+ type: str
publisher:
description:
- Publisher offering the plan.
required: true
+ type: str
promotion_code:
description:
- Optional promotion code.
+ type: str
accept_terms:
description:
- Accept terms for Marketplace images that require it.
@@ -359,11 +410,13 @@ options:
description:
- A list of Availability Zones for your VM.
type: list
+ elements: str
license_type:
description:
- On-premise license for the image or disk.
- Only used for images that contain the Windows Server operating system.
- To remove all license type settings, set to the string C(None).
+ type: str
choices:
- Windows_Server
- Windows_Client
@@ -372,30 +425,67 @@ options:
vm_identity:
description:
- Identity for the VM.
- choices:
- - SystemAssigned
+ type: dict
+ suboptions:
+ type:
+ description:
+ - Type of the managed identity
+ required: true
+ choices:
+ - SystemAssigned
+ - UserAssigned
+ - SystemAssigned, UserAssigned
+ - None
+ type: str
+ user_assigned_identities:
+ description:
+ - User Assigned Managed Identities and its options
+ required: false
+ type: dict
+ default: {}
+ suboptions:
+ id:
+ description:
+ - List of the user assigned identities IDs associated to the VM
+ required: false
+ type: list
+ elements: str
+ default: []
+ append:
+ description:
+ - If the list of identities has to be appended to current identities (true) or if it has to replace current identities (false)
+ required: false
+ type: bool
+ default: True
winrm:
description:
- List of Windows Remote Management configurations of the VM.
+ type: list
+ elements: dict
suboptions:
protocol:
description:
- The protocol of the winrm listener.
required: true
+ type: str
choices:
- http
- https
source_vault:
description:
- The relative URL of the Key Vault containing the certificate.
+ type: str
certificate_url:
description:
- The URL of a certificate that has been uploaded to Key Vault as a secret.
+ type: str
certificate_store:
description:
- The certificate store on the VM to which the certificate should be added.
- The specified certificate store is implicitly in the LocalMachine account.
+ type: str
boot_diagnostics:
+ type: dict
description:
- Manage boot diagnostics settings for a VM.
- Boot diagnostics includes a serial console and remote console screenshots.
@@ -403,21 +493,32 @@ options:
enabled:
description:
- Flag indicating if boot diagnostics are enabled.
- required: true
type: bool
+ type:
+ description:
+ - Should the storage account be managed by azure or a custom storage account
+ - It is mutually exclusive with suboption I(storage_account) and I(resource_group)
+ required: false
+ type: str
+ choices:
+ - managed
storage_account:
description:
- The name of an existing storage account to use for boot diagnostics.
- If not specified, uses I(storage_account_name) defined one level up.
- If storage account is not specified anywhere, and C(enabled) is C(true), a default storage account is created for boot diagnostics data.
+ - It is mutually exclusive with I(type)
+ type: str
required: false
resource_group:
description:
- Resource group where the storage account is located.
+ - It is mutually exclusive with I(type)
type: str
linux_config:
description:
- Specifies the Linux operating system settings on the virtual machine.
+ type: dict
suboptions:
disable_password_authentication:
description:
@@ -426,6 +527,7 @@ options:
windows_config:
description:
- Specifies Windows operating system settings on the virtual machine.
+ type: dict
suboptions:
provision_vm_agent:
description:
@@ -567,7 +669,8 @@ EXAMPLES = '''
storage_container: osdisk
storage_blob: osdisk.vhd
boot_diagnostics:
- enabled: yes
+ enabled: true
+ type: managed
image:
offer: 0001-com-ubuntu-server-focal
publisher: canonical
@@ -661,13 +764,13 @@ EXAMPLES = '''
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
- started: no
+ started: false
- name: Deallocate
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
- allocated: no
+ allocated: false
- name: Power On
azure_rm_virtualmachine:
@@ -678,7 +781,7 @@ EXAMPLES = '''
azure_rm_virtualmachine:
resource_group: myResourceGroup
name: testvm002
- restarted: yes
+ restarted: true
- name: Create a VM with an Availability Zone
azure_rm_virtualmachine:
@@ -700,9 +803,9 @@ EXAMPLES = '''
admin_password: "{{ password }}"
security_profile:
uefi_settings:
- secure_boot_enabled: True
- v_tpm_enabled: True
- encryption_at_host: True
+ secure_boot_enabled: true
+ v_tpm_enabled: true
+ encryption_at_host: true
security_type: TrustedLaunch
ssh_public_keys:
- path: /home/azureuser/.ssh/authorized_keys
@@ -855,7 +958,7 @@ azure_vm:
"adminUsername": "chouseknecht",
"computerName": "test10",
"linuxConfiguration": {
- "disablePasswordAuthentication": false
+ "disable_password_authentication": false
},
"secrets": []
},
@@ -902,9 +1005,8 @@ import time
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.azure_exceptions import CloudError
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
except ImportError:
# This is handled in azure_rm_common
pass
@@ -949,6 +1051,16 @@ linux_configuration_spec = dict(
disable_password_authentication=dict(type='bool')
)
+user_assigned_identities_spec = dict(
+ id=dict(type='list', default=[], elements='str'),
+ append=dict(type='bool', default=True)
+)
+
+managed_identity_spec = dict(
+ type=dict(type='str', choices=['SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'], required=True),
+ user_assigned_identities=dict(type='dict', options=user_assigned_identities_spec, default={}),
+)
+
class AzureRMVirtualMachine(AzureRMModuleBase):
@@ -968,7 +1080,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
admin_username=dict(type='str'),
admin_password=dict(type='str', no_log=True),
ssh_password_enabled=dict(type='bool', default=True, no_log=False),
- ssh_public_keys=dict(type='list'),
+ ssh_public_keys=dict(type='list', elements='dict'),
image=dict(type='raw'),
availability_set=dict(type='str'),
storage_account_name=dict(type='str', aliases=['storage_account']),
@@ -982,9 +1094,9 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
os_type=dict(type='str', choices=['Linux', 'Windows'], default='Linux'),
public_ip_allocation_method=dict(type='str', choices=['Dynamic', 'Static', 'Disabled'], default='Static',
aliases=['public_ip_allocation']),
- open_ports=dict(type='list'),
+ open_ports=dict(type='list', elements='str'),
network_interface_names=dict(type='list', aliases=['network_interfaces'], elements='raw'),
- remove_on_absent=dict(type='list', default=['all']),
+ remove_on_absent=dict(type='list', default=['all'], elements='str'),
virtual_network_resource_group=dict(type='str'),
virtual_network_name=dict(type='str', aliases=['virtual_network']),
subnet_name=dict(type='str', aliases=['subnet']),
@@ -992,15 +1104,47 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
allocated=dict(type='bool', default=True),
restarted=dict(type='bool', default=False),
started=dict(type='bool'),
+ force=dict(type='bool', default=False),
generalized=dict(type='bool', default=False),
- data_disks=dict(type='list'),
+ data_disks=dict(
+ type='list',
+ elements='dict',
+ options=dict(
+ lun=dict(type='int', required=True),
+ disk_size_gb=dict(type='int'),
+ managed_disk_type=dict(type='str', choices=['Standard_LRS', 'StandardSSD_LRS',
+ 'StandardSSD_ZRS', 'Premium_LRS', 'Premium_ZRS', 'UltraSSD_LRS']),
+ storage_account_name=dict(type='str'),
+ storage_container_name=dict(type='str', default='vhds'),
+ storage_blob_name=dict(type='str'),
+ caching=dict(type='str', choices=['ReadOnly', 'ReadOnly'])
+ )
+ ),
plan=dict(type='dict'),
- zones=dict(type='list'),
+ zones=dict(type='list', elements='str'),
accept_terms=dict(type='bool', default=False),
license_type=dict(type='str', choices=['Windows_Server', 'Windows_Client', 'RHEL_BYOS', 'SLES_BYOS']),
- vm_identity=dict(type='str', choices=['SystemAssigned']),
- winrm=dict(type='list'),
- boot_diagnostics=dict(type='dict'),
+ vm_identity=dict(type='dict', options=managed_identity_spec),
+ winrm=dict(
+ type='list',
+ elements='dict',
+ options=dict(
+ protocol=dict(type='str', required=True, choices=['http', 'https']),
+ source_vault=dict(type='str'),
+ certificate_url=dict(type='str'),
+ certificate_store=dict(type='str')
+ )
+ ),
+ boot_diagnostics=dict(
+ type='dict',
+ options=dict(
+ enabled=dict(type='bool'),
+ type=dict(type='str', choices=['managed']),
+ storage_account=dict(type='str'),
+ resource_group=dict(type='str'),
+ ),
+ mutually_exclusive=[('type', 'storage_account'), ('type', 'resource_group')],
+ ),
ephemeral_os_disk=dict(type='bool'),
windows_config=dict(type='dict', options=windows_configuration_spec),
linux_config=dict(type='dict', options=linux_configuration_spec),
@@ -1070,7 +1214,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
@property
def boot_diagnostics_present(self):
- return self.boot_diagnostics is not None and 'enabled' in self.boot_diagnostics
+ return self.boot_diagnostics is not None and self.boot_diagnostics.get('enabled') is not None
def get_boot_diagnostics_storage_account(self, limited=False, vm_dict=None):
"""
@@ -1095,8 +1239,8 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
- if not there, None
"""
bsa = None
- if 'storage_account' in self.boot_diagnostics:
- if 'resource_group' in self.boot_diagnostics:
+ if self.boot_diagnostics is not None and self.boot_diagnostics.get('storage_account') is not None:
+ if self.boot_diagnostics.get('resource_group') is not None:
bsa = self.get_storage_account(self.boot_diagnostics['resource_group'], self.boot_diagnostics['storage_account'])
else:
bsa = self.get_storage_account(self.resource_group, self.boot_diagnostics['storage_account'])
@@ -1235,18 +1379,18 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
differences = []
current_nics = []
results = vm_dict
- current_osdisk = vm_dict['properties']['storageProfile']['osDisk']
- current_ephemeral = current_osdisk.get('diffDiskSettings', None)
- current_properties = vm_dict['properties']
+ current_osdisk = vm_dict['storage_profile']['os_disk']
+ current_ephemeral = current_osdisk.get('diff_disk_ettings', None)
+ current_properties = vm_dict
if self.priority and self.priority != current_properties.get('priority', 'None'):
self.fail('VM Priority is not updatable: requested virtual machine priority is {0}'.format(self.priority))
if self.eviction_policy and \
- self.eviction_policy != current_properties.get('evictionPolicy', None):
+ self.eviction_policy != current_properties.get('eviction_policy', None):
self.fail('VM Eviction Policy is not updatable: requested virtual machine eviction policy is {0}'.format(self.eviction_policy))
if self.max_price and \
- vm_dict['properties'].get('billingProfile', None) and \
- self.max_price != vm_dict['properties']['billingProfile'].get('maxPrice', None):
+ vm_dict.get('billing_profile', None) and \
+ self.max_price != vm_dict['billing_profile'].get('max_price', None):
self.fail('VM Maximum Price is not updatable: requested virtual machine maximum price is {0}'.format(self.max_price))
if self.ephemeral_os_disk and current_ephemeral is None:
@@ -1256,7 +1400,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
# Try to determine if the VM needs to be updated
if self.network_interface_names:
- for nic in vm_dict['properties']['networkProfile']['networkInterfaces']:
+ for nic in vm_dict['network_profile']['network_interfaces']:
current_nics.append(nic['id'])
if set(current_nics) != set(network_interfaces):
@@ -1264,47 +1408,47 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
differences.append('Network Interfaces')
updated_nics = [dict(id=id, primary=(i == 0))
for i, id in enumerate(network_interfaces)]
- vm_dict['properties']['networkProfile']['networkInterfaces'] = updated_nics
+ vm_dict['network_profile']['network_interfaces'] = updated_nics
changed = True
if self.os_disk_caching and \
- self.os_disk_caching != vm_dict['properties']['storageProfile']['osDisk']['caching']:
+ self.os_disk_caching != vm_dict['storage_profile']['os_disk']['caching']:
self.log('CHANGED: virtual machine {0} - OS disk caching'.format(self.name))
differences.append('OS Disk caching')
changed = True
- vm_dict['properties']['storageProfile']['osDisk']['caching'] = self.os_disk_caching
+ vm_dict['storage_profile']['os_disk']['caching'] = self.os_disk_caching
if self.os_disk_name and \
- self.os_disk_name != vm_dict['properties']['storageProfile']['osDisk']['name']:
+ self.os_disk_name != vm_dict['storage_profile']['os_disk']['name']:
self.log('CHANGED: virtual machine {0} - OS disk name'.format(self.name))
differences.append('OS Disk name')
changed = True
- vm_dict['properties']['storageProfile']['osDisk']['name'] = self.os_disk_name
+ vm_dict['storage_profile']['os_disk']['name'] = self.os_disk_name
if self.os_disk_size_gb and \
- self.os_disk_size_gb != vm_dict['properties']['storageProfile']['osDisk'].get('diskSizeGB'):
+ self.os_disk_size_gb != vm_dict['storage_profile']['os_disk'].get('disk_size_gb'):
self.log('CHANGED: virtual machine {0} - OS disk size '.format(self.name))
differences.append('OS Disk size')
changed = True
- vm_dict['properties']['storageProfile']['osDisk']['diskSizeGB'] = self.os_disk_size_gb
+ vm_dict['storage_profile']['os_disk']['disk_size_gb'] = self.os_disk_size_gb
if self.vm_size and \
- self.vm_size != vm_dict['properties']['hardwareProfile']['vmSize']:
+ self.vm_size != vm_dict['hardware_profile']['vm_size']:
self.log('CHANGED: virtual machine {0} - size '.format(self.name))
differences.append('VM size')
changed = True
- vm_dict['properties']['hardwareProfile']['vmSize'] = self.vm_size
+ vm_dict['hardware_profile']['vm_size'] = self.vm_size
update_tags, vm_dict['tags'] = self.update_tags(vm_dict.get('tags', dict()))
if update_tags:
differences.append('Tags')
changed = True
- if self.short_hostname and self.short_hostname != vm_dict['properties']['osProfile']['computerName']:
+ if self.short_hostname and self.short_hostname != vm_dict['os_profile']['computer_name']:
self.log('CHANGED: virtual machine {0} - short hostname'.format(self.name))
differences.append('Short Hostname')
changed = True
- vm_dict['properties']['osProfile']['computerName'] = self.short_hostname
+ vm_dict['os_orofile']['computer_name'] = self.short_hostname
if self.started and vm_dict['powerstate'] not in ['starting', 'running'] and self.allocated:
self.log("CHANGED: virtual machine {0} not running and requested state 'running'".format(self.name))
@@ -1335,74 +1479,108 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
differences.append('Zones')
changed = True
- if self.license_type is not None and vm_dict['properties'].get('licenseType') != self.license_type:
+ if self.license_type is not None and vm_dict.get('licenseType') != self.license_type:
differences.append('License Type')
changed = True
+ if self.vm_identity:
+ update_vm_identity = False
+ # If type set to None, and VM has no current identities, nothing to do
+ if 'None' in self.vm_identity.get('type') and 'identity' not in vm_dict:
+ pass
+ # If type different to None, and VM has no current identities, update identities
+ elif 'identity' not in vm_dict:
+ update_vm_identity = True
+ # If type in module args different from type of vm_dict, update identities
+ elif vm_dict['identity']['type'] != self.vm_identity.get('type'):
+ update_vm_identity = True
+ # If type in module args contains 'UserAssigned'
+ elif 'UserAssigned' in self.vm_identity.get('type'):
+ # Create sets with current user identities and module args identities
+ new_managed_identities = set(self.vm_identity.get('user_assigned_identities', {}).get('id', []))
+ current_managed_identities = set(vm_dict['identity']['user_assigned_identities'].keys())
+ # If new identities have to be appended to VM
+ if self.vm_identity.get('user_assigned_identities', {}).get('append', False) is True:
+ # and the union of identities is longer
+ if len(current_managed_identities) != len(new_managed_identities.union(current_managed_identities)):
+ # update identities
+ update_vm_identity = True
+ # If new identities have to overwrite current identities
+ else:
+ # Check if module args identities are different as current ones
+ if current_managed_identities.difference(new_managed_identities) != set():
+ update_vm_identity = True
+ if update_vm_identity:
+ differences.append('Managed Identities')
+ changed = True
+
if self.security_profile is not None:
update_security_profile = False
- if 'securityProfile' not in vm_dict['properties'].keys():
+ if 'securityProfile' not in vm_dict.keys():
update_security_profile = True
differences.append('security_profile')
else:
if self.security_profile.get('encryption_at_host') is not None:
- if bool(self.security_profile.get('encryption_at_host')) != bool(vm_dict['properties']['securityProfile']['encryptionAtHost']):
- update_security_profle = True
+ if bool(self.security_profile.get('encryption_at_host')) != bool(vm_dict['security_profile']['encryption_at_host']):
+ update_security_profile = True
else:
- self.security_profile['encryption_at_host'] = vm_dict['properties']['securityProfile']['encryptionAtHost']
+ self.security_profile['encryption_at_host'] = vm_dict['security_profile']['encryption_at_host']
if self.security_profile.get('security_type') is not None:
- if self.security_profile.get('security_type') != vm_dict['properties']['securityProfile']['securityType']:
+ if self.security_profile.get('security_type') != vm_dict['security_profile']['security_type']:
update_security_profile = True
if self.security_profile.get('uefi_settings') is not None:
if self.security_profile['uefi_settings'].get('secure_boot_enabled') is not None:
if bool(self.security_profile['uefi_settings']['secure_boot_enabled']) != \
- bool(vm_dict['properties']['securityProfile']['uefiSettings']['secureBootEnabled']):
+ bool(vm_dict['security_profile']['uefi_settings']['secure_boot_enabled']):
update_security_profile = True
else:
self.security_profile['uefi_settings']['secure_boot_enabled'] = \
- vm_dict['properties']['securityProfile']['uefiSettings']['secureBootEnabled']
+ vm_dict['security_profile']['uefi_settings']['secure_soot_enabled']
if self.security_profile['uefi_settings'].get('v_tpm_enabled') is not None:
if bool(self.security_profile['uefi_settings']['v_tpm_enabled']) != \
- bool(vm_dict['properties']['securityProfile']['uefiSettings']['vTpmEnabled']):
+ bool(vm_dict['security_profile']['uefi_settings']['v_tpm_enabled']):
update_security_profile = True
else:
self.security_profile['uefi_settings']['v_tpm_enabled'] = \
- vm_dict['properties']['securityProfile']['uefiSettings']['vTpmEnabled']
- if update_security_profile:
- changed = True
- differences.append('security_profile')
+ vm_dict['security_profile']['uefi_settings']['v_tpm_enabled']
+ if update_security_profile:
+ changed = True
+ differences.append('security_profile')
- if self.windows_config is not None and vm_dict['properties']['osProfile'].get('windowsConfiguration') is not None:
- if self.windows_config['enable_automatic_updates'] != vm_dict['properties']['osProfile']['windowsConfiguration']['enableAutomaticUpdates']:
+ if self.windows_config is not None and vm_dict['os_profile'].get('windows_configuration') is not None:
+ if self.windows_config['enable_automatic_updates'] != vm_dict['os_profile']['windows_configuration']['enable_automatic_updates']:
self.fail("(PropertyChangeNotAllowed) Changing property 'windowsConfiguration.enableAutomaticUpdates' is not allowed.")
- if self.windows_config['provision_vm_agent'] != vm_dict['properties']['osProfile']['windowsConfiguration']['provisionVMAgent']:
+ if self.windows_config['provision_vm_agent'] != vm_dict['os_profile']['windows_configuration']['provision_vm_agent']:
self.fail("(PropertyChangeNotAllowed) Changing property 'windowsConfiguration.provisionVMAgent' is not allowed.")
- if self.linux_config is not None and vm_dict['properties']['osProfile'].get('linuxConfiguration') is not None:
+ if self.linux_config is not None and vm_dict['os_profile'].get('linux_configuration') is not None:
if self.linux_config['disable_password_authentication'] != \
- vm_dict['properties']['osProfile']['linuxConfiguration']['disablePasswordAuthentication']:
+ vm_dict['os_profile']['linux_configuration']['disable_password_authentication']:
self.fail("(PropertyChangeNotAllowed) Changing property 'linuxConfiguration.disablePasswordAuthentication' is not allowed.")
# Defaults for boot diagnostics
- if 'diagnosticsProfile' not in vm_dict['properties']:
- vm_dict['properties']['diagnosticsProfile'] = {}
- if 'bootDiagnostics' not in vm_dict['properties']['diagnosticsProfile']:
- vm_dict['properties']['diagnosticsProfile']['bootDiagnostics'] = {
+ if 'diagnostics_profile' not in vm_dict:
+ vm_dict['diagnostics_profile'] = {}
+ if 'boot_diagnostics' not in vm_dict['diagnostics_profile']:
+ vm_dict['diagnostics_profile']['boot_diagnostics'] = {
'enabled': False,
'storageUri': None
}
if self.boot_diagnostics_present:
- current_boot_diagnostics = vm_dict['properties']['diagnosticsProfile']['bootDiagnostics']
+ current_boot_diagnostics = vm_dict['diagnostics_profile']['boot_diagnostics']
boot_diagnostics_changed = False
if self.boot_diagnostics['enabled'] != current_boot_diagnostics['enabled']:
current_boot_diagnostics['enabled'] = self.boot_diagnostics['enabled']
boot_diagnostics_changed = True
- boot_diagnostics_storage_account = self.get_boot_diagnostics_storage_account(
- limited=not self.boot_diagnostics['enabled'], vm_dict=vm_dict)
- boot_diagnostics_blob = boot_diagnostics_storage_account.primary_endpoints.blob if boot_diagnostics_storage_account else None
+ if self.boot_diagnostics.get('type') is not None and self.boot_diagnostics['type'] == 'managed':
+ boot_diagnostics_blob = None
+ else:
+ boot_diagnostics_storage_account = self.get_boot_diagnostics_storage_account(
+ limited=not self.boot_diagnostics['enabled'], vm_dict=vm_dict)
+ boot_diagnostics_blob = boot_diagnostics_storage_account.primary_endpoints.blob if boot_diagnostics_storage_account else None
if current_boot_diagnostics.get('storageUri') != boot_diagnostics_blob:
current_boot_diagnostics['storageUri'] = boot_diagnostics_blob
boot_diagnostics_changed = True
@@ -1529,7 +1707,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
promotion_code=self.plan.get('promotion_code'))
# do this before creating vm_resource as it can modify tags
- if self.boot_diagnostics_present and self.boot_diagnostics['enabled']:
+ if self.boot_diagnostics_present and self.boot_diagnostics['enabled'] and self.boot_diagnostics.get('type') != 'managed':
boot_diag_storage_account = self.get_boot_diagnostics_storage_account()
vm_resource = self.compute_models.VirtualMachine(
@@ -1574,7 +1752,22 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
vm_resource.license_type = self.license_type
if self.vm_identity:
- vm_resource.identity = self.compute_models.VirtualMachineIdentity(type=self.vm_identity)
+ # If UserAssigned in module args and ids specified
+ if 'UserAssigned' in self.vm_identity.get('type') and len(self.vm_identity.get('user_assigned_identities', {}).get('id', [])) != 0:
+ user_assigned_identities_dict = {uami: dict() for uami in self.vm_identity.get('user_assigned_identities').get('id')}
+ # Append identities to the model
+ vm_resource.identity = self.compute_models.VirtualMachineIdentity(
+ type=self.vm_identity.get('type'),
+ user_assigned_identities=user_assigned_identities_dict
+ )
+ # If UserAssigned in module args, but ids are not specified
+ elif 'UserAssigned' in self.vm_identity.get('type') and len(self.vm_identity.get('user_assigned_identities', {}).get('id', [])) == 0:
+ self.fail("UserAssigned specified but no User Identity IDs provided")
+ # In any other case ('SystemAssigned' or 'None') apply the configuration to the model
+ else:
+ vm_resource.identity = self.compute_models.VirtualMachineIdentity(
+ type=self.vm_identity.get('type')
+ )
if self.winrm:
winrm_listeners = list()
@@ -1611,7 +1804,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
)
if self.boot_diagnostics_present:
- if self.boot_diagnostics['enabled']:
+ if self.boot_diagnostics['enabled'] and self.boot_diagnostics.get('type') != 'managed':
storage_uri = boot_diag_storage_account.primary_endpoints.blob
else:
storage_uri = None
@@ -1732,43 +1925,43 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
self.log("Update virtual machine {0}".format(self.name))
self.results['actions'].append('Updated VM {0}'.format(self.name))
nics = [self.compute_models.NetworkInterfaceReference(id=interface['id'], primary=(i == 0))
- for i, interface in enumerate(vm_dict['properties']['networkProfile']['networkInterfaces'])]
+ for i, interface in enumerate(vm_dict['network_profile']['network_interfaces'])]
# os disk
- if not vm_dict['properties']['storageProfile']['osDisk'].get('managedDisk'):
+ if not vm_dict['storage_profile']['os_disk'].get('managedDisk'):
managed_disk = None
- vhd = self.compute_models.VirtualHardDisk(uri=vm_dict['properties']['storageProfile']['osDisk'].get('vhd', {}).get('uri'))
+ vhd = self.compute_models.VirtualHardDisk(uri=vm_dict['storage_profile']['os_disk'].get('vhd', {}).get('uri'))
else:
vhd = None
managed_disk = self.compute_models.ManagedDiskParameters(
- storage_account_type=vm_dict['properties']['storageProfile']['osDisk']['managedDisk'].get('storageAccountType')
+ storage_account_type=vm_dict['storage_profile']['os_disk']['managed_disk'].get('storage_account_type')
)
proximity_placement_group_resource = None
try:
- proximity_placement_group_resource = self.compute_models.SubResource(id=vm_dict['properties']['proximityPlacementGroup'].get('id'))
+ proximity_placement_group_resource = self.compute_models.SubResource(id=vm_dict['proximity_placement_group'].get('id'))
except Exception:
# pass if the proximity Placement Group
pass
availability_set_resource = None
try:
- availability_set_resource = self.compute_models.SubResource(id=vm_dict['properties']['availabilitySet'].get('id'))
+ availability_set_resource = self.compute_models.SubResource(id=vm_dict['availability_set'].get('id'))
except Exception:
# pass if the availability set is not set
pass
- if 'imageReference' in vm_dict['properties']['storageProfile'].keys():
- if 'id' in vm_dict['properties']['storageProfile']['imageReference'].keys():
+ if 'imageReference' in vm_dict['storage_profile'].keys():
+ if 'id' in vm_dict['storage_profile']['image_reference'].keys():
image_reference = self.compute_models.ImageReference(
- id=vm_dict['properties']['storageProfile']['imageReference']['id']
+ id=vm_dict['storage_profile']['image_reference']['id']
)
else:
image_reference = self.compute_models.ImageReference(
- publisher=vm_dict['properties']['storageProfile']['imageReference'].get('publisher'),
- offer=vm_dict['properties']['storageProfile']['imageReference'].get('offer'),
- sku=vm_dict['properties']['storageProfile']['imageReference'].get('sku'),
- version=vm_dict['properties']['storageProfile']['imageReference'].get('version')
+ publisher=vm_dict['storage_profile']['image_reference'].get('publisher'),
+ offer=vm_dict['storage_profile']['image_reference'].get('offer'),
+ sku=vm_dict['storage_profile']['image_reference'].get('sku'),
+ version=vm_dict['storage_profile']['image_reference'].get('version')
)
else:
image_reference = None
@@ -1777,10 +1970,10 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
if self.zones is not None and vm_dict['zones'] != self.zones:
self.fail("You can't change the Availability Zone of a virtual machine (have: {0}, want: {1})".format(vm_dict['zones'], self.zones))
- if 'osProfile' in vm_dict['properties']:
+ if 'os_profile' in vm_dict:
os_profile = self.compute_models.OSProfile(
- admin_username=vm_dict['properties'].get('osProfile', {}).get('adminUsername'),
- computer_name=vm_dict['properties'].get('osProfile', {}).get('computerName')
+ admin_username=vm_dict.get('os_profile', {}).get('admin_username'),
+ computer_name=vm_dict.get('os_profile', {}).get('computer_name')
)
else:
os_profile = None
@@ -1789,17 +1982,17 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
location=vm_dict['location'],
os_profile=os_profile,
hardware_profile=self.compute_models.HardwareProfile(
- vm_size=vm_dict['properties']['hardwareProfile'].get('vmSize')
+ vm_size=vm_dict['hardware_profile'].get('vm_size')
),
storage_profile=self.compute_models.StorageProfile(
os_disk=self.compute_models.OSDisk(
- name=vm_dict['properties']['storageProfile']['osDisk'].get('name'),
+ name=vm_dict['storage_profile']['os_disk'].get('name'),
vhd=vhd,
managed_disk=managed_disk,
- create_option=vm_dict['properties']['storageProfile']['osDisk'].get('createOption'),
- os_type=vm_dict['properties']['storageProfile']['osDisk'].get('osType'),
- caching=vm_dict['properties']['storageProfile']['osDisk'].get('caching'),
- disk_size_gb=vm_dict['properties']['storageProfile']['osDisk'].get('diskSizeGB')
+ create_option=vm_dict['storage_profile']['os_disk'].get('create_option'),
+ os_type=vm_dict['storage_profile']['os_disk'].get('os_type'),
+ caching=vm_dict['storage_profile']['os_disk'].get('caching'),
+ disk_size_gb=vm_dict['storage_profile']['os_disk'].get('disk_size_gb')
),
image_reference=image_reference
),
@@ -1813,27 +2006,75 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
if self.license_type is not None:
vm_resource.license_type = self.license_type
+ if self.vm_identity is not None:
+ # If 'append' is set to True save current user assigned managed identities to use later
+ if (self.vm_identity.get('user_assigned_identities', {}) is not None
+ and self.vm_identity.get('user_assigned_identities', {}).get('append', False) is True):
+ if 'identity' in vm_dict and 'user_assigned_identities' in vm_dict['identity']:
+ current_user_assigned_identities_dict = {uami: dict() for uami in vm_dict['identity']['user_assigned_identities'].keys()}
+ vm_identity_user_assigned_append = True
+ else:
+ # Nothing to append to
+ vm_identity_user_assigned_append = False
+ else:
+ # 'append' is False or unset
+ vm_identity_user_assigned_append = False
+ # If there are identities in 'id' and 'UserAssigned' in type
+ if 'UserAssigned' in self.vm_identity.get('type') and len(self.vm_identity.get('user_assigned_identities', {}).get('id', [])) != 0:
+ user_assigned_identities_dict = {uami: dict() for uami in self.vm_identity.get('user_assigned_identities').get('id')}
+ # If there are identities to append, merge the dicts
+ if vm_identity_user_assigned_append:
+ user_assigned_identities_dict = {**user_assigned_identities_dict, **current_user_assigned_identities_dict}
+ # Save the identity
+ vm_resource.identity = self.compute_models.VirtualMachineIdentity(
+ type=self.vm_identity.get('type'),
+ user_assigned_identities=user_assigned_identities_dict
+ )
+ # If there are no identities in 'id' and 'UserAssigned' in type
+ elif 'UserAssigned' in self.vm_identity.get('type') and len(self.vm_identity.get('user_assigned_identities', {}).get('id', [])) == 0:
+ # Fail if append is False
+ if vm_identity_user_assigned_append is False:
+ self.fail("UserAssigned specified but no User Assigned IDs provided" +
+ " and no UserAssigned identities are currently assigned to the VM")
+ # If append is true, user is changing from 'UserAssigned' to 'SystemAssigned, UserAssigned'
+ # and wants to keep current UserAssigned identities
+ else:
+ # Save current identities
+ vm_resource.identity = self.compute_models.VirtualMachineIdentity(
+ type=self.vm_identity.get('type'),
+ user_assigned_identities=current_user_assigned_identities_dict
+ )
+ # Set 'SystemAssigned' or 'None'
+ else:
+ vm_resource.identity = self.compute_models.VirtualMachineIdentity(
+ type=self.vm_identity.get('type')
+ )
+
if self.boot_diagnostics is not None:
+ storage_uri = None
+ # storageUri is undefined if boot diagnostics is disabled
+ if 'storageUri' in vm_dict['diagnostics_profile']['boot_diagnostics']:
+ storage_uri = vm_dict['diagnostics_profile']['boot_diagnostics']['storageUri']
vm_resource.diagnostics_profile = self.compute_models.DiagnosticsProfile(
boot_diagnostics=self.compute_models.BootDiagnostics(
- enabled=vm_dict['properties']['diagnosticsProfile']['bootDiagnostics']['enabled'],
- storage_uri=vm_dict['properties']['diagnosticsProfile']['bootDiagnostics']['storageUri']))
+ enabled=vm_dict['diagnostics_profile']['boot_diagnostics']['enabled'],
+ storage_uri=storage_uri))
if vm_dict.get('tags'):
vm_resource.tags = vm_dict['tags']
# Add custom_data, if provided
- if vm_dict['properties'].get('osProfile', {}).get('customData'):
- custom_data = vm_dict['properties']['osProfile']['customData']
+ if vm_dict.get('os_profile', {}).get('custom_data'):
+ custom_data = vm_dict['os_profile']['custom_data']
# Azure SDK (erroneously?) wants native string type for this
vm_resource.os_profile.custom_data = to_native(base64.b64encode(to_bytes(custom_data)))
# Add admin password, if one provided
- if vm_dict['properties'].get('osProfile', {}).get('adminPassword'):
- vm_resource.os_profile.admin_password = vm_dict['properties']['osProfile']['adminPassword']
+ if vm_dict.get('os_profile', {}).get('admin_password'):
+ vm_resource.os_profile.admin_password = vm_dict['os_profile']['admin_password']
# Add Windows configuration, if applicable
- windows_config = vm_dict['properties'].get('osProfile', {}).get('windowsConfiguration')
+ windows_config = vm_dict.get('os_profile', {}).get('windows_configuration')
if windows_config:
if self.windows_config is not None:
vm_resource.os_profile.windows_configuration = self.compute_models.WindowsConfiguration(
@@ -1847,7 +2088,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
)
# Add linux configuration, if applicable
- linux_config = vm_dict['properties'].get('osProfile', {}).get('linuxConfiguration')
+ linux_config = vm_dict.get('os_profile', {}).get('linux_configuration')
if linux_config:
if self.linux_config is not None:
vm_resource.os_profile.linux_configuration = self.compute_models.LinuxConfiguration(
@@ -1855,7 +2096,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
)
else:
vm_resource.os_profile.linux_configuration = self.compute_models.LinuxConfiguration(
- disable_password_authentication=linux_config.get('disablePasswordAuthentication', False)
+ disable_password_authentication=linux_config.get('disable_password_authentication', False)
)
ssh_config = linux_config.get('ssh', None)
if ssh_config:
@@ -1868,12 +2109,12 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
)
# data disk
- if vm_dict['properties']['storageProfile'].get('dataDisks'):
+ if vm_dict['storage_profile'].get('data_disks'):
data_disks = []
- for data_disk in vm_dict['properties']['storageProfile']['dataDisks']:
- if data_disk.get('managedDisk'):
- managed_disk_type = data_disk['managedDisk'].get('storageAccountType')
+ for data_disk in vm_dict['storage_profile']['data_disks']:
+ if data_disk.get('managed_disk'):
+ managed_disk_type = data_disk['managed_disk'].get('storage_account_type')
data_disk_managed_disk = self.compute_models.ManagedDiskParameters(storage_account_type=managed_disk_type)
data_disk_vhd = None
else:
@@ -1885,8 +2126,8 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
name=data_disk.get('name'),
vhd=data_disk_vhd,
caching=data_disk.get('caching'),
- create_option=data_disk.get('createOption'),
- disk_size_gb=int(data_disk.get('diskSizeGB', 0)) or None,
+ create_option=data_disk.get('create_option'),
+ disk_size_gb=int(data_disk.get('disk_size_gb', 0)) or None,
managed_disk=data_disk_managed_disk,
))
vm_resource.storage_profile.data_disks = data_disks
@@ -1980,16 +2221,16 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
for interface in vm.network_profile.network_interfaces:
int_dict = azure_id_to_dict(interface.id)
nic = self.get_network_interface(int_dict['resourceGroups'], int_dict['networkInterfaces'])
- for interface_dict in result['properties']['networkProfile']['networkInterfaces']:
+ for interface_dict in result['network_profile']['network_interfaces']:
if interface_dict['id'] == interface.id:
nic_dict = self.serialize_obj(nic, 'NetworkInterface')
interface_dict['name'] = int_dict['networkInterfaces']
- interface_dict['properties'] = nic_dict['properties']
+ interface_dict['properties'] = nic_dict
# Expand public IPs to include config properties
- for interface in result['properties']['networkProfile']['networkInterfaces']:
- for config in interface['properties']['ipConfigurations']:
- if config['properties'].get('publicIPAddress'):
- pipid_dict = azure_id_to_dict(config['properties']['publicIPAddress']['id'])
+ for interface in result['network_profile']['network_interfaces']:
+ for config in interface['properties']['ip_configurations']:
+ if config.get('public_ip_address'):
+ pipid_dict = azure_id_to_dict(config['public_ip_address']['id'])
try:
pip = self.network_client.public_ip_addresses.get(pipid_dict['resourceGroups'],
pipid_dict['publicIPAddresses'])
@@ -1997,8 +2238,8 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
self.fail("Error fetching public ip {0} - {1}".format(pipid_dict['publicIPAddresses'],
str(exc)))
pip_dict = self.serialize_obj(pip, 'PublicIPAddress')
- config['properties']['publicIPAddress']['name'] = pipid_dict['publicIPAddresses']
- config['properties']['publicIPAddress']['properties'] = pip_dict['properties']
+ config['public_ip_address']['name'] = pipid_dict['publicIPAddresses']
+ config['public_ip_address']['properties'] = pip_dict['ip_configuration']
self.log(result, pretty_print=True)
if self.state != 'absent' and not result['powerstate']:
@@ -2006,10 +2247,10 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
return result
def power_off_vm(self):
- self.log("Powered off virtual machine {0}".format(self.name))
- self.results['actions'].append("Powered off virtual machine {0}".format(self.name))
+ self.log("Powered off virtual machine {0} - Skip_Shutdown {1}".format(self.name, self.force))
+ self.results['actions'].append("Powered off virtual machine {0} - Skip_Shutdown {1}".format(self.name, self.force))
try:
- poller = self.compute_client.virtual_machines.begin_power_off(self.resource_group, self.name)
+ poller = self.compute_client.virtual_machines.begin_power_off(self.resource_group, self.name, skip_shutdown=self.force)
self.get_poller_result(poller)
except Exception as exc:
self.fail("Error powering off virtual machine {0} - {1}".format(self.name, str(exc)))
@@ -2459,7 +2700,7 @@ class AzureRMVirtualMachine(AzureRMModuleBase):
try:
subnet = self.network_client.subnets.get(virtual_network_resource_group, virtual_network_name, self.subnet_name)
subnet_id = subnet.id
- except CloudError as exc:
+ except Exception as exc:
self.fail("Error: fetching subnet {0} - {1}".format(self.subnet_name, str(exc)))
else:
no_subnets_msg = "Error: unable to find a subnet in virtual network {0}. A virtual network " \
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine_info.py
index 50d909c92..d94f9848e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachine_info.py
@@ -25,9 +25,11 @@ options:
resource_group:
description:
- Name of the resource group containing the virtual machines (required when filtering by vm name).
+ type: str
name:
description:
- Name of the virtual machine.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -44,21 +46,21 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for all virtual machines of a resource group
- azure_rm_virtualmachine_info:
- resource_group: myResourceGroup
-
- - name: Get facts by name
- azure_rm_virtualmachine_info:
- resource_group: myResourceGroup
- name: myVm
-
- - name: Get facts by tags
- azure_rm_virtualmachine_info:
- resource_group: myResourceGroup
- tags:
- - testing
- - foo:bar
+- name: Get facts for all virtual machines of a resource group
+ azure_rm_virtualmachine_info:
+ resource_group: myResourceGroup
+
+- name: Get facts by name
+ azure_rm_virtualmachine_info:
+ resource_group: myResourceGroup
+ name: myVm
+
+- name: Get facts by tags
+ azure_rm_virtualmachine_info:
+ resource_group: myResourceGroup
+ tags:
+ - testing
+ - foo:bar
'''
RETURN = '''
@@ -275,44 +277,44 @@ vms:
description:
- Specifies the Security related profile settings for the virtual machine.
type: complex
- returned: always
+ returned: when-used
contains:
encryption_at_host:
description:
- This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine.
- This will enable the encryption for all the disks including Resource/Temp disk at host itself.
type: bool
- returned: always
+ returned: when-enabled
sample: True
security_type:
description:
- Specifies the SecurityType of the virtual machine.
- It is set as TrustedLaunch to enable UefiSettings.
type: str
- returned: always
+ returned: when-enabled
sample: TrustedLaunch
uefi_settings:
description:
- Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
type: complex
- returned: always
+ returned: when-enabled
contains:
secure_boot_enabled:
description:
- Specifies whether secure boot should be enabled on the virtual machine.
type: bool
- returned: always
+ returned: when-enabled
sample: True
v_tpm_enabled:
description:
- Specifies whether vTPM should be enabled on the virtual machine.
type: bool
- returned: always
+ returned: when-enabled
sample: True
'''
try:
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except Exception:
# This is handled in azure_rm_common
@@ -445,13 +447,13 @@ class AzureRMVirtualMachineInfo(AzureRMModuleBase):
code = instance['statuses'][index]['code'].split('/')
if code[0] == 'PowerState':
power_state = code[1]
- display_status = instance['statuses'][index]['displayStatus']
+ display_status = instance['statuses'][index]['display_status']
elif code[0] == 'OSState' and code[1] == 'generalized':
- display_status = instance['statuses'][index]['displayStatus']
+ display_status = instance['statuses'][index]['display_status']
power_state = 'generalized'
break
elif code[0] == 'ProvisioningState' and code[1] == 'failed':
- display_status = instance['statuses'][index]['displayStatus']
+ display_status = instance['statuses'][index]['display_status']
power_state = ''
break
@@ -459,11 +461,16 @@ class AzureRMVirtualMachineInfo(AzureRMModuleBase):
if vm.security_profile is not None:
new_result['security_profile'] = dict()
- new_result['security_profile']['encryption_at_host'] = vm.security_profile.encryption_at_host
- new_result['security_profile']['security_type'] = vm.security_profile.security_type
- new_result['security_profile']['uefi_settings'] = dict()
- new_result['security_profile']['uefi_settings']['secure_boot_enabled'] = vm.security_profile.uefi_settings.secure_boot_enabled
- new_result['security_profile']['uefi_settings']['v_tpm_enabled'] = vm.security_profile.uefi_settings.v_tpm_enabled
+ if vm.security_profile.encryption_at_host is not None:
+ new_result['security_profile']['encryption_at_host'] = vm.security_profile.encryption_at_host
+ if vm.security_profile.security_type is not None:
+ new_result['security_profile']['security_type'] = vm.security_profile.security_type
+ if vm.security_profile.uefi_settings is not None:
+ new_result['security_profile']['uefi_settings'] = dict()
+ if vm.security_profile.uefi_settings.secure_boot_enabled is not None:
+ new_result['security_profile']['uefi_settings']['secure_boot_enabled'] = vm.security_profile.uefi_settings.secure_boot_enabled
+ if vm.security_profile.uefi_settings.v_tpm_enabled is not None:
+ new_result['security_profile']['uefi_settings']['v_tpm_enabled'] = vm.security_profile.uefi_settings.v_tpm_enabled
new_result['power_state'] = power_state
new_result['display_status'] = display_status
@@ -473,13 +480,13 @@ class AzureRMVirtualMachineInfo(AzureRMModuleBase):
new_result['name'] = vm.name
new_result['state'] = 'present'
new_result['location'] = vm.location
- new_result['vm_size'] = result['properties']['hardwareProfile']['vmSize']
- new_result['proximityPlacementGroup'] = result['properties'].get('proximityPlacementGroup')
+ new_result['vm_size'] = result['hardware_profile']['vm_size']
+ new_result['proximityPlacementGroup'] = result.get('proximity_placement_group')
new_result['zones'] = result.get('zones', None)
- os_profile = result['properties'].get('osProfile')
+ os_profile = result.get('os_profile')
if os_profile is not None:
- new_result['admin_username'] = os_profile.get('adminUsername')
- image = result['properties']['storageProfile'].get('imageReference')
+ new_result['admin_username'] = os_profile.get('admin_username')
+ image = result['storage_profile'].get('image_reference')
if image is not None:
if image.get('publisher', None) is not None:
new_result['image'] = {
@@ -494,40 +501,40 @@ class AzureRMVirtualMachineInfo(AzureRMModuleBase):
}
new_result['boot_diagnostics'] = {
- 'enabled': 'diagnosticsProfile' in result['properties'] and
- 'bootDiagnostics' in result['properties']['diagnosticsProfile'] and
- result['properties']['diagnosticsProfile']['bootDiagnostics']['enabled'] or False,
- 'storage_uri': 'diagnosticsProfile' in result['properties'] and
- 'bootDiagnostics' in result['properties']['diagnosticsProfile'] and
- result['properties']['diagnosticsProfile']['bootDiagnostics'].get('storageUri', None)
+ 'enabled': 'diagnostics_profile' in result and
+ 'boot_diagnostics' in result['diagnostics_profile'] and
+ result['diagnostics_profile']['boot_diagnostics']['enabled'] or False,
+ 'storage_uri': 'diagnostics_profile' in result and
+ 'boot_diagnostics' in result['diagnostics_profile'] and
+ result['diagnostics_profile']['boot_diagnostics'].get('storageUri', None)
}
if new_result['boot_diagnostics']['enabled']:
- new_result['boot_diagnostics']['console_screenshot_uri'] = result['properties']['instanceView']['bootDiagnostics'].get('consoleScreenshotBlobUri')
- new_result['boot_diagnostics']['serial_console_log_uri'] = result['properties']['instanceView']['bootDiagnostics'].get('serialConsoleLogBlobUri')
+ new_result['boot_diagnostics']['console_screenshot_uri'] = result['instance_view']['boot_diagnostics'].get('console_screenshot_blob_uri')
+ new_result['boot_diagnostics']['serial_console_log_uri'] = result['instance_view']['boot_diagnostics'].get('serial_console_log_blob_uri')
- vhd = result['properties']['storageProfile']['osDisk'].get('vhd')
+ vhd = result['storage_profile']['os_disk'].get('vhd')
if vhd is not None:
url = urlparse(vhd['uri'])
new_result['storage_account_name'] = url.netloc.split('.')[0]
new_result['storage_container_name'] = url.path.split('/')[1]
new_result['storage_blob_name'] = url.path.split('/')[-1]
- new_result['os_disk_caching'] = result['properties']['storageProfile']['osDisk']['caching']
- new_result['os_type'] = result['properties']['storageProfile']['osDisk']['osType']
+ new_result['os_disk_caching'] = result['storage_profile']['os_disk']['caching']
+ new_result['os_type'] = result['storage_profile']['os_disk']['os_type']
new_result['data_disks'] = []
- disks = result['properties']['storageProfile']['dataDisks']
+ disks = result['storage_profile']['data_disks']
for disk_index in range(len(disks)):
new_result['data_disks'].append({
'lun': disks[disk_index].get('lun'),
'name': disks[disk_index].get('name'),
- 'disk_size_gb': disks[disk_index].get('diskSizeGB'),
- 'managed_disk_type': disks[disk_index].get('managedDisk', {}).get('storageAccountType'),
- 'managed_disk_id': disks[disk_index].get('managedDisk', {}).get('id'),
+ 'disk_size_gb': disks[disk_index].get('disk_size_gb'),
+ 'managed_disk_type': disks[disk_index].get('managed_disk', {}).get('storage_account_type'),
+ 'managed_disk_id': disks[disk_index].get('managed_disk', {}).get('id'),
'caching': disks[disk_index].get('caching')
})
new_result['network_interface_names'] = []
- nics = result['properties']['networkProfile']['networkInterfaces']
+ nics = result['network_profile']['network_interfaces']
for nic_index in range(len(nics)):
new_result['network_interface_names'].append(re.sub('.*networkInterfaces/', '', nics[nic_index]['id']))
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineextension_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineextension_info.py
index 98f748c2f..f9068d7ae 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineextension_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineextension_info.py
@@ -46,16 +46,16 @@ author:
'''
EXAMPLES = '''
- - name: Get information on specific Virtual Machine Extension
- azure_rm_virtualmachineextension_info:
- resource_group: myResourceGroup
- virtual_machine_name: myvm
- name: myextension
-
- - name: List installed Virtual Machine Extensions
- azure_rm_virtualmachineextension_info:
- resource_group: myResourceGroup
- virtual_machine_name: myvm
+- name: Get information on specific Virtual Machine Extension
+ azure_rm_virtualmachineextension_info:
+ resource_group: myResourceGroup
+ virtual_machine_name: myvm
+ name: myextension
+
+- name: List installed Virtual Machine Extensions
+ azure_rm_virtualmachineextension_info:
+ resource_group: myResourceGroup
+ virtual_machine_name: myvm
'''
RETURN = '''
@@ -138,7 +138,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineimage_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineimage_info.py
index fc18f2dd2..9d314ef91 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineimage_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachineimage_info.py
@@ -26,18 +26,23 @@ options:
- Azure location value, for example C(westus), C(eastus), C(eastus2), C(northcentralus), etc.
- Supplying only a location value will yield a list of available publishers for the location.
required: true
+ type: str
publisher:
description:
- Name of an image publisher. List image offerings associated with a particular publisher.
+ type: str
offer:
description:
- Name of an image offering. Combine with SKU to see a list of available image versions.
+ type: str
sku:
description:
- Image offering SKU. Combine with offer to see a list of available versions.
+ type: str
version:
description:
- Specific version number of an image.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -49,30 +54,29 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for a specific image
- azure_rm_virtualmachineimage_info:
- location: eastus
- publisher: OpenLogic
- offer: CentOS
- sku: '7.1'
- version: '7.1.20160308'
-
- - name: List available versions
- azure_rm_virtualmachineimage_info:
- location: eastus
- publisher: OpenLogic
- offer: CentOS
- sku: '7.1'
-
- - name: List available offers
- azure_rm_virtualmachineimage_info:
- location: eastus
- publisher: OpenLogic
-
- - name: List available publishers
- azure_rm_virtualmachineimage_info:
- location: eastus
-
+- name: Get facts for a specific image
+ azure_rm_virtualmachineimage_info:
+ location: eastus
+ publisher: OpenLogic
+ offer: CentOS
+ sku: '7.1'
+ version: '7.1.20160308'
+
+- name: List available versions
+ azure_rm_virtualmachineimage_info:
+ location: eastus
+ publisher: OpenLogic
+ offer: CentOS
+ sku: '7.1'
+
+- name: List available offers
+ azure_rm_virtualmachineimage_info:
+ location: eastus
+ publisher: OpenLogic
+
+- name: List available publishers
+ azure_rm_virtualmachineimage_info:
+ location: eastus
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset.py
index ee3b822b5..4a64628fb 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset.py
@@ -25,10 +25,12 @@ options:
description:
- Name of the resource group containing the virtual machine scale set.
required: true
+ type: str
name:
description:
- Name of the virtual machine.
required: true
+ type: str
state:
description:
- Assert the state of the virtual machine scale set.
@@ -36,26 +38,32 @@ options:
of the existing machine does not match, the machine will be updated.
- State C(absent) will remove the virtual machine scale set.
default: present
+ type: str
choices:
- absent
- present
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
short_hostname:
description:
- Short host name.
+ type: str
vm_size:
description:
- A valid Azure VM size value. For example, C(Standard_D4).
- The list of choices varies depending on the subscription and location. Check your subscription for available choices.
+ type: str
capacity:
description:
- Capacity of VMSS.
default: 1
+ type: int
tier:
description:
- SKU Tier.
+ type: str
choices:
- Basic
- Standard
@@ -63,6 +71,7 @@ options:
description:
- Upgrade policy.
- Required when creating the Azure virtual machine scale sets.
+ type: str
choices:
- Manual
- Automatic
@@ -70,6 +79,7 @@ options:
description:
- Priority of the VMSS.
- C(None) is the equivalent of Regular VM.
+ type: str
choices:
- None
- Spot
@@ -77,6 +87,7 @@ options:
description:
- Specifies the eviction policy for the Azure Spot virtual machine.
- Requires priority to be set to Spot.
+ type: str
choices:
- Deallocate
- Delete
@@ -87,13 +98,16 @@ options:
- C(-1) indicates default price to be up-to on-demand.
- Requires priority to be set to Spot.
default: -1
+ type: float
admin_username:
description:
- Admin username used to access the host after it is created. Required when creating a VM.
+ type: str
admin_password:
description:
- Password for the admin username.
- Not required if the os_type is Linux and SSH password authentication is disabled by setting I(ssh_password_enabled=false).
+ type: str
ssh_password_enabled:
description:
- When the os_type is Linux, setting I(ssh_password_enabled=false) will disable SSH password authentication and require use of SSH keys.
@@ -106,6 +120,8 @@ options:
- Set the C(path) to the default location of the authorized_keys files.
- On an Enterprise Linux host, for example, the I(path=/home/<admin username>/.ssh/authorized_keys).
Set C(key_data) to the actual value of the public key.
+ type: list
+ elements: dict
image:
description:
- Specifies the image used to build the VM.
@@ -115,10 +131,12 @@ options:
- If a dict with the keys I(name) and I(resource_group), the image is sourced from a custom image based on the I(name) and I(resource_group) set.
Note that the key I(resource_group) is optional and if omitted, all images in the subscription will be searched for by I(name).
- Custom image support was added in Ansible 2.5.
- required: true
+ - Required when creating.
+ type: raw
os_disk_caching:
description:
- Type of OS disk caching.
+ type: str
choices:
- ReadOnly
- ReadWrite
@@ -133,6 +151,7 @@ options:
os_type:
description:
- Base type of operating system.
+ type: str
choices:
- Windows
- Linux
@@ -145,6 +164,7 @@ options:
managed_disk_type:
description:
- Managed disk type.
+ type: str
choices:
- Standard_LRS
- Premium_LRS
@@ -155,17 +175,22 @@ options:
data_disks:
description:
- Describes list of data disks.
+ type: list
+ elements: dict
suboptions:
lun:
description:
- The logical unit number for data disk.
- default: 0
+ default: '0'
+ type: str
disk_size_gb:
description:
- The initial disk size in GB for blank data disks.
+ type: int
managed_disk_type:
description:
- Managed data disk type.
+ type: str
choices:
- Standard_LRS
- Premium_LRS
@@ -176,6 +201,7 @@ options:
caching:
description:
- Type of data disk caching.
+ type: str
choices:
- ReadOnly
- ReadWrite
@@ -185,14 +211,17 @@ options:
- When creating a virtual machine, if a specific virtual network from another resource group should be
used.
- Use this parameter to specify the resource group to use.
+ type: str
virtual_network_name:
description:
- Virtual Network name.
aliases:
- virtual_network
+ type: str
subnet_name:
description:
- Subnet name.
+ type: str
aliases:
- subnet
public_ip_per_vm:
@@ -203,14 +232,18 @@ options:
load_balancer:
description:
- Load balancer name.
+ type: str
application_gateway:
description:
- Application gateway name.
+ type: str
remove_on_absent:
description:
- When removing a VM using I(state=absent), also remove associated resources.
- It can be C(all) or a list with any of the following ['network_interfaces', 'virtual_storage', 'public_ips'].
- Any other input will be ignored.
+ type: list
+ elements: str
default: ['all']
enable_accelerated_networking:
description:
@@ -224,6 +257,7 @@ options:
- It can be a dict which contains I(name) and I(resource_group) of the security group.
aliases:
- security_group_name
+ type: raw
overprovision:
description:
- Specifies whether the Virtual Machine Scale Set should be overprovisioned.
@@ -242,21 +276,26 @@ options:
description:
- Billing plan name.
required: true
+ type: str
product:
description:
- Product name.
required: true
+ type: str
publisher:
description:
- Publisher offering the plan.
required: true
+ type: str
promotion_code:
description:
- Optional promotion code.
+ type: str
zones:
description:
- A list of Availability Zones for your virtual machine scale set.
type: list
+ elements: str
custom_data:
description:
- Data which is made available to the virtual machine and used by e.g., C(cloud-init).
@@ -264,9 +303,11 @@ options:
- If the image you are attempting to use is not listed in
U(https://docs.microsoft.com/en-us/azure/virtual-machines/linux/using-cloud-init#cloud-init-overview),
follow these steps U(https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cloudinit-prepare-custom-image).
+ type: str
scale_in_policy:
description:
- define the order in which vmss instances are scaled-in
+ type: str
choices:
- Default
- NewestVM
@@ -275,6 +316,7 @@ options:
description:
- timeout time for termination notification event
- in range between 5 and 15
+ type: int
platform_fault_domain_count:
description:
- Fault Domain count for each placement group.
@@ -411,7 +453,7 @@ EXAMPLES = '''
name: testvmss
vm_size: Standard_DS1_v2
capacity: 120
- single_placement_group: False
+ single_placement_group: false
virtual_network_name: testvnet
upgrade_policy: Manual
subnet_name: testsubnet
@@ -458,9 +500,9 @@ EXAMPLES = '''
name: testVMSS{{ rpfx }}
vm_size: Standard_D4s_v3
admin_username: testuser
- single_placement_group: False
+ single_placement_group: false
platform_fault_domain_count: 1
- public_ip_per_vm: True
+ public_ip_per_vm: true
ssh_password_enabled: false
ssh_public_keys:
- path: /home/testuser/.ssh/authorized_keys
@@ -472,9 +514,9 @@ EXAMPLES = '''
os_disk_caching: ReadWrite
security_profile:
uefi_settings:
- secure_boot_enabled: True
- v_tpm_enabled: False
- encryption_at_host: False
+ secure_boot_enabled: true
+ v_tpm_enabled: false
+ encryption_at_host: false
security_type: TrustedLaunch
image:
offer: 0001-com-ubuntu-server-jammy
@@ -606,9 +648,8 @@ azure_vmss:
import base64
try:
- from msrestazure.azure_exceptions import CloudError
from azure.core.exceptions import ResourceNotFoundError
- from msrestazure.tools import parse_resource_id
+ from azure.mgmt.core.tools import parse_resource_id
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
@@ -644,25 +685,37 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
admin_username=dict(type='str'),
admin_password=dict(type='str', no_log=True),
ssh_password_enabled=dict(type='bool', default=True),
- ssh_public_keys=dict(type='list'),
+ ssh_public_keys=dict(type='list', elements='dict'),
image=dict(type='raw'),
os_disk_caching=dict(type='str', aliases=['disk_caching'], choices=['ReadOnly', 'ReadWrite'],
default='ReadOnly'),
os_type=dict(type='str', choices=['Linux', 'Windows'], default='Linux'),
managed_disk_type=dict(type='str', choices=['Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS', 'UltraSSD_LRS', 'Premium_ZRS', 'StandardSSD_ZRS']),
- data_disks=dict(type='list'),
+ data_disks=dict(
+ type='list',
+ elements='dict',
+ options=dict(
+ lun=dict(type='str', default='0'),
+ disk_size_gb=dict(type='int'),
+ caching=dict(type='str', default='ReadOnly', choices=['ReadOnly', 'ReadWrite']),
+ managed_disk_type=dict(
+ type='str',
+ choices=['Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS', 'UltraSSD_LRS', 'Premium_ZRS', 'StandardSSD_ZRS']
+ )
+ )
+ ),
subnet_name=dict(type='str', aliases=['subnet']),
public_ip_per_vm=dict(type='bool', default=False),
load_balancer=dict(type='str'),
application_gateway=dict(type='str'),
virtual_network_resource_group=dict(type='str'),
virtual_network_name=dict(type='str', aliases=['virtual_network']),
- remove_on_absent=dict(type='list', default=['all']),
+ remove_on_absent=dict(type='list', default=['all'], elements='str'),
enable_accelerated_networking=dict(type='bool'),
security_group=dict(type='raw', aliases=['security_group_name']),
overprovision=dict(type='bool'),
single_placement_group=dict(type='bool', default=False),
- zones=dict(type='list'),
+ zones=dict(type='list', elements='str'),
custom_data=dict(type='str'),
plan=dict(type='dict', options=dict(publisher=dict(type='str', required=True),
product=dict(type='str', required=True), name=dict(type='str', required=True),
@@ -862,18 +915,18 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
if self.state == 'present':
differences = []
results = vmss_dict
- current_osdisk = vmss_dict['properties']['virtualMachineProfile']['storageProfile']['osDisk']
- current_ephemeral = current_osdisk.get('diffDiskSettings', None)
- current_properties = vmss_dict['properties']['virtualMachineProfile']
+ current_osdisk = vmss_dict['virtual_machine_profile']['storage_profile']['os_disk']
+ current_ephemeral = current_osdisk.get('diff_disk_settings', None)
+ current_properties = vmss_dict['virtual_machine_profile']
if self.priority and self.priority != current_properties.get('priority', 'None'):
self.fail('VM Priority is not updatable: requested virtual machine priority is {0}'.format(self.priority))
if self.eviction_policy and \
- self.eviction_policy != current_properties.get('evictionPolicy', None):
+ self.eviction_policy != current_properties.get('eviction_policy', None):
self.fail('VM Eviction Policy is not updatable: requested virtual machine eviction policy is {0}'.format(self.eviction_policy))
if self.max_price and \
- vmss_dict['properties']['virtualMachineProfile'].get('billingProfile', None) and \
- self.max_price != vmss_dict['properties']['virtualMachineProfile']['billingProfile'].get('maxPrice', None):
+ vmss_dict['virtual_machine_profile'].get('billing_profile', None) and \
+ self.max_price != vmss_dict['virtual_machine_profile']['billing_profile'].get('max_price', None):
self.fail('VM Maximum Price is not updatable: requested virtual machine maximum price is {0}'.format(self.max_price))
if self.ephemeral_os_disk and current_ephemeral is None:
@@ -882,15 +935,15 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
self.fail('Ephemeral OS disk not updatable: virtual machine scale set ephemeral OS disk is {0}'.format(self.ephemeral_os_disk))
if self.os_disk_size_gb and \
- self.os_disk_size_gb != vmss_dict['properties']['virtualMachineProfile']['storageProfile']['osDisk']['diskSizeGB']:
+ self.os_disk_size_gb != vmss_dict['virtual_machine_profile']['storage_profile']['os_disk']['disk_size_gb']:
self.fail('VMSS OS disk size is not updatable: requested virtual machine OS disk size is {0}'.format(self.os_disk_size_gb))
if self.os_disk_caching and \
- self.os_disk_caching != vmss_dict['properties']['virtualMachineProfile']['storageProfile']['osDisk']['caching']:
+ self.os_disk_caching != vmss_dict['virtual_machine_profile']['storage_profile']['os_disk']['caching']:
self.log('CHANGED: virtual machine scale set {0} - OS disk caching'.format(self.name))
differences.append('OS Disk caching')
changed = True
- vmss_dict['properties']['virtualMachineProfile']['storageProfile']['osDisk']['caching'] = self.os_disk_caching
+ vmss_dict['virtual_machine_profile']['storage_profile']['os_disk']['caching'] = self.os_disk_caching
if self.capacity and \
self.capacity != vmss_dict['sku']['capacity']:
@@ -900,35 +953,35 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
vmss_dict['sku']['capacity'] = self.capacity
if self.data_disks and \
- len(self.data_disks) != len(vmss_dict['properties']['virtualMachineProfile']['storageProfile'].get('dataDisks', [])):
+ len(self.data_disks) != len(vmss_dict['virtual_machine_profile']['storage_profile'].get('data_disks', [])):
self.log('CHANGED: virtual machine scale set {0} - Data Disks'.format(self.name))
differences.append('Data Disks')
changed = True
if self.upgrade_policy and \
- self.upgrade_policy != vmss_dict['properties']['upgradePolicy']['mode']:
+ self.upgrade_policy != vmss_dict['upgrade_policy']['mode']:
self.log('CHANGED: virtual machine scale set {0} - Upgrade Policy'.format(self.name))
differences.append('Upgrade Policy')
changed = True
- vmss_dict['properties']['upgradePolicy']['mode'] = self.upgrade_policy
+ vmss_dict['upgrade_policy']['mode'] = self.upgrade_policy
if image_reference and \
- image_reference.as_dict() != vmss_dict['properties']['virtualMachineProfile']['storageProfile']['imageReference']:
+ image_reference.as_dict() != vmss_dict['virtual_machine_profile']['storage_profile']['image_reference']:
self.log('CHANGED: virtual machine scale set {0} - Image'.format(self.name))
differences.append('Image')
changed = True
- vmss_dict['properties']['virtualMachineProfile']['storageProfile']['imageReference'] = image_reference.as_dict()
+ vmss_dict['virtual_machine_profile']['storage_profile']['image_reference'] = image_reference.as_dict()
update_tags, vmss_dict['tags'] = self.update_tags(vmss_dict.get('tags', dict()))
if update_tags:
differences.append('Tags')
changed = True
- if self.overprovision is not None and bool(self.overprovision) != bool(vmss_dict['properties'].get('overprovision')):
+ if self.overprovision is not None and bool(self.overprovision) != bool(vmss_dict.get('overprovision')):
differences.append('overprovision')
changed = True
- if bool(self.single_placement_group) != bool(vmss_dict['properties']['singlePlacementGroup']):
+ if bool(self.single_placement_group) != bool(vmss_dict['single_placement_group']):
differences.append('single_placement_group')
changed = True
@@ -944,26 +997,26 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
if timeout < 5 or timeout > 15:
self.fail("terminate_event_timeout_minutes should >= 5 and <= 15")
iso_8601_format = "PT" + str(timeout) + "M"
- old = vmss_dict['properties']['virtualMachineProfile'].get('scheduledEventsProfile', {}).\
- get('terminateNotificationProfile', {}).get('notBeforeTimeout', "")
+ old = vmss_dict['virtual_machine_profile'].get('scheduled_events_profile', {}).\
+ get('terminate_notification_profile', {}).get('not_before_timeout', "")
if old != iso_8601_format:
differences.append('terminateNotification')
changed = True
- vmss_dict['properties']['virtualMachineProfile'].setdefault('scheduledEventsProfile', {})['terminateNotificationProfile'] = {
- 'notBeforeTimeout': iso_8601_format,
+ vmss_dict['virtual_machine_profile'].setdefault('scheduled_events_profile', {})['terminate_notification_profile'] = {
+ 'not_before_timeout': iso_8601_format,
"enable": 'true'
}
- if self.scale_in_policy and self.scale_in_policy != vmss_dict['properties'].get('scaleInPolicy', {}).get('rules', [""])[0]:
+ if self.scale_in_policy and self.scale_in_policy != vmss_dict.get('scale_in_policy', {}).get('rules', [""])[0]:
self.log("CHANGED: virtual machine sale sets {0} scale in policy".format(self.name))
differences.append('scaleInPolicy')
changed = True
- vmss_dict['properties'].setdefault('scaleInPolicy', {})['rules'] = [self.scale_in_policy]
+ vmss_dict.setdefault('scale_in_policy', {})['rules'] = [self.scale_in_policy]
- nicConfigs = vmss_dict['properties']['virtualMachineProfile']['networkProfile']['networkInterfaceConfigurations']
+ nicConfigs = vmss_dict['virtual_machine_profile']['network_profile']['network_interface_configurations']
- backend_address_pool = nicConfigs[0]['properties']['ipConfigurations'][0]['properties'].get('loadBalancerBackendAddressPools', [])
- backend_address_pool += nicConfigs[0]['properties']['ipConfigurations'][0]['properties'].get('applicationGatewayBackendAddressPools', [])
+ backend_address_pool = nicConfigs[0]['ip_configurations'][0].get('load_balancer_backend_address_pools', [])
+ backend_address_pool += nicConfigs[0]['ip_configurations'][0].get('application_gateway_backend_address_pools', [])
lb_or_ag_id = None
if (len(nicConfigs) != 1 or len(backend_address_pool) != 1):
support_lb_change = False # Currently not support for the vmss contains more than one loadbalancer
@@ -980,51 +1033,51 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
changed = True
if self.custom_data:
- if self.custom_data != vmss_dict['properties']['virtualMachineProfile']['osProfile'].get('customData'):
+ if self.custom_data != vmss_dict['virtual_machine_profile']['os_profile'].get('custom_data'):
differences.append('custom_data')
changed = True
- vmss_dict['properties']['virtualMachineProfile']['osProfile']['customData'] = self.custom_data
+ vmss_dict['virtual_machine_profile']['os_profile']['custom_data'] = self.custom_data
- if self.orchestration_mode and self.orchestration_mode != vmss_dict['properties'].get('orchestrationMode'):
+ if self.orchestration_mode and self.orchestration_mode != vmss_dict.get('orchestration_mode'):
self.fail("The orchestration_mode parameter cannot be updated!")
else:
- self.orchestration_mode = vmss_dict['properties'].get('orchestrationMode')
+ self.orchestration_mode = vmss_dict.get('orchestration_mode')
- if self.platform_fault_domain_count and self.platform_fault_domain_count != vmss_dict['properties'].get('platformFaultDomainCount'):
+ if self.platform_fault_domain_count and self.platform_fault_domain_count != vmss_dict.get('platform_fault_domain_count'):
self.fail("The platform_fault_domain_count parameter cannot be updated!")
if self.security_profile is not None:
update_security_profile = False
- if 'securityProfile' not in vmss_dict['properties']['virtualMachineProfile'].keys():
+ if 'securityProfile' not in vmss_dict['virtual_machine_profile'].keys():
update_security_profile = True
differences.append('security_profile')
else:
if self.security_profile.get('encryption_at_host') is not None:
if bool(self.security_profile.get('encryption_at_host')) != \
- bool(vmss_dict['properties']['virtualMachineProfile']['securityProfile']['encryptionAtHost']):
+ bool(vmss_dict['virtual_machine_profile']['security_profile']['encryption_at_host']):
update_security_profle = True
else:
self.security_profile['encryption_at_host'] = \
- vmss_dict['properties']['virtualMachineProfile']['securityProfile']['encryptionAtHost']
+ vmss_dict['virtual_machine_profile']['security_profile']['encryption_at_host']
if self.security_profile.get('security_type') is not None:
if self.security_profile.get('security_type') != \
- vmss_dict['properties']['virtualMachineProfile']['securityProfile']['securityType']:
+ vmss_dict['virtual_machine_profile']['security_profile']['security_type']:
update_security_profile = True
if self.security_profile.get('uefi_settings') is not None:
if self.security_profile['uefi_settings'].get('secure_boot_enabled') is not None:
if bool(self.security_profile['uefi_settings']['secure_boot_enabled']) != \
- bool(vmss_dict['properties']['virtualMachineProfile']['securityProfile']['uefiSettings']['secureBootEnabled']):
+ bool(vmss_dict['virtual_machine_profile']['security_profile']['uefi_settings']['secure_boot_nabled']):
update_security_profile = True
else:
self.security_profile['uefi_settings']['secure_boot_enabled'] = \
- vmss_dict['properties']['virtualMachineProfile']['securityProfile']['uefiSettings']['secureBootEnabled']
+ vmss_dict['virtual_machine_profile']['security_profile']['uefi_settings']['secure_boot_enabled']
if self.security_profile['uefi_settings'].get('v_tpm_enabled') is not None:
if bool(self.security_profile['uefi_settings']['v_tpm_enabled']) != \
- bool(vmss_dict['properties']['virtualMachineProfile']['securityProfile']['uefiSettings']['vTpmEnabled']):
+ bool(vmss_dict['virtual_machine_profile']['security_profile']['uefi_settings']['v_tpm_enabled']):
update_security_profile = True
else:
self.security_profile['uefi_settings']['v_tpm_enabled'] = \
- vmss_dict['properties']['virtualMachineProfile']['securityProfile']['uefiSettings']['vTpmEnabled']
+ vmss_dict['virtual_machine_profile']['security_profile']['uefi_settings']['v_tpm_enabled']
if update_security_profile:
changed = True
differences.append('security_profile')
@@ -1338,7 +1391,7 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
self.log("Fetching subnet {0} in virtual network {1}".format(subnet_name, vnet_name))
try:
subnet = self.network_client.subnets.get(self.virtual_network_resource_group, vnet_name, subnet_name)
- except CloudError as exc:
+ except Exception as exc:
self.fail("Error: fetching subnet {0} in virtual network {1} - {2}".format(
subnet_name,
vnet_name,
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset_info.py
index a2154d017..642f6b58d 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescaleset_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Limit results to a specific virtual machine scale set.
+ type: str
resource_group:
description:
- The resource group to search for the desired virtual machine scale set.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -39,6 +41,7 @@ options:
- In Ansible 2.5 and lower facts are always returned in raw format.
- Please note that this option will be deprecated in 2.10 when curated format will become the only supported format.
default: 'raw'
+ type: str
choices:
- 'curated'
- 'raw'
@@ -51,21 +54,21 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for a virtual machine scale set
- azure_rm_virtualmachinescaleset_info:
- resource_group: myResourceGroup
- name: testvmss001
- format: curated
-
- - name: Get facts for all virtual networks
- azure_rm_virtualmachinescaleset_info:
- resource_group: myResourceGroup
-
- - name: Get facts by tags
- azure_rm_virtualmachinescaleset_info:
- resource_group: myResourceGroup
- tags:
- - testing
+- name: Get facts for a virtual machine scale set
+ azure_rm_virtualmachinescaleset_info:
+ resource_group: myResourceGroup
+ name: testvmss001
+ format: curated
+
+- name: Get facts for all virtual networks
+ azure_rm_virtualmachinescaleset_info:
+ resource_group: myResourceGroup
+
+- name: Get facts by tags
+ azure_rm_virtualmachinescaleset_info:
+ resource_group: myResourceGroup
+ tags:
+ - testing
'''
RETURN = '''
@@ -329,34 +332,34 @@ class AzureRMVirtualMachineScaleSetInfo(AzureRMModuleBase):
ssh_password_enabled = False
try:
- subnet_id = (vmss['properties']['virtualMachineProfile']['networkProfile']['networkInterfaceConfigurations'][0]
- ['properties']['ipConfigurations'][0]['properties']['subnet']['id'])
+ subnet_id = (vmss['virtual_machine_profile']['network_profile']['network_interface_configurations'][0]
+ ['ipConfigurations'][0]['subnet']['id'])
subnet_name = re.sub('.*subnets\\/', '', subnet_id)
except Exception:
self.log('Could not extract subnet name')
try:
- backend_address_pool_id = (vmss['properties']['virtualMachineProfile']['networkProfile']['networkInterfaceConfigurations'][0]
- ['properties']['ipConfigurations'][0]['properties']['loadBalancerBackendAddressPools'][0]['id'])
+ backend_address_pool_id = (vmss['virtual_machine_profile']['network_profile']['network_interface_configurations'][0]
+ ['ip_configurations'][0]['load_balancer_backend_address_pools'][0]['id'])
load_balancer_name = re.sub('\\/backendAddressPools.*', '', re.sub('.*loadBalancers\\/', '', backend_address_pool_id))
virtual_network_name = re.sub('.*virtualNetworks\\/', '', re.sub('\\/subnets.*', '', subnet_id))
except Exception:
self.log('Could not extract load balancer / virtual network name')
try:
- ssh_password_enabled = (not vmss['properties']['virtualMachineProfile']['osProfile']
- ['linuxConfiguration']['disablePasswordAuthentication'])
+ ssh_password_enabled = (not vmss['virtual_machine_profile']['os_profile']
+ ['linux_configuration']['disable_password_authentication'])
except Exception:
self.log('Could not extract SSH password enabled')
- data_disks = vmss['properties']['virtualMachineProfile']['storageProfile'].get('dataDisks', [])
+ data_disks = vmss['virtual_machine_profile']['storage_profile'].get('data_disks', [])
for disk_index in range(len(data_disks)):
old_disk = data_disks[disk_index]
new_disk = {
'lun': old_disk['lun'],
- 'disk_size_gb': old_disk['diskSizeGB'],
- 'managed_disk_type': old_disk['managedDisk']['storageAccountType'],
+ 'disk_size_gb': old_disk['disk_size_gb'],
+ 'managed_disk_type': old_disk['managed_disk']['storage_account_type'],
'caching': old_disk['caching']
}
data_disks[disk_index] = new_disk
@@ -370,17 +373,17 @@ class AzureRMVirtualMachineScaleSetInfo(AzureRMModuleBase):
'vm_size': vmss['sku']['name'],
'capacity': vmss['sku']['capacity'],
'tier': vmss['sku']['tier'],
- 'upgrade_policy': vmss['properties'].get('upgradePolicy'),
- 'orchestrationMode': vmss['properties'].get('orchestrationMode'),
- 'platformFaultDomainCount': vmss['properties'].get('platformFaultDomainCount'),
- 'admin_username': vmss['properties']['virtualMachineProfile']['osProfile']['adminUsername'],
- 'admin_password': vmss['properties']['virtualMachineProfile']['osProfile'].get('adminPassword'),
+ 'upgrade_policy': vmss.get('upgrade_policy'),
+ 'orchestrationMode': vmss.get('orchestration_mode'),
+ 'platformFaultDomainCount': vmss.get('platform_fault_domain_count'),
+ 'admin_username': vmss['virtual_machine_profile']['os_profile']['admin_username'],
+ 'admin_password': vmss['virtual_machine_profile']['os_profile'].get('admin_password'),
'ssh_password_enabled': ssh_password_enabled,
- 'image': vmss['properties']['virtualMachineProfile']['storageProfile']['imageReference'],
- 'os_disk_caching': vmss['properties']['virtualMachineProfile']['storageProfile']['osDisk']['caching'],
- 'os_type': 'Linux' if (vmss['properties']['virtualMachineProfile']['osProfile'].get('linuxConfiguration') is not None) else 'Windows',
- 'overprovision': vmss['properties'].get('overprovision'),
- 'managed_disk_type': vmss['properties']['virtualMachineProfile']['storageProfile']['osDisk']['managedDisk']['storageAccountType'],
+ 'image': vmss['virtual_machine_profile']['storage_profile']['image_reference'],
+ 'os_disk_caching': vmss['virtual_machine_profile']['storage_profile']['os_disk']['caching'],
+ 'os_type': 'Linux' if (vmss['virtual_machine_profile']['os_profile'].get('linux_configuration') is not None) else 'Windows',
+ 'overprovision': vmss.get('overprovision'),
+ 'managed_disk_type': vmss['virtual_machine_profile']['storage_profile']['os_disk']['managed_disk']['storage_account_type'],
'data_disks': data_disks,
'virtual_network_name': virtual_network_name,
'subnet_name': subnet_name,
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension.py
index eec58bcf1..7385ca7d6 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension.py
@@ -24,35 +24,45 @@ options:
description:
- Name of a resource group where the VMSS extension exists or will be created.
required: true
+ type: str
vmss_name:
description:
- The name of the virtual machine where the extension should be create or updated.
required: true
+ type: str
name:
description:
- Name of the VMSS extension.
+ type: str
+ required: true
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
publisher:
description:
- The name of the extension handler publisher.
+ type: str
type:
description:
- The type of the extension handler.
+ type: str
type_handler_version:
description:
- The type version of the extension handler.
+ type: str
settings:
description:
- A dictionary containing extension settings.
- Settings depend on extension type.
- Refer to U(https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/overview) for more information.
+ type: dict
protected_settings:
description:
- A dictionary containing protected extension settings.
- Settings depend on extension type.
- Refer to U(https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/overview) for more information.
+ type: dict
auto_upgrade_minor_version:
description:
- Whether the extension handler should be automatically upgraded across minor versions.
@@ -62,6 +72,7 @@ options:
- Assert the state of the extension.
- Use C(present) to create or update an extension and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -75,25 +86,25 @@ author:
'''
EXAMPLES = '''
- - name: Install VMSS Extension
- azure_rm_virtualmachinescalesetextension:
- name: myvmssextension
- location: eastus
- resource_group: myResourceGroup
- vmss_name: myvm
- publisher: Microsoft.Azure.Extensions
- type: CustomScript
- type_handler_version: 2.0
- settings: '{"commandToExecute": "hostname"}'
- auto_upgrade_minor_version: true
-
- - name: Remove VMSS Extension
- azure_rm_virtualmachinescalesetextension:
- name: myvmssextension
- location: eastus
- resource_group: myResourceGroup
- vmss_name: myvm
- state: absent
+- name: Install VMSS Extension
+ azure_rm_virtualmachinescalesetextension:
+ name: myvmssextension
+ location: eastus
+ resource_group: myResourceGroup
+ vmss_name: myvm
+ publisher: Microsoft.Azure.Extensions
+ type: CustomScript
+ type_handler_version: 2.0
+ settings: '{"commandToExecute": "hostname"}'
+ auto_upgrade_minor_version: true
+
+- name: Remove VMSS Extension
+ azure_rm_virtualmachinescalesetextension:
+ name: myvmssextension
+ location: eastus
+ resource_group: myResourceGroup
+ vmss_name: myvm
+ state: absent
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension_info.py
index 3c54de11a..58eadf271 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetextension_info.py
@@ -21,13 +21,16 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
vmss_name:
description:
- The name of VMSS containing the extension.
required: True
+ type: str
name:
description:
- The name of the virtual machine extension.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -38,16 +41,16 @@ author:
'''
EXAMPLES = '''
- - name: Get information on specific Virtual Machine Scale Set Extension
- azure_rm_virtualmachineextension_info:
- resource_group: myResourceGroup
- vmss_name: myvmss
- name: myextension
-
- - name: List installed Virtual Machine Scale Set Extensions
- azure_rm_virtualmachineextension_info:
- resource_group: myrg
- vmss_name: myvmss
+- name: Get information on specific Virtual Machine Scale Set Extension
+ azure_rm_virtualmachineextension_info:
+ resource_group: myResourceGroup
+ vmss_name: myvmss
+ name: myextension
+
+- name: List installed Virtual Machine Scale Set Extensions
+ azure_rm_virtualmachineextension_info:
+ resource_group: myrg
+ vmss_name: myvmss
'''
RETURN = '''
@@ -117,7 +120,6 @@ extensions:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
- from msrest.serialization import Model
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance.py
index 54ed23b86..ca20000a8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance.py
@@ -21,14 +21,17 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
vmss_name:
description:
- The name of the VM scale set.
required: True
+ type: str
instance_id:
description:
- The instance ID of the virtual machine.
- required: True
+ type: str
+ required: true
latest_model:
type: bool
description:
@@ -36,6 +39,7 @@ options:
power_state:
description:
- Use this option to change power state of the instance.
+ type: str
choices:
- 'running'
- 'stopped'
@@ -52,6 +56,7 @@ options:
description:
- State of the VMSS instance. Use C(present) to update an instance and C(absent) to delete an instance.
default: present
+ type: str
choices:
- absent
- present
@@ -65,19 +70,19 @@ author:
'''
EXAMPLES = '''
- - name: Upgrade instance to the latest image
- azure_rm_virtualmachinescalesetinstance:
- resource_group: myResourceGroup
- vmss_name: myVMSS
- instance_id: "2"
- latest_model: yes
-
- - name: Turn on protect from scale in
- azure_rm_virtualmachinescalesetinstance:
- resource_group: myResourceGroup
- vmss_name: myVMSS
- instance_id: "2"
- protect_from_scale_in: true
+- name: Upgrade instance to the latest image
+ azure_rm_virtualmachinescalesetinstance:
+ resource_group: myResourceGroup
+ vmss_name: myVMSS
+ instance_id: "2"
+ latest_model: true
+
+- name: Turn on protect from scale in
+ azure_rm_virtualmachinescalesetinstance:
+ resource_group: myResourceGroup
+ vmss_name: myVMSS
+ instance_id: "2"
+ protect_from_scale_in: true
'''
RETURN = '''
@@ -100,7 +105,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.compute import ComputeManagementClient
- from msrest.serialization import Model
except ImportError:
# This is handled in azure_rm_common
pass
@@ -119,7 +123,8 @@ class AzureRMVirtualMachineScaleSetInstance(AzureRMModuleBase):
required=True
),
instance_id=dict(
- type='str'
+ type='str',
+ required=True
),
latest_model=dict(
type='bool'
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py
index 6d9888728..07b6cf92c 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py
@@ -21,13 +21,16 @@ options:
description:
- The name of the resource group.
required: True
+ type: str
vmss_name:
description:
- The name of the VM scale set.
required: True
+ type: str
instance_id:
description:
- The instance ID of the virtual machine.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -43,10 +46,10 @@ author:
'''
EXAMPLES = '''
- - name: List VM instances in Virtual Machine ScaleSet
- azure_rm_virtualmachinescalesetinstance_info:
- resource_group: myResourceGroup
- vmss_name: myVMSS
+- name: List VM instances in Virtual Machine ScaleSet
+ azure_rm_virtualmachinescalesetinstance_info:
+ resource_group: myResourceGroup
+ vmss_name: myVMSS
'''
RETURN = '''
@@ -118,7 +121,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.mgmt.compute import ComputeManagementClient
- from msrest.serialization import Model
from azure.core.exceptions import ResourceNotFoundError
except ImportError:
# This is handled in azure_rm_common
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinesize_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinesize_info.py
index a0fe189af..982a7ea95 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinesize_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualmachinesize_info.py
@@ -40,14 +40,14 @@ author:
'''
EXAMPLES = '''
- - name: Get all virtual machine size info in eastus
- azure_rm_virtualmachinesize_info:
- location: eastus
-
- - name: Get virtual machine size info for eastus for Standard_A1_v2
- azure_rm_virtualmachinesize_info:
- location: eastus
- name: Standard_A1_v2
+- name: Get all virtual machine size info in eastus
+ azure_rm_virtualmachinesize_info:
+ location: eastus
+
+- name: Get virtual machine size info for eastus for Standard_A1_v2
+ azure_rm_virtualmachinesize_info:
+ location: eastus
+ name: Standard_A1_v2
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork.py
index 2cbf0de55..c497fa3c3 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork.py
@@ -12,7 +12,7 @@ __metaclass__ = type
DOCUMENTATION = '''
---
module: azure_rm_virtualnetwork
-version_added: "0.1.0"
+version_added: 0.1.0
short_description: Manage Azure virtual networks
description:
- Create, update or delete a virtual networks. Allows setting and updating the available IPv4 address ranges
@@ -22,37 +22,44 @@ options:
description:
- Name of resource group.
required: true
+ type: str
address_prefixes_cidr:
+ aliases:
+ - address_prefixes
description:
- List of IPv4 address ranges where each is formatted using CIDR notation.
- Required when creating a new virtual network or using I(purge_address_prefixes).
- aliases:
- - address_prefixes
+ elements: str
+ type: list
dns_servers:
description:
- Custom list of DNS servers.
- The first server in the list will be treated as the Primary server. This is an explicit list.
- Existing DNS servers will be replaced with the specified list.
- Use the I(purge_dns_servers) option to remove all custom DNS servers and revert to default Azure servers.
+ elements: str
+ type: list
location:
description:
- Valid Azure location. Defaults to location of the resource group.
+ type: str
name:
description:
- Name of the virtual network.
required: true
+ type: str
purge_address_prefixes:
description:
- Use with I(state=present) to remove any existing I(address_prefixes).
type: bool
- default: 'no'
+ default: false
aliases:
- purge
purge_dns_servers:
description:
- Use with I(state=present) to remove existing DNS servers, reverting to default Azure servers. Mutually exclusive with DNS servers.
type: bool
- default: 'no'
+ default: false
flow_timeout_in_minutes:
description:
- The FlowTimeout value (in minutes) for the Virtual Network.
@@ -61,6 +68,7 @@ options:
description:
- State of the virtual network. Use C(present) to create or update and C(absent) to delete.
default: present
+ type: str
choices:
- absent
- present
@@ -76,25 +84,25 @@ author:
'''
EXAMPLES = '''
- - name: Create a virtual network
- azure_rm_virtualnetwork:
- resource_group: myResourceGroup
- name: myVirtualNetwork
- address_prefixes_cidr:
- - "10.1.0.0/16"
- - "172.100.0.0/16"
- dns_servers:
- - "127.0.0.1"
- - "127.0.0.2"
- tags:
- testing: testing
- delete: on-exit
-
- - name: Delete a virtual network
- azure_rm_virtualnetwork:
- resource_group: myResourceGroup
- name: myVirtualNetwork
- state: absent
+- name: Create a virtual network
+ azure_rm_virtualnetwork:
+ resource_group: myResourceGroup
+ name: myVirtualNetwork
+ address_prefixes_cidr:
+ - 10.1.0.0/16
+ - 172.100.0.0/16
+ dns_servers:
+ - 127.0.0.1
+ - 127.0.0.2
+ tags:
+ testing: testing
+ delete: on-exit
+
+- name: Delete a virtual network
+ azure_rm_virtualnetwork:
+ resource_group: myResourceGroup
+ name: myVirtualNetwork
+ state: absent
'''
RETURN = '''
state:
@@ -217,8 +225,8 @@ class AzureRMVirtualNetwork(AzureRMModuleBase):
name=dict(type='str', required=True),
state=dict(type='str', default='present', choices=['present', 'absent']),
location=dict(type='str'),
- address_prefixes_cidr=dict(type='list', aliases=['address_prefixes']),
- dns_servers=dict(type='list',),
+ address_prefixes_cidr=dict(type='list', elements='str', aliases=['address_prefixes']),
+ dns_servers=dict(type='list', elements='str'),
purge_address_prefixes=dict(type='bool', default=False, aliases=['purge']),
purge_dns_servers=dict(type='bool', default=False),
flow_timeout_in_minutes=dict(type='int'),
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork_info.py
index 43bfb5314..072f8db7b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetwork_info.py
@@ -24,9 +24,11 @@ options:
name:
description:
- Only show results for a specific virtual network.
+ type: str
resource_group:
description:
- Limit results by resource group. Required when filtering by name.
+ type: str
tags:
description:
- Limit results by providing a list of tags. Format tags as 'key' or 'key:value'.
@@ -43,19 +45,19 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for one virtual network
- azure_rm_virtualnetwork_info:
- resource_group: myResourceGroup
- name: secgroup001
-
- - name: Get facts for all virtual networks
- azure_rm_virtualnetwork_info:
- resource_group: myResourceGroup
-
- - name: Get facts by tags
- azure_rm_virtualnetwork_info:
- tags:
- - testing
+- name: Get facts for one virtual network
+ azure_rm_virtualnetwork_info:
+ resource_group: myResourceGroup
+ name: secgroup001
+
+- name: Get facts for all virtual networks
+ azure_rm_virtualnetwork_info:
+ resource_group: myResourceGroup
+
+- name: Get facts by tags
+ azure_rm_virtualnetwork_info:
+ tags:
+ - testing
'''
RETURN = '''
azure_virtualnetworks:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkgateway.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkgateway.py
index 4371fb162..c5f8271cd 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkgateway.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkgateway.py
@@ -22,14 +22,17 @@ options:
description:
- Name of a resource group where VPN Gateway exists or will be created.
required: true
+ type: str
name:
description:
- Name of VPN Gateway.
required: true
+ type: str
state:
description:
- State of the VPN Gateway. Use C(present) to create or update VPN gateway and C(absent) to delete VPN gateway.
default: present
+ type: str
choices:
- absent
- present
@@ -37,7 +40,7 @@ options:
location:
description:
- Valid Azure location. Defaults to location of the resource group.
- required: false
+ type: str
virtual_network:
description:
- An existing virtual network with which the VPN Gateway will be associated.
@@ -46,35 +49,42 @@ options:
- Must be in the same resource group as VPN gateway when specified by name.
- Can be the resource ID of the virtual network.
- Can be a dict which contains I(name) and I(resource_group) of the virtual network.
+ - Required when creating.
+ type: raw
aliases:
- virtual_network_name
- required: true
ip_configurations:
description:
- List of IP configurations.
+ type: list
+ elements: dict
suboptions:
name:
description:
- Name of the IP configuration.
+ type: str
required: true
private_ip_allocation_method:
description:
- Private IP allocation method.
+ type: str
choices:
- - dynamic
- - static
- default: dynamic
+ - Dynamic
+ - Static
+ default: Dynamic
public_ip_address_name:
description:
- Name of the public IP address. Use 'None' to disable the public IP address.
+ type: str
subnet:
description:
- ID of the gateway subnet for VPN.
- default: GatewaySubnet
+ type: str
gateway_type:
description:
- The type of this virtual network gateway.
default: vpn
+ type: str
choices:
- vpn
- express_route
@@ -82,6 +92,7 @@ options:
description:
- The type of this virtual private network.
default: route_based
+ type: str
choices:
- route_based
- policy_based
@@ -89,10 +100,12 @@ options:
description:
- Whether BGP is enabled for this virtual network gateway or not.
default: false
+ type: bool
sku:
description:
- The reference of the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway.
default: VpnGw1
+ type: str
choices:
- VpnGw1
- VpnGw2
@@ -104,6 +117,7 @@ options:
description:
- The generation for this VirtualNetworkGateway. Must be C(None) if C(gateway_type) is not VPN.
default: Generation1
+ type: str
choices:
- None
- Generation1
@@ -111,10 +125,12 @@ options:
bgp_settings:
description:
- Virtual network gateway's BGP speaker settings.
+ type: dict
suboptions:
asn:
description:
- The BGP speaker's ASN.
+ type: int
required: True
extends_documentation_fragment:
@@ -126,54 +142,54 @@ author:
'''
EXAMPLES = '''
- - name: Create virtual network gateway without bgp settings
- azure_rm_virtualnetworkgateway:
- resource_group: myResourceGroup
- name: myVirtualNetworkGateway
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: testipaddr
- virtual_network: myVirtualNetwork
- tags:
- common: "xyz"
-
- - name: Create virtual network gateway Generation2
- azure_rm_virtualnetworkgateway:
- resource_group: myResourceGroup
- name: myVirtualNetworkGateway
- sku: vpn_gw2
- vpn_gateway_generation: Generation2
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: testipaddr
- virtual_network: myVirtualNetwork
- tags:
- common: "xyz"
-
- - name: Create virtual network gateway with bgp
- azure_rm_virtualnetworkgateway:
- resource_group: myResourceGroup
- name: myVirtualNetworkGateway
- sku: vpn_gw1
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: testipaddr
- enable_bgp: yes
- virtual_network: myVirtualNetwork
- bgp_settings:
- asn: 65515
- bgp_peering_address: "169.254.54.209"
- tags:
- common: "xyz"
-
- - name: Delete instance of virtual network gateway
- azure_rm_virtualnetworkgateway:
- resource_group: myResourceGroup
- name: myVirtualNetworkGateway
- state: absent
+- name: Create virtual network gateway without bgp settings
+ azure_rm_virtualnetworkgateway:
+ resource_group: myResourceGroup
+ name: myVirtualNetworkGateway
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: testipaddr
+ virtual_network: myVirtualNetwork
+ tags:
+ common: "xyz"
+
+- name: Create virtual network gateway Generation2
+ azure_rm_virtualnetworkgateway:
+ resource_group: myResourceGroup
+ name: myVirtualNetworkGateway
+ sku: vpn_gw2
+ vpn_gateway_generation: Generation2
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: testipaddr
+ virtual_network: myVirtualNetwork
+ tags:
+ common: "xyz"
+
+- name: Create virtual network gateway with bgp
+ azure_rm_virtualnetworkgateway:
+ resource_group: myResourceGroup
+ name: myVirtualNetworkGateway
+ sku: vpn_gw1
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: testipaddr
+ enable_bgp: true
+ virtual_network: myVirtualNetwork
+ bgp_settings:
+ asn: 65515
+ bgp_peering_address: "169.254.54.209"
+ tags:
+ common: "xyz"
+
+- name: Delete instance of virtual network gateway
+ azure_rm_virtualnetworkgateway:
+ resource_group: myResourceGroup
+ name: myVirtualNetworkGateway
+ state: absent
'''
RETURN = '''
@@ -192,7 +208,7 @@ except ImportError:
# This is handled in azure_rm_common
pass
-from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase, CIDR_PATTERN
+from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.common.dict_transformations import _snake_to_camel
@@ -257,7 +273,7 @@ class AzureRMVirtualNetworkGateway(AzureRMModuleBase):
vpn_type=dict(type='str', default='route_based', choices=['route_based', 'policy_based']),
vpn_gateway_generation=dict(type='str', default='Generation1', choices=['None', 'Generation1', 'Generation2']),
enable_bgp=dict(type='bool', default=False),
- sku=dict(default='VpnGw1', choices=['VpnGw1', 'VpnGw2', 'VpnGw3', 'Standard', 'Basic', 'HighPerformance']),
+ sku=dict(type='str', default='VpnGw1', choices=['VpnGw1', 'VpnGw2', 'VpnGw3', 'Standard', 'Basic', 'HighPerformance']),
bgp_settings=dict(type='dict', options=bgp_spec),
virtual_network=dict(type='raw', aliases=['virtual_network_name'])
)
@@ -274,12 +290,14 @@ class AzureRMVirtualNetworkGateway(AzureRMModuleBase):
self.vpn_gateway_generation = None
self.bgp_settings = None
+ required_if = [('state', 'present', ['virtual_network'])]
self.results = dict(
changed=False,
state=dict()
)
super(AzureRMVirtualNetworkGateway, self).__init__(derived_arg_spec=self.module_arg_spec,
+ required_if=required_if,
supports_check_mode=True)
def exec_module(self, **kwargs):
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering.py
index 5bdc35f45..71025e25e 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering.py
@@ -20,13 +20,16 @@ options:
description:
- Name of a resource group where the vnet exists.
required: true
+ type: str
name:
description:
- Name of the virtual network peering.
required: true
+ type: str
virtual_network:
description:
- Name or resource ID of the virtual network to be peered.
+ type: raw
required: true
remote_virtual_network:
description:
@@ -35,6 +38,7 @@ options:
- It can be remote virtual network resource ID.
- It can be a dict which contains I(name) and I(resource_group) of remote virtual network.
- Required when creating.
+ type: raw
allow_virtual_network_access:
description:
- Allows VMs in the remote VNet to access all VMs in the local VNet.
@@ -60,6 +64,7 @@ options:
description:
- State of the virtual network peering. Use C(present) to create or update a peering and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -72,23 +77,23 @@ author:
'''
EXAMPLES = '''
- - name: Create virtual network peering
- azure_rm_virtualnetworkpeering:
- resource_group: myResourceGroup
- virtual_network: myVirtualNetwork
- name: myPeering
- remote_virtual_network:
- resource_group: mySecondResourceGroup
- name: myRemoteVirtualNetwork
- allow_virtual_network_access: false
- allow_forwarded_traffic: true
-
- - name: Delete the virtual network peering
- azure_rm_virtualnetworkpeering:
- resource_group: myResourceGroup
- virtual_network: myVirtualNetwork
- name: myPeering
- state: absent
+- name: Create virtual network peering
+ azure_rm_virtualnetworkpeering:
+ resource_group: myResourceGroup
+ virtual_network: myVirtualNetwork
+ name: myPeering
+ remote_virtual_network:
+ resource_group: mySecondResourceGroup
+ name: myRemoteVirtualNetwork
+ allow_virtual_network_access: false
+ allow_forwarded_traffic: true
+
+- name: Delete the virtual network peering
+ azure_rm_virtualnetworkpeering:
+ resource_group: myResourceGroup
+ virtual_network: myVirtualNetwork
+ name: myPeering
+ state: absent
'''
RETURN = '''
id:
@@ -107,7 +112,7 @@ peering_sync_level:
'''
try:
- from msrestazure.tools import is_valid_resource_id
+ from azure.mgmt.core.tools import is_valid_resource_id
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
@@ -177,7 +182,8 @@ class AzureRMVirtualNetworkPeering(AzureRMModuleBase):
required=True
),
virtual_network=dict(
- type='raw'
+ type='raw',
+ required=True
),
remote_virtual_network=dict(
type='raw'
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering_info.py
index 87563f01a..e48f4e49f 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualnetworkpeering_info.py
@@ -20,13 +20,16 @@ options:
description:
- Name of a resource group where the vnet exists.
required: True
+ type: str
virtual_network:
description:
- Name or resource ID of a virtual network.
required: True
+ type: raw
name:
description:
- Name of the virtual network peering.
+ type: str
extends_documentation_fragment:
- azure.azcollection.azure
@@ -36,16 +39,16 @@ author:
'''
EXAMPLES = '''
- - name: Get virtual network peering by name
- azure_rm_virtualnetworkpeering_info:
- resource_group: myResourceGroup
- virtual_network: myVnet1
- name: myVnetPeer
+- name: Get virtual network peering by name
+ azure_rm_virtualnetworkpeering_info:
+ resource_group: myResourceGroup
+ virtual_network: myVnet1
+ name: myVnetPeer
- - name: List virtual network peering of virtual network
- azure_rm_virtualnetworkpeering:
- resource_group: myResourceGroup
- virtual_network: myVnet1
+- name: List virtual network peering of virtual network
+ azure_rm_virtualnetworkpeering:
+ resource_group: myResourceGroup
+ virtual_network: myVnet1
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan.py
index 10869012d..38c542695 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan.py
@@ -48,6 +48,7 @@ options:
description:
- List of VirtualHubs in the VirtualWAN.
type: list
+ elements: dict
suboptions:
id:
description:
@@ -57,11 +58,12 @@ options:
description:
- List of VpnSites in the VirtualWAN.
type: list
+ elements: dict
suboptions:
id:
- description:
- - The vpn site resource ID.
- type: str
+ description:
+ - The vpn site resource ID.
+ type: str
allow_branch_to_branch_traffic:
description:
- True if branch to branch traffic is allowed.
@@ -82,6 +84,7 @@ options:
- Assert the state of the VirtualWan.
- Use C(present) to create or update an VirtualWan and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -94,21 +97,20 @@ author:
'''
EXAMPLES = '''
- - name: Create a VirtualWan
- azure_rm_virtualwan:
- resource_group: myResouceGroup
- name: testwan
- disable_vpn_encryption: true
- allow_branch_to_branch_traffic: true
- allow_vnet_to_vnet_traffic: true
- virtual_wan_type: Standard
-
- - name: Delete the VirtualWan
- azure_rm_virtualwan:
- resource_group: myResouceGroup
- name: testwan
- state: absent
-
+- name: Create a VirtualWan
+ azure_rm_virtualwan:
+ resource_group: myResouceGroup
+ name: testwan
+ disable_vpn_encryption: true
+ allow_branch_to_branch_traffic: true
+ allow_vnet_to_vnet_traffic: true
+ virtual_wan_type: Standard
+
+- name: Delete the VirtualWan
+ azure_rm_virtualwan:
+ resource_group: myResouceGroup
+ name: testwan
+ state: absent
'''
RETURN = '''
@@ -221,7 +223,6 @@ from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common
try:
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
- from msrestazure.azure_operation import AzureOperationPoller
except ImportError:
# This is handled in azure_rm_common
pass
@@ -255,6 +256,7 @@ class AzureRMVirtualWan(AzureRMModuleBaseExt):
),
virtual_hubs=dict(
type='list',
+ elements='dict',
updatable=False,
disposition='/virtual_hubs',
options=dict(
@@ -266,6 +268,7 @@ class AzureRMVirtualWan(AzureRMModuleBaseExt):
),
vpn_sites=dict(
type='list',
+ elements='dict',
updatable=False,
disposition='/vpn_sites',
options=dict(
@@ -365,7 +368,7 @@ class AzureRMVirtualWan(AzureRMModuleBaseExt):
response = self.network_client.virtual_wans.begin_create_or_update(resource_group_name=self.resource_group,
virtual_wan_name=self.name,
wan_parameters=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the VirtualWan instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan_info.py
index 562422129..4c395a415 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_virtualwan_info.py
@@ -32,18 +32,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Virtual WAN by name
- azure_rm_virtualwan_info:
- resource_group: myResouceGroup
- name: testwan
+- name: Get Virtual WAN by name
+ azure_rm_virtualwan_info:
+ resource_group: myResouceGroup
+ name: testwan
- - name: List all Virtual WANLs by resource group
- azure_rm_virtualwan_info:
- resource_group: myResourceGroup
-
- - name: List all Virtual WANs by subscription_id
- azure_rm_virtualwan_info:
+- name: List all Virtual WANLs by resource group
+ azure_rm_virtualwan_info:
+ resource_group: myResourceGroup
+- name: List all Virtual WANs by subscription_id
+ azure_rm_virtualwan_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy.py
index 3f6a6e862..5cd10c978 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy.py
@@ -42,18 +42,21 @@ options:
required: false
default: ['Monday']
type: list
+ elements: str
weeks:
description:
- List of weeks of month.
required: false
default: ['First']
type: list
+ elements: str
months:
description:
- List of months of year of yearly retention policy.
required: false
default: ['January']
type: list
+ elements: str
count:
description:
- Count of duration types. Retention duration is obtained by the counting the duration type Count times.
@@ -235,14 +238,17 @@ class VMBackupPolicy(AzureRMModuleBaseExt):
),
weekdays=dict(
type='list',
+ elements='str',
default=['Monday']
),
weeks=dict(
type='list',
+ elements='str',
default=['First']
),
months=dict(
type='list',
+ elements='str',
default=['January']
),
count=dict(
@@ -360,6 +366,7 @@ class VMBackupPolicy(AzureRMModuleBaseExt):
response = None
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
old_response = self.get_resource()
@@ -397,9 +404,9 @@ class VMBackupPolicy(AzureRMModuleBaseExt):
self.fail('Error in creating Backup Policy {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
@@ -420,12 +427,6 @@ class VMBackupPolicy(AzureRMModuleBaseExt):
self.log('Error attempting to delete Azure Backup policy.')
self.fail('Error attempting to delete Azure Backup policy: {0}'.format(str(e)))
- try:
- response = json.loads(response.text)
- except Exception:
- response = {'text': response.text}
- return response
-
def get_resource(self):
# self.log('Fetch Backup Policy Details {0}'.format(self.))
found = False
@@ -444,7 +445,7 @@ class VMBackupPolicy(AzureRMModuleBaseExt):
except Exception as e:
self.log('Backup policy does not exist.')
if found is True:
- response = json.loads(response.text)
+ response = json.loads(response.body())
return response
else:
return False
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy_info.py
index 18aaf718c..0aa7b5918 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmbackuppolicy_info.py
@@ -38,10 +38,11 @@ author:
'''
EXAMPLES = '''
- azure_rm_backvmuppolicy_info:
- name: 'myBackupPolicy'
- vault_name: 'myVault'
- resource_group: 'myResourceGroup'
+- name: Get backvm policy facts
+ azure_rm_backvmuppolicy_info:
+ name: 'myBackupPolicy'
+ vault_name: 'myVault'
+ resource_group: 'myResourceGroup'
'''
RETURN = '''
@@ -215,6 +216,7 @@ class BackupPolicyVMInfo(AzureRMModuleBaseExt):
self.url = self.get_url()
self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient,
+ is_track2=True,
base_url=self._cloud_environment.endpoints.resource_manager)
response = self.get_resource()
@@ -242,9 +244,9 @@ class BackupPolicyVMInfo(AzureRMModuleBaseExt):
self.log('Backup policy does not exist.')
self.fail('Error in fetching VM Backup Policy {0}'.format(str(e)))
try:
- response = json.loads(response.text)
+ response = json.loads(response.body())
except Exception:
- response = {'text': response.text}
+ response = {'text': response.context['deserialized_data']}
return response
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmssnetworkinterface_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmssnetworkinterface_info.py
index e7f2b8474..ac7c5be10 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmssnetworkinterface_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vmssnetworkinterface_info.py
@@ -49,23 +49,23 @@ author:
'''
EXAMPLES = '''
- - name: Get information by the network name
- azure_rm_vmssnetworkinterface_info:
- resource_group: myResourceGroup
- name: nic001
- vmss_name: testVMSS
- vm_index: 0
-
- - name: Get all network interface information in virtual machine scale set
- azure_rm_vmssnetworkinterface_info:
- resource_group: myResourceGroup
- vmss_name: testVMSS
-
- - name: Get all network interface information in the same virtual machine index.
- azure_rm_vmssnetworkinterface_info:
- resource_group: myResourceGroup
- vmss_name: testVMSS
- vm_index: 1
+- name: Get information by the network name
+ azure_rm_vmssnetworkinterface_info:
+ resource_group: myResourceGroup
+ name: nic001
+ vmss_name: testVMSS
+ vm_index: 0
+
+- name: Get all network interface information in virtual machine scale set
+ azure_rm_vmssnetworkinterface_info:
+ resource_group: myResourceGroup
+ vmss_name: testVMSS
+
+- name: Get all network interface information in the same virtual machine index.
+ azure_rm_vmssnetworkinterface_info:
+ resource_group: myResourceGroup
+ vmss_name: testVMSS
+ vm_index: 1
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite.py
index e72c5474e..32d4fafee 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite.py
@@ -205,16 +205,15 @@ author:
'''
EXAMPLES = '''
- - name: Create VpnSite
- azure_rm_vpnsite:
- resource_group: myResourceGroup
- name: vpnSite_name
-
- - name: Delete Vpn Site
- azure_rm_vpnsite:
- resource_group: myResourceGroup
- name: vpnSite_name
-
+- name: Create VpnSite
+ azure_rm_vpnsite:
+ resource_group: myResourceGroup
+ name: vpnSite_name
+
+- name: Delete Vpn Site
+ azure_rm_vpnsite:
+ resource_group: myResourceGroup
+ name: vpnSite_name
'''
RETURN = '''
@@ -300,7 +299,6 @@ state:
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt
try:
- from msrestazure.azure_operation import AzureOperationPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
except ImportError:
@@ -572,7 +570,7 @@ class AzureRMVpnSite(AzureRMModuleBaseExt):
response = self.network_client.vpn_sites.begin_create_or_update(resource_group_name=self.resource_group,
vpn_site_name=self.name,
vpn_site_parameters=self.body)
- if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller):
+ if isinstance(response, LROPoller):
response = self.get_poller_result(response)
except Exception as exc:
self.log('Error attempting to create the VpnSite instance.')
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite_info.py
index 0799959ab..36fb4b268 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsite_info.py
@@ -33,18 +33,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Vpn Site Info by name
- azure_rm_vpnsite_info:
- resource_group: myResourceGroup
- name: vwan_site_name
+- name: Get Vpn Site Info by name
+ azure_rm_vpnsite_info:
+ resource_group: myResourceGroup
+ name: vwan_site_name
- - name: Get Vpn Site List By ResourceGroup
- azure_rm_vpnsite_info:
- resource_group: myResourceGroup
-
- - name: Get Vpn Site List By Subscription
- azure_rm_vpnsite_info:
+- name: Get Vpn Site List By ResourceGroup
+ azure_rm_vpnsite_info:
+ resource_group: myResourceGroup
+- name: Get Vpn Site List By Subscription
+ azure_rm_vpnsite_info:
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsitelink_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsitelink_info.py
index 5643d785f..2759b0fec 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsitelink_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_vpnsitelink_info.py
@@ -40,17 +40,17 @@ author:
'''
EXAMPLES = '''
- - name: Get Vpn Site Link info by the name
- azure_rm_vpnsitelink_info:
- resource_group: myResourceGroup
- name: vpnSiteLink1
- vpn_site_name: vpnSite1
+- name: Get Vpn Site Link info by the name
+ azure_rm_vpnsitelink_info:
+ resource_group: myResourceGroup
+ name: vpnSiteLink1
+ vpn_site_name: vpnSite1
- - name: Get Vpn Site Links by the Vpn Site
- azure_rm_vpnsitelink_info:
- resource_group: myResourceGroup
- vpn_site_name: vpnSite1
+- name: Get Vpn Site Links by the Vpn Site
+ azure_rm_vpnsitelink_info:
+ resource_group: myResourceGroup
+ vpn_site_name: vpnSite1
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp.py
index 50256ea0c..05697176b 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp.py
@@ -21,14 +21,17 @@ options:
description:
- Name of the resource group to which the resource belongs.
required: True
+ type: str
name:
description:
- Unique name of the app to create or update. To create or update a deployment slot, use the {slot} parameter.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
plan:
description:
@@ -42,11 +45,14 @@ options:
- C(sku), SKU of app service plan, allowed values listed on U(https://azure.microsoft.com/en-us/pricing/details/app-service/linux/).
- C(is_linux), whether or not the app service plan is Linux. defaults to C(False).
- C(number_of_workers), number of workers for app service plan.
+ type: raw
frameworks:
description:
- Set of run time framework settings. Each setting is a dictionary.
- See U(https://docs.microsoft.com/en-us/azure/app-service/app-service-web-overview) for more info.
+ type: list
+ elements: dict
suboptions:
name:
description:
@@ -57,6 +63,8 @@ options:
- Linux web apps support C(java), C(ruby), C(php), C(python), C(dotnetcore), and C(node) from June 2018.
- Linux web apps support only one framework.
- Java framework is mutually exclusive with others.
+ type: str
+ required: true
choices:
- java
- net_framework
@@ -75,42 +83,56 @@ options:
- C(dotnetcore) supported value sample, C(1.0), C(1.1), C(1.2).
- C(ruby) supported value sample, C(2.3).
- C(java) supported value sample, C(1.9) for Windows web app. C(1.8) for Linux web app.
+ type: str
+ required: true
settings:
description:
- List of settings of the framework.
+ type: dict
suboptions:
java_container:
description:
- Name of Java container.
- Supported only when I(frameworks=java). Sample values C(Tomcat), C(Jetty).
+ type: str
+ required: True
java_container_version:
description:
- Version of Java container.
- Supported only when I(frameworks=java).
- Sample values for C(Tomcat), C(8.0), C(8.5), C(9.0). For C(Jetty,), C(9.1), C(9.3).
+ type: str
+ required: True
container_settings:
description:
- Web app container settings.
+ type: dict
suboptions:
name:
description:
- Name of the container, for example C(imagename:tag).
- To create a multi-container app, the name should be 'COMPOSE|' or 'KUBE|' followed by base64 encoded configuration.
+ type: str
+ required: True
registry_server_url:
description:
- Container registry server URL, for example C(mydockerregistry.io).
+ type: str
registry_server_user:
description:
- The container registry server user name.
+ type: str
registry_server_password:
description:
- The container registry server password.
+ type: str
scm_type:
description:
- Repository type of deployment source, for example C(LocalGit), C(GitHub).
- List of supported values maintained at U(https://docs.microsoft.com/en-us/rest/api/appservice/webapps/createorupdate#scmtype).
+ type: str
always_on:
description:
@@ -138,18 +160,22 @@ options:
deployment_source:
description:
- Deployment source for git.
+ type: dict
suboptions:
url:
description:
- Repository url of deployment source.
+ type: str
branch:
description:
- The branch name of the repository.
+ type: str
startup_file:
description:
- The web's startup file.
- Used only for Linux web apps.
+ type: str
client_affinity_enabled:
description:
@@ -165,6 +191,7 @@ options:
app_settings:
description:
- Configure web app application settings. Suboptions are in key value pair format.
+ type: dict
purge_app_settings:
description:
@@ -187,6 +214,7 @@ options:
- State of the Web App.
- Use C(present) to create or update a Web App and C(absent) to delete it.
default: present
+ type: str
choices:
- absent
- present
@@ -201,121 +229,121 @@ author:
'''
EXAMPLES = '''
- - name: Create a windows web app with non-exist app service plan
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myWinWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- is_linux: false
- sku: S1
-
- - name: Create a docker web app with some app settings, with docker image
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myDockerWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- is_linux: true
- sku: S1
- number_of_workers: 2
- app_settings:
- testkey: testvalue
- testkey2: testvalue2
- container_settings:
- name: ansible/ansible:ubuntu1404
-
- - name: Create a docker web app with private acr registry
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myDockerWebapp
- plan: myAppServicePlan
- app_settings:
- testkey: testvalue
- container_settings:
- name: ansible/ubuntu1404
- registry_server_url: myregistry.io
- registry_server_user: user
- registry_server_password: pass
-
- - name: Create a multi-container web app
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myMultiContainerWebapp
- plan: myAppServicePlan
- app_settings:
- testkey: testvalue
- container_settings:
- name: "COMPOSE|{{ lookup('file', 'docker-compose.yml') | b64encode }}"
-
- - name: Create a linux web app with Node 6.6 framework
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myLinuxWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- app_settings:
- testkey: testvalue
- frameworks:
- - name: "node"
- version: "6.6"
-
- - name: Create a windows web app with node, php
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myWinWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- app_settings:
- testkey: testvalue
- frameworks:
- - name: "node"
- version: 6.6
- - name: "php"
- version: "7.0"
-
- - name: Create a stage deployment slot for an existing web app
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myWebapp/slots/stage
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- app_settings:
- testkey:testvalue
-
- - name: Create a linux web app with java framework
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myLinuxWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- app_settings:
- testkey: testvalue
- frameworks:
- - name: "java"
- version: "8"
- settings:
- java_container: "Tomcat"
- java_container_version: "8.5"
-
- - name: Create a linux web app with python framework
- azure_rm_webapp:
- resource_group: myResourceGroup
- name: myLinuxWebapp
- plan:
- resource_group: myAppServicePlan_rg
- name: myAppServicePlan
- app_settings:
- testkey: testvalue
- frameworks:
- - name: "python"
- version: "3.10"
+- name: Create a windows web app with non-exist app service plan
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myWinWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ is_linux: false
+ sku: S1
+
+- name: Create a docker web app with some app settings, with docker image
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myDockerWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ is_linux: true
+ sku: S1
+ number_of_workers: 2
+ app_settings:
+ testkey: testvalue
+ testkey2: testvalue2
+ container_settings:
+ name: ansible/ansible:ubuntu1404
+
+- name: Create a docker web app with private acr registry
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myDockerWebapp
+ plan: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ container_settings:
+ name: ansible/ubuntu1404
+ registry_server_url: myregistry.io
+ registry_server_user: user
+ registry_server_password: pass
+
+- name: Create a multi-container web app
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myMultiContainerWebapp
+ plan: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ container_settings:
+ name: "COMPOSE|{{ lookup('file', 'docker-compose.yml') | b64encode }}"
+
+- name: Create a linux web app with Node 6.6 framework
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myLinuxWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ frameworks:
+ - name: "node"
+ version: "6.6"
+
+- name: Create a windows web app with node, php
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myWinWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ frameworks:
+ - name: "node"
+ version: 6.6
+ - name: "php"
+ version: "7.0"
+
+- name: Create a stage deployment slot for an existing web app
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myWebapp/slots/stage
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ app_settings:
+ testkey:testvalue
+
+- name: Create a linux web app with java framework
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myLinuxWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ frameworks:
+ - name: "java"
+ version: "8"
+ settings:
+ java_container: "Tomcat"
+ java_container_version: "8.5"
+
+- name: Create a linux web app with python framework
+ azure_rm_webapp:
+ resource_group: myResourceGroup
+ name: myLinuxWebapp
+ plan:
+ resource_group: myAppServicePlan_rg
+ name: myAppServicePlan
+ app_settings:
+ testkey: testvalue
+ frameworks:
+ - name: "python"
+ version: "3.10"
'''
RETURN = '''
@@ -327,7 +355,6 @@ id:
sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Web/sites/myWebApp"
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp_info.py
index 36b3eb3d3..af035b152 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webapp_info.py
@@ -23,9 +23,11 @@ options:
name:
description:
- Only show results for a specific web app.
+ type: str
resource_group:
description:
- Limit results by resource group.
+ type: str
return_publish_profile:
description:
- Indicate whether to return publishing profile of the web app.
@@ -45,20 +47,20 @@ author:
'''
EXAMPLES = '''
- - name: Get facts for web app by name
- azure_rm_webapp_info:
- resource_group: myResourceGroup
- name: winwebapp1
+- name: Get facts for web app by name
+ azure_rm_webapp_info:
+ resource_group: myResourceGroup
+ name: winwebapp1
- - name: Get facts for web apps in resource group
- azure_rm_webapp_info:
- resource_group: myResourceGroup
+- name: Get facts for web apps in resource group
+ azure_rm_webapp_info:
+ resource_group: myResourceGroup
- - name: Get facts for web apps with tags
- azure_rm_webapp_info:
- tags:
- - testtag
- - foo:bar
+- name: Get facts for web apps with tags
+ azure_rm_webapp_info:
+ tags:
+ - testtag
+ - foo:bar
'''
RETURN = '''
@@ -441,20 +443,20 @@ class AzureRMWebAppInfo(AzureRMModuleBase):
curated_output = dict()
curated_output['id'] = webapp['id']
curated_output['name'] = webapp['name']
- curated_output['resource_group'] = webapp['properties']['resourceGroup']
+ curated_output['resource_group'] = webapp['resource_group']
curated_output['location'] = webapp['location']
- curated_output['plan'] = webapp['properties']['serverFarmId']
+ curated_output['plan'] = webapp['server_farm_id']
curated_output['tags'] = webapp.get('tags', None)
# important properties from output. not match input arguments.
- curated_output['app_state'] = webapp['properties']['state']
- curated_output['availability_state'] = webapp['properties']['availabilityState']
- curated_output['default_host_name'] = webapp['properties']['defaultHostName']
- curated_output['host_names'] = webapp['properties']['hostNames']
- curated_output['enabled'] = webapp['properties']['enabled']
- curated_output['enabled_host_names'] = webapp['properties']['enabledHostNames']
- curated_output['host_name_ssl_states'] = webapp['properties']['hostNameSslStates']
- curated_output['outbound_ip_addresses'] = webapp['properties']['outboundIpAddresses']
+ curated_output['app_state'] = webapp['state']
+ curated_output['availability_state'] = webapp['availability_state']
+ curated_output['default_host_name'] = webapp['default_host_name']
+ curated_output['host_names'] = webapp['host_names']
+ curated_output['enabled'] = webapp['enabled']
+ curated_output['enabled_host_names'] = webapp['enabled_host_names']
+ curated_output['host_name_ssl_states'] = webapp['host_name_ssl_states']
+ curated_output['outbound_ip_addresses'] = webapp['outbound_ip_addresses']
# curated site_config
if configuration:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction.py
index d8b49a335..bfe2b7591 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction.py
@@ -39,6 +39,7 @@ options:
- The web app's HTTP access restrictions.
type: list
elements: dict
+ default: []
suboptions:
name:
description:
@@ -73,6 +74,7 @@ options:
the SCM restrictions will be configured but not used.
type: list
elements: dict
+ default: []
suboptions:
name:
description:
@@ -116,26 +118,26 @@ author:
'''
EXAMPLES = '''
- - name: Configure web app access restrictions.
- azure.azcollection.azure_rm_webappaccessrestriction:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
- ip_security_restrictions:
- - name: "Datacenter 1"
- action: "Allow"
- ip_address: "1.1.1.1/24"
- priority: 1
- - name: "Datacenter 2"
- action: "Allow"
- ip_address: "2.2.2.2/24"
- priority: 2
- scm_ip_security_restrictions_use_main: true
-
- - name: Delete web app network access restrictions.
- azure.azcollection.azure_rm_webappaccessrestriction:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
- state: "absent"
+- name: Configure web app access restrictions.
+ azure.azcollection.azure_rm_webappaccessrestriction:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
+ ip_security_restrictions:
+ - name: "Datacenter 1"
+ action: "Allow"
+ ip_address: "1.1.1.1/24"
+ priority: 1
+ - name: "Datacenter 2"
+ action: "Allow"
+ ip_address: "2.2.2.2/24"
+ priority: 2
+ scm_ip_security_restrictions_use_main: true
+
+- name: Delete web app network access restrictions.
+ azure.azcollection.azure_rm_webappaccessrestriction:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
+ state: "absent"
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction_info.py
index 0c3eb3260..2d07bc2de 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappaccessrestriction_info.py
@@ -35,10 +35,10 @@ author:
'''
EXAMPLES = '''
- - name: View web app access restrictions.
- azure.azcollection.azure_rm_webappaccessrestriction_info:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
+- name: View web app access restrictions.
+ azure.azcollection.azure_rm_webappaccessrestriction_info:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappslot.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappslot.py
index 08ca490b0..85b7e96c8 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappslot.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappslot.py
@@ -21,28 +21,35 @@ options:
description:
- Name of the resource group to which the resource belongs.
required: True
+ type: str
name:
description:
- Unique name of the deployment slot to create or update.
required: True
+ type: str
webapp_name:
description:
- Web app name which this deployment slot belongs to.
required: True
+ type: str
location:
description:
- Resource location. If not set, location from the resource group will be used as default.
+ type: str
configuration_source:
description:
- Source slot to clone configurations from when creating slot. Use webapp's name to refer to the production slot.
+ type: str
auto_swap_slot_name:
description:
- Used to configure target slot name to auto swap, or disable auto swap.
- Set it target slot name to auto swap.
- Set it to False to disable auto slot swap.
+ type: raw
swap:
description:
- Swap deployment slots of a web app.
+ type: dict
suboptions:
action:
description:
@@ -50,6 +57,7 @@ options:
- C(preview) is to apply target slot settings on source slot first.
- C(swap) is to complete swapping.
- C(reset) is to reset the swap.
+ type: str
choices:
- preview
- swap
@@ -58,6 +66,7 @@ options:
target_slot:
description:
- Name of target slot to swap. If set to None, then swap with production slot.
+ type: str
preserve_vnet:
description:
- C(True) to preserve virtual network to the slot during swap. Otherwise C(False).
@@ -67,6 +76,8 @@ options:
description:
- Set of run time framework settings. Each setting is a dictionary.
- See U(https://docs.microsoft.com/en-us/azure/app-service/app-service-web-overview) for more info.
+ type: list
+ elements: dict
suboptions:
name:
description:
@@ -77,6 +88,8 @@ options:
- Linux web apps support C(java), C(ruby), C(php), C(dotnetcore), and C(node) from June 2018.
- Linux web apps support only one framework.
- Java framework is mutually exclusive with others.
+ type: str
+ required: true
choices:
- java
- net_framework
@@ -95,40 +108,55 @@ options:
- C(dotnetcore) supported value sample, C(1.0), C(1.1), C(1.2).
- C(ruby) supported value sample, 2.3.
- C(java) supported value sample, C(1.9) for Windows web app. C(1.8) for Linux web app.
+ type: str
+ required: true
settings:
description:
- List of settings of the framework.
+ type: dict
suboptions:
java_container:
description:
- Name of Java container. This is supported by specific framework C(java) onlys, for example C(Tomcat), C(Jetty).
+ type: str
+ required: true
java_container_version:
description:
- Version of Java container. This is supported by specific framework C(java) only.
- For C(Tomcat), for example C(8.0), C(8.5), C(9.0). For C(Jetty), for example C(9.1), C(9.3).
+ type: str
+ required: true
container_settings:
description:
- Web app slot container settings.
+ type: dict
suboptions:
name:
description:
- Name of container, for example C(imagename:tag).
+ type: str
+ required: true
registry_server_url:
description:
- Container registry server URL, for example C(mydockerregistry.io).
+ type: str
registry_server_user:
description:
- The container registry server user name.
+ type: str
registry_server_password:
description:
- The container registry server password.
+ type: str
startup_file:
description:
- The slot startup file.
- This only applies for Linux web app slot.
+ type: str
app_settings:
description:
- Configure web app slot application settings. Suboptions are in key value pair format.
+ type: dict
purge_app_settings:
description:
- Purge any existing application settings. Replace slot application settings with app_settings.
@@ -137,13 +165,16 @@ options:
deployment_source:
description:
- Deployment source for git.
+ type: dict
suboptions:
url:
description:
- Repository URL of deployment source.
+ type: str
branch:
description:
- The branch name of the repository.
+ type: str
app_state:
description:
- Start/Stop/Restart the slot.
@@ -154,13 +185,14 @@ options:
- restarted
default: started
state:
- description:
- - State of the Web App deployment slot.
- - Use C(present) to create or update a slot and C(absent) to delete it.
- default: present
- choices:
- - absent
- - present
+ description:
+ - State of the Web App deployment slot.
+ - Use C(present) to create or update a slot and C(absent) to delete it.
+ default: present
+ type: str
+ choices:
+ - absent
+ - present
extends_documentation_fragment:
- azure.azcollection.azure
@@ -172,46 +204,46 @@ author:
'''
EXAMPLES = '''
- - name: Create a webapp slot
- azure_rm_webappslot:
- resource_group: myResourceGroup
- webapp_name: myJavaWebApp
- name: stage
- configuration_source: myJavaWebApp
- app_settings:
- testkey: testvalue
-
- - name: swap the slot with production slot
- azure_rm_webappslot:
- resource_group: myResourceGroup
- webapp_name: myJavaWebApp
- name: stage
- swap:
- action: swap
-
- - name: stop the slot
- azure_rm_webappslot:
- resource_group: myResourceGroup
- webapp_name: myJavaWebApp
- name: stage
- app_state: stopped
-
- - name: udpate a webapp slot app settings
- azure_rm_webappslot:
- resource_group: myResourceGroup
- webapp_name: myJavaWebApp
- name: stage
- app_settings:
- testkey: testvalue2
-
- - name: udpate a webapp slot frameworks
- azure_rm_webappslot:
- resource_group: myResourceGroup
- webapp_name: myJavaWebApp
- name: stage
- frameworks:
- - name: "node"
- version: "10.1"
+- name: Create a webapp slot
+ azure_rm_webappslot:
+ resource_group: myResourceGroup
+ webapp_name: myJavaWebApp
+ name: stage
+ configuration_source: myJavaWebApp
+ app_settings:
+ testkey: testvalue
+
+- name: swap the slot with production slot
+ azure_rm_webappslot:
+ resource_group: myResourceGroup
+ webapp_name: myJavaWebApp
+ name: stage
+ swap:
+ action: swap
+
+- name: stop the slot
+ azure_rm_webappslot:
+ resource_group: myResourceGroup
+ webapp_name: myJavaWebApp
+ name: stage
+ app_state: stopped
+
+- name: udpate a webapp slot app settings
+ azure_rm_webappslot:
+ resource_group: myResourceGroup
+ webapp_name: myJavaWebApp
+ name: stage
+ app_settings:
+ testkey: testvalue2
+
+- name: udpate a webapp slot frameworks
+ azure_rm_webappslot:
+ resource_group: myResourceGroup
+ webapp_name: myJavaWebApp
+ name: stage
+ frameworks:
+ - name: "node"
+ version: "10.1"
'''
RETURN = '''
@@ -223,7 +255,6 @@ id:
sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Web/sites/testapp/slots/stage1
'''
-import time
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase
try:
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection.py
index 4b55a93f4..198273351 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection.py
@@ -55,26 +55,26 @@ author:
'''
EXAMPLES = '''
- - name: Configure web app with virtual network
- azure.azcollection.azure_rm_webappvnetconnection:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
- vnet_name: "MyVnetName"
- subnet: "MySubnetName"
-
- - name: Configure web app with virtual network in different resource group
- azure.azcollection.azure_rm_webappvnetconnection:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
- vnet_name: "MyVnetName"
- subnet: "MySubnetName"
- vnet_resource_group: "MyOtherResourceGroup"
-
- - name: Delete web app virtual network
- azure.azcollection.azure_rm_webappvnetconnection:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
- state: "absent"
+- name: Configure web app with virtual network
+ azure.azcollection.azure_rm_webappvnetconnection:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
+ vnet_name: "MyVnetName"
+ subnet: "MySubnetName"
+
+- name: Configure web app with virtual network in different resource group
+ azure.azcollection.azure_rm_webappvnetconnection:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
+ vnet_name: "MyVnetName"
+ subnet: "MySubnetName"
+ vnet_resource_group: "MyOtherResourceGroup"
+
+- name: Delete web app virtual network
+ azure.azcollection.azure_rm_webappvnetconnection:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
+ state: "absent"
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection_info.py b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection_info.py
index 8ad772918..c114b63ff 100644
--- a/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection_info.py
+++ b/ansible_collections/azure/azcollection/plugins/modules/azure_rm_webappvnetconnection_info.py
@@ -39,10 +39,10 @@ author:
'''
EXAMPLES = '''
- - name: Get web app virtual network connection
- azure_rm_webappvnetconnection_info:
- name: "MyWebapp"
- resource_group: "MyResourceGroup"
+- name: Get web app virtual network connection
+ azure_rm_webappvnetconnection_info:
+ name: "MyWebapp"
+ resource_group: "MyResourceGroup"
'''
RETURN = '''
diff --git a/ansible_collections/azure/azcollection/pr-pipelines.yml b/ansible_collections/azure/azcollection/pr-pipelines.yml
index c8b943d62..6f40e066a 100644
--- a/ansible_collections/azure/azcollection/pr-pipelines.yml
+++ b/ansible_collections/azure/azcollection/pr-pipelines.yml
@@ -1,146 +1,147 @@
parameters:
-- name: PYTHON_VER
- displayName: 'Python Version'
- type: string
- default: "3.8"
- values:
- - "2.7"
- - "3.6"
- - "3.8"
- - "3.9"
- - "3.10"
- - "3.11"
-- name: ANSIBLE_VER
- displayName: 'Ansible Version'
- type: string
- default: "2.12"
- values:
- - "2.9"
- - "2.10"
- - "2.11"
- - "2.12"
- - "2.13"
- - "2.14"
- - "devel"
-- name: MODULE_NAME
- displayName: 'Test Module'
- type: string
- default: 'all'
- values:
- - 'all'
- - 'sanity'
- - 'azure_rm_adapplication'
- - "azure_rm_acs"
- - "azure_rm_adgroup"
- - "azure_rm_aduser"
- - "azure_rm_aks"
- - "azure_rm_aksagentpool"
- - "azure_rm_apimanagement"
- - "azure_rm_appgateway"
- - "azure_rm_appserviceplan"
- - "azure_rm_automationaccount"
- - "azure_rm_automationrunbook"
- - "azure_rm_autoscale"
- - "azure_rm_availabilityset"
- - "azure_rm_azurefirewall"
- - "azure_rm_apimanagementservice"
- - "azure_rm_batchaccount"
- - "azure_rm_backuppolicy"
- - "azure_rm_cdnprofile"
- - "azure_rm_containerinstance"
- - "azure_rm_containerregistry"
- - "azure_rm_containerregistrytag"
- - "azure_rm_cosmosdbaccount"
- - "azure_rm_datalakestore"
- - "azure_rm_ddosprotectionplan"
- - "azure_rm_deployment"
- - "azure_rm_diskencryptionset"
- - "azure_rm_dnsrecordset"
- - "azure_rm_dnszone"
- - "azure_rm_eventhub"
- - "azure_rm_expressroute"
- - "azure_rm_firewallpolicy"
- - "azure_rm_functionapp"
- - "azure_rm_gallery"
- - "azure_rm_hdinsightcluster"
- - "azure_rm_hostgroup"
- - "azure_rm_image"
- - "azure_rm_iothub"
- - "azure_rm_ipgroup"
- - "azure_rm_keyvault"
- - "azure_rm_keyvaultkey"
- - "azure_rm_keyvaultsecret"
- - "azure_rm_loadbalancer"
- - "azure_rm_loganalyticsworkspace"
- - "azure_rm_manageddisk"
- - "azure_rm_managementgroup"
- - "azure_rm_mariadbserver"
- - "azure_rm_monitordiagnosticsetting"
- - "azure_rm_monitorlogprofile"
- - "azure_rm_multiplemanageddisks"
- - "azure_rm_mysqlserver"
- - "azure_rm_natgateway"
- - "azure_rm_networkinterface"
- - "azure_rm_notificationhub"
- - "azure_rm_openshiftmanagedcluster"
- - "azure_rm_postgresqlserver"
- - "azure_rm_privatednsrecordset"
- - "azure_rm_privatednszone"
- - "azure_rm_privateendpoint"
- - "azure_rm_privateendpointdnszonegroup"
- - "azure_rm_privatelinkservice"
- - "azure_rm_privatednszonelink"
- - "azure_rm_publicipaddress"
- - "azure_rm_proximityplacementgroup"
- - "azure_rm_rediscache"
- - "azure_rm_resource"
- - "azure_rm_resourcegroup"
- - "azure_rm_routetable"
- - "azure_rm_roleassignment"
- - "azure_rm_roledefinition"
- - "azure_rm_registrationassignment"
- - "azure_rm_registrationdefinition"
- - "azure_rm_cognitivesearch"
- - "azure_rm_securitygroup"
- - "azure_rm_servicebus"
- - "azure_rm_sqlserver"
- - "azure_rm_storageaccount"
- - "azure_rm_storageblob"
- - "azure_rm_storageshare"
- - "azure_rm_subnet"
- - "azure_rm_subscription"
- - "azure_rm_trafficmanagerprofile"
- - "azure_rm_virtualmachine"
- - "azure_rm_virtualmachineextension"
- - "azure_rm_virtualmachineimage_info"
- - "azure_rm_virtualmachinescaleset"
- - "azure_rm_virtualmachinesize_info"
- - "azure_rm_virtualnetwork"
- - "azure_rm_virtualnetworkgateway"
- - "azure_rm_virtualnetworkpeering"
- - "azure_rm_virtualwan"
- - "azure_rm_vpnsite"
- - "azure_rm_virtualhub"
- - "azure_rm_virtualhubconnection"
- - "azure_rm_backupazurevm"
- - "azure_rm_recoveryservicesvault"
- - "azure_rm_vmbackuppolicy"
- - "azure_rm_webapp"
- - "azure_rm_webappvnetconnection"
- - "azure_rm_webappaccessrestriction"
- - "azure_rm_workspace"
- - "azure_rm_datafactory"
- - "azure_rm_bastionhost"
- - "azure_rm_devtestlab"
- - "azure_rm_sqlmanagedinstance"
- - "azure_rm_vmssnetworkinterface_info"
- - "inventory_azure"
- - "setup_azure"
+ - name: PYTHON_VER
+ displayName: 'Python Version'
+ type: string
+ default: "3.9"
+ values:
+ - "2.7"
+ - "3.6"
+ - "3.8"
+ - "3.9"
+ - "3.10"
+ - "3.11"
+ - name: ANSIBLE_VER
+ displayName: 'Ansible Version'
+ type: string
+ default: "2.15"
+ values:
+ - "2.9"
+ - "2.10"
+ - "2.11"
+ - "2.12"
+ - "2.13"
+ - "2.14"
+ - "2.15"
+ - "devel"
+ - name: MODULE_NAME
+ displayName: 'Test Module'
+ type: string
+ default: 'all'
+ values:
+ - 'all'
+ - 'sanity'
+ - 'azure_rm_adapplication'
+ - "azure_rm_acs"
+ - "azure_rm_adgroup"
+ - "azure_rm_aduser"
+ - "azure_rm_aks"
+ - "azure_rm_aksagentpool"
+ - "azure_rm_apimanagement"
+ - "azure_rm_appgateway"
+ - "azure_rm_appserviceplan"
+ - "azure_rm_automationaccount"
+ - "azure_rm_automationrunbook"
+ - "azure_rm_autoscale"
+ - "azure_rm_availabilityset"
+ - "azure_rm_azurefirewall"
+ - "azure_rm_apimanagementservice"
+ - "azure_rm_batchaccount"
+ - "azure_rm_backuppolicy"
+ - "azure_rm_cdnprofile"
+ - "azure_rm_containerinstance"
+ - "azure_rm_containerregistry"
+ - "azure_rm_containerregistrytag"
+ - "azure_rm_cosmosdbaccount"
+ - "azure_rm_datalakestore"
+ - "azure_rm_ddosprotectionplan"
+ - "azure_rm_deployment"
+ - "azure_rm_diskencryptionset"
+ - "azure_rm_dnsrecordset"
+ - "azure_rm_dnszone"
+ - "azure_rm_eventhub"
+ - "azure_rm_expressroute"
+ - "azure_rm_firewallpolicy"
+ - "azure_rm_functionapp"
+ - "azure_rm_gallery"
+ - "azure_rm_hdinsightcluster"
+ - "azure_rm_hostgroup"
+ - "azure_rm_image"
+ - "azure_rm_iothub"
+ - "azure_rm_ipgroup"
+ - "azure_rm_keyvault"
+ - "azure_rm_keyvaultkey"
+ - "azure_rm_keyvaultsecret"
+ - "azure_rm_loadbalancer"
+ - "azure_rm_loganalyticsworkspace"
+ - "azure_rm_manageddisk"
+ - "azure_rm_managementgroup"
+ - "azure_rm_mariadbserver"
+ - "azure_rm_monitordiagnosticsetting"
+ - "azure_rm_monitorlogprofile"
+ - "azure_rm_multiplemanageddisks"
+ - "azure_rm_mysqlserver"
+ - "azure_rm_natgateway"
+ - "azure_rm_networkinterface"
+ - "azure_rm_notificationhub"
+ - "azure_rm_openshiftmanagedcluster"
+ - "azure_rm_postgresqlserver"
+ - "azure_rm_privatednsrecordset"
+ - "azure_rm_privatednszone"
+ - "azure_rm_privateendpoint"
+ - "azure_rm_privateendpointdnszonegroup"
+ - "azure_rm_privatelinkservice"
+ - "azure_rm_privatednszonelink"
+ - "azure_rm_publicipaddress"
+ - "azure_rm_proximityplacementgroup"
+ - "azure_rm_rediscache"
+ - "azure_rm_resource"
+ - "azure_rm_resourcegroup"
+ - "azure_rm_routetable"
+ - "azure_rm_roleassignment"
+ - "azure_rm_roledefinition"
+ - "azure_rm_registrationassignment"
+ - "azure_rm_registrationdefinition"
+ - "azure_rm_cognitivesearch"
+ - "azure_rm_securitygroup"
+ - "azure_rm_servicebus"
+ - "azure_rm_sqlserver"
+ - "azure_rm_storageaccount"
+ - "azure_rm_storageblob"
+ - "azure_rm_storageshare"
+ - "azure_rm_subnet"
+ - "azure_rm_subscription"
+ - "azure_rm_trafficmanagerprofile"
+ - "azure_rm_virtualmachine"
+ - "azure_rm_virtualmachineextension"
+ - "azure_rm_virtualmachineimage_info"
+ - "azure_rm_virtualmachinescaleset"
+ - "azure_rm_virtualmachinesize_info"
+ - "azure_rm_virtualnetwork"
+ - "azure_rm_virtualnetworkgateway"
+ - "azure_rm_virtualnetworkpeering"
+ - "azure_rm_virtualwan"
+ - "azure_rm_vpnsite"
+ - "azure_rm_virtualhub"
+ - "azure_rm_virtualhubconnection"
+ - "azure_rm_backupazurevm"
+ - "azure_rm_recoveryservicesvault"
+ - "azure_rm_vmbackuppolicy"
+ - "azure_rm_webapp"
+ - "azure_rm_webappvnetconnection"
+ - "azure_rm_webappaccessrestriction"
+ - "azure_rm_workspace"
+ - "azure_rm_datafactory"
+ - "azure_rm_bastionhost"
+ - "azure_rm_devtestlab"
+ - "azure_rm_sqlmanagedinstance"
+ - "azure_rm_vmssnetworkinterface_info"
+ - "inventory_azure"
+ - "setup_azure"
trigger: none
pr:
-- dev
+ - dev
pool:
name: pool-ubuntu-2004
@@ -172,7 +173,7 @@ jobs:
variables:
TEST_RESOURCE_GROUP: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group'] ]
TEST_RESOURCE_GROUP_SECONDARY: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_secondary'] ]
- TEST_RESOURCE_GROUP_DATALAKE: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_datalake'] ]
+ TEST_RESOURCE_GROUP_DATALAKE: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_datalake'] ]
strategy:
matrix:
"Python${{ parameters.PYTHON_VER }}_sanity":
@@ -222,26 +223,26 @@ jobs:
test.key: '15'
steps:
- - task: UsePythonVersion@0
- displayName: 'Use Python $(python.version)'
- inputs:
- versionSpec: '$(python.version)'
+ - task: UsePythonVersion@0
+ displayName: 'Use Python $(python.version)'
+ inputs:
+ versionSpec: '$(python.version)'
- - script: tests/utils/ado/ado.sh $(test.key) ${{ parameters.PYTHON_VER }} ${{ parameters.ANSIBLE_VER }} ${{ parameters.MODULE_NAME }}
- env:
- SHIPPABLE_BUILD_DIR: $(Build.Repository.LocalPath)
- AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)
- AZURE_SECRET: $(AZURE_SECRET)
- AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
- AZURE_SUBSCRIPTION_SEC_ID: $(AZURE_SUBSCRIPTION_SEC_ID)
- AZURE_TENANT: $(AZURE_TENANT)
- AZURE_PRINCIPAL_ID: $(AZURE_PRINCIPAL_ID)
- AZURE_MANAGED_BY_TENANT_ID: $(AZURE_MANAGED_BY_TENANT_ID)
- AZURE_ROLE_DEFINITION_ID: $(AZURE_ROLE_DEFINITION_ID)
- RESOURCE_GROUP: $(TEST_RESOURCE_GROUP)
- RESOURCE_GROUP_SECONDARY: $(TEST_RESOURCE_GROUP_SECONDARY)
- RESOURCE_GROUP_DATALAKE: $(TEST_RESOURCE_GROUP_DATALAKE)
- displayName: 'Running Tests'
+ - script: tests/utils/ado/ado.sh $(test.key) ${{ parameters.PYTHON_VER }} ${{ parameters.ANSIBLE_VER }} ${{ parameters.MODULE_NAME }}
+ env:
+ SHIPPABLE_BUILD_DIR: $(Build.Repository.LocalPath)
+ AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)
+ AZURE_SECRET: $(AZURE_SECRET)
+ AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
+ AZURE_SUBSCRIPTION_SEC_ID: $(AZURE_SUBSCRIPTION_SEC_ID)
+ AZURE_TENANT: $(AZURE_TENANT)
+ AZURE_PRINCIPAL_ID: $(AZURE_PRINCIPAL_ID)
+ AZURE_MANAGED_BY_TENANT_ID: $(AZURE_MANAGED_BY_TENANT_ID)
+ AZURE_ROLE_DEFINITION_ID: $(AZURE_ROLE_DEFINITION_ID)
+ RESOURCE_GROUP: $(TEST_RESOURCE_GROUP)
+ RESOURCE_GROUP_SECONDARY: $(TEST_RESOURCE_GROUP_SECONDARY)
+ RESOURCE_GROUP_DATALAKE: $(TEST_RESOURCE_GROUP_DATALAKE)
+ displayName: 'Running Tests'
- job: CleanupResourceGroups
dependsOn:
diff --git a/ansible_collections/azure/azcollection/release-pipelines.yml b/ansible_collections/azure/azcollection/release-pipelines.yml
index adb69fb4d..212de7665 100644
--- a/ansible_collections/azure/azcollection/release-pipelines.yml
+++ b/ansible_collections/azure/azcollection/release-pipelines.yml
@@ -4,9 +4,9 @@
# https://aka.ms/yaml
trigger:
- tags:
- include:
- - v*.*.*
+ tags:
+ include:
+ - v*.*.*
pr: none
@@ -14,16 +14,16 @@ pool:
name: pool-ubuntu-2004
steps:
-- script: |
- pip install wheel
- pip install ansible==v2.9.0
- ansible --version
- displayName: 'install ansible'
+ - script: |
+ pip install wheel
+ pip install ansible==v2.14.0
+ ansible --version
+ displayName: 'install ansible'
-- script: |
- ansible-galaxy collection build .
- displayName: 'build collection'
+ - script: |
+ ansible-galaxy collection build .
+ displayName: 'build collection'
-- script: |
- ansible-galaxy collection publish *.tar.gz --api-key $(GALAXY_KEY)
- displayName: 'publish collection' \ No newline at end of file
+ - script: |
+ ansible-galaxy collection publish *.tar.gz --api-key $(GALAXY_KEY)
+ displayName: 'publish collection'
diff --git a/ansible_collections/azure/azcollection/requirements-azure.txt b/ansible_collections/azure/azcollection/requirements-azure.txt
index 32603e2af..4aae3275d 100644
--- a/ansible_collections/azure/azcollection/requirements-azure.txt
+++ b/ansible_collections/azure/azcollection/requirements-azure.txt
@@ -1,12 +1,13 @@
packaging
requests[security]
xmltodict
+msal==1.23.0
azure-cli-core==2.34.0
azure-common==1.1.11
azure-identity==1.7.0
azure-mgmt-authorization==2.0.0
azure-mgmt-apimanagement==3.0.0
-azure-mgmt-batch==5.0.1
+azure-mgmt-batch==16.2.0
azure-mgmt-cdn==11.0.0
azure-mgmt-compute==26.1.0
azure-mgmt-containerinstance==9.0.0
@@ -36,8 +37,9 @@ azure-mgmt-web==6.1.0
azure-nspkg==2.0.0
azure-storage-blob==12.11.0
msrest==0.7.1
+azure-core==1.28.0
msrestazure==0.6.4
-azure-keyvault==1.1.0
+azure-keyvault==4.2.0
azure-mgmt-keyvault==10.0.0
azure-graphrbac==0.61.1
azure-mgmt-cosmosdb==6.4.0
@@ -46,6 +48,7 @@ azure-mgmt-devtestlabs==9.0.0
azure-mgmt-loganalytics==12.0.0
azure-mgmt-automation==1.0.0
azure-mgmt-iothub==2.2.0
+azure-iot-hub==2.6.1
azure-mgmt-recoveryservices==2.0.0
azure-mgmt-recoveryservicesbackup==3.0.0
azure-mgmt-notificationhubs==7.0.0
diff --git a/ansible_collections/azure/azcollection/sanity-requirements-azure.txt b/ansible_collections/azure/azcollection/sanity-requirements-azure.txt
index f879956da..e18c13718 100644
--- a/ansible_collections/azure/azcollection/sanity-requirements-azure.txt
+++ b/ansible_collections/azure/azcollection/sanity-requirements-azure.txt
@@ -1,5 +1,5 @@
voluptuous==0.13.1
pycodestyle==2.8.0
yamllint==1.26.3
-cryptography==38.0.3
+cryptography==41.0.4
pylint==2.13.5
diff --git a/ansible_collections/azure/azcollection/tests/config.yml b/ansible_collections/azure/azcollection/tests/config.yml
index ecfdc9425..4676bc0d5 100644
--- a/ansible_collections/azure/azcollection/tests/config.yml
+++ b/ansible_collections/azure/azcollection/tests/config.yml
@@ -1,2 +1,2 @@
modules:
- python_requires: '>= 3.6' \ No newline at end of file
+ python_requires: '>= 3.6'
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_account_info/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_account_info/tasks/main.yml
index 5c010972f..ddc52368e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_account_info/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_account_info/tasks/main.yml
@@ -2,7 +2,8 @@
azure.azcollection.azure_rm_account_info:
register: result
-- assert:
+- name: Assert the facts
+ ansible.builtin.assert:
that:
- result is not changed
- result is not failed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_acs/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_acs/tasks/main.yml
index a35871c09..a2f3fdafa 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_acs/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_acs/tasks/main.yml
@@ -1,149 +1,149 @@
- - name: Create an ACS instance - DCOS
- azure_rm_acs:
- name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: DCOS
- master_profile:
- - count: 1
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 1
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false
- register: output
+- name: Create an ACS instance - DCOS
+ azure_rm_acs:
+ name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: DCOS
+ master_profile:
+ - count: 1
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
+ register: output
- - name: Assert the ACS instance is well created
- assert:
- that:
- - output.changed
- - output.state.provisioning_state == 'Succeeded'
+- name: Assert the ACS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.provisioning_state == 'Succeeded'
- - name: Scale the ACS instance from 1 to 2 - DCOS
- azure_rm_acs:
- name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: DCOS
- master_profile:
- - count: 1
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 2
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false
- register: output
+- name: Scale the ACS instance from 1 to 2 - DCOS
+ azure_rm_acs:
+ name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: DCOS
+ master_profile:
+ - count: 1
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 2
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
+ register: output
- - name: Assert the ACS instance is well scaled
- assert:
- that:
- - output.changed
- - output.state.agent_pool_profiles[0].count == 2
+- name: Assert the ACS instance is well scaled
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.agent_pool_profiles[0].count == 2
- - name: Delete the DCOS ACS instance - DCOS
- azure_rm_acs:
- name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: DCOS
- state: absent
- master_profile:
- - count: 1
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 2
- dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false
+- name: Delete the DCOS ACS instance - DCOS
+ azure_rm_acs:
+ name: "acsdcos{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: DCOS
+ state: absent
+ master_profile:
+ - count: 1
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 2
+ dns_prefix: "acsdcos{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
- - name: Create an ACS instance - Swarm
- azure_rm_acs:
- name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: Swarm
- master_profile:
- - count: 1
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 1
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false
- register: output
+- name: Create an ACS instance - Swarm
+ azure_rm_acs:
+ name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: Swarm
+ master_profile:
+ - count: 1
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
+ register: output
- - name: Assert the ACS instance is well created
- assert:
- that:
- - output.changed
- - output.state.provisioning_state == 'Succeeded'
+- name: Assert the ACS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.provisioning_state == 'Succeeded'
- - name: Scale the ACS instance from 1 to 2 - Swarm
- azure_rm_acs:
- name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: Swarm
- master_profile:
- - count: 1
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 2
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false
- register: output
+- name: Scale the ACS instance from 1 to 2 - Swarm
+ azure_rm_acs:
+ name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: Swarm
+ master_profile:
+ - count: 1
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 2
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
+ register: output
- - name: Assert the ACS instance is well scaled
- assert:
- that:
- - output.changed
- - output.state.agent_pool_profiles[0].count == 2
+- name: Assert the ACS instance is well scaled
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.agent_pool_profiles[0].count == 2
- - name: Delete the ACS instance - Swarm
- azure_rm_acs:
- name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- orchestration_platform: Swarm
- state: absent
- master_profile:
- - count: 1
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- vm_size: Standard_A0
- linux_profile:
- - admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
- agent_pool_profiles:
- - name: default
- count: 2
- dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
- vm_size: Standard_A0
- diagnostics_profile: false \ No newline at end of file
+- name: Delete the ACS instance - Swarm
+ azure_rm_acs:
+ name: "acssw{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ orchestration_platform: Swarm
+ state: absent
+ master_profile:
+ - count: 1
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(10, True, '') }}"
+ vm_size: Standard_A0
+ linux_profile:
+ - admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+io238wdhjkasndq238e2/983289dasjnasey823/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+928dfsjsejk298r/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+dsajda82e78sdja/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt juliens@msft.com
+ agent_pool_profiles:
+ - name: default
+ count: 2
+ dns_prefix: "acssw{{ resource_group | hash('md5') | truncate(12, True, '') }}"
+ vm_size: Standard_A0
+ diagnostics_profile: false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adapplication/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adapplication/tasks/main.yml
index c8dfcb2b7..99813a48d 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adapplication/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adapplication/tasks/main.yml
@@ -1,7 +1,8 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
tenant_id: "{{ azure_tenant }}"
display_name: "app{{ resource_group | hash('sha1') | truncate(20, True, '') }}"
- run_once: yes
+ run_once: true
- name: Create application
azure_rm_adapplication:
@@ -9,23 +10,25 @@
display_name: "{{ display_name }}"
register: create_output
-- assert:
+- name: Assert create successfully
+ ansible.builtin.assert:
that: create_output.changed
-- name: Create application again (idempotent test)
+- name: Create application again idempotent test
azure_rm_adapplication:
tenant: "{{ tenant_id }}"
app_id: "{{ create_output.app_id }}"
register: output
-- assert:
+- name: Assert the idempotent success
+ ansible.builtin.assert:
that: not output.changed
- name: Create application with more parameter
azure_rm_adapplication:
tenant: "{{ tenant_id }}"
display_name: "{{ display_name }}-01"
- available_to_other_tenants: False
+ available_to_other_tenants: false
credential_description: "for test"
end_date: 2021-10-01
start_date: 2021-05-18
@@ -36,56 +39,61 @@
- User
description: "for app role test"
display_name: "{{ display_name }}_approle"
- is_enabled: True
+ is_enabled: true
value: Password@0329
register: second_output
-- assert:
+- name: Assert secondary resource create success
+ ansible.builtin.assert:
that: second_output.changed
-- name: get ad app info ---- by object ID
+- name: Get ad app info by object id
azure_rm_adapplication_info:
object_id: "{{ create_output.object_id }}"
tenant: "{{ tenant_id }}"
register: output
-- name: get ad app info ---- by app ID
+- name: Get ad app info by app id
azure_rm_adapplication_info:
app_id: "{{ create_output.app_id }}"
tenant: "{{ tenant_id }}"
register: output
-- assert:
+- name: Assert the application facts
+ ansible.builtin.assert:
that:
- output.applications[0].app_display_name == "{{ display_name }}"
- output.applications | length == 1
-- name: delete ad app by app id
+- name: Delete ad app by app id
azure_rm_adapplication:
app_id: "{{ create_output.app_id }}"
tenant: "{{ tenant_id }}"
state: absent
register: output
-- assert:
+- name: Assert the application delete success
+ ansible.builtin.assert:
that: output.changed
-- name: delete ad app by app id
+- name: Delete ad app by app id
azure_rm_adapplication:
app_id: "{{ second_output.app_id }}"
tenant: "{{ tenant_id }}"
state: absent
register: output
-- assert:
+- name: Assert the secondary application delete success
+ ansible.builtin.assert:
that: output.changed
-- name: get ad app info ---- by app id
+- name: Get ad app info by app id
azure_rm_adapplication_info:
app_id: "{{ create_output.app_id }}"
tenant: "{{ tenant_id }}"
register: output
-- assert:
+- name: Assert there is no application
+ ansible.builtin.assert:
that:
- output.applications | length == 0
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml
index 09b3f686e..b10580e65 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml
@@ -1,16 +1,17 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
tenant_id: "{{ azure_tenant }}"
resource_prefix: "{{ 999999999999999999994 | random | to_uuid }}"
- run_once: yes
+ run_once: true
- name: Try to return non-existent group using display name
azure_rm_adgroup_info:
attribute_name: "displayName"
attribute_value: "{{ resource_prefix }}-Group-Root"
tenant: "{{ tenant_id }}"
- register: get_nonexistent_group_display_name_ShouldFail
+ register: get_nonexistent_group_display_name_shouldfail
failed_when:
- - get_nonexistent_group_display_name_ShouldFail.ad_groups != []
+ - get_nonexistent_group_display_name_shouldfail.ad_groups != []
- name: Create Group Root
azure_rm_adgroup:
@@ -18,7 +19,7 @@
display_name: "{{ resource_prefix }}-Group-Root"
mail_nickname: "{{ resource_prefix }}-Group-Root"
state: 'present'
- register: group_create_changed_ShouldPass
+ register: group_create_changed_shouldpass
- name: Create Group Should Return Not Changed
azure_rm_adgroup:
@@ -26,29 +27,29 @@
display_name: "{{ resource_prefix }}-Group-Root"
mail_nickname: "{{ resource_prefix }}-Group-Root"
state: 'present'
- register: group_create_unchanged_ShouldPass
+ register: group_create_unchanged_shouldpass
- name: Assert Otherwise Changed Returns are Equal
- assert:
+ ansible.builtin.assert:
that:
- - group_create_changed_ShouldPass.changed == True
- - group_create_unchanged_ShouldPass.changed == False
- - group_create_changed_ShouldPass.display_name == group_create_unchanged_ShouldPass.display_name
- - group_create_changed_ShouldPass.mail_enabled == group_create_unchanged_ShouldPass.mail_enabled
- - group_create_changed_ShouldPass.mail_nickname == group_create_unchanged_ShouldPass.mail_nickname
- - group_create_changed_ShouldPass.object_id == group_create_unchanged_ShouldPass.object_id
- - group_create_changed_ShouldPass.security_enabled == group_create_unchanged_ShouldPass.security_enabled
+ - group_create_changed_shouldpass.changed == True
+ - group_create_unchanged_shouldpass.changed == False
+ - group_create_changed_shouldpass.display_name == group_create_unchanged_shouldpass.display_name
+ - group_create_changed_shouldpass.mail_enabled == group_create_unchanged_shouldpass.mail_enabled
+ - group_create_changed_shouldpass.mail_nickname == group_create_unchanged_shouldpass.mail_nickname
+ - group_create_changed_shouldpass.object_id == group_create_unchanged_shouldpass.object_id
+ - group_create_changed_shouldpass.security_enabled == group_create_unchanged_shouldpass.security_enabled
- name: Return previously created group using object_id
azure_rm_adgroup_info:
- object_id: "{{ group_create_unchanged_ShouldPass.object_id }}"
+ object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
tenant: "{{ tenant_id }}"
- register: get_created_object_id_ShouldPass
+ register: get_created_object_id_shouldpass
- name: Assert Returns are Equal to Created Group
- assert:
+ ansible.builtin.assert:
that:
- - get_created_object_id_ShouldPass.ad_groups[0].object_id == group_create_unchanged_ShouldPass.object_id
+ - get_created_object_id_shouldpass.ad_groups[0].object_id == group_create_unchanged_shouldpass.object_id
- name: Create Group Member 1
azure_rm_adgroup:
@@ -56,7 +57,7 @@
display_name: "{{ resource_prefix }}-Group-Member-1"
mail_nickname: "{{ resource_prefix }}-Group-Member-1"
state: 'present'
- register: create_group_member_1_ShouldPass
+ register: create_pass_first
- name: Create Group Member 2
azure_rm_adgroup:
@@ -64,7 +65,7 @@
display_name: "{{ resource_prefix }}-Group-Member-2"
mail_nickname: "{{ resource_prefix }}-Group-Member-2"
state: 'present'
- register: create_group_member_2_ShouldPass
+ register: create_pass_second
- name: Ensure member is in group using display_name and mail_nickname
azure_rm_adgroup:
@@ -73,44 +74,44 @@
mail_nickname: "{{ resource_prefix }}-Group-Root"
state: 'present'
present_members:
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_group_member_1_ShouldPass.object_id }}"
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_group_member_2_ShouldPass.object_id }}"
- register: add_members_to_group_ShouldPass
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_first.object_id }}"
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_second.object_id }}"
+ register: add_pass
- name: Validate members are in the group
- assert:
+ ansible.builtin.assert:
that:
- - add_members_to_group_ShouldPass.group_members[0].object_id == create_group_member_1_ShouldPass.object_id or add_members_to_group_ShouldPass.group_members[1].object_id == create_group_member_1_ShouldPass.object_id
- - add_members_to_group_ShouldPass.group_members[1].object_id == create_group_member_2_ShouldPass.object_id or add_members_to_group_ShouldPass.group_members[0].object_id == create_group_member_2_ShouldPass.object_id
+ - add_pass.group_members[0].object_id == create_pass_first.object_id or add_pass.group_members[1].object_id == create_pass_first.object_id
+ - add_pass.group_members[1].object_id == create_pass_second.object_id or add_pass.group_members[0].object_id == create_pass_second.object_id
- name: Ensure member is in group that is already present using object_id
azure_rm_adgroup:
tenant: "{{ tenant_id }}"
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
state: 'present'
present_members:
- - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_group_member_1_ShouldPass.object_id }}"
- register: add_already_present_member_to_group_ShouldPass
+ - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_first.object_id }}"
+ register: add_already_present_member_to_group_shouldpass
- name: Validate nothing changed from already present member
- assert:
+ ansible.builtin.assert:
that:
- - add_already_present_member_to_group_ShouldPass.changed == false
+ - add_already_present_member_to_group_shouldpass.changed == false
- name: Ensure member is not in group using object_id
azure_rm_adgroup:
tenant: "{{ tenant_id }}"
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
state: 'present'
absent_members:
- - "{{ create_group_member_2_ShouldPass.object_id }}"
- register: remove_member_from_group_ShouldPass
+ - "{{ create_pass_second.object_id }}"
+ register: remove_member_from_group_shouldpass
- name: Validate Group Member 1 is in the group and Group Member 2 is not
- assert:
+ ansible.builtin.assert:
that:
- - remove_member_from_group_ShouldPass.group_members[0].object_id == create_group_member_1_ShouldPass.object_id
- - remove_member_from_group_ShouldPass.group_members | length == 1
+ - remove_member_from_group_shouldpass.group_members[0].object_id == create_pass_first.object_id
+ - remove_member_from_group_shouldpass.group_members | length == 1
- name: Ensure member is not in group that is already not in group using display_name and mail_nickname
azure_rm_adgroup:
@@ -119,121 +120,121 @@
mail_nickname: "{{ resource_prefix }}-Group-Root"
state: 'present'
absent_members:
- - "{{ create_group_member_2_ShouldPass.object_id }}"
- register: remove_already_absent_member_from_group_ShouldPass
+ - "{{ create_pass_second.object_id }}"
+ register: remove_already_absent_member_from_group_shouldpass
- name: Validate nothing changed from already absent member
- assert:
+ ansible.builtin.assert:
that:
- - remove_already_absent_member_from_group_ShouldPass.changed == false
+ - remove_already_absent_member_from_group_shouldpass.changed == false
- name: Return a specific group using object_id
azure_rm_adgroup_info:
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
tenant: "{{ tenant_id }}"
- register: object_id_ShouldPass
+ register: object_id_shouldpass
- name: Return a specific group using object_id and return_owners
azure_rm_adgroup_info:
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
- return_owners: True
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
+ return_owners: true
tenant: "{{ tenant_id }}"
- register: object_id_return_owners_ShouldPass
+ register: object_id_return_owners_shouldpass
- name: Return a specific group using object_id and return_owners and return_group_members
azure_rm_adgroup_info:
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
- return_owners: True
- return_group_members: True
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
+ return_owners: true
+ return_group_members: true
tenant: "{{ tenant_id }}"
- register: object_id_return_owners_and_group_members_ShouldPass
+ register: object_id_return_owners_and_group_members_shouldpass
- name: Return a specific group using object_id and member_groups
azure_rm_adgroup_info:
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
- return_member_groups: True
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
+ return_member_groups: true
tenant: "{{ tenant_id }}"
- register: object_id_return_member_groups_ShouldPass
+ register: object_id_return_member_groups_shouldpass
- name: Return a specific group using object_id and check_membership
azure_rm_adgroup_info:
- object_id: "{{ group_create_changed_ShouldPass.object_id }}"
- check_membership: "{{ create_group_member_1_ShouldPass.object_id }}"
+ object_id: "{{ group_create_changed_shouldpass.object_id }}"
+ check_membership: "{{ create_pass_first.object_id }}"
tenant: "{{ tenant_id }}"
- register: object_id_return_check_membership_ShouldPass
+ register: object_id_return_check_membership_shouldpass
- name: Return a specific group using displayName attribute
azure_rm_adgroup_info:
attribute_name: "displayName"
- attribute_value: "{{ group_create_changed_ShouldPass.display_name }}"
+ attribute_value: "{{ group_create_changed_shouldpass.display_name }}"
tenant: "{{ tenant_id }}"
- register: displayName_attribute_ShouldPass
+ register: displayname_attribute_shouldpass
- name: Return a specific group using mailNickname filter
azure_rm_adgroup_info:
- odata_filter: "mailNickname eq '{{ group_create_changed_ShouldPass.mail_nickname }}'"
+ odata_filter: "mailNickname eq '{{ group_create_changed_shouldpass.mail_nickname }}'"
tenant: "{{ tenant_id }}"
- register: mailNickname_filter_ShouldPass
+ register: mailnickname_filter_shouldpass
- name: Return a different group using displayName attribute
azure_rm_adgroup_info:
attribute_name: "displayName"
- attribute_value: "{{ create_group_member_2_ShouldPass.display_name }}"
+ attribute_value: "{{ create_pass_second.display_name }}"
tenant: "{{ tenant_id }}"
- register: displayName_attribute_different_ShouldPass
+ register: displayname_attribute_different_shouldpass
- name: Assert All Returns Are Equal
- assert:
+ ansible.builtin.assert:
that:
- - object_id_ShouldPass == displayName_attribute_ShouldPass
- - object_id_ShouldPass == mailNickname_filter_ShouldPass
+ - object_id_shouldpass == displayname_attribute_shouldpass
+ - object_id_shouldpass == mailnickname_filter_shouldpass
- name: Assert Returns Are Not Equal
- assert:
+ ansible.builtin.assert:
that:
- - object_id_ShouldPass != displayName_attribute_different_ShouldPass
+ - object_id_shouldpass != displayname_attribute_different_shouldpass
- name: Delete group Group Root on object_id
azure_rm_adgroup:
tenant: "{{ tenant_id }}"
- object_id: "{{ group_create_unchanged_ShouldPass.object_id }}"
+ object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
state: 'absent'
- register: group_delete_group_root_ShouldPass
+ register: group_delete_group_root_shouldpass
- name: Try to return now deleted group Group Root using object_id
azure_rm_adgroup_info:
- object_id: "{{ group_create_unchanged_ShouldPass.object_id }}"
+ object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
tenant: "{{ tenant_id }}"
- register: get_deleted_object_group_root_ShouldFail
+ register: get_deleted_object_group_root_shouldfail
failed_when:
- - '"failed to get ad group info Resource" not in get_deleted_object_group_root_ShouldFail.msg'
+ - '"failed to get ad group info Resource" not in get_deleted_object_group_root_shouldfail.msg'
- name: Delete group Group Member 1 on object_id
azure_rm_adgroup:
tenant: "{{ tenant_id }}"
- object_id: "{{ create_group_member_1_ShouldPass.object_id }}"
+ object_id: "{{ create_pass_first.object_id }}"
state: 'absent'
- register: group_delete_group_member_1_ShouldPass
+ register: group_delete_group_member_1_shouldpass
- name: Try to return now deleted group Group Member 1 using object_id
azure_rm_adgroup_info:
- object_id: "{{ create_group_member_1_ShouldPass.object_id }}"
+ object_id: "{{ create_pass_first.object_id }}"
tenant: "{{ tenant_id }}"
- register: get_deleted_object_group_member_1_ShouldFail
+ register: get_deleted_object_group_member_1_shouldfail
failed_when:
- - '"failed to get ad group info Resource" not in get_deleted_object_group_member_1_ShouldFail.msg'
+ - '"failed to get ad group info Resource" not in get_deleted_object_group_member_1_shouldfail.msg'
- name: Delete group Group Member 2 on object_id
azure_rm_adgroup:
tenant: "{{ tenant_id }}"
- object_id: "{{ create_group_member_2_ShouldPass.object_id }}"
+ object_id: "{{ create_pass_second.object_id }}"
state: 'absent'
- register: group_delete_group_member_2_ShouldPass
+ register: group_delete_group_member_2_shouldpass
- name: Try to return now deleted group Group Member 2 using object_id
azure_rm_adgroup_info:
- object_id: "{{ create_group_member_2_ShouldPass.object_id }}"
+ object_id: "{{ create_pass_second.object_id }}"
tenant: "{{ tenant_id }}"
- register: get_deleted_object_group_member_2_ShouldFail
+ register: get_deleted_object_group_member_2_shouldfail
failed_when:
- - '"failed to get ad group info Resource" not in get_deleted_object_group_member_2_ShouldFail.msg'
+ - '"failed to get ad group info Resource" not in get_deleted_object_group_member_2_shouldfail.msg'
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adpassword/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adpassword/tasks/main.yml
index 7c3782f17..f430af17f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adpassword/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adpassword/tasks/main.yml
@@ -1,9 +1,10 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
app_id: "e0a62513-1d81-480e-a6dc-5c99cdd58d9a"
tenant_id: "72f988bf-86f1-41af-91ab-2d7cd011db47"
app_object_id: "b52e8275-a1ee-4c4a-86ff-15992e0920ed"
-- name: create first ad password by app_id
+- name: Create first ad password by app_id
azure_rm_adpassword:
app_id: "{{ app_id }}"
value: "Password@032900001"
@@ -11,11 +12,12 @@
state: present
register: ad_fact
-- assert:
+- name: Assert the password created
+ ansible.builtin.assert:
that:
- - ad_fact.changed
+ - ad_fact.changed
-- name: create second ad password by app_object_id
+- name: Create second ad password by app_object_id
azure_rm_adpassword:
value: "Password@032900002"
tenant: "{{ tenant_id }}"
@@ -23,11 +25,12 @@
state: present
register: ad_fact02
-- assert:
+- name: Assert the secondary password created
+ ansible.builtin.assert:
that:
- - ad_fact02.changed
+ - ad_fact02.changed
-- name: create ad service principal
+- name: Create ad service principal
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
@@ -38,10 +41,11 @@
tenant: "{{ tenant_id }}"
app_id: "{{ app_id }}"
register: sp_info
-- debug:
+- name: Print Service principals facts
+ ansible.builtin.debug:
var: sp_info
-- name: create third ad password by service_principal_object_id
+- name: Create third ad password by service_principal_object_id
azure_rm_adpassword:
value: "Password@032900003"
tenant: "{{ tenant_id }}"
@@ -49,11 +53,12 @@
state: present
register: ad_fact03
-- assert:
+- name: Assert the third add password created
+ ansible.builtin.assert:
that:
- - ad_fact03.changed
+ - ad_fact03.changed
-- name: can't update ad password
+- name: Can't update ad password
azure_rm_adpassword:
app_id: "{{ app_id }}"
value: "Password@032900003"
@@ -62,7 +67,7 @@
app_object_id: "{{ app_object_id }}"
state: present
register: output
- ignore_errors: True
+ ignore_errors: true
- name: Get ad password info
azure_rm_adpassword_info:
@@ -72,12 +77,13 @@
app_object_id: "{{ app_object_id }}"
register: ad_info
-- assert:
+- name: Assert the ad password facts
+ ansible.builtin.assert:
that:
- - ad_info.passwords[0].start_date == ad_fact.start_date
- - ad_info.passwords[0].end_date == ad_fact.end_date
+ - ad_info.passwords[0].start_date == ad_fact.start_date
+ - ad_info.passwords[0].end_date == ad_fact.end_date
-- name: delete one ad password
+- name: Delete one ad password
azure_rm_adpassword:
app_id: "{{ app_id }}"
key_id: "{{ ad_fact.key_id }}"
@@ -86,11 +92,12 @@
state: absent
register: output
-- assert:
+- name: Assert the ad password deleted
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
-- name: delete all ad password
+- name: Delete all ad password
azure_rm_adpassword:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
@@ -98,6 +105,7 @@
state: absent
register: output
-- assert:
+- name: Assert the ad password delete
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml
index 4e4b50161..b138740d6 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adserviceprincipal/tasks/main.yml
@@ -1,34 +1,37 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
app_id: "e0a62513-1d81-480e-a6dc-5c99cdd58d9a"
tenant_id: "72f988bf-86f1-41af-91ab-2d7cd011db47"
-- name: delete ad service principal
+- name: Delete ad service principal
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
state: absent
-- name: create ad service principal
+- name: Create ad service principal
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
state: present
register: ad_fact
-- assert:
+- name: Assert the ad service prinicipal created
+ ansible.builtin.assert:
that:
- - ad_fact.changed
+ - ad_fact.changed
-- name: create ad service principal (idempontent)
+- name: Create ad service principal (idempontent)
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
state: present
register: output
-- assert:
+- name: Assert the ad service principal idempotent
+ ansible.builtin.assert:
that:
- - not output.changed
+ - not output.changed
- name: Get ad service principal info by app_id
azure_rm_adserviceprincipal_info:
@@ -36,16 +39,17 @@
tenant: "{{ tenant_id }}"
register: ad_info
-- assert:
+- name: Assert The ad service principals facts
+ ansible.builtin.assert:
that:
- - ad_info.service_principals[0].app_display_name == ad_fact.app_display_name
- - ad_info.service_principals[0].app_role_assignment_required == False
+ - ad_info.service_principals[0].app_display_name == ad_fact.app_display_name
+ - ad_info.service_principals[0].app_role_assignment_required == False
-- name: update ad service principal app_role_assignmentrequired to True
+- name: Update ad service principal app_role_assignmentrequired to True
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
- app_role_assignment_required: True
+ app_role_assignment_required: true
state: present
register: output
@@ -55,18 +59,20 @@
object_id: "{{ ad_info.service_principals[0].object_id }}"
register: ad_info
-- assert:
+- name: Assert the ad service principals facts
+ ansible.builtin.assert:
that:
- - ad_info.service_principals[0].app_display_name == ad_fact.app_display_name
- - ad_info.service_principals[0].app_role_assignment_required == True
+ - ad_info.service_principals[0].app_display_name == ad_fact.app_display_name
+ - ad_info.service_principals[0].app_role_assignment_required == True
-- name: delete ad service principal
+- name: Delete ad service principal
azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
tenant: "{{ tenant_id }}"
state: absent
register: output
-- assert:
+- name: Assert the ad service principals deleted
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aduser/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aduser/tasks/main.yml
index 98dfc3241..e3c9225e6 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aduser/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aduser/tasks/main.yml
@@ -1,17 +1,17 @@
- name: Prepare facts
- set_fact:
+ ansible.builtin.set_fact:
tenant_id: "{{ azure_tenant }}"
user_id: "user{{ 999999999999999999994 | random | to_uuid }}@contoso.com"
object_id: "{{ 999999999999999999994 | random | to_uuid }}"
user_principal_name: "{{ 999999999999999999994 | random | to_uuid }}"
- run_once: yes
+ run_once: true
- name: Create test user
azure_rm_aduser:
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
state: "present"
- account_enabled: "True"
+ account_enabled: true
display_name: "Test_{{ user_principal_name }}_Display_Name"
password_profile: "password"
mail_nickname: "Test_{{ user_principal_name }}_mail_nickname"
@@ -36,18 +36,18 @@
register: attempted_update_with_no_changes_should_pass
- name: Assert Nothing Changed
- assert:
+ ansible.builtin.assert:
that:
- attempted_update_with_no_changes_should_pass["changed"] == False
-- name: user_principal_name Should Pass
+- name: User_principal_name Should Pass
azure_rm_aduser_info:
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
register: get_user_should_pass
- name: Assert user was created and account is enabled
- assert:
+ ansible.builtin.assert:
that:
- "create_user_should_pass['ad_users'][0]['account_enabled'] == True"
- "get_user_should_pass['ad_users'][0]['account_enabled'] == True"
@@ -57,17 +57,17 @@
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
state: "present"
- account_enabled: "False"
+ account_enabled: false
register: update_user_should_pass
-- name: user_principal_name on updated user Should Pass
+- name: User_principal_name on updated user Should Pass
azure_rm_aduser_info:
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
register: get_updated_user_should_pass
- name: Assert user was updated and account is disabled
- assert:
+ ansible.builtin.assert:
that:
- "update_user_should_pass['ad_users'][0]['account_enabled'] == False"
- "get_updated_user_should_pass['ad_users'][0]['account_enabled'] == False"
@@ -79,7 +79,7 @@
state: "absent"
register: delete_user_should_pass
-- name: user_principal_name Should Fail
+- name: User_principal_name Should Fail
azure_rm_aduser_info:
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
@@ -87,30 +87,30 @@
ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- "get_user_should_fail['failed'] == True"
- name: Run with bad tenant Should Fail
azure_rm_aduser_info:
- user_principal_name: "{{user_id}}"
+ user_principal_name: "{{ user_id }}"
tenant: None
register: missing_tenant
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- "missing_tenant['failed'] == True"
- name: Missing any identifiers Should Fail
azure_rm_aduser_info:
tenant: "{{ tenant_id }}"
- register: missing_any_identifiers
- ignore_errors: yes
+ register: missing_any_identifiers
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- "missing_any_identifiers is undefined"
@@ -119,11 +119,11 @@
user_principal_name: "{{ user_id }}"
object_id: "{{ object_id }}"
tenant: "{{ tenant_id }}"
- register: too_many_identifiers
- ignore_errors: yes
+ register: too_many_identifiers
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- "too_many_identifiers is undefined"
@@ -131,35 +131,35 @@
azure_rm_aduser_info:
attribute_name: proxyAddresses
tenant: "{{ tenant_id }}"
- register: missing attribute_value
- ignore_errors: yes
+ register: missing_attribute_value
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- - "attribute_value is undefined"
+ - "missing_attribute_value is undefined"
- name: Missing attribute_name Should Fail
azure_rm_aduser_info:
attribute_value: SMTP:user@contoso.com
tenant: "{{ tenant_id }}"
- register: missing attribute_name
- ignore_errors: yes
+ register: missing_attribute_name
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- - "attribute_name is undefined"
+ - "missing_attribute_name is undefined"
- name: Using all with principal name should fail
azure_rm_aduser_info:
- all: True
+ all: true
user_principal_name: "{{ user_id }}"
tenant: "{{ tenant_id }}"
- register: using_all_with_principal_name
- ignore_errors: yes
+ register: using_all_with_principal_name
+ ignore_errors: true
- name: Assert task failed
- assert:
+ ansible.builtin.assert:
that:
- "using_all_with_principal_name is undefined"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/main.yml
index cf3f856ec..ff60ca681 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/main.yml
@@ -1,572 +1,578 @@
- - set_fact:
- rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
- noderpfx: "{{ resource_group | hash('md5') | truncate(4, True, '') }}"
-
- - include: minimal-cluster.yml
-
- - name: Find available k8s version
- azure_rm_aksversion_info:
- location: eastus
- register: versions
-
- - name: Create an AKS instance (check mode)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- node_labels: {"release":"stable"}
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- check_mode: yes
-
- - name: Check there is no AKS created
- azure_rm_aks_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- register: fact
-
- - name: Check there is no AKS created
- assert:
- that:
- - "fact.aks | length == 0"
-
- - name: Create an AKS instance
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- node_labels: {"release":"stable"}
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - output.changed
- - output.provisioning_state == 'Succeeded'
-
- - name: Get AKS fact
- azure_rm_aks_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- register: fact
-
- - name: Assert fact returns the created one
- assert:
- that:
- - "fact.aks | length == 1"
- - fact.aks[0].id == output.id
- - fact.aks[0].properties.agentPoolProfiles[0].availabilityZones == ["1", "2"]
- - fact.aks[0].properties.agentPoolProfiles[0].mode == "System"
- - fact.aks[0].properties.agentPoolProfiles[0].nodeLabels | length == 1
-
- - name: Update an AKS instance node_labels
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- node_labels: {"release":"stable", "environment":"dev"}
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Assert the AKS instance is well update
- assert:
- that:
- - output.changed
-
- - name: Get AKS fact
- azure_rm_aks_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- register: fact
-
- - name: Assert fact returns the created one
- assert:
- that:
- - "fact.aks | length == 1"
- - fact.aks[0].id == output.id
- - fact.aks[0].properties.agentPoolProfiles[0].nodeLabels | length == 2
-
- - name: Get AKS upgrade versions
- azure_rm_aksupgrade_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- register: upgrades
-
- - name: Assert available control-plane versions for upgrade
- assert:
- that:
- - "upgrades.azure_aks_upgrades.control_plane_profile.kubernetes_version == versions.azure_aks_versions[0]"
- - "upgrades.azure_aks_upgrades.control_plane_profile.upgrades | length > 0"
-
- - name: Create an AKS instance (idempotent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Assert idempotent
- assert:
- that:
- - not output.changed
-
- - name: Get available version
- azure_rm_aksversion_info:
- location: eastus
- version: "{{ versions.azure_aks_versions[0] }}"
- register: version1
-
- - name: Upgrade the AKS instance with addon
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- addon:
- http_application_routing: {}
- network_profile:
- network_plugin: kubenet
- load_balancer_sku: standard
- enable_rbac: yes
- register: output
-
- - name: Assert the AKS instance is upgraded
- assert:
- that:
- - output.changed
- - output.kubernetes_version == version1.azure_aks_versions[0]
- - output.addon.httpApplicationRouting.enabled == True
- - output.agent_pool_profiles[0].count == 1
- - output.network_profile.network_plugin == 'kubenet'
-
- - name: Upgrade the AKS instance with addon (idempontent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- addon:
- http_application_routing: {}
- network_profile:
- network_plugin: kubenet
- load_balancer_sku: standard
- enable_rbac: yes
- register: output
-
- - assert:
- that:
- - not output.changed
-
- - name: Upgrade the AKS instance with agent pool profiles
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
- ignore_errors: yes
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - output.changed
- - output.provisioning_state == 'Succeeded'
- ignore_errors: yes
-
- - name: Upgrade the AKS instance with agent pool profiles (idempontent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - not output.changed
-
- - name: Upgrade the AKS instance with multiple agent pool profiles
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- - name: default2
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: User
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
- ignore_errors: yes
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - output.changed
- - "output.agent_pool_profiles | length == 2"
- - output.provisioning_state == 'Succeeded'
- - output.agent_pool_profiles[1].mode == 'User'
- ignore_errors: yes
-
- - name: Upgrade the AKS instance with multiple agent pool profiles (idempontent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- - name: default2
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: User
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - not output.changed
-
- - name: Update the default2 agent_pool mode from User to System
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- - name: default2
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- ignore_errors: yes
- register: output
-
- - name: Assert the AKS instance is well created
- assert:
- that:
- - output.changed
- - "output.agent_pool_profiles | length == 2"
- - output.provisioning_state == 'Succeeded'
- - output.agent_pool_profiles[1].mode == 'System'
- ignore_errors: yes
-
- - name: Update the default2 agent_pool mode from User to System (idempontent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- location: eastus
- dns_prefix: "aks{{ rpfx }}"
- kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
- service_principal:
- client_id: "{{ azure_client_id }}"
- client_secret: "{{ azure_secret }}"
- linux_profile:
- admin_username: azureuser
- ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
- agent_pool_profiles:
- - name: default
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- enable_auto_scaling: True
- max_count: 6
- min_count: 1
- max_pods: 42
- availability_zones:
- - 1
- - 2
- - name: default2
- count: 1
- vm_size: Standard_B2s
- type: VirtualMachineScaleSets
- mode: System
- node_resource_group: "node{{ noderpfx }}"
- enable_rbac: yes
- network_profile:
- load_balancer_sku: standard
- register: output
-
- - name: Get AKS fact
- azure_rm_aks_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- show_kubeconfig: user
- register: fact
-
- - name: Assert fact returns the created one
- assert:
- that:
- - "fact.aks | length == 1"
- - fact.aks[0].kube_config == output.kube_config
-
- - name: Delete the AKS instance
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- state: absent
- register: output
-
- - name: Assert the AKS instance is well deleted
- assert:
- that:
- - output.changed
-
- - name: Delete the AKS instance (idempotent)
- azure_rm_aks:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- state: absent
- register: output
-
- - name: Assert idempotent
- assert:
- that:
- - not output.changed
-
- - name: Get AKS fact
- azure_rm_aks_info:
- name: "aks{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- register: fact
-
- - name: Assert fact returns empty
- assert:
- that:
- - "fact.aks | length == 0"
+- name: Set varialbles
+ ansible.builtin.set_fact:
+ rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
+ noderpfx: "{{ resource_group | hash('md5') | truncate(4, True, '') }}"
+
+- name: Include aks tasks
+ ansible.builtin.include_tasks: minimal-cluster.yml
+
+- name: Find available k8s version
+ azure_rm_aksversion_info:
+ location: eastus
+ register: versions
+
+- name: Create an AKS instance (check mode)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ node_labels: {"release":"stable"}
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ check_mode: true
+
+- name: Check there is no AKS created
+ azure_rm_aks_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ register: fact
+
+- name: Check there is no AKS created
+ ansible.builtin.assert:
+ that:
+ - "fact.aks | length == 0"
+
+- name: Create an AKS instance
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ node_labels: {"release":"stable"}
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.provisioning_state == 'Succeeded'
+
+- name: Get AKS fact
+ azure_rm_aks_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ register: fact
+
+- name: Assert fact returns the created one
+ ansible.builtin.assert:
+ that:
+ - "fact.aks | length == 1"
+ - fact.aks[0].id == output.id
+ - fact.aks[0].agent_pool_profiles[0].availability_zones == ["1", "2"]
+ - fact.aks[0].agent_pool_profiles[0].mode == "System"
+ - fact.aks[0].agent_pool_profiles[0].node_labels | length == 1
+
+- name: Update an AKS instance node_labels
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ node_labels: {"release":"stable", "environment":"dev"}
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Assert the AKS instance is well update
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Get AKS fact
+ azure_rm_aks_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ register: fact
+
+- name: Assert fact returns the created one
+ ansible.builtin.assert:
+ that:
+ - "fact.aks | length == 1"
+ - fact.aks[0].id == output.id
+ - fact.aks[0].agent_pool_profiles[0].node_labels | length == 2
+
+- name: Get AKS upgrade versions
+ azure_rm_aksupgrade_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ register: upgrades
+
+- name: Assert available control-plane versions for upgrade
+ ansible.builtin.assert:
+ that:
+ - "upgrades.azure_aks_upgrades.control_plane_profile.kubernetes_version == versions.azure_aks_versions[0]"
+ - "upgrades.azure_aks_upgrades.control_plane_profile.upgrades | length > 0"
+
+- name: Create an AKS instance (idempotent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Get available version
+ azure_rm_aksversion_info:
+ location: eastus
+ version: "{{ versions.azure_aks_versions[0] }}"
+ register: version1
+
+- name: Upgrade the AKS instance with addon
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ addon:
+ http_application_routing: {}
+ network_profile:
+ network_plugin: kubenet
+ load_balancer_sku: standard
+ enable_rbac: true
+ register: output
+
+- name: Assert the AKS instance is upgraded
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.kubernetes_version == version1.azure_aks_versions[0]
+ - output.addon.httpApplicationRouting.enabled == True
+ - output.agent_pool_profiles[0].count == 1
+ - output.network_profile.network_plugin == 'kubenet'
+
+- name: Upgrade the AKS instance with addon (idempontent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ addon:
+ http_application_routing: {}
+ network_profile:
+ network_plugin: kubenet
+ load_balancer_sku: standard
+ enable_rbac: true
+ register: output
+
+- name: Assert the aks idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Upgrade the AKS instance with agent pool profiles
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+ ignore_errors: true
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.provisioning_state == 'Succeeded'
+ ignore_errors: true
+ register: ignore_errors_register
+
+- name: Upgrade the AKS instance with agent pool profiles (idempontent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Upgrade the AKS instance with multiple agent pool profiles
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ - name: default2
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: User
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+ ignore_errors: true
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - "output.agent_pool_profiles | length == 2"
+ - output.provisioning_state == 'Succeeded'
+ - output.agent_pool_profiles[1].mode == 'User'
+ ignore_errors: true
+ register: ignore_errors_register
+
+- name: Upgrade the AKS instance with multiple agent pool profiles (idempontent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ - name: default2
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: User
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Update the default2 agent_pool mode from User to System
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ - name: default2
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ ignore_errors: true
+ register: output
+
+- name: Assert the AKS instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - "output.agent_pool_profiles | length == 2"
+ - output.provisioning_state == 'Succeeded'
+ - output.agent_pool_profiles[1].mode == 'System'
+ ignore_errors: true
+ register: ignore_errors_register
+
+- name: Update the default2 agent_pool mode from User to System (idempontent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus
+ dns_prefix: "aks{{ rpfx }}"
+ kubernetes_version: "{{ version1.azure_aks_versions[0] }}"
+ service_principal:
+ client_id: "{{ azure_client_id }}"
+ client_secret: "{{ azure_secret }}"
+ linux_profile:
+ admin_username: azureuser
+ ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible
+ agent_pool_profiles:
+ - name: default
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ enable_auto_scaling: true
+ max_count: 6
+ min_count: 1
+ max_pods: 42
+ availability_zones:
+ - 1
+ - 2
+ - name: default2
+ count: 1
+ vm_size: Standard_B2s
+ type: VirtualMachineScaleSets
+ mode: System
+ node_resource_group: "node{{ noderpfx }}"
+ enable_rbac: true
+ network_profile:
+ load_balancer_sku: standard
+ register: output
+
+- name: Get AKS fact
+ azure_rm_aks_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ show_kubeconfig: user
+ register: fact
+
+- name: Assert fact returns the created one
+ ansible.builtin.assert:
+ that:
+ - "fact.aks | length == 1"
+ - fact.aks[0].kube_config == output.kube_config
+
+- name: Delete the AKS instance
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
+ register: output
+
+- name: Assert the AKS instance is well deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Delete the AKS instance (idempotent)
+ azure_rm_aks:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
+ register: output
+
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Get AKS fact
+ azure_rm_aks_info:
+ name: "aks{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ register: fact
+
+- name: Assert fact returns empty
+ ansible.builtin.assert:
+ that:
+ - "fact.aks | length == 0"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml
index bda3c06ec..79362b384 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aks/tasks/minimal-cluster.yml
@@ -1,4 +1,5 @@
-- set_fact:
+- name: Set varialbles
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
- name: Find available k8s version
@@ -26,30 +27,30 @@
- "192.0.2.0"
- "198.51.100.0"
- "203.0.113.0"
- enable_private_cluster: no
+ enable_private_cluster: false
network_profile:
load_balancer_sku: standard
outbound_type: loadBalancer
register: output
- name: Assert the AKS instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.provisioning_state == 'Succeeded'
- name: Get AKS fact
azure_rm_aks_info:
- name: "minimal{{ rpfx }}"
- resource_group: "{{ resource_group }}"
+ name: "minimal{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
register: fact
- name: Assert fact returns the created one
- assert:
+ ansible.builtin.assert:
that:
- "fact.aks | length == 1"
- fact.aks[0].id == output.id
- - fact.aks[0].properties.aadProfile.managed == true
+ - fact.aks[0].aad_profile.managed == true
- name: Use minimal parameters and system-assigned identity (idempotent)
azure_rm_aks:
@@ -71,14 +72,14 @@
- "192.0.2.0"
- "198.51.100.0"
- "203.0.113.0"
- enable_private_cluster: no
+ enable_private_cluster: false
network_profile:
load_balancer_sku: standard
outbound_type: loadBalancer
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -101,14 +102,14 @@
- "192.0.2.0"
- "198.51.100.0"
- "203.0.113.0"
- enable_private_cluster: no
+ enable_private_cluster: false
network_profile:
load_balancer_sku: standard
outbound_type: loadBalancer
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -120,7 +121,7 @@
register: output
- name: Assert the AKS instance is well deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -131,6 +132,6 @@
register: fact
- name: Assert fact returns empty
- assert:
+ ansible.builtin.assert:
that:
- "fact.aks | length == 0"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml
index 1d098e7f1..26f71c211 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_aksagentpool/tasks/main.yml
@@ -1,4 +1,5 @@
-- set_fact:
+- name: Set varialbes
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
- name: Find available k8s version
@@ -26,7 +27,7 @@
- "192.0.2.0"
- "198.51.100.0"
- "203.0.113.0"
- enable_private_cluster: no
+ enable_private_cluster: false
network_profile:
load_balancer_sku: standard
outbound_type: loadBalancer
@@ -39,7 +40,7 @@
register: output
- name: Assert the cluster with one agent pool
- assert:
+ ansible.builtin.assert:
that:
- "output.aks_agent_pools | length == 1"
@@ -50,7 +51,7 @@
register: agentpool_version
- name: Assert the orchestrator version is not None
- assert:
+ ansible.builtin.assert:
that:
- "agentpool_version.azure_orchestrator_version | length >= 1"
@@ -65,7 +66,7 @@
mode: System
node_labels: {"release":"stable"}
max_pods: 42
- enable_auto_scaling: True
+ enable_auto_scaling: true
min_count: 1
max_count: 10
orchestrator_version: "{{ agentpool_version.azure_orchestrator_version[0] }}"
@@ -75,7 +76,7 @@
register: output
- name: Assert the node agent pool created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -90,7 +91,7 @@
mode: System
node_labels: {"release":"stable"}
max_pods: 42
- enable_auto_scaling: True
+ enable_auto_scaling: true
min_count: 1
max_count: 10
orchestrator_version: "{{ agentpool_version.azure_orchestrator_version[0] }}"
@@ -100,7 +101,7 @@
register: output
- name: Assert the node agent pool not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -111,7 +112,7 @@
register: output
- name: Assert node agent pool
- assert:
+ ansible.builtin.assert:
that:
- "output.aks_agent_pools | length == 2"
@@ -126,7 +127,7 @@
mode: System
node_labels: {"release":"stable"}
max_pods: 42
- enable_auto_scaling: True
+ enable_auto_scaling: true
min_count: 2
max_count: 20
orchestrator_version: "{{ agentpool_version.azure_orchestrator_version[0] }}"
@@ -136,7 +137,7 @@
register: output
- name: Assert the node agent pool udpated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -148,10 +149,9 @@
register: output
- name: Assert node agent configuration
- assert:
+ ansible.builtin.assert:
that:
- output.aks_agent_pools[0].availability_zones == [1, 2]
- - output.aks_agent_pools[0].count == 1
- output.aks_agent_pools[0].min_count == 2
- output.aks_agent_pools[0].max_count == 20
- output.aks_agent_pools[0].type_properties_type == "VirtualMachineScaleSets"
@@ -167,6 +167,6 @@
register: output
- name: Assert the node agent pool has deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagement/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagement/tasks/main.yml
index 72b5588c4..d7d9b5fc5 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagement/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagement/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
api_id: "myPolicy{{ resource_group | hash('md5') | truncate(23, True, '') }}"
service_name: "myService{{ resource_group | hash('md5') | truncate(22, True, '') }}"
display_name: test-api
path: myapipath
-- name: create API management service
+- name: Create API management service
azure_rm_apimanagementservice:
resource_group: "{{ resource_group }}"
name: "{{ service_name }}"
@@ -15,8 +15,9 @@
sku_capacity: 1
- name: Pause for 60 mimutes to create api mangement
- pause:
+ ansible.builtin.pause:
minutes: 60
+ changed_when: true
- name: Create a new API instance
azure_rm_apimanagement:
@@ -29,15 +30,15 @@
path: "{{ path }}"
protocols:
- https
- register: newApi
-
+ register: newapi
+
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- - newApi.changed == True
- - newApi.failed == False
+ - newapi.changed == True
+ - newapi.failed == False
-- name: Create a new API instance(Idempotent)
+- name: Create a new API instance Idempotent
azure_rm_apimanagement:
resource_group: "{{ resource_group }}"
service_name: "{{ service_name }}"
@@ -48,15 +49,15 @@
path: "{{ path }}"
protocols:
- https
- register: newApi_idempotent
+ register: newapi_idempotent
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- - newApi_idempotent.changed == False
- - newApi_idempotent.failed == False
+ - newapi_idempotent.changed == False
+ - newapi_idempotent.failed == False
-- name: Update API's protocols
+- name: Update protocols
azure_rm_apimanagement:
resource_group: "{{ resource_group }}"
service_name: "{{ service_name }}"
@@ -68,12 +69,12 @@
protocols:
- https
- http
- register: updateApi
+ register: updateapi
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- - updateApi.changed == True
+ - updateapi.changed == True
- name: Create different format api
azure_rm_apimanagement:
@@ -85,13 +86,13 @@
display_name: "{{ display_name }}-secondary"
protocols:
- https
- register: newOpenApi
+ register: newopenapi
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- - newOpenApi.changed == True
- - newOpenApi.failed == False
+ - newopenapi.changed == True
+ - newopenapi.failed == False
- name: Get api information
azure_rm_apimanagement_info:
@@ -101,7 +102,7 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.api.id != None
@@ -111,25 +112,25 @@
service_name: "{{ service_name }}"
api_id: "{{ api_id }}"
state: absent
- register: deleteApi
+ register: deleteapi
- name: Assert the changes
- assert:
+ ansible.builtin.assert:
that:
- - deleteApi.changed == True
+ - deleteapi.changed == True
-- name: Delete an api(Idempotent)
+- name: Delete an api Idempotent
azure_rm_apimanagement:
resource_group: "{{ resource_group }}"
service_name: "{{ service_name }}"
api_id: "{{ api_id }}"
state: absent
- register: deleteApi_idempotent
+ register: deleteapi_idempotent
- name: Assert the changes
- assert:
+ ansible.builtin.assert:
that:
- - deleteApi_idempotent.changed == False
+ - deleteapi_idempotent.changed == False
- name: Delete an api
azure_rm_apimanagement:
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml
index 48f5726d8..95e1952f9 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/meta/main.yml
@@ -1,2 +1,2 @@
dependencies:
- - setup_azure \ No newline at end of file
+ - setup_azure
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml
index 0dab04af8..01b3d982c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_apimanagementservice/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Fix resource prefix
- set_fact:
- name: "myPolicy{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "myPolicy{{ resource_group | hash('md5') | truncate(22, True, '') }}"
-- name: To create API Management service
+- name: To create api management service
azure_rm_apimanagementservice:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
publisher_email: user@example.com
publisher_name: Username
sku_name: Developer
@@ -13,15 +13,15 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == True
- output.failed == False
-- name: Recreate API Management service( Idempotent test)
+- name: Recreate api management service idempotent test
azure_rm_apimanagementservice:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
publisher_email: user@example.com
publisher_name: Username
sku_name: Developer
@@ -29,7 +29,7 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.failed == False
@@ -37,22 +37,22 @@
- name: Get api management service information
azure_rm_apimanagementservice_info:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- - output.api_management_service.name == "{{ name }}"
+ - output.api_management_service.name == "{{ name_rpfx }}"
- name: To delete an api management service
azure_rm_apimanagementservice:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
register: output
- name: Assert the changes
- assert:
+ ansible.builtin.assert:
that:
- output.changed == True
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appgateway/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appgateway/tasks/main.yml
index 1367300c7..b5584d2f5 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appgateway/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appgateway/tasks/main.yml
@@ -1,20 +1,20 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
cert1_file: "cert1.txt"
cert2_file: "cert2.txt"
cert3b64_file: "cert3b64.txt"
- run_once: yes
+ run_once: true
- name: Set json query to only retrieve gateways from this test
- set_fact:
+ ansible.builtin.set_fact:
query: "[?ends_with(name, `{{ rpfx }}`)]"
- run_once: yes
+ run_once: true
- name: Load app gateways
azure_rm_appgateway_info:
register: appgw_output
- name: Assert there are no gateways
- assert:
+ ansible.builtin.assert:
that:
- appgw_output.gateways | community.general.json_query(query) | length == 0
@@ -23,11 +23,11 @@
name: vnet{{ rpfx }}
resource_group: "{{ resource_group }}"
address_prefixes_cidr:
- - 10.1.0.0/16
- - 172.100.0.0/16
+ - 10.1.0.0/16
+ - 172.100.0.0/16
dns_servers:
- - 127.0.0.1
- - 127.0.0.2
+ - 127.0.0.1
+ - 127.0.0.2
register: vnet_output
- name: Create a subnet
azure_rm_subnet:
@@ -73,13 +73,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -97,29 +97,29 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- check_mode: yes
+ check_mode: true
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-- name: Create instance of Application Gateway
+- name: Create instance of application gateway
azure_rm_appgateway:
resource_group: "{{ resource_group }}"
name: "appgateway{{ rpfx }}"
@@ -155,13 +155,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -179,24 +179,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -206,7 +206,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert properties
- assert:
+ ansible.builtin.assert:
that:
- output.gateways | length == 1
- output.gateways[0].name == 'appgateway{{ rpfx }}'
@@ -222,7 +222,7 @@
check_mode: true
register: output
- name: Assert the resource instance is stopped
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -233,7 +233,7 @@
gateway_state: stopped
register: output
- name: Assert the resource instance is stopped
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.operational_state == 'Stopped'
@@ -245,7 +245,7 @@
gateway_state: stopped
register: output
- name: Assert the resource instance did not change
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.operational_state == 'Stopped'
@@ -258,7 +258,7 @@
check_mode: true
register: output
- name: Assert the resource instance is started
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -269,7 +269,7 @@
gateway_state: started
register: output
- name: Assert the resource instance is started
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.operational_state == 'Running'
@@ -281,7 +281,7 @@
gateway_state: started
register: output
- name: Assert the resource instance did not change
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.operational_state == 'Running'
@@ -322,13 +322,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -346,24 +346,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -403,13 +403,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 81
protocol: http
@@ -427,24 +427,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -488,13 +488,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 81
protocol: http
@@ -512,24 +512,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -539,7 +539,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert SSL config updated
- assert:
+ ansible.builtin.assert:
that:
- output.gateways[0].ssl_policy.policy_type == 'custom'
@@ -583,13 +583,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 81
protocol: http
@@ -607,24 +607,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -666,13 +666,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -690,24 +690,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -715,7 +715,7 @@
azure_rm_appgateway_info:
register: appgw_output
- name: Assert there are the correct number of gateways
- assert:
+ ansible.builtin.assert:
that:
- appgw_output.gateways | community.general.json_query(query) | length == 2
@@ -725,7 +725,7 @@
resource_group: "{{ resource_group }}"
register: appgw_output
- name: Assert there are the correct number of gateways
- assert:
+ ansible.builtin.assert:
that:
- appgw_output.gateways | community.general.json_query(query) | length == 1
- (appgw_output.gateways | community.general.json_query(query))[0].name == 'appgateway-subnet-lookup{{ rpfx }}'
@@ -769,13 +769,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
- pick_host_name_from_backend_http_settings: true
+ - name: custom_probe
+ protocol: http
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
+ pick_host_name_from_backend_http_settings: true
backend_http_settings_collection:
- port: 80
protocol: http
@@ -794,24 +794,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -852,13 +852,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
- pick_host_name_from_backend_http_settings: true
+ - name: custom_probe
+ protocol: http
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
+ pick_host_name_from_backend_http_settings: true
backend_http_settings_collection:
- port: 80
protocol: http
@@ -877,24 +877,24 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: sample_http_listener
name: rule1
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -903,7 +903,7 @@
resource_group: "{{ resource_group_secondary }}"
register: appgw_output
- name: Assert there are the correct number of gateways and they are the right ones
- assert:
+ ansible.builtin.assert:
that:
- appgw_output.gateways | community.general.json_query(query) | length == 1
- (appgw_output.gateways | community.general.json_query(query))[0].name == 'appgateway-probe-{{ rpfx }}'
@@ -914,7 +914,7 @@
resource_group: "{{ resource_group_secondary }}"
register: appgw_output
- name: Assert there are no results
- assert:
+ ansible.builtin.assert:
that:
- appgw_output.gateways | community.general.json_query(query) | length == 0
@@ -954,13 +954,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -982,7 +982,7 @@
http_listener: sample_http_listener
name: rule1
url_path_map: path_mappings
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
@@ -998,14 +998,14 @@
- "/abc"
- "/123/*"
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -1045,13 +1045,13 @@
- ip_address: 10.0.0.4
name: test_backend_address_pool
probes:
- - name: custom_probe
- protocol: http
- host: 10.0.0.4
- path: /healthz
- interval: 30
- timeout: 30
- unhealthy_threshold: 3
+ - name: custom_probe
+ protocol: http
+ host: 10.0.0.4
+ path: /healthz
+ interval: 30
+ timeout: 30
+ unhealthy_threshold: 3
backend_http_settings_collection:
- port: 80
protocol: http
@@ -1073,7 +1073,7 @@
http_listener: sample_http_listener
name: rule1
url_path_map: path_mappings
- - rule_type: Basic
+ - rule_type: basic
http_listener: http_listener
redirect_configuration: redirect_site_to_https
name: http_redirect_rule
@@ -1089,14 +1089,14 @@
- "/abc"
- "/123/*"
redirect_configurations:
- - redirect_type: permanent
- target_listener: sample_http_listener
- include_path: true
- include_query_string: true
- name: redirect_site_to_https
+ - redirect_type: permanent
+ target_listener: sample_http_listener
+ include_path: true
+ include_query_string: true
+ name: redirect_site_to_https
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -1192,20 +1192,20 @@
http_listener: "inbound-http"
redirect_configuration: "redirect-http"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1223,7 +1223,7 @@
- "path_mappings"
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -1319,20 +1319,20 @@
http_listener: "inbound-http"
redirect_configuration: "redirect-http"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1350,7 +1350,7 @@
- "path_mappings"
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -1481,20 +1481,20 @@
- header_name: "Foo"
header_value: "Bar"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1512,7 +1512,7 @@
- "path_mappings"
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -1636,20 +1636,20 @@
- header_name: "Foo"
header_value: "Bar"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1667,7 +1667,7 @@
- "path_mappings"
register: output
- name: Assert the resource instance is not updated
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -1794,20 +1794,20 @@
- header_name: "FooResponse"
header_value: "BarResponse"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1825,7 +1825,7 @@
- "path_mappings"
register: output
- name: Assert the resource instance is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -1877,8 +1877,8 @@
probe: "http-probe1"
cookie_based_affinity: "Disabled"
connection_draining:
- drain_timeout_in_sec: 60
- enabled: true
+ drain_timeout_in_sec: 60
+ enabled: true
trusted_root_certificates:
- "rootCert3"
- name: "http-profile2"
@@ -1960,20 +1960,20 @@
- header_name: "Foo"
header_value: "Bar"
probes:
- - name: "http-probe1"
- interval: 30
- path: "/abc"
- protocol: "https"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
- - name: "http-probe2"
- interval: 30
- path: "/xyz"
- protocol: "http"
- pick_host_name_from_backend_http_settings: true
- timeout: 30
- unhealthy_threshold: 2
+ - name: "http-probe1"
+ interval: 30
+ path: "/abc"
+ protocol: "https"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
+ - name: "http-probe2"
+ interval: 30
+ path: "/xyz"
+ protocol: "http"
+ pick_host_name_from_backend_http_settings: true
+ timeout: 30
+ unhealthy_threshold: 2
redirect_configurations:
- name: "redirect-http"
redirect_type: "permanent"
@@ -1992,7 +1992,7 @@
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2160,7 +2160,7 @@
register: output
- name: Assert the resource instance is not updated
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -2321,17 +2321,17 @@
url_path_maps:
- "path_mappings"
web_application_firewall_configuration:
- enabled: true
- firewall_mode: "Detection"
- rule_set_type: "OWASP"
- rule_set_version: "3.0"
- request_body_check: true
- max_request_body_size_in_kb: 128
- file_upload_limit_in_mb: 100
+ enabled: true
+ firewall_mode: "Detection"
+ rule_set_type: "OWASP"
+ rule_set_version: "3.0"
+ request_body_check: true
+ max_request_body_size_in_kb: 128
+ file_upload_limit_in_mb: 100
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2495,7 +2495,7 @@
register: output
- name: Assert the resource instance is not updated
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -2504,10 +2504,10 @@
resource_group: "{{ resource_group }}"
name: "appgateway{{ rpfx }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2518,7 +2518,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2529,7 +2529,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -2540,7 +2540,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2551,7 +2551,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2562,7 +2562,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2573,7 +2573,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2584,7 +2584,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2595,7 +2595,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2606,7 +2606,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -2617,7 +2617,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml
index 3e0906bfc..3c65aa299 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_appserviceplan/tasks/main.yml
@@ -1,29 +1,29 @@
- name: Prepare facts
- set_fact:
+ ansible.builtin.set_fact:
resource_prefix: "{{ resource_group_secondary | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Prepare facts
- set_fact:
+ ansible.builtin.set_fact:
linux_plan_resource_group: "{{ resource_group_secondary }}"
- win_plan_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}winplan"
- linux_plan_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}linplan"
- run_once: yes
+ win_plan_name: "{{ (resource_prefix | replace('-', 'x'))[-8:] }}winplan"
+ linux_plan_name: "{{ (resource_prefix | replace('-', 'x'))[-8:] }}linplan"
+ run_once: true
-- name: create a windows plan
+- name: Create a windows plan
azure_rm_appserviceplan:
name: "{{ win_plan_name }}1"
resource_group: "{{ resource_group }}"
sku: B1
register: output
-- name: assert app service was created
- assert:
+- name: Assert app service was created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
-- name: create a linux plan
+- name: Create a linux plan
azure_rm_appserviceplan:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}1"
@@ -32,25 +32,25 @@
number_of_workers: 1
register: output
-- name: assert app service was created
- assert:
+- name: Assert app service was created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
-- name: get app service plan by name
+- name: Get app service plan by name
azure_rm_appserviceplan_info:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}1"
register: output
-- name: assert is_linux is True
- assert:
+- name: Assert is_linux is True
+ ansible.builtin.assert:
that:
- output.appserviceplans | length == 1
- output.appserviceplans[0].is_linux == True
-- name: create linux app service plan idempotent
+- name: Create linux app service plan idempotent
azure_rm_appserviceplan:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}1"
@@ -59,23 +59,23 @@
number_of_workers: 1
register: output
-- name: assert app service is not updated
- assert:
+- name: Assert app service is not updated
+ ansible.builtin.assert:
that: not output.changed
-- name: update a windows plan sku
+- name: Update a windows plan sku
azure_rm_appserviceplan:
name: "{{ win_plan_name }}1"
resource_group: "{{ resource_group }}"
sku: B2
register: output
-- name: assert app service was updated
- assert:
+- name: Assert app service was updated
+ ansible.builtin.assert:
that:
- output.changed
-- name: update a linux plan number of workers
+- name: Update a linux plan number of workers
azure_rm_appserviceplan:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}1"
@@ -84,12 +84,12 @@
number_of_workers: 2
register: output
-- name: assert app service was updated
- assert:
+- name: Assert app service was updated
+ ansible.builtin.assert:
that:
- output.changed
-- name: create premium linux plan
+- name: Create premium linux plan
azure_rm_appserviceplan:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}-premium"
@@ -97,13 +97,13 @@
is_linux: true
register: output
-- name: assert app service was created
- assert:
+- name: Assert app service was created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
-- name: create premium linux plan idempotent
+- name: Create premium linux plan idempotent
azure_rm_appserviceplan:
resource_group: "{{ linux_plan_resource_group }}"
name: "{{ linux_plan_name }}-premium"
@@ -111,6 +111,6 @@
is_linux: true
register: output
-- name: assert app service is not updated
- assert:
+- name: Assert app service is not updated
+ ansible.builtin.assert:
that: not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml
index 1e00eb9ac..96e386733 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml
@@ -1,88 +1,95 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: "account{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ name_rpfx: "account{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ run_once: true
- name: Create automation account
azure_rm_automationaccount:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Check the check mode return
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
- name: Create automation account
azure_rm_automationaccount:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the account created
+ ansible.builtin.assert:
that:
- - output.changed
- - output.id
+ - output.changed
+ - output.id
- name: Create automation account
azure_rm_automationaccount:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the account already created
+ ansible.builtin.assert:
that:
- - not output.changed
+ - not output.changed
- name: Get automation account
azure_rm_automationaccount_info:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- list_statistics: yes
- list_usages: yes
- list_keys: yes
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ list_statistics: true
+ list_usages: true
+ list_keys: true
register: facts
-- assert:
+- name: Assert the account facts
+ ansible.builtin.assert:
that:
- - facts.automation_accounts | length == 1
- - facts.automation_accounts[0].keys
- - facts.automation_accounts[0].usages
- - facts.automation_accounts[0].statistics
- - facts.automation_accounts[0].state == "Ok"
+ - facts.automation_accounts | length == 1
+ - facts.automation_accounts[0].keys
+ - facts.automation_accounts[0].usages
+ - facts.automation_accounts[0].statistics
+ - facts.automation_accounts[0].state == "Ok"
- name: Delete account
azure_rm_automationaccount:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
- check_mode: yes
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
+ check_mode: true
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the account deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Delete account
azure_rm_automationaccount:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the account deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Delete account
azure_rm_automationaccount:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
register: output
-- assert:
- that:
- - not output.changed
+- name: Assert the account delete
+ ansible.builtin.assert:
+ that:
+ - not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml
index d6f7ba8a1..1901474c3 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_automationrunbook/tasks/main.yml
@@ -1,23 +1,23 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(10, True, '') }}"
- run_once: yes
+ run_once: true
- name: Create automation account
azure_rm_automationaccount:
name: "account-{{ rpfx }}"
resource_group: "{{ resource_group }}"
-- name: create automation runbook (check mode)
+- name: Create automation runbook (check mode)
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
name: "runbook-{{ rpfx }}"
runbook_type: "Script"
description: "Fred test"
- check_mode: yes
+ check_mode: true
-- name: create automation runbook with default parameters
+- name: Create automation runbook with default parameters
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
@@ -27,11 +27,11 @@
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-- name: create automation runbook with default parameters (idempotent)
+- name: Create automation runbook with default parameters (idempotent)
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
@@ -41,11 +41,11 @@
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
-- name: Create automation runbook with more paramters
+- name: Create automation runbook with more paramters
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
@@ -53,18 +53,18 @@
runbook_type: "Script"
description: "test"
log_activity_trace: 2
- log_progress: False
- log_verbose: True
- tags:
+ log_progress: false
+ log_verbose: true
+ tags:
key1: value1
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-- name: Update automation runbook with more paramters
+- name: Update automation runbook with more paramters
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
@@ -72,27 +72,27 @@
runbook_type: "Script"
description: "update"
log_activity_trace: 3
- log_progress: True
- log_verbose: False
- tags:
+ log_progress: true
+ log_verbose: false
+ tags:
key2: value2
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-- name: Publish automation runbook
+- name: Publish automation runbook
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
name: "runbook-{{ rpfx }}-secondary"
- publish: True
+ publish: true
register: output
- name: Assert the automation runbook is well published
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -104,7 +104,7 @@
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- output.automation_runbook[0].description == 'update'
- output.automation_runbook[0].log_activity_trace == 3
@@ -120,18 +120,18 @@
register: output
- name: Assert the automation runbook is well created
- assert:
+ ansible.builtin.assert:
that:
- output.automation_runbook | length == 2
-- name: delete automation runbook
+- name: Delete automation runbook
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
name: "runbook-{{ rpfx }}"
state: absent
-- name: delete automation runbook
+- name: Delete automation runbook
azure_rm_automationrunbook:
resource_group: "{{ resource_group }}"
automation_account_name: "account-{{ rpfx }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_autoscale/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_autoscale/tasks/main.yml
index 8c8f144dc..4a19ee340 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_autoscale/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_autoscale/tasks/main.yml
@@ -1,8 +1,8 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: "scale{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ name_rpfx: "scale{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ run_once: true
- name: Create virtual network
azure_rm_virtualnetwork:
@@ -35,9 +35,9 @@
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -46,157 +46,164 @@
managed_disk_type: Standard_LRS
register: vmss
-- name: create auto scaling (check mode)
+- name: Create auto scaling (check mode)
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
target: "{{ vmss.ansible_facts.azure_vmss.id }}"
enabled: true
profiles:
- - count: '1'
- recurrence_days:
- - Monday
- name: Auto created scale condition
- recurrence_timezone: China Standard Time
- recurrence_mins:
- - '0'
- min_count: '1'
- max_count: '1'
- recurrence_frequency: Week
- recurrence_hours:
- - '18'
- check_mode: yes
+ - count: '1'
+ recurrence_days:
+ - Monday
+ name: Auto created scale condition
+ recurrence_timezone: China Standard Time
+ recurrence_mins:
+ - '0'
+ min_count: '1'
+ max_count: '1'
+ recurrence_frequency: Week
+ recurrence_hours:
+ - '18'
+ check_mode: true
register: output
-- assert:
+- name: Assert check mode facts
+ ansible.builtin.assert:
that:
- output.changed
-- name: create auto scaling
+- name: Create auto scaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
target:
name: "testVMSS{{ rpfx }}"
types: "virtualMachineScaleSets"
namespace: "Microsoft.Compute"
enabled: true
profiles:
- - count: '1'
- recurrence_days:
- - Monday
- name: Auto created scale condition
- recurrence_timezone: China Standard Time
- recurrence_mins:
- - '0'
- min_count: '1'
- max_count: '1'
- recurrence_frequency: Week
- recurrence_hours:
- - '18'
+ - count: '1'
+ recurrence_days:
+ - Monday
+ name: Auto created scale condition
+ recurrence_timezone: China Standard Time
+ recurrence_mins:
+ - '0'
+ min_count: '1'
+ max_count: '1'
+ recurrence_frequency: Week
+ recurrence_hours:
+ - '18'
register: output
-- assert:
+- name: Assert the auto scale created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
-- name: create auto scaling (idemponent)
+- name: Create auto scaling (idemponent)
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
target: "{{ vmss.ansible_facts.azure_vmss.id }}"
enabled: true
profiles:
- - count: '1'
- recurrence_days:
- - Monday
- name: Auto created scale condition
- recurrence_timezone: China Standard Time
- recurrence_mins:
- - '0'
- min_count: '1'
- max_count: '1'
- recurrence_frequency: Week
- recurrence_hours:
- - '18'
+ - count: '1'
+ recurrence_days:
+ - Monday
+ name: Auto created scale condition
+ recurrence_timezone: China Standard Time
+ recurrence_mins:
+ - '0'
+ min_count: '1'
+ max_count: '1'
+ recurrence_frequency: Week
+ recurrence_hours:
+ - '18'
register: output
-- assert:
+- name: Assert the auto scale idempotent
+ ansible.builtin.assert:
that:
- not output.changed
- output.id
-- name: update auto scaling
+- name: Update auto scaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
target: "{{ vmss.ansible_facts.azure_vmss.id }}"
enabled: true
profiles:
- - count: '1'
- recurrence_days:
- - Monday
- name: Auto created scale condition 0
- rules:
- - time_aggregation: Average
- time_window: 10
- direction: Increase
- metric_name: Percentage CPU
- metric_resource_uri: "{{ vmss.ansible_facts.azure_vmss.id }}"
- value: '1'
- threshold: 70
- cooldown: 5
- time_grain: 1
- statistic: Average
- operator: GreaterThan
- type: ChangeCount
- max_count: '1'
- recurrence_mins:
- - '0'
- min_count: '1'
- recurrence_timezone: China Standard Time
- recurrence_frequency: Week
- recurrence_hours:
- - '6'
+ - count: '1'
+ recurrence_days:
+ - Monday
+ name: Auto created scale condition 0
+ rules:
+ - time_aggregation: Average
+ time_window: 10
+ direction: Increase
+ metric_name: Percentage CPU
+ metric_resource_uri: "{{ vmss.ansible_facts.azure_vmss.id }}"
+ value: '1'
+ threshold: 70
+ cooldown: 5
+ time_grain: 1
+ statistic: Average
+ operator: GreaterThan
+ type: ChangeCount
+ max_count: '1'
+ recurrence_mins:
+ - '0'
+ min_count: '1'
+ recurrence_timezone: China Standard Time
+ recurrence_frequency: Week
+ recurrence_hours:
+ - '6'
register: output
-- assert:
+- name: Assert the auto scale created
+ ansible.builtin.assert:
that:
- output.changed
- output.profiles[0].rules[0].metric_resource_uri == vmss.ansible_facts.azure_vmss.id
-- name: delete auto scaling (check mode)
+- name: Delete auto scaling (check mode)
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Assert the auto scaling deleted
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete auto scaling
+- name: Delete auto scaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
register: output
-- assert:
+- name: Assert the auto scaling deleted
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete auto scaling (idemponetent)
+- name: Delete auto scaling (idemponetent)
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
register: output
-- assert:
+- name: Assert the auto scaling deleted idempotent
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_availabilityset/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_availabilityset/tasks/main.yml
index 7dc00bf26..c1e42e9bc 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_availabilityset/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_availabilityset/tasks/main.yml
@@ -5,9 +5,10 @@
tags:
tag1: testtag
register: results
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the availability created
+ ansible.builtin.assert:
that: results.changed
- name: Create an availability set with default options
@@ -18,11 +19,12 @@
tag1: testtag
register: results
-- assert:
+- name: Assert the availability created
+ ansible.builtin.assert:
that: results.changed
- name: Create proximity placement group name
- set_fact:
+ ansible.builtin.set_fact:
ppgroup_name: "ppg{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create a proximity placement group
@@ -43,7 +45,8 @@
sku: Aligned
register: results
-- assert:
+- name: Assert the availability set created
+ ansible.builtin.assert:
that: results.changed
- name: Modify availabilty set immutable options - no changes, fail for immutable options
@@ -55,12 +58,13 @@
proximity_placement_group: "{{ ppgroup_name }}"
sku: Aligned
register: results
- ignore_errors: yes
+ ignore_errors: true
-- assert:
- that:
- - not results.changed
- - results.msg == 'You tried to change platform_update_domain_count but is was unsuccessful. An Availability Set is immutable, except tags'
+- name: Assert availabilty set modified
+ ansible.builtin.assert:
+ that:
+ - not results.changed
+ - results.msg == 'You tried to change platform_update_domain_count but is was unsuccessful. An Availability Set is immutable, except tags'
- name: Modify availabilty set immutable options and set tags - change tags and fail for immutable options
azure_rm_availabilityset:
@@ -73,12 +77,13 @@
tags:
test1: modified
register: results
- ignore_errors: yes
+ ignore_errors: true
-- assert:
- that:
- - not results.changed
- - results.msg == 'You tried to change platform_update_domain_count but is was unsuccessful. An Availability Set is immutable, except tags'
+- name: Assert the availabilty set idempotent
+ ansible.builtin.assert:
+ that:
+ - not results.changed
+ - results.msg == 'You tried to change platform_update_domain_count but is was unsuccessful. An Availability Set is immutable, except tags'
- name: Modify availabilty set options to update tags
azure_rm_availabilityset:
@@ -92,7 +97,8 @@
test2: modified
register: results
-- assert:
+- name: Assert availabilty set updated
+ ansible.builtin.assert:
that:
- results.state.tags.test2 == 'modified'
@@ -104,9 +110,10 @@
platform_fault_domain_count: 4
sku: Aligned
register: results
- ignore_errors: yes
+ ignore_errors: true
-- assert:
+- name: Assert the error return
+ ansible.builtin.assert:
{ that: "'The specified fault domain count 4 must fall in the range 1 to' in results['msg']" }
- name: Test check_mode
@@ -120,11 +127,12 @@
tags:
checktest1: modified1
checktest2: modified2
- check_mode: yes
+ check_mode: true
register: results
-- assert:
- that:
+- name: Assert the check mode test
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.checktest1 == 'modified1'
@@ -137,23 +145,25 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
- that:
+- name: Assert the availabilty set facts
+ ansible.builtin.assert:
+ that:
- not results.changed
- not results.failed
- - results.ansible_info.azure_availabilitysets[0].properties.platformFaultDomainCount == 2
- - results.ansible_info.azure_availabilitysets[0].properties.platformUpdateDomainCount == 5
+ - results.ansible_info.azure_availabilitysets[0].platform_fault_domain_count == 2
+ - results.ansible_info.azure_availabilitysets[0].platform_update_domain_count == 5
- results.ansible_info.azure_availabilitysets[0].sku == 'Aligned'
- - results.ansible_info.azure_availabilitysets[0].properties.proximityPlacementGroup.id.split('/')[-1] == ppgroup_name
+ - results.ansible_info.azure_availabilitysets[0].proximity_placement_group.id.split('/')[-1] == ppgroup_name
- name: Delete an availability set - Check Mode
azure_rm_availabilityset:
name: myavailabilityset1
resource_group: "{{ resource_group }}"
state: absent
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the availabilty set deleted
+ ansible.builtin.assert:
that:
- results.changed
@@ -168,9 +178,10 @@
name: myavailabilityset1
resource_group: "{{ resource_group }}"
state: absent
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert check mode return
+ ansible.builtin.assert:
that:
- not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml
index face59c2b..168e197bf 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_azurefirewall/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
virtual_network_name: myVirtualNetwork
subnet_name: AzureFirewallSubnet
public_ipaddress_name: myPublicIpAddress
@@ -28,21 +28,22 @@
- name: Create public IP address
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- allocation_method: Static
- name: "{{ public_ipaddress_name }}"
- sku: Standard
+ resource_group: "{{ resource_group }}"
+ allocation_method: Static
+ name: "{{ public_ipaddress_name }}"
+ sku: Standard
register: pip_output
-- debug:
+- name: Print the creating return
+ ansible.builtin.debug:
var: pip_output
- name: Create Azure Firewall
azure_rm_azurefirewall:
- resource_group: '{{resource_group}}'
- name: '{{azure_firewall_name}}'
- #tags:
- # key1: value1
+ resource_group: '{{ resource_group }}'
+ name: '{{ azure_firewall_name }}'
+ # tags:
+ # key1: value1
application_rule_collections:
- priority: 110
action: deny
@@ -101,18 +102,19 @@
name: azureFirewallIpConfiguration
register: output
-- debug:
+- name: Print the creating return
+ ansible.builtin.debug:
var: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Create Azure Firewall -- idempotent
azure_rm_azurefirewall:
- resource_group: '{{resource_group}}'
- name: '{{azure_firewall_name}}'
+ resource_group: '{{ resource_group }}'
+ name: '{{ azure_firewall_name }}'
application_rule_collections:
- priority: 110
action: deny
@@ -171,18 +173,19 @@
name: azureFirewallIpConfiguration
register: output
-- debug:
+- name: Print the return value
+ ansible.builtin.debug:
var: output
- name: Assert that output has not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Create Azure Firewall -- change something
azure_rm_azurefirewall:
- resource_group: '{{resource_group}}'
- name: '{{azure_firewall_name}}'
+ resource_group: '{{ resource_group }}'
+ name: '{{ azure_firewall_name }}'
application_rule_collections:
- priority: 110
action: deny
@@ -239,22 +242,23 @@
public_ip_address:
name: "{{ public_ipaddress_name }}"
name: azureFirewallIpConfiguration
- check_mode: yes
+ check_mode: true
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Get info of the Azure Firewall
azure_rm_azurefirewall_info:
- resource_group: '{{resource_group}}'
- name: '{{azure_firewall_name}}'
+ resource_group: '{{ resource_group }}'
+ name: '{{ azure_firewall_name }}'
register: output
-- assert:
- that:
+- name: Assert the azure firewall facts
+ ansible.builtin.assert:
+ that:
- not output.changed
- output.firewalls['id'] != None
- output.firewalls['name'] != None
@@ -267,11 +271,12 @@
- name: Delete Azure Firewall
azure_rm_azurefirewall:
- resource_group: '{{resource_group}}'
- name: '{{azure_firewall_name}}'
+ resource_group: '{{ resource_group }}'
+ name: '{{ azure_firewall_name }}'
state: absent
register: output
-- assert:
- that:
+- name: Assert the azure firewall deleted
+ ansible.builtin.assert:
+ that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/meta/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/meta/main.yml
index 48f5726d8..95e1952f9 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/meta/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/meta/main.yml
@@ -1,2 +1,2 @@
dependencies:
- - setup_azure \ No newline at end of file
+ - setup_azure
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml
index b8d0064f2..27ec031f2 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backupazurevm/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
resource_group: 'MyResourceGroup'
recovery_vault_name: 'MyRecoveryVault'
resource_id: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVM"
@@ -15,7 +15,7 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -30,10 +30,10 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-
+
- name: Stop protection but retain existing data
azure_rm_backupazurevm:
resource_group: "{{ resource_group }}"
@@ -44,7 +44,7 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -56,7 +56,7 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.response.id != None
- output.response.name != None
@@ -69,8 +69,8 @@
backup_policy_id: "{{ backup_policy_id }}"
state: "delete"
register: output
-
+
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml
index f57eed4a8..c37a7fefd 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_backuppolicy/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set Facts for Tests
- set_fact:
+ ansible.builtin.set_fact:
vault_name: "rsv{{ resource_group | hash('md5') | truncate(22, True, '') }}"
location: "eastus"
policy_name_daily: "bp-daily-policy-{{ resource_group | hash('md5') | truncate(22, True, '') }}"
@@ -34,13 +34,13 @@
register: backup_policy_exists
- name: Assert success on daily backup policy creation
- assert:
+ ansible.builtin.assert:
that:
- daily_policy_output.changed
- daily_policy_output.name == policy_name_daily
- name: Assert Policy Success Retrieving Info
- assert:
+ ansible.builtin.assert:
that:
- backup_policy_exists.id == daily_policy_output.id
- backup_policy_exists.location == daily_policy_output.location
@@ -62,7 +62,7 @@
register: daily_policy_output_update
- name: Assert success on update of daily policy
- assert:
+ ansible.builtin.assert:
that:
- daily_policy_output_update.changed
- daily_policy_output_update.name == policy_name_daily
@@ -86,7 +86,7 @@
register: weekly_policy_output
- name: Assert success on weekly backup policy creation
- assert:
+ ansible.builtin.assert:
that:
- weekly_policy_output.changed
- weekly_policy_output.name == policy_name_weekly
@@ -110,7 +110,7 @@
register: weekly_policy_output_update
- name: Assert success on update of weekly policy
- assert:
+ ansible.builtin.assert:
that:
- weekly_policy_output_update.changed
- weekly_policy_output_update.name == policy_name_weekly
@@ -124,7 +124,7 @@
register: daily_policy_output_delete
- name: Assert success on daily backup policy deletion
- assert:
+ ansible.builtin.assert:
that:
- daily_policy_output_delete.changed
@@ -137,7 +137,7 @@
register: weekly_policy_output_delete
- name: Assert success on weekly backup policy deletion
- assert:
+ ansible.builtin.assert:
that:
- weekly_policy_output_delete.changed
@@ -150,7 +150,7 @@
register: daily_policy_output_delete_idempotent
- name: Assert that there is no change after second deletion of daily backup policy
- assert:
+ ansible.builtin.assert:
that:
- not daily_policy_output_delete_idempotent.changed
@@ -163,6 +163,6 @@
register: weekly_policy_output_delete_idempotent
- name: Assert that there is no change after second deletion of weekly backup policy
- assert:
+ ansible.builtin.assert:
that:
- not weekly_policy_output_delete_idempotent.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_bastionhost/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_bastionhost/tasks/main.yml
index c9d9c23d7..e38f91eac 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_bastionhost/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_bastionhost/tasks/main.yml
@@ -1,8 +1,8 @@
- name: Set Bastion host name
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
-- name: create resource group
+- name: Create resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: eastus
@@ -36,7 +36,7 @@
azure_rm_publicipaddress_info:
resource_group: "{{ resource_group }}"
name: "pip{{ rpfx }}"
- register: publicIP_output
+ register: publicip_output
- name: Create bastion host (checkmode test)
azure_rm_bastionhost:
@@ -44,22 +44,22 @@
name: "bh{{ rpfx }}"
ip_configurations:
- name: testip_configuration
- subnet:
+ subnet:
id: "{{ subnet_output.state.id }}"
- public_ip_address:
- id: "{{ publicIP_output.publicipaddresses[0].id }}"
+ public_ip_address:
+ id: "{{ publicip_output.publicipaddresses[0].id }}"
private_ip_allocation_method: Dynamic
sku:
name: Standard
- enable_tunneling: False
- enable_shareable_link: False
- enable_ip_connect: False
- enable_file_copy: False
+ enable_tunneling: false
+ enable_shareable_link: false
+ enable_ip_connect: false
+ enable_file_copy: false
scale_units: 6
- disable_copy_paste: False
+ disable_copy_paste: false
tags:
key3: value3
- check_mode: yes
+ check_mode: true
register: output
- name: Create bastion host
@@ -68,25 +68,25 @@
name: "bh{{ rpfx }}"
ip_configurations:
- name: testip_configuration
- subnet:
+ subnet:
id: "{{ subnet_output.state.id }}"
- public_ip_address:
- id: "{{ publicIP_output.publicipaddresses[0].id }}"
+ public_ip_address:
+ id: "{{ publicip_output.publicipaddresses[0].id }}"
private_ip_allocation_method: Dynamic
sku:
name: Standard
- enable_tunneling: False
- enable_shareable_link: False
- enable_ip_connect: False
- enable_file_copy: False
+ enable_tunneling: false
+ enable_shareable_link: false
+ enable_ip_connect: false
+ enable_file_copy: false
scale_units: 6
- disable_copy_paste: False
+ disable_copy_paste: false
tags:
key3: value3
register: output
- name: Assert the bastion host created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -96,30 +96,32 @@
name: "bh{{ rpfx }}"
ip_configurations:
- name: testip_configuration
- subnet:
+ subnet:
id: "{{ subnet_output.state.id }}"
- public_ip_address:
- id: "{{ publicIP_output.publicipaddresses[0].id }}"
+ public_ip_address:
+ id: "{{ publicip_output.publicipaddresses[0].id }}"
private_ip_allocation_method: Dynamic
sku:
name: Standard
- enable_tunneling: False
- enable_shareable_link: False
- enable_ip_connect: False
- enable_file_copy: False
+ enable_tunneling: false
+ enable_shareable_link: false
+ enable_ip_connect: false
+ enable_file_copy: false
scale_units: 6
- disable_copy_paste: False
+ disable_copy_paste: false
tags:
key3: value3
register: output
- name: Assert the bastion host no changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Pause for 20 mimutes to Bastion host updating
- shell: sleep 1200
+ ansible.builtin.command:
+ sleep 1200
+ changed_when: true
- name: Update bastion host
azure_rm_bastionhost:
@@ -127,25 +129,25 @@
name: "bh{{ rpfx }}"
ip_configurations:
- name: testip_configuration
- subnet:
+ subnet:
id: "{{ subnet_output.state.id }}"
- public_ip_address:
- id: "{{ publicIP_output.publicipaddresses[0].id }}"
+ public_ip_address:
+ id: "{{ publicip_output.publicipaddresses[0].id }}"
private_ip_allocation_method: Dynamic
sku:
name: Basic
- enable_tunneling: True
- enable_shareable_link: True
- enable_ip_connect: True
- enable_file_copy: True
+ enable_tunneling: true
+ enable_shareable_link: true
+ enable_ip_connect: true
+ enable_file_copy: true
scale_units: 8
- disable_copy_paste: True
+ disable_copy_paste: true
tags:
key2: value2
register: output
- name: Assert the bastion host updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -154,9 +156,9 @@
resource_group: "{{ resource_group }}"
name: "bh{{ rpfx }}"
register: output
-
+
- name: Assert the bastion host is well create
- assert:
+ ansible.builtin.assert:
that:
- output.bastion_host[0].disable_copy_paste == true
- output.bastion_host[0].enable_file_copy == true
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_batchaccount/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_batchaccount/tasks/main.yml
index e62cb67cf..e56a572a7 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_batchaccount/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_batchaccount/tasks/main.yml
@@ -11,66 +11,80 @@
#
# ----------------------------------------------------------------------------
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
storage_account_name: "st{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
batch_account_name: "ba{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create Storage Account
azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ storage_account_name }}"
- location: eastus
- account_type: Standard_LRS
+ resource_group: "{{ resource_group }}"
+ name: "{{ storage_account_name }}"
+ location: eastus
+ account_type: Standard_LRS
- name: Create Batch Account
azure_rm_batchaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ batch_account_name }}"
- location: eastus
- auto_storage_account:
- name: "{{ storage_account_name }}"
- pool_allocation_mode: batch_service
+ resource_group: "{{ resource_group }}"
+ name: "{{ batch_account_name }}"
+ location: eastus
+ auto_storage_account:
+ name: "{{ storage_account_name }}"
+ pool_allocation_mode: batch_service
+ tags:
+ key1: value1
+ key2: value2
register: output
- name: Assert the resource was created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Create Batch Account -- idempotent
azure_rm_batchaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ batch_account_name }}"
- location: eastus
- auto_storage_account:
- name: "{{ storage_account_name }}"
- pool_allocation_mode: batch_service
+ resource_group: "{{ resource_group }}"
+ name: "{{ batch_account_name }}"
+ location: eastus
+ auto_storage_account:
+ name: "{{ storage_account_name }}"
+ pool_allocation_mode: batch_service
+ tags:
+ key1: value1
+ key2: value2
register: output
- name: Assert the resource was created
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
+- name: Get Batch Account facts
+ azure_rm_batchaccount_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ batch_account_name }}"
+ register: output
+
+- name: Assert the facts
+ ansible.builtin.assert:
+ that:
+ - output.batch_account | length == 1
+ - output.batch_account[0].tags | length == 2
+
- name: Delete Batch Account
azure_rm_batchaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ batch_account_name }}"
- location: eastus
- auto_storage_account:
- name: "{{ storage_account_name }}"
- pool_allocation_mode: batch_service
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ batch_account_name }}"
+ state: absent
register: output
- name: Assert that state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Clean up storage account
azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ storage_account_name }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ storage_account_name }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml
index 657881a50..92012c6f5 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cdnprofile/tasks/main.yml
@@ -1,90 +1,91 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
cdnprofilename: "cdnprofile{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
endpointname: "endpoint{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create a CDN profile(check mode)
azure_rm_cdnprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
- sku: standard_akamai
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
+ sku: standard_verizon
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ check_mode: true
- name: Check there is no CDN profile created
azure_rm_cdnprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
register: fact
- name: Check there is no CDN profile created
- assert: { that: "{{ fact.cdnprofiles | length }} == 0" }
+ ansible.builtin.assert:
+ { that: "{{ fact.cdnprofiles | length }} == 0" }
- name: Create a CDN profile
azure_rm_cdnprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
- sku: standard_akamai
- tags:
- testing: testing
- delete: on-exit
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
+ sku: standard_verizon
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
register: output
- name: Assert the CDN profile is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.id != ''
- name: Gather CDN profile facts
azure_rm_cdnprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
register: fact
- name: Assert fact returns the created one
- assert:
- that:
- - "fact.cdnprofiles | length == 1"
- - fact.cdnprofiles[0].sku == 'Standard_Akamai'
- - fact.cdnprofiles[0].tags.foo == 'bar'
+ ansible.builtin.assert:
+ that:
+ - "fact.cdnprofiles | length == 1"
+ - fact.cdnprofiles[0].sku == 'Standard_Verizon'
+ - fact.cdnprofiles[0].tags.foo == 'bar'
- name: Create a CDN profile (idempotent)
azure_rm_cdnprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
- sku: standard_akamai
- tags:
- testing: testing
- delete: on-exit
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
+ sku: standard_verizon
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Update the CDN profile
azure_rm_cdnprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
- sku: standard_akamai
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- baz: qux
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
+ sku: standard_verizon
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ baz: qux
register: output
- name: Assert the CDN profile is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -93,65 +94,65 @@
resource_group: "{{ resource_group }}"
name: "{{ cdnprofilename }}"
state: absent
- check_mode: yes
+ check_mode: true
- name: Gather CDN profile facts
azure_rm_cdnprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
register: fact
- name: Assert the CDN is still there
- assert:
- that:
- - "fact.cdnprofiles | length == 1"
- - fact.cdnprofiles[0].sku == 'Standard_Akamai'
- - fact.cdnprofiles[0].tags.foo == 'bar'
- - fact.cdnprofiles[0].tags.baz == 'qux'
+ ansible.builtin.assert:
+ that:
+ - "fact.cdnprofiles | length == 1"
+ - fact.cdnprofiles[0].sku == 'Standard_Verizon'
+ - fact.cdnprofiles[0].tags.foo == 'bar'
+ - fact.cdnprofiles[0].tags.baz == 'qux'
- name: Create a Azure CDN endpoint(check mode)
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- origins:
- - name: "org{{ endpointname }}"
- host_name: "www.google.com"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ origins:
+ - name: "org{{ endpointname }}"
+ host_name: "www.google.com"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ check_mode: true
- name: Create a Azure CDN endpoint
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- origins:
- - name: "org{{ endpointname }}"
- host_name: "www.google.com"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ origins:
+ - name: "org{{ endpointname }}"
+ host_name: "www.google.com"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
register: output
- name: Assert the Azure CDN endpoint is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.id
- name: Get facts of a Azure CDN endpoint
azure_rm_cdnendpoint_info:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
register: facts
- name: Assert facts output
- assert:
+ ansible.builtin.assert:
that:
- facts['cdnendpoints'] | length == 1
- facts['cdnendpoints'][0]['id']
@@ -164,93 +165,93 @@
- name: Create a Azure CDN endpoint(idempotent)
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- origins:
- - name: "org{{ endpointname }}"
- host_name: "www.google.com"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ origins:
+ - name: "org{{ endpointname }}"
+ host_name: "www.google.com"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Stop a Azure CDN endpoint
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- started: False
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ started: false
register: output
- name: Assert stopped
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Stop a Azure CDN endpoint(idempotent)
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- started: False
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ started: false
register: output
- name: Assert still stopped and not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Start a Azure CDN endpoint
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- started: True
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ started: true
register: output
- name: Assert started
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Update the Azure CDN endpoint
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- origin_path: /test/
- tags:
- testing: testing
- delete: on-exit
- foo: baz
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ origin_path: /test/
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: baz
register: output
- name: Assert the Azure CDN endpoint is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete a Azure CDN endpoint(check mode)
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- state: absent
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ state: absent
+ check_mode: true
- name: Delete a Azure CDN endpoint
azure_rm_cdnendpoint:
- resource_group: "{{ resource_group }}"
- name: "{{ endpointname }}"
- profile_name: "{{ cdnprofilename }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ endpointname }}"
+ profile_name: "{{ cdnprofilename }}"
+ state: absent
- name: Delete the CDN profile
azure_rm_cdnprofile:
@@ -260,17 +261,17 @@
register: output
- name: Assert the CDN profile is well deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Get CDN profile fact
azure_rm_cdnprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ cdnprofilename }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ cdnprofilename }}"
register: fact
- name: Assert fact returns empty
- assert:
+ ansible.builtin.assert:
that:
- "fact.cdnprofiles | length == 0"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml
index fefad59a8..bcc19ced0 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cognitivesearch/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create Azure Search name
- set_fact:
+ ansible.builtin.set_fact:
search_name: "search{{ resource_group | hash('md5') | truncate(16, True, '') }}"
search_name_secondary: "search{{ resource_group | hash('md5') | truncate(16, True, '') }}-secondary"
@@ -9,11 +9,11 @@
resource_group: "{{ resource_group }}"
hosting_mode: highDensity
register: invalid_hosting_name
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- invalid_hosting_name.failed == True
- name: Create invalid Azure Search - Partition Count High Density
@@ -24,11 +24,11 @@
hosting_mode: highDensity
partition_count: 4
register: invalid_partition_count
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- invalid_partition_count.failed == True
- name: Create invalid Azure Search - Partition Count
@@ -37,11 +37,11 @@
resource_group: "{{ resource_group }}"
partition_count: 7
register: invalid_partition_count
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- invalid_partition_count.failed == True
- name: Create invalid Azure Search - Replica Count
@@ -51,11 +51,11 @@
sku: standard
replica_count: 13
register: invalid_replica_count
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- invalid_replica_count.failed == True
- name: Create invalid Azure Search - Replica Count SKU basic
@@ -65,11 +65,11 @@
replica_count: 4
sku: basic
register: invalid_replica_count
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- invalid_replica_count.failed == True
- name: Create basic Azure Search
@@ -79,7 +79,7 @@
register: search_info
- name: Assert status succeeded and results
- assert:
+ ansible.builtin.assert:
that:
- search_info.changed
- search_info.state.id is defined
@@ -101,7 +101,7 @@
register: search_info_module
- name: Assert status succeeded and results
- assert:
+ ansible.builtin.assert:
that:
- search_info_module.search.id is defined
- search_info_module.search.identity.type == "None"
@@ -122,7 +122,7 @@
register: search_info
- name: Assert that idempotence is ok
- assert:
+ ansible.builtin.assert:
that:
- not search_info.changed
@@ -132,7 +132,7 @@
resource_group: "{{ resource_group }}"
state: absent
-- name: Create Azure Search '{{ search_name }}' not default parameters
+- name: Create Azure Search not default parameters
azure_rm_cognitivesearch:
name: "{{ search_name_secondary }}"
resource_group: "{{ resource_group }}"
@@ -150,7 +150,7 @@
register: search_info
- name: Assert status succeeded and results
- assert:
+ ansible.builtin.assert:
that:
- search_info.changed
- search_info.state.id is defined
@@ -164,7 +164,7 @@
- search_info.state.provisioning_state == "succeeded"
- search_info.state.status == "running"
-- name: Update Azure Search '{{ search_name }}' not default parameters (Idempotence)
+- name: Update Azure Search not default parameters (Idempotence)
azure_rm_cognitivesearch:
name: "{{ search_name_secondary }}"
resource_group: "{{ resource_group }}"
@@ -182,7 +182,7 @@
register: search_info
- name: Assert that idempotence is ok
- assert:
+ ansible.builtin.assert:
that:
- not search_info.changed
@@ -191,4 +191,3 @@
name: "{{ search_name_secondary }}"
resource_group: "{{ resource_group }}"
state: absent
-
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerinstance/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerinstance/tasks/main.yml
index 44bb852a5..d8bd5f36e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerinstance/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerinstance/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set Container Instance Names
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Create sample container instance
@@ -20,11 +20,12 @@
- 81
register: output
-- debug:
+- name: Print the created results
+ ansible.builtin.debug:
var: output
- name: Assert the container instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.provisioning_state == 'Succeeded'
@@ -48,7 +49,7 @@
register: output
- name: Assert the container instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
@@ -68,11 +69,11 @@
ports:
- 80
- 81
- force_update: yes
+ force_update: true
register: output
- name: Assert the container instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.provisioning_state == 'Succeeded'
@@ -142,7 +143,7 @@
register: output
- name: Assert the container instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -150,13 +151,14 @@
azure_rm_containerinstance_info:
resource_group: "{{ resource_group }}"
name: "aci{{ rpfx }}sec"
- register: output
+ register: output
-- debug:
+- name: Print the container instance facts
+ ansible.builtin.debug:
var: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.containerinstances[0]['resource_group'] != None
@@ -175,7 +177,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.containerinstances[0]['resource_group'] != None
@@ -219,32 +221,37 @@
share_name: "{{ file_share_name }}"
storage_account_key: "{{ storage_account_key }}"
register: output
- ignore_errors: True
+ ignore_errors: true
-- debug:
+- name: Print failed return
+ ansible.builtin.debug:
var: output
- ignore_errors: True
+ ignore_errors: true
+ register: ignore_errors_register
- name: Assert the container instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.provisioning_state == 'Succeeded'
- ignore_errors: True
+ register: ignore_errors_register
+ ignore_errors: true
- name: Gather facts for Container Instance
azure_rm_containerinstance_info:
resource_group: "{{ resource_group }}"
name: "aci{{ rpfx }}thi"
register: output
- ignore_errors: True
+ ignore_errors: true
-- debug:
+- name: Assert the container instance facts
+ ansible.builtin.debug:
var: output
- ignore_errors: True
+ ignore_errors: true
+ register: ignore_errors_register
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.containerinstances[0]['resource_group'] != None
@@ -258,7 +265,8 @@
- output.containerinstances[0]['containers'][0]['volume_mounts'] | length == 1
- output.containerinstances[0]['containers'][0]['volume_mounts'][0]['name'] != None
- output.containerinstances[0]['containers'][0]['volume_mounts'][0]['mount_path'] != None
- ignore_errors: True
+ ignore_errors: true
+ register: ignore_errors_register
- name: Remove container instance
azure_rm_containerinstance:
@@ -287,7 +295,7 @@
storage_account_key: "{{ storage_account_key }}"
state: absent
register: output
- ignore_errors: True
+ ignore_errors: true
- name: Remove container instance
azure_rm_containerinstance:
@@ -309,7 +317,7 @@
register: output
- name: Assert the container instance is deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -351,6 +359,6 @@
register: output
- name: Assert the changed is false
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistry/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistry/tasks/main.yml
index 7c83c5c5d..b474b0e1f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistry/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistry/tasks/main.yml
@@ -1,116 +1,116 @@
- - name: Create an container registry
- azure_rm_containerregistry:
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus2
- admin_user_enabled: true
- sku: Premium
- tags:
- Release: beta1
- Environment: Production
- register: output
+- name: Create an container registry
+ azure_rm_containerregistry:
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus2
+ admin_user_enabled: true
+ sku: Premium
+ tags:
+ Release: beta1
+ Environment: Production
+ register: output
- - name: Assert the container registry instance is well created
- assert:
- that:
- - output.changed
- - output.admin_user_enabled
- - output.location == 'eastus2'
- - output.sku == 'Premium'
- - output.tags['Environment'] == 'Production'
- - output.tags['Release'] == 'beta1'
- - output.provisioning_state == 'Succeeded'
- - output.credentials['password'] is defined
- - output.credentials['password2'] is defined
+- name: Assert the container registry instance is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.admin_user_enabled
+ - output.location == 'eastus2'
+ - output.sku == 'Premium'
+ - output.tags['Environment'] == 'Production'
+ - output.tags['Release'] == 'beta1'
+ - output.provisioning_state == 'Succeeded'
+ - output.credentials['password'] is defined
+ - output.credentials['password2'] is defined
- - name: Update the ACR instance sku, tags and admin_user_enabled
- azure_rm_containerregistry:
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- location: eastus2
- admin_user_enabled: false
- sku: Standard
- tags:
- NewTag: newtag
- Release: beta1
- Environment: Production
- register: output
+- name: Update the ACR instance sku, tags and admin_user_enabled
+ azure_rm_containerregistry:
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ location: eastus2
+ admin_user_enabled: false
+ sku: Standard
+ tags:
+ NewTag: newtag
+ Release: beta1
+ Environment: Production
+ register: output
- - name: Create second container registry (to test facts)
- azure_rm_containerregistry:
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}sec"
- resource_group: "{{ resource_group }}"
- location: eastus2
- admin_user_enabled: false
- sku: Premium
- tags:
- Release: beta1
- Environment: Production
+- name: Create second container registry (to test facts)
+ azure_rm_containerregistry:
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}sec"
+ resource_group: "{{ resource_group }}"
+ location: eastus2
+ admin_user_enabled: false
+ sku: Premium
+ tags:
+ Release: beta1
+ Environment: Production
- - name: Assert the ACR instance is well updated
- assert:
- that:
- - output.changed == True
- - output.admin_user_enabled == False
- - output.sku == 'Standard'
- - output.tags['NewTag'] == 'newtag'
- - output.credentials | length == 0
- - output.credentials['password'] is not defined
- - output.credentials['password2'] is not defined
+- name: Assert the ACR instance is well updated
+ ansible.builtin.assert:
+ that:
+ - output.changed == True
+ - output.admin_user_enabled == False
+ - output.sku == 'Standard'
+ - output.tags['NewTag'] == 'newtag'
+ - output.credentials | length == 0
+ - output.credentials['password'] is not defined
+ - output.credentials['password2'] is not defined
- - name: Gather facts for single Container Registry
- azure_rm_containerregistry_info:
- resource_group: "{{ resource_group }}"
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- register: output
+- name: Gather facts for single Container Registry
+ azure_rm_containerregistry_info:
+ resource_group: "{{ resource_group }}"
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ register: output
- - name: Assert that facts are returned
- assert:
- that:
- - output.changed == False
- - output.registries[0]['name'] != None
- - output.registries[0]['location'] != None
- - output.registries[0]['admin_user_enabled'] != None
- - output.registries[0]['sku'] != None
- - output.registries[0]['provisioning_state'] != None
- - output.registries[0]['login_server'] != None
- - output.registries[0]['id'] != None
- - output.registries[0]['credentials'] != None
+- name: Assert that facts are returned
+ ansible.builtin.assert:
+ that:
+ - output.changed == False
+ - output.registries[0]['name'] != None
+ - output.registries[0]['location'] != None
+ - output.registries[0]['admin_user_enabled'] != None
+ - output.registries[0]['sku'] != None
+ - output.registries[0]['provisioning_state'] != None
+ - output.registries[0]['login_server'] != None
+ - output.registries[0]['id'] != None
+ - output.registries[0]['credentials'] != None
- - name: Gather facts for all Container Registries in the resource group
- azure_rm_containerregistry_info:
- resource_group: "{{ resource_group }}"
- register: output
+- name: Gather facts for all Container Registries in the resource group
+ azure_rm_containerregistry_info:
+ resource_group: "{{ resource_group }}"
+ register: output
- - name: Assert that facts are returned
- assert:
- that:
- - output.changed == False
- - output.registries[0]['name'] != None
- - output.registries[0]['location'] != None
- - output.registries[0]['admin_user_enabled'] != None
- - output.registries[0]['sku'] != None
- - output.registries[0]['provisioning_state'] != None
- - output.registries[0]['login_server'] != None
- - output.registries[0]['id'] != None
- - output.registries[0]['credentials'] != None
- - output.registries[1]['name'] != None
- - output.registries[1]['location'] != None
- - output.registries[1]['admin_user_enabled'] != None
- - output.registries[1]['sku'] != None
- - output.registries[1]['provisioning_state'] != None
- - output.registries[1]['login_server'] != None
- - output.registries[1]['id'] != None
- - output.registries[1]['credentials'] != None
+- name: Assert that facts are returned
+ ansible.builtin.assert:
+ that:
+ - output.changed == False
+ - output.registries[0]['name'] != None
+ - output.registries[0]['location'] != None
+ - output.registries[0]['admin_user_enabled'] != None
+ - output.registries[0]['sku'] != None
+ - output.registries[0]['provisioning_state'] != None
+ - output.registries[0]['login_server'] != None
+ - output.registries[0]['id'] != None
+ - output.registries[0]['credentials'] != None
+ - output.registries[1]['name'] != None
+ - output.registries[1]['location'] != None
+ - output.registries[1]['admin_user_enabled'] != None
+ - output.registries[1]['sku'] != None
+ - output.registries[1]['provisioning_state'] != None
+ - output.registries[1]['login_server'] != None
+ - output.registries[1]['id'] != None
+ - output.registries[1]['credentials'] != None
- - name: Delete first container registry
- azure_rm_containerregistry:
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- resource_group: "{{ resource_group }}"
- state: absent
+- name: Delete first container registry
+ azure_rm_containerregistry:
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
- - name: Delete second container registry
- azure_rm_containerregistry:
- name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}sec"
- resource_group: "{{ resource_group }}"
- state: absent
+- name: Delete second container registry
+ azure_rm_containerregistry:
+ name: "acr{{ resource_group | hash('md5') | truncate(7, True, '') }}sec"
+ resource_group: "{{ resource_group }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml
index 6f90bcddf..eec64c3bb 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_containerregistrytag/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: true
@@ -16,7 +16,7 @@
registry: "acr{{ rpfx }}"
register: output
- name: Verify no tags exist
- assert:
+ ansible.builtin.assert:
that: output.repositories | length == 0
- name: Load all tags for non-existant repository
@@ -25,7 +25,7 @@
repository_name: "does-not-exist"
register: output
- name: Verify no tags exist
- assert:
+ ansible.builtin.assert:
that: output.repositories | length == 0
- name: Import tag (check mode)
@@ -40,7 +40,7 @@
check_mode: true
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import tag (actually import)
@@ -54,7 +54,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import tag (test idempotency)
@@ -68,7 +68,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Import additional tag
@@ -82,7 +82,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import additional tag
@@ -96,7 +96,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import additional tag
@@ -110,7 +110,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Load all tags
@@ -118,7 +118,7 @@
registry: "acr{{ rpfx }}"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 2
- output.repositories[0].name == 'app1'
@@ -136,7 +136,7 @@
repository_name: "app2"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 1
- output.repositories[0].name == 'app2'
@@ -152,7 +152,7 @@
name: "test-image"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 1
- output.repositories[0].name == 'app2'
@@ -165,7 +165,7 @@
name: "v1"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 2
- output.repositories[0].name == 'app1'
@@ -184,7 +184,7 @@
check_mode: true
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Delete tag by name (actually delete)
@@ -195,7 +195,7 @@
state: "absent"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Delete tag by name (test idempotency)
@@ -206,7 +206,7 @@
state: "absent"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Load tags by repository
@@ -215,7 +215,7 @@
repository_name: "app2"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 1
- output.repositories[0].name == 'app2'
@@ -231,7 +231,7 @@
check_mode: true
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Delete repository (actually delete)
@@ -241,7 +241,7 @@
state: "absent"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Delete repository (test idempotency)
@@ -251,7 +251,7 @@
state: "absent"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Load all tags
@@ -259,7 +259,7 @@
registry: "acr{{ rpfx }}"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 1
- output.repositories[0].name == 'app1'
@@ -275,7 +275,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import tag with same name (test idempotency)
@@ -287,7 +287,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Import tag with different repo, same name
@@ -300,7 +300,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import tag with different repo, same name (test idempotency)
@@ -313,7 +313,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Import tag with different name, same repo
@@ -326,7 +326,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Import tag with different name, same repo (test idempotency)
@@ -339,7 +339,7 @@
name: "latest"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Load all tags
@@ -347,7 +347,7 @@
registry: "acr{{ rpfx }}"
register: output
- name: Assert tags exist
- assert:
+ ansible.builtin.assert:
that:
- output.repositories | length == 2
- output.repositories[0].name == 'app1'
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml
index ca1cc8b90..5e1f3f4d8 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
dbname: "cosmos-{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
db2name: "cosmos2-{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
vnname: "vn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
subnetname: "subnet{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
free_tier_supported: false # https://github.com/ansible-collections/azure/pull/675#discussion_r843584406
- run_once: yes
+ run_once: true
- name: Create virtual network
azure_rm_virtualnetwork:
@@ -34,10 +34,10 @@
- name: eastasia
failover_priority: 0
database_account_offer_type: Standard
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -53,16 +53,16 @@
- name: westus
failover_priority: 1
database_account_offer_type: Standard
- is_virtual_network_filter_enabled: yes
+ is_virtual_network_filter_enabled: true
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
- ignore_missing_v_net_service_endpoint: yes
+ ignore_missing_v_net_service_endpoint: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -78,16 +78,16 @@
- name: westus
failover_priority: 1
database_account_offer_type: Standard
- is_virtual_network_filter_enabled: yes
+ is_virtual_network_filter_enabled: true
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
- ignore_missing_v_net_service_endpoint: yes
+ ignore_missing_v_net_service_endpoint: true
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -103,17 +103,17 @@
- name: westus
failover_priority: 1
database_account_offer_type: Standard
- is_virtual_network_filter_enabled: yes
+ is_virtual_network_filter_enabled: true
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
- ignore_missing_v_net_service_endpoint: yes
- enable_automatic_failover: yes
+ ignore_missing_v_net_service_endpoint: true
+ enable_automatic_failover: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -129,16 +129,16 @@
- name: westus
failover_priority: 1
database_account_offer_type: Standard
- is_virtual_network_filter_enabled: yes
+ is_virtual_network_filter_enabled: true
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
- ignore_missing_v_net_service_endpoint: yes
+ ignore_missing_v_net_service_endpoint: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -148,7 +148,7 @@
name: "{{ dbname }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.accounts | length == 1
@@ -184,7 +184,7 @@
retrieve_keys: all
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.accounts[0]['primary_master_key'] != None
@@ -197,10 +197,10 @@
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
retrieve_keys: readonly
- retrieve_connection_strings: yes
+ retrieve_connection_strings: true
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- "'primary_master_key' not in output.accounts[0]"
@@ -214,7 +214,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.accounts | length == 1
@@ -247,7 +247,7 @@
azure_rm_cosmosdbaccount_info:
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.accounts | length >= 2
@@ -272,17 +272,17 @@
- name: westus
failover_priority: 1
database_account_offer_type: Standard
- is_virtual_network_filter_enabled: yes
+ is_virtual_network_filter_enabled: true
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
- ignore_missing_v_net_service_endpoint: yes
- enable_automatic_failover: yes
+ ignore_missing_v_net_service_endpoint: true
+ enable_automatic_failover: true
register: output
- name: Assert resource created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -292,7 +292,7 @@
name: "{{ dbname }}-free4"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.accounts[0]['mongo_version'] == '4.0'
- output.accounts[0]['enable_free_tier'] == free_tier_supported
@@ -307,10 +307,10 @@
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -321,7 +321,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -332,7 +332,7 @@
state: absent
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -343,7 +343,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -354,7 +354,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datafactory/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datafactory/tasks/main.yml
index 25afbe8bb..5e6295247 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datafactory/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datafactory/tasks/main.yml
@@ -1,76 +1,79 @@
- name: Create data factory name
- set_fact:
- name: "df{{ resource_group | hash('md5') | truncate(21, True, '') }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "df{{ resource_group | hash('md5') | truncate(21, True, '') }}"
- name: Create data factory (Checkmode)
azure_rm_datafactory:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
public_network_access: Enabled
tags:
key1: value1
- check_mode: True
+ check_mode: true
-- name: Create data factory
+- name: Create data factory
azure_rm_datafactory:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
public_network_access: Enabled
tags:
key1: value1
register: output
-- assert:
+- name: Assert the data factory created
+ ansible.builtin.assert:
that:
- output.changed
- name: Create data factory again (Idempotent test)
azure_rm_datafactory:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
public_network_access: Enabled
tags:
key1: value1
register: output
-- assert:
+- name: Assert the idempotent success
+ ansible.builtin.assert:
that:
- not output.changed
- name: Update data factory
azure_rm_datafactory:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
public_network_access: Disabled
tags:
key1: value1
key2: value2
register: output
-- assert:
+- name: Assert the data factory updated
+ ansible.builtin.assert:
that:
- output.changed
- name: Get data factory info
azure_rm_datafactory_info:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
register: output
- name: Assert status succeed and result match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.datafactory[0].tags | length == 2
- output.datafactory[0].public_network_access == 'Disabled'
-
- name: Delete data factory
azure_rm_datafactory:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
register: output
-- assert:
+- name: Assert the data factory deleted
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datalakestore/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datalakestore/tasks/main.yml
index 1b9e2409b..c72dfc2ce 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datalakestore/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_datalakestore/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create data lake store name
- set_fact:
+ ansible.builtin.set_fact:
adl_name: "adl{{ resource_group_datalake | hash('md5') | truncate(21, True, '') }}"
vnet_name: "vnet{{ resource_group_datalake | hash('md5') | truncate(20, True, '') }}"
@@ -28,7 +28,7 @@
register: output
- name: Assert status succeeded and results
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id is defined
@@ -52,7 +52,7 @@
register: output
- name: Assert that status has not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -66,7 +66,7 @@
register: output
- name: Assert status succeeded and results include virtual_network_rules
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.virtual_network_rules | length == 1
@@ -79,13 +79,13 @@
name: "{{ adl_name }}"
encryption_state: Disabled
register: output
- ignore_errors: yes
+ ignore_errors: true
- name: Assert that encryption state cannot change
- assert:
- that:
- - not output.changed
- - output.msg == 'Encryption type cannot be updated.'
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+ - output.msg == 'Encryption type cannot be updated.'
- name: Update data lake store to add new_tier
azure_rm_datalakestore:
@@ -95,7 +95,7 @@
register: output
- name: Assert status succeeded and results include virtual_network_rules
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.current_tier == "Consumption"
@@ -122,12 +122,10 @@
firewall_state: Enabled
firewall_allow_azure_ips: Enabled
firewall_rules:
- -
- name: test_rule_1
+ - name: test_rule_1
start_ip_address: 192.168.1.1
end_ip_address: 192.168.1.254
- -
- name: test_rule_2
+ - name: test_rule_2
start_ip_address: 10.0.0.1
end_ip_address: 10.1.0.1
virtual_network_rules:
@@ -135,8 +133,8 @@
subnet_id: "{{ subnet_output.state.id }}"
register: output
-- name: Assert status succeeded and results include an Id value
- assert:
+- name: Assert status succeeded and results include an Id value
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id is defined
@@ -172,12 +170,10 @@
firewall_state: Enabled
firewall_allow_azure_ips: Enabled
firewall_rules:
- -
- name: test_rule_1
+ - name: test_rule_1
start_ip_address: 192.168.1.1
end_ip_address: 192.168.1.254
- -
- name: test_rule_2
+ - name: test_rule_2
start_ip_address: 10.0.0.1
end_ip_address: 10.1.0.1
virtual_network_rules:
@@ -186,7 +182,7 @@
register: output
- name: Assert that status has not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml
index cf34ae763..50fd77acf 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/meta/main.yml
@@ -1,2 +1,2 @@
dependencies:
- - setup_azure \ No newline at end of file
+ - setup_azure
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml
index a61003680..f51a7b91c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ddosprotectionplan/tasks/main.yml
@@ -1,16 +1,17 @@
- name: Create random ddos protection plan
- set_fact:
- ddosprotectionplan: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
+ ansible.builtin.set_fact:
+ ddosprotectionplan: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create DDoS protection plan (check mode)
azure_rm_ddosprotectionplan:
location: eastus2
name: "{{ ddosprotectionplan }}"
resource_group: "{{ resource_group }}"
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the ddos protection check mode return
+ ansible.builtin.assert:
that: results.changed
- name: Create DDoS protection plan
@@ -20,7 +21,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert the ddos protection created
+ ansible.builtin.assert:
that: results.changed
- name: Update DDoS protection plan
@@ -32,8 +34,9 @@
test: modified
register: results
-- assert:
- that:
+- name: Assert the ddos protection updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
@@ -44,8 +47,8 @@
register: results
- name: Assert that facts module returned result
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.ddosprotectionplan[0].tags.test == 'modified'
- name: Test idempotent
@@ -55,7 +58,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert the ddos protection created
+ ansible.builtin.assert:
that:
- not results.changed
@@ -78,5 +82,6 @@
state: absent
register: results
-- assert:
+- name: Assert the ddos protection plan deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_deployment/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_deployment/tasks/main.yml
index 7e83a4c28..f2ed58b15 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_deployment/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_deployment/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random dns label
- set_fact:
+ ansible.builtin.set_fact:
dns_label: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Error Create Azure Deploy
@@ -18,7 +18,7 @@
ubuntuOSVersion:
value: "Never-LTS"
register: output
- ignore_errors: yes
+ ignore_errors: true
- name: Create Azure Deploy
azure_rm_deployment:
@@ -38,7 +38,7 @@
register: output
- name: Add new instance to host group
- add_host:
+ ansible.builtin.add_host:
hostname: "{{ item.vm_name }}"
ansible_host: "{{ item['ips'][0].public_ip }}"
ansible_user: chouseknecht
@@ -50,7 +50,8 @@
azure_rm_deployment_info:
resource_group: "{{ resource_group }}"
register: output
-- debug:
+- name: Print the deployment facts
+ ansible.builtin.debug:
var: output
- name: Get Deployment Facts for named deployment
@@ -58,11 +59,12 @@
resource_group: "{{ resource_group }}"
name: "{{ dns_label }}"
register: output
-- debug:
+- name: Print the deployment facts
+ ansible.builtin.debug:
var: output
- name: Assert that values are returned
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.deployments[0]['provisioning_state'] != None
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml
index 87d63ad88..47d32dc70 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set devtest labe value
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(20, True, '') }}"
- name: Create a DevTest Lab (check mode)
@@ -10,7 +10,7 @@
premium_data_disks: true
tags:
key1: value1
- check_mode: yes
+ check_mode: true
- name: Create a DevTest Lab
azure_rm_devtestlab:
@@ -23,7 +23,7 @@
register: output
- name: Check the devtest lab changed
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a DevTest Lab (Idempotent test)
@@ -37,7 +37,7 @@
register: output
- name: Check the devtest lab not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Get devtest lab facts
@@ -45,9 +45,9 @@
resource_group: "{{ resource_group }}"
name: "dev-{{ rpfx }}"
register: output
-
+
- name: Assert the devtest lab create success
- assert:
+ ansible.builtin.assert:
that:
- output.labs | length == 1
- output.labs[0].provisioning_state == "Succeeded"
@@ -63,7 +63,7 @@
register: output
- name: Assert the devtest lab virtual network create successfully
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -75,7 +75,7 @@
register: output
- name: Assert the devtest lab virtual network facts
- assert:
+ ansible.builtin.assert:
that:
- output.virtualnetworks | length == 1
- output.virtualnetworks[0].description == "My Lab Virtual network"
@@ -95,17 +95,17 @@
name: "vnet-{{ rpfx }}Subnet"
virtual_network_name: "vnet-{{ rpfx }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
os_type: Linux
version: latest
- allow_claim: no
+ allow_claim: false
expiration_date: "2025-10-22T01:49:12.117974Z"
register: output
- name: Assert the devtest lab virtual machine create successfully
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -117,13 +117,13 @@
register: output
- name: Assert the devtest lab virtualmachine facts
- assert:
+ ansible.builtin.assert:
that:
- output.virtualmachines | length == 1
- output.virtualmachines[0].provisioning_state == "Succeeded"
- output.virtualmachines[0].expiration_date == "2025-10-22T01:49:12.117974Z"
-- name: create a instance devtest lab image
+- name: Create a instance devtest lab image
azure_rm_devtestlabcustomimage:
resource_group: "{{ resource_group }}"
lab_name: "dev-{{ rpfx }}"
@@ -133,7 +133,7 @@
register: output
- name: Assert the devtest lab image create successufully
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -145,7 +145,7 @@
register: output
- name: Assert the devtest lab image facts
- assert:
+ ansible.builtin.assert:
that:
- output.custom_images | length == 1
- output.custom_images[0].lab_name
@@ -157,9 +157,9 @@
lab_name: "dev-{{ rpfx }}"
artifact_source_name: "public environment repo"
register: output
-
+
- name: Assert the devtest lab armtemplate is returned successfully
- assert:
+ ansible.builtin.assert:
that:
- output.armtemplates | length >= 1
@@ -174,7 +174,7 @@
register: output
- name: Assert the devtest lab policy creatre successfully
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -186,7 +186,7 @@
register: output
- name: Assert the devtest lab policy facts
- assert:
+ ansible.builtin.assert:
that:
- output.policies | length >= 1
@@ -200,7 +200,7 @@
register: output
- name: Assert the devtest lab schedule create sussessfully
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -212,7 +212,7 @@
register: output
- name: Assert the devtest lab schedule facts
- assert:
+ ansible.builtin.assert:
that:
- output.schedules | length >= 1
- output.schedules[0].name == "lab_vms_shutdown"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py
index 1b7d0318f..c6f488f13 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/lookup_plugins/azure_service_principal_attribute.py
@@ -45,15 +45,13 @@ _raw:
"""
from ansible.errors import AnsibleError
-from ansible.plugins import AnsiblePlugin
from ansible.plugins.lookup import LookupBase
from ansible.module_utils._text import to_native
try:
from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
- from msrestazure import azure_cloud
- from msrestazure.azure_exceptions import CloudError
+ from azure.cli.core import cloud as azure_cloud
except ImportError:
raise AnsibleError(
"The lookup azure_service_principal_attribute requires azure.graphrbac, msrest")
@@ -89,6 +87,6 @@ class LookupModule(LookupBase):
sp = response[0]
return sp.object_id.split(',')
- except CloudError as ex:
+ except Exception as ex:
raise AnsibleError("Failed to get service principal object id: %s" % to_native(ex))
return False
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml
index 79055e213..0d805598e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_diskencryptionset/tasks/main.yml
@@ -1,23 +1,23 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
set_name: "des{{ resource_group | hash('md5') | truncate(22, True, '') }}"
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
tenant_id: "{{ azure_tenant }}"
- run_once: yes
+ run_once: true
-- name: lookup service principal object id
- set_fact:
+- name: Lookup service principal object id
+ ansible.builtin.set_fact:
object_id: "{{ lookup('azure_service_principal_attribute',
azure_client_id=azure_client_id,
azure_secret=azure_secret,
azure_tenant=tenant_id) }}"
register: object_id_facts
-- name: create a key vault
+- name: Create a key vault
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "myvault{{ rpfx }}"
- enabled_for_disk_encryption: yes
+ enabled_for_disk_encryption: true
vault_tenant: "{{ tenant_id }}"
sku:
name: standard
@@ -50,10 +50,11 @@
name: testkey
register: results
-- set_fact:
+- name: Assert the key vault facts
+ ansible.builtin.set_fact:
key_url: "{{ results['keys'][0]['kid'] }}"
-- name: create disk encryption set
+- name: Create disk encryption set
azure_rm_diskencryptionset:
resource_group: "{{ resource_group }}"
name: "{{ set_name }}"
@@ -63,10 +64,10 @@
register: results
- name: Assert that disk encryption set is created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: create disk encryption set (Idempotent test)
+- name: Create disk encryption set (Idempotent test)
azure_rm_diskencryptionset:
resource_group: "{{ resource_group }}"
name: "{{ set_name }}"
@@ -76,7 +77,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update disk encryption set
@@ -91,7 +92,7 @@
register: results
- name: Assert that disk encryption set is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get disk encryption set facts
@@ -100,7 +101,8 @@
name: "{{ set_name }}"
register: results
-- assert:
+- name: Assert the disk encryption facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.diskencryptionsets[0].id != None
@@ -117,7 +119,7 @@
register: results
- name: Assert that disk encryption set is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete disk encryption set (Idempotent test)
@@ -128,7 +130,7 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Delete the Key Vault
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml
index 6b9acee8d..4481a596e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnsrecordset/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random domain name
- set_fact:
+ ansible.builtin.set_fact:
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create a DNS zone
@@ -10,10 +10,10 @@
register: results
- name: Assert that DNS zone was created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: create "A" record set with multiple records
+- name: Create "A" record set with multiple records
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -26,10 +26,10 @@
register: results
- name: Assert that A record set was created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: re-run "A" record with same values
+- name: Re-run "A" record with same values
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -42,7 +42,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update "A" record set with additional record
@@ -57,11 +57,11 @@
register: results
- name: Assert that new record was appended
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
-- name: re-update "A" record set with additional record
+- name: Re-update "A" record set with additional record
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -73,7 +73,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that:
- not results.changed
@@ -90,7 +90,7 @@
register: results
- name: Assert that record was deleted
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -102,17 +102,17 @@
record_type: A
records:
- entry: 192.168.100.105
- check_mode: yes
+ check_mode: true
register: results
- name: Assert that check_mode returns new state
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
# FUTURE: add facts module calls to ensure that we really didn't touch anything
-- name: delete a record set
+- name: Delete a record set
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -122,10 +122,10 @@
register: results
- name: Assert that record set deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: (idempotence test) re-run record set absent
+- name: Re-run record set absent(idempotence test)
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -134,11 +134,11 @@
state: absent
register: results
-- name:
- assert:
+- name: Assert the record set deleted
+ ansible.builtin.assert:
that: not results.changed
-- name: create SRV records in a new record set
+- name: Create SRV records in a new record set
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_sip._tcp.{{ domain_name }}.com"
@@ -147,18 +147,18 @@
record_type: SRV
state: present
records:
- - entry: sip.{{ domain_name }}.com
- priority: 20
- weight: 10
- port: 5060
+ - entry: sip.{{ domain_name }}.com
+ priority: 20
+ weight: 10
+ port: 5060
register: results
- name: Assert that SRV record set was created
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
-- name: create TXT records in a new record set
+- name: Create TXT records in a new record set
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_txt.{{ domain_name }}.com"
@@ -174,7 +174,7 @@
register: results
- name: Assert that TXT record set was created
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -196,7 +196,7 @@
register: results
- name: Assert that SOA record set was created
- assert:
+ ansible.builtin.assert:
that:
- results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnszone/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnszone/tasks/main.yml
index 3f38ca554..849755798 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnszone/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_dnszone/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random domain name
- set_fact:
+ ansible.builtin.set_fact:
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create a DNS zone (check mode)
@@ -7,9 +7,10 @@
resource_group: "{{ resource_group }}"
name: "{{ domain_name }}.com"
register: results
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the dns zone created
+ ansible.builtin.assert:
that: results.changed
- name: Create a DNS zone
@@ -18,7 +19,8 @@
name: "{{ domain_name }}.com"
register: results
-- assert:
+- name: Assert the dns zone created
+ ansible.builtin.assert:
that: results.changed
- name: Update DNS zone with tags
@@ -29,8 +31,9 @@
test: modified
register: results
-- assert:
- that:
+- name: Assert the dns zone updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
@@ -41,8 +44,8 @@
register: zones
- name: Assert that facts module returned result
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- zones.dnszones[0].tags.test == 'modified'
- zones.dnszones[0].type == 'public'
@@ -52,7 +55,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert idempotent test result
+ ansible.builtin.assert:
that:
- not results.changed
@@ -60,7 +64,7 @@
# azure_rm_dnsrecordset test
#
-- name: create "A" record set with multiple records
+- name: Create "A" record set with multiple records
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -73,12 +77,12 @@
register: results
- name: Assert that A record set was created
- assert:
+ ansible.builtin.assert:
that:
- - results.changed
- - 'results.state.a_records | length == 3'
+ - results.changed
+ - 'results.state.a_records | length == 3'
-- name: re-run "A" record with same values
+- name: Re-run "A" record with same values
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -91,7 +95,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update "A" record set with additional record
@@ -106,12 +110,12 @@
register: results
- name: Assert that new record was appended
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
- 'results.state.a_records | length == 4'
-- name: re-update "A" record set with additional record
+- name: Re-update "A" record set with additional record
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -123,7 +127,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that:
- not results.changed
@@ -140,10 +144,10 @@
register: results
- name: Assert that record was deleted
- assert:
+ ansible.builtin.assert:
that:
- results.changed
- - 'results.state.a_records | length == 3'
+ - 'results.state.a_records | length == 3'
- name: Check_mode test
azure_rm_dnsrecordset:
@@ -153,17 +157,17 @@
record_type: A
records:
- entry: 192.168.100.105
- check_mode: yes
+ check_mode: true
register: results
- name: Assert that check_mode returns new state
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
# FUTURE: add facts module calls to ensure that we really didn't touch anything
-- name: create SRV records in a new record set
+- name: Create SRV records in a new record set
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_sip._tcp.{{ domain_name }}.com"
@@ -171,18 +175,18 @@
time_to_live: 7200
record_type: SRV
records:
- - entry: sip.{{ domain_name }}.com
- priority: 20
- weight: 10
- port: 5060
+ - entry: sip.{{ domain_name }}.com
+ priority: 20
+ weight: 10
+ port: 5060
register: results
- name: Assert that SRV record set was created
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.changed
-- name: create TXT records in a new record set
+- name: Create TXT records in a new record set
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_txt.{{ domain_name }}.com"
@@ -196,8 +200,8 @@
- "baz"
register: results
-- name: Assert that TXT record set was created
- assert:
+- name: Cssert that TXT record set was created
+ ansible.builtin.assert:
that:
- results.changed
@@ -214,8 +218,8 @@
register: results
- name: Assert that facts module returned result for single Record Set
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- not results.changed
# - azure_dnsrecordset[0].name == 'www'
- results.dnsrecordsets[0].relative_name == 'www'
@@ -229,8 +233,8 @@
register: facts
- name: Assert that facts module returned result for all Record Sets
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- not facts.changed
# - facts.ansible_facts.azure_dnsrecordset[0].name == '@'
# - facts.ansible_facts.azure_dnsrecordset[1].name == '@'
@@ -239,7 +243,7 @@
#
# azure_rm_dnsrecordset cleanup
#
-- name: delete all record sets except for @
+- name: Delete all record sets except for @
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "{{ item.relative_name }}"
@@ -252,7 +256,7 @@
register: results
- name: Assert that record set deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Retrieve DNS Record Set Facts for all Record Sets
@@ -262,12 +266,12 @@
register: facts
- name: Assert all record set deleted
- assert:
+ ansible.builtin.assert:
that:
- - item.relative_name == '@'
+ - item.relative_name == '@'
with_items: "{{ facts.dnsrecordsets }}"
-- name: (idempotence test) re-run record set absent
+- name: Re-run record set absent(Idempotent test)
azure_rm_dnsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -276,8 +280,8 @@
state: absent
register: results
-- name:
- assert:
+- name: Assert the dns recored deleted
+ ansible.builtin.assert:
that: not results.changed
#
@@ -286,7 +290,7 @@
- name: Delete DNS zone
azure_rm_dnszone:
resource_group: "{{ resource_group }}"
- name: "{{ domain_name }}.com"
+ name: "{{ domain_name }}.com"
state: absent
- name: Delete DNS zone (idempotent)
@@ -296,5 +300,6 @@
state: absent
register: results
-- assert:
+- name: Assert the dns zone deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_eventhub/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_eventhub/tasks/main.yml
index 484f0146d..62e60e95b 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_eventhub/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_eventhub/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Create random event hub and namespace
- set_fact:
- namespace_name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
+ ansible.builtin.set_fact:
+ namespace_name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
+ name_rpfx: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create Event Hub Namespace (check mode)
azure_rm_eventhub:
@@ -9,23 +9,25 @@
namespace_name: "{{ namespace_name }}"
resource_group: "{{ resource_group }}"
sku: "Basic"
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the check mode result
+ ansible.builtin.assert:
that: results.changed
-- name: Create Event Hub (check mode)
+- name: Create Event Hub (check mode)
azure_rm_eventhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
sku: "Basic"
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the check mode result
+ ansible.builtin.assert:
that: results.changed
- name: Create Event Hub Namespace
@@ -36,18 +38,20 @@
sku: "Basic"
register: results
-- assert:
+- name: Assert the event hub namespace created
+ ansible.builtin.assert:
that: results.changed
- name: Create Event Hub
azure_rm_eventhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert the event hub created
+ ansible.builtin.assert:
that: results.changed
- name: Update Namespace
@@ -60,8 +64,9 @@
test: modified
register: results
-- assert:
- that:
+- name: Assert the namespace updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
@@ -69,7 +74,7 @@
azure_rm_eventhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
message_retention_in_days: 4
state: present
@@ -77,8 +82,9 @@
test: modified
register: results
-- assert:
- that:
+- name: Assert the event hub updated
+ ansible.builtin.assert:
+ that:
- results.changed
- name: Retrieve Namespace
@@ -97,16 +103,17 @@
test: modified
register: results
-- assert:
+- name: Assert idempotent success
+ ansible.builtin.assert:
that:
- not results.changed
-#cleanup
+# cleanup
- name: Delete Event Hub
azure_rm_eventhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
@@ -114,12 +121,13 @@
azure_rm_eventhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
register: results
-- assert:
+- name: Assert the event hub deleted
+ ansible.builtin.assert:
that: not results.changed
- name: Delete Namespace
@@ -130,8 +138,9 @@
state: absent
- name: Pause for 1 minutes to check namespace deleted
- pause:
+ ansible.builtin.pause:
minutes: 1
+ changed_when: true
- name: Delete Namespace (idempotent)
azure_rm_eventhub:
@@ -141,5 +150,6 @@
state: absent
register: results
-- assert:
+- name: Assert the namespace deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_expressroute/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_expressroute/tasks/main.yml
index d90dbfdf6..3d70ddd82 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_expressroute/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_expressroute/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random express route
- set_fact:
+ ansible.builtin.set_fact:
express_route: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create Express route (check mode)
@@ -21,9 +21,10 @@
tier: premium
family: metereddata
register: results
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the excpress route check mode result
+ ansible.builtin.assert:
that: results.changed
@@ -34,7 +35,7 @@
resource_group: "{{ resource_group }}"
allow_classic_operations: true
global_reach_enabled: false
- tags:
+ tags:
a: b
authorizations:
- name: authorization_test
@@ -47,7 +48,8 @@
family: metereddata
register: results
-- assert:
+- name: Assert the express route created
+ ansible.builtin.assert:
that: results.changed
@@ -58,7 +60,7 @@
resource_group: "{{ resource_group }}"
allow_classic_operations: true
global_reach_enabled: false
- tags:
+ tags:
test: modified
authorizations:
- name: authorization_test
@@ -71,8 +73,9 @@
family: metereddata
register: results
-- assert:
- that:
+- name: Assert the express route updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
@@ -84,8 +87,8 @@
register: results
- name: Assert that facts module returned result
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.expressroute[0].tags.test == 'modified'
- results.expressroute[0].type == 'Microsoft.Network/expressRouteCircuits'
@@ -95,7 +98,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert the idempotent
+ ansible.builtin.assert:
that:
- not results.changed
@@ -105,7 +109,7 @@
- name: Delete Express Route
azure_rm_expressroute:
resource_group: "{{ resource_group }}"
- name: "{{ express_route }}"
+ name: "{{ express_route }}"
state: absent
- name: Delete Express Route (idempotent)
@@ -115,5 +119,6 @@
state: absent
register: results
-- assert:
+- name: Assert the express route deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml
index 4bbba792e..f81ab9708 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_firewallpolicy/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create firewall policy name
- set_fact:
+ ansible.builtin.set_fact:
policy_name: "fp{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create firewall policy
@@ -18,7 +18,7 @@
register: results
- name: Assert that firewall policy is created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create a firewall policy again (Idempotent test)
@@ -37,7 +37,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update a firewall policy
@@ -58,7 +58,7 @@
register: results
- name: Assert that firewall policy is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get firewall policy facts
@@ -67,7 +67,8 @@
name: "{{ policy_name }}"
register: results
-- assert:
+- name: Assert the firewall policy facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.firewallpolicies[0].id != None
@@ -85,7 +86,7 @@
register: results
- name: Assert that firewall policy is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete firewall policy again (Idempotent test)
@@ -96,5 +97,5 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_functionapp/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_functionapp/tasks/main.yml
index e618e7038..5c5d5e3fe 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_functionapp/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_functionapp/tasks/main.yml
@@ -1,56 +1,56 @@
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
fixed_resource_prefix: "fa{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
funcapp_name_basic: "fa{{ fixed_resource_prefix }}basic"
funcapp_name_container: "fa{{ fixed_resource_prefix }}container"
funcapp_name_params: "fa{{ fixed_resource_prefix }}params"
storage_account_name: "sa{{ fixed_resource_prefix }}"
plan_name: "ap{{ fixed_resource_prefix }}"
-- name: create storage account for function apps
+- name: Create storage account for function apps
azure_rm_storageaccount:
resource_group: '{{ resource_group }}'
name: "{{ storage_account_name }}"
account_type: Standard_LRS
-- name: create basic function app
+- name: Create basic function app
azure_rm_functionapp:
resource_group: "{{ resource_group }}"
name: "{{ funcapp_name_basic }}"
storage_account: "{{ storage_account_name }}"
register: output
-- name: assert the function was created
- assert:
+- name: Assert the function was created
+ ansible.builtin.assert:
that: output.changed
-- name: list facts for function
+- name: List facts for function
azure_rm_functionapp_info:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_basic }}"
register: results
-- name: assert the facts were retrieved
- assert:
+- name: Assert the facts were retrieved
+ ansible.builtin.assert:
that:
- - results.ansible_info.azure_functionapps|length == 1
- - results.ansible_info.azure_functionapps[0].name == "{{ funcapp_name_basic }}"
+ - results.ansible_info.azure_functionapps|length == 1
+ - results.ansible_info.azure_functionapps[0].name == "{{ funcapp_name_basic }}"
-- name: delete basic function app
+- name: Delete basic function app
azure_rm_functionapp:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_basic }}"
state: absent
register: output
-- name: assert the function was deleted
- assert:
+- name: Assert the function was deleted
+ ansible.builtin.assert:
that: output.changed
-- name: create a function with app settings
+- name: Create a function with app settings
azure_rm_functionapp:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_params }}"
@@ -61,11 +61,11 @@
FUNCTIONS_EXTENSION_VERSION: "~2"
register: output
-- name: assert the function with app settings was created
- assert:
+- name: Assert the function with app settings was created
+ ansible.builtin.assert:
that: output.changed
-- name: change app settings
+- name: Change app settings
azure_rm_functionapp:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_params }}"
@@ -77,19 +77,19 @@
another: one
register: output
-- name: assert the function was changed
- assert:
+- name: Assert the function was changed
+ ansible.builtin.assert:
that: output.changed
-- name: delete the function app
+- name: Delete the function app
azure_rm_functionapp:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_params }}"
state: absent
register: output
-- name: assert the function was deleted
- assert:
+- name: Assert the function was deleted
+ ansible.builtin.assert:
that: output.changed
- name: Create a linux app service plan
@@ -106,25 +106,25 @@
name: "{{ funcapp_name_container }}"
storage_account: "{{ storage_account_name }}"
plan:
- resource_group: "{{ resource_group }}"
- name: "{{ plan_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ plan_name }}"
container_settings:
- name: httpd
+ name: httpd
app_settings:
- FUNCTIONS_EXTENSION_VERSION: "~2"
+ FUNCTIONS_EXTENSION_VERSION: "~2"
register: output
-- name: assert the function was changed
- assert:
+- name: Assert the function was changed
+ ansible.builtin.assert:
that: output.changed
-- name: delete the function app
+- name: Delete the function app
azure_rm_functionapp:
resource_group: '{{ resource_group }}'
name: "{{ funcapp_name_container }}"
state: absent
-- name: delete storage account
+- name: Delete storage account
azure_rm_storageaccount:
resource_group: '{{ resource_group }}'
name: "{{ storage_account_name }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_gallery/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_gallery/tasks/main.yml
index f67fa218f..b9705dc34 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_gallery/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_gallery/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create virtual network
azure_rm_virtualnetwork:
@@ -42,9 +42,9 @@
vm_size: Standard_B1ms
network_interfaces: "vmforimage{{ rpfx }}nic"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
- name: Get VM facts
@@ -54,7 +54,9 @@
register: output
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command:
+ sleep 600
+ changed_when: true
- name: Create a snapshot by importing an unmanaged blob from the same subscription.
azure_rm_snapshot:
@@ -66,8 +68,9 @@
source_uri: 'https://{{ output.vms[0].storage_account_name }}.blob.core.windows.net/{{ output.vms[0].storage_container_name }}/{{ output.vms[0].storage_blob_name }}'
register: output
-- assert:
- that:
+- name: Assert the snapshot created
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Create a managed disk
@@ -82,13 +85,14 @@
resource_group: "{{ resource_group }}"
name: "mySnapshot-{{ rpfx }}02"
location: eastus
- incremental: True
+ incremental: true
creation_data:
create_option: Copy
source_id: "{{ disk_output.state.id }}"
register: output
-- assert:
+- name: Assert the snapshot idempotent result
+ ansible.builtin.assert:
that:
- output.changed
@@ -96,7 +100,7 @@
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "vmforimage{{ rpfx }}"
- generalized: yes
+ generalized: true
- name: Create custom image
azure_rm_image:
resource_group: "{{ resource_group }}"
@@ -110,8 +114,9 @@
description: This is the gallery description.
register: output
-- assert:
- that:
+- name: Assert the gallery created
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Create or update a simple gallery - idempotent
@@ -122,8 +127,9 @@
description: This is the gallery description.
register: output
-- assert:
- that:
+- name: Assert the gallery created
+ ansible.builtin.assert:
+ that:
- not output.changed
- name: Create or update a simple gallery - change description
@@ -134,8 +140,9 @@
description: This is the gallery description - xxx.
register: output
-- assert:
- that:
+- name: Assert the gallery updated
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Get a gallery info.
@@ -144,8 +151,9 @@
name: myGallery{{ rpfx }}
register: output
-- assert:
- that:
+- name: Assedrt the gallery facts
+ ansible.builtin.assert:
+ that:
- not output.changed
- output.galleries['id'] != None
- output.galleries['name'] != None
@@ -168,8 +176,9 @@
description: Image Description
register: output
-- assert:
- that:
+- name: Assert the gallery image created
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Create or update gallery image - idempotent
@@ -187,8 +196,9 @@
description: Image Description
register: output
-- assert:
- that:
+- name: Assert the gallery image idempotent result
+ ansible.builtin.assert:
+ that:
- not output.changed
- name: Create or update gallery image - change description
@@ -206,8 +216,9 @@
description: Image Description XXXs
register: output
-- assert:
- that:
+- name: Assert the gallery image updated
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Get a gallery image info.
@@ -217,8 +228,9 @@
name: myImage
register: output
-- assert:
- that:
+- name: Assert the gallery image facts
+ ansible.builtin.assert:
+ that:
- not output.changed
- output.images['id'] != None
- output.images['name'] != None
@@ -236,7 +248,7 @@
location: eastus
publishing_profile:
end_of_life_date: "2050-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 3
storage_account_type: Standard_LRS
target_regions:
@@ -250,8 +262,9 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that:
+- name: Assert the gallery image version created
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Create or update a simple gallery Image Version - idempotent
@@ -263,7 +276,7 @@
location: eastus
publishing_profile:
end_of_life_date: "2050-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 3
storage_account_type: Standard_LRS
target_regions:
@@ -277,8 +290,9 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that:
+- name: Assert the gallery image version result
+ ansible.builtin.assert:
+ that:
- not output.changed
- name: Create or update a simple gallery Image Version - change end of life
@@ -290,7 +304,7 @@
location: eastus
publishing_profile:
end_of_life_date: "2051-10-01t00:00:00+00:00"
- exclude_from_latest: yes
+ exclude_from_latest: true
replica_count: 3
storage_account_type: Standard_LRS
target_regions:
@@ -304,8 +318,9 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that:
+- name: Assert the gallery image version updated
+ ansible.builtin.assert:
+ that:
- output.changed
- name: Get a simple gallery Image Version info.
@@ -316,8 +331,9 @@
name: 10.1.3
register: output
-- assert:
- that:
+- name: Assert the gallery image version facts
+ ansible.builtin.assert:
+ that:
- not output.changed
- output.versions['id'] != None
- output.versions['name'] != None
@@ -334,13 +350,15 @@
state: absent
register: output
-- assert:
- that:
+- name: Assert the gallery image version deleted
+ ansible.builtin.assert:
+ that:
- output.changed
-- name: pasue 2 minutes, wait for deletion complete
- pause:
+- name: Pasue 2 minutes, wait for deletion complete
+ ansible.builtin.pause:
minutes: 2
+ changed_when: true
- name: Delete gallery image
azure_rm_galleryimage:
@@ -350,13 +368,15 @@
state: absent
register: output
-- assert:
- that:
+- name: Assert the gallery image deleted
+ ansible.builtin.assert:
+ that:
- output.changed
-- name: pasue 2 minutes, wait for deletion complete
- pause:
+- name: Pasue 2 minutes, wait for deletion complete
+ ansible.builtin.pause:
minutes: 2
+ changed_when: true
- name: Delete gallery
azure_rm_gallery:
@@ -365,6 +385,7 @@
state: absent
register: output
-- assert:
- that:
+- name: Assert the gallery deleted
+ ansible.builtin.assert:
+ that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml
index edb99c4c1..23b80aa4e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hdinsightcluster/tasks/main.yml
@@ -1,14 +1,14 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create storage account
azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
- name: "storage{{ rpfx }}"
- account_type: Standard_LRS
- location: eastus2
+ resource_group: "{{ resource_group }}"
+ name: "storage{{ rpfx }}"
+ account_type: Standard_LRS
+ location: eastus2
- name: Sample for Azure REST API - StorageAccounts_ListKeys
azure_rm_resource:
@@ -22,7 +22,8 @@
- type: listkeys
register: storage_output
-- debug:
+- name: Print the storage account keys
+ ansible.builtin.debug:
var: storage_output
- name: Create instance of Cluster -- check mode
@@ -38,8 +39,8 @@
gateway_rest_username: http-user
gateway_rest_password: Password123!
storage_accounts:
- - name: storage{{ rpfx }}.blob.core.windows.net
- is_default: yes
+ - name: storage{{ rpfx }}.blob.core.windows.net
+ is_default: true
container: "cluster{{ rpfx }}"
key: "{{ storage_output['response']['keys'][0]['value'] }}"
compute_profile_roles:
@@ -61,10 +62,10 @@
linux_profile:
username: sshuser
password: Password123!
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -81,8 +82,8 @@
gateway_rest_username: http-user
gateway_rest_password: Password123!
storage_accounts:
- - name: storage{{ rpfx }}.blob.core.windows.net
- is_default: yes
+ - name: storage{{ rpfx }}.blob.core.windows.net
+ is_default: true
container: "cluster{{ rpfx }}"
key: "{{ storage_output['response']['keys'][0]['value'] }}"
compute_profile_roles:
@@ -107,7 +108,7 @@
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -124,8 +125,8 @@
gateway_rest_username: http-user
gateway_rest_password: Password123!
storage_accounts:
- - name: storage{{ rpfx }}.blob.core.windows.net
- is_default: yes
+ - name: storage{{ rpfx }}.blob.core.windows.net
+ is_default: true
container: "cluster{{ rpfx }}"
key: "{{ storage_output['response']['keys'][0]['value'] }}"
compute_profile_roles:
@@ -149,7 +150,7 @@
password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -166,8 +167,8 @@
gateway_rest_username: http-user
gateway_rest_password: Password123!
storage_accounts:
- - name: storage{{ rpfx }}.blob.core.windows.net
- is_default: yes
+ - name: storage{{ rpfx }}.blob.core.windows.net
+ is_default: true
container: "cluster{{ rpfx }}"
key: "{{ storage_output['response']['keys'][0]['value'] }}"
compute_profile_roles:
@@ -192,10 +193,11 @@
tags:
aaa: bbb
register: output
-- debug:
+- name: Print the cluster creating result
+ ansible.builtin.debug:
var: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -206,7 +208,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.clusters[0]['id'] != None
@@ -225,10 +227,10 @@
resource_group: "{{ resource_group }}"
name: "cluster{{ rpfx }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -239,6 +241,6 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hostgroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hostgroup/tasks/main.yml
index 8b2d408eb..04808a62a 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hostgroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_hostgroup/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create host group name
- set_fact:
+ ansible.builtin.set_fact:
group_name: "hostgroup{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create a host group
@@ -14,7 +14,7 @@
register: results
- name: Assert that host group is created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create a host group again (Idempotent test)
@@ -29,7 +29,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update a host group
@@ -46,7 +46,7 @@
register: results
- name: Assert that host group is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get host group facts
@@ -55,7 +55,8 @@
name: "{{ group_name }}"
register: results
-- assert:
+- name: Assert the host group facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.hostgroups[0].name == "{{ group_name }}"
@@ -72,7 +73,7 @@
register: results
- name: Assert that host group is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete host group again (Idempotent test)
@@ -83,5 +84,5 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_image/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_image/tasks/main.yml
index cbe9baa31..2fc543091 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_image/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_image/tasks/main.yml
@@ -1,115 +1,118 @@
- name: Create storage account name
- set_fact:
- vm_name: "vm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}x"
- public_ip_name: "pip{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- security_group_name: "sg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- empty_disk_name: "emptydisk{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ ansible.builtin.set_fact:
+ vm_name: "vm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}x"
+ public_ip_name: "pip{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ security_group_name: "sg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ empty_disk_name: "emptydisk{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Create virtual network
azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- address_prefixes: "10.10.0.0/16"
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ address_prefixes: "10.10.0.0/16"
- name: Add subnet
azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- address_prefix: "10.10.0.0/24"
- virtual_network: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ address_prefix: "10.10.0.0/24"
+ virtual_network: "{{ vm_name }}"
- name: Create public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- allocation_method: Static
- name: "{{ public_ip_name }}"
+ resource_group: "{{ resource_group }}"
+ allocation_method: Static
+ name: "{{ public_ip_name }}"
- name: Create security group
azure_rm_securitygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ security_group_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ security_group_name }}"
- name: Create NIC
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- virtual_network: "{{ vm_name }}"
- subnet: "{{ vm_name }}"
- public_ip_name: "{{ public_ip_name }}"
- security_group: "{{ security_group_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ virtual_network: "{{ vm_name }}"
+ subnet: "{{ vm_name }}"
+ public_ip_name: "{{ public_ip_name }}"
+ security_group: "{{ security_group_name }}"
- name: Create virtual machine
azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- vm_size: Standard_B1ms
- managed_disk_type: Standard_LRS
- admin_username: adminuser
- ssh_password_enabled: false
- ssh_public_keys:
- - path: /home/adminuser/.ssh/authorized_keys
- key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
- os_type: Linux
- network_interfaces: "{{ vm_name }}"
- image:
- offer: UbuntuServer
- publisher: Canonical
- sku: 16.04-LTS
- version: latest
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ vm_size: Standard_B1ms
+ managed_disk_type: Standard_LRS
+ admin_username: adminuser
+ ssh_password_enabled: false
+ ssh_public_keys:
+ - path: /home/adminuser/.ssh/authorized_keys
+ key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
+ os_type: Linux
+ network_interfaces: "{{ vm_name }}"
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ version: latest
register: vm
- name: Create new empty managed disk
azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "{{ empty_disk_name }}"
- storage_account_type: "Standard_LRS"
- disk_size_gb: 1
+ resource_group: "{{ resource_group }}"
+ name: "{{ empty_disk_name }}"
+ storage_account_type: "Standard_LRS"
+ disk_size_gb: 1
register: emptydisk
- name: Create an image from VM (check mode)
azure_rm_image:
- resource_group: "{{ resource_group }}"
- source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
- name: testimage001
- os_type: Linux
- hyper_v_generation: V1
- data_disk_sources:
- - "{{ empty_disk_name }}"
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ source: "{{ vm.ansible_facts.azure_vm.storage_profile.os_disk.managed_disk.id }}"
+ name: testimage001
+ os_type: Linux
+ hyper_v_generation: V1
+ data_disk_sources:
+ - "{{ empty_disk_name }}"
+ check_mode: true
register: output
-- assert:
- that: output.changed
+- name: Assert the image check mode
+ ansible.builtin.assert:
+ that: output.changed
- name: Create an image from VM
azure_rm_image:
- resource_group: "{{ resource_group }}"
- source:
- name: "{{ vm_name }}"
- type: disks
- name: testimage001
- hyper_v_generation: V1
- os_type: Linux
+ resource_group: "{{ resource_group }}"
+ source:
+ name: "{{ vm_name }}"
+ type: disks
+ name: testimage001
+ hyper_v_generation: V1
+ os_type: Linux
register: output
-- assert:
- that:
- - output.changed
- - output.id
+- name: Assert the image created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.id
- name: Create an image from VM (idempotent)
azure_rm_image:
- resource_group: "{{ resource_group }}"
- source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
- name: testimage001
- hyper_v_generation: V1
- os_type: Linux
+ resource_group: "{{ resource_group }}"
+ source: "{{ vm.ansible_facts.azure_vm.storage_profile.os_disk.managed_disk.id }}"
+ name: testimage001
+ hyper_v_generation: V1
+ os_type: Linux
register: output
-- assert:
- that:
- - not output.changed
- - output.id
+- name: Assert the image created
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+ - output.id
- name: Gather information about image created
azure_rm_image_info:
@@ -117,62 +120,66 @@
name: testimage001
register: output
-- assert:
- that:
- - output.images != []
- - output.images[0].hyper_v_generation == 'V1'
+- name: Assert the image facts
+ ansible.builtin.assert:
+ that:
+ - output.images != []
+ - output.images[0].hyper_v_generation == 'V1'
- name: Delete image (check mode)
azure_rm_image:
- resource_group: "{{ resource_group }}"
- name: testimage001
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: testimage001
+ state: absent
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the image check mode
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete image
azure_rm_image:
- resource_group: "{{ resource_group }}"
- name: testimage001
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: testimage001
+ state: absent
register: output
-- assert:
+- name: Assert the imaged deleted
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete image (idempotent)
azure_rm_image:
- resource_group: "{{ resource_group }}"
- name: testimage001
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: testimage001
+ state: absent
register: output
-- assert:
+- name: Assert the image has deleted
+ ansible.builtin.assert:
that:
- not output.changed
- name: Delete empty disk
azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "{{ empty_disk_name }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ empty_disk_name }}"
+ state: absent
- name: Delete VM
azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- state: absent
- vm_size: Standard_A0
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ state: absent
+ vm_size: Standard_A0
register: output
- name: Delete public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- allocation_method: Static
- name: "{{ public_ip_name }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ allocation_method: Static
+ name: "{{ public_ip_name }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/aliases b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/aliases
index aa77c071a..cbb31e489 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/aliases
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/aliases
@@ -1,3 +1,4 @@
cloud/azure
shippable/azure/group2
destructive
+disabled
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/tasks/main.yml
index 6cb319050..2b2e33695 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_iothub/tasks/main.yml
@@ -1,178 +1,182 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
- name: Create IoT Hub (check mode)
azure_rm_iothub:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- ip_filters:
- - name: filter1
- action: reject
- ip_mask: 40.60.80.10
- check_mode: yes
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ ip_filters:
+ - name: filter1
+ action: reject
+ ip_mask: 40.60.80.10
+ check_mode: true
register: iothub
-- assert:
+- name: Assert the check mode result
+ ansible.builtin.assert:
that:
- - iothub.changed
+ - iothub.changed
- name: Query IoT Hub
azure_rm_iothub_info:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
register: iothub
- ignore_errors: yes
+ ignore_errors: true
- name: Create IoT Hub
azure_rm_iothub:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- ip_filters:
- - name: filter1
- action: reject
- ip_mask: 40.60.80.10
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ ip_filters:
+ - name: filter1
+ action: reject
+ ip_mask: 40.60.80.10
register: iothub
-- assert:
+- name: Assert tht iot hub created
+ ansible.builtin.assert:
that:
- - iothub.changed
+ - iothub.changed
- name: Create IoT Hub (idempontent)
azure_rm_iothub:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- ip_filters:
- - name: filter1
- action: reject
- ip_mask: 40.60.80.10
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ ip_filters:
+ - name: filter1
+ action: reject
+ ip_mask: 40.60.80.10
register: iothub
-- assert:
+- name: Assert the iot hub created
+ ansible.builtin.assert:
that:
- - not iothub.changed
+ - not iothub.changed
- name: Query IoT Hub
azure_rm_iothub_info:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- list_keys: yes
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ list_keys: true
register: iothub
-- assert:
+- name: Assert the iot hub facts
+ ansible.builtin.assert:
that:
- - iothub.iothubs | length == 1
+ - iothub.iothubs | length == 1
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
registry_write_name: "{{ item.key_name }}"
registry_write_key: "{{ item.primary_key }}"
+ secondary_key: "{{ item.secondary_key }}"
with_items: "{{ iothub.iothubs[0]['keys'] }}"
when: item.rights == 'RegistryWrite, ServiceConnect, DeviceConnect'
- name: Create devices
azure_rm_iotdevice:
- hub: "hub{{ rpfx }}"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
- name: "mydevice{{ item }}"
- twin_tags:
- location:
- country: US
- city: Redmond
- sensor: humidity
+ hub: "hub{{ rpfx }}"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
+ name: "mydevice{{ item }}"
+ primary_key: "{{ registry_write_key }}"
+ secondary_key: "{{ secondary_key }}"
+ twin_tags:
+ location:
+ country: US
+ city: Redmond
+ sensor: humidity
with_items:
- 1
- 2
- name: Query devices
azure_rm_iotdevice_info:
- hub: "hub{{ rpfx }}"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
+ hub: "hub{{ rpfx }}"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
register: devices
-- assert:
- that:
- - devices.iot_devices | length == 2
+- name: Assert the iot devices facts
+ ansible.builtin.assert:
+ that:
+ - devices.iot_devices | length == 2
-- name: Query devices
+- name: Query devices by name
azure_rm_iotdevice_info:
- hub: "hub{{ rpfx }}"
- name: "mydevice1"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
+ hub: "hub{{ rpfx }}"
+ name: "mydevice1"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
register: devices
-- assert:
- that:
- - devices.iot_devices | length == 1
- - devices.iot_devices[0].deviceId == 'mydevice1'
+- name: Assert the iot device facts
+ ansible.builtin.assert:
+ that:
+ - devices.iot_devices | length == 1
+ - devices.iot_devices[0].deviceId == 'mydevice1'
- name: Pause for 5 mimutes
- shell: sleep 300
-
-- name: Query devices twin
- azure_rm_iotdevice_info:
- hub: "hub{{ rpfx }}"
- query: "SELECT * FROM devices WHERE tags.location.country = 'US'"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
- register: devices
-
-- assert:
- that:
- - devices.iot_devices | length == 2
+ ansible.builtin.command: sleep 300
+ changed_when: true
- name: Update devices
azure_rm_iotdevice:
- hub: "hub{{ rpfx }}"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
- name: "mydevice{{ item }}"
- edge_enabled: yes
- twin_tags:
- location:
- country: China
- city: Shanghai
- sensor: humidity
+ hub: "hub{{ rpfx }}"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
+ name: "mydevice{{ item }}"
+ edge_enabled: true
+ primary_key: "{{ registry_write_key }}"
+ secondary_key: "{{ secondary_key }}"
+ twin_tags:
+ location:
+ country: China
+ city: Shanghai
+ sensor: humidity
with_items:
- 1
- - 3
+ - 2
- name: Pause for 5 mimutes
- shell: sleep 300
+ changed_when: true
+ ansible.builtin.command: sleep 300
- name: Query devices twin
azure_rm_iotdevice_info:
- hub: "hub{{ rpfx }}"
- query: "SELECT * FROM devices WHERE tags.location.country = 'US'"
- hub_policy_name: "{{ registry_write_name }}"
- hub_policy_key: "{{ registry_write_key }}"
+ hub: "hub{{ rpfx }}"
+ hub_policy_name: "{{ registry_write_name }}"
+ hub_policy_key: "{{ registry_write_key }}"
register: devices
-- assert:
- that:
- - devices.iot_devices | length == 1
- - devices.iot_devices[0].deviceId == 'mydevice2'
+- name: Assert the iot devices facts
+ ansible.builtin.assert:
+ that:
+ - devices.iot_devices | length == 2
- name: Delete IoT Hub (check mode)
azure_rm_iothub:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- state: absent
- check_mode: yes
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
+ check_mode: true
register: iothub
-- assert:
+- name: Assert iot hub check mode result
+ ansible.builtin.assert:
that:
- - iothub.changed
+ - iothub.changed
- name: Delete IoT Hub
azure_rm_iothub:
- name: "hub{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "hub{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
register: iothub
-- assert:
+- name: Assert the iot hub deleted
+ ansible.builtin.assert:
that:
- - iothub.changed
+ - iothub.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ipgroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ipgroup/tasks/main.yml
index 8656c7110..604ecce32 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ipgroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_ipgroup/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create IP group name
- set_fact:
+ ansible.builtin.set_fact:
group_name: "ipgroup{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create IP group (check mode)
@@ -14,7 +14,7 @@
tags:
key1: "value1"
state: present
- check_mode: yes
+ check_mode: true
- name: Create IP group
azure_rm_ipgroup:
@@ -31,7 +31,7 @@
register: results
- name: Assert that IP group is created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create same IP group again (Idempotent test)
@@ -49,7 +49,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update IP group
@@ -64,7 +64,7 @@
register: results
- name: Assert that IP group is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get IP group facts
@@ -73,7 +73,8 @@
name: "{{ group_name }}"
register: results
-- assert:
+- name: Assert the ip group facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.ipgroups[0].id != None
@@ -91,7 +92,7 @@
register: results
- name: Assert that IP group is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete IP group again (Idempotent test)
@@ -102,5 +103,5 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py
index 1b7d0318f..c6f488f13 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/lookup_plugins/azure_service_principal_attribute.py
@@ -45,15 +45,13 @@ _raw:
"""
from ansible.errors import AnsibleError
-from ansible.plugins import AnsiblePlugin
from ansible.plugins.lookup import LookupBase
from ansible.module_utils._text import to_native
try:
from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
- from msrestazure import azure_cloud
- from msrestazure.azure_exceptions import CloudError
+ from azure.cli.core import cloud as azure_cloud
except ImportError:
raise AnsibleError(
"The lookup azure_service_principal_attribute requires azure.graphrbac, msrest")
@@ -89,6 +87,6 @@ class LookupModule(LookupBase):
sp = response[0]
return sp.object_id.split(',')
- except CloudError as ex:
+ except Exception as ex:
raise AnsibleError("Failed to get service principal object id: %s" % to_native(ex))
return False
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/tasks/main.yml
index 2cd690fbc..07f324d22 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvault/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
tenant_id: "{{ azure_tenant }}"
- run_once: yes
+ run_once: true
-- name: lookup service principal object id
- set_fact:
+- name: Lookup service principal object id
+ ansible.builtin.set_fact:
object_id: "{{ lookup('azure_service_principal_attribute',
azure_client_id=azure_client_id,
azure_secret=azure_secret,
@@ -16,7 +16,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
soft_delete_retention_in_days: 7
sku:
@@ -43,10 +43,10 @@
- recover
- backup
- restore
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -54,7 +54,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
soft_delete_retention_in_days: 7
sku:
@@ -74,7 +74,7 @@
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -82,7 +82,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
soft_delete_retention_in_days: 7
sku:
@@ -101,7 +101,7 @@
- restore
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -109,7 +109,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
soft_delete_retention_in_days: 7
sku:
@@ -140,7 +140,7 @@
aaa: bbb
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == true
@@ -151,7 +151,7 @@
register: facts
- name: Assert the facts are properly set
- assert:
+ ansible.builtin.assert:
that:
- facts['keyvaults'] | length == 1
- facts['keyvaults'][0]['vault_uri'] != None
@@ -165,19 +165,22 @@
# azure_rm_keyvaultkey tests
#
-- name: create a keyvault key
+- name: Create a keyvault key
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkey
tags:
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey
@@ -189,7 +192,7 @@
register: facts
- name: Assert key facts
- assert:
+ ansible.builtin.assert:
that:
- facts['keys'] | length == 1
- facts['keys'][0]['kid']
@@ -197,22 +200,24 @@
- facts['keys'][0]['type']
- facts['keys'][0]['version']
-- name: delete a kevyault key
+- name: Delete a kevyault key
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey
register: output
-- assert:
+- name: Assert the keyvault deleted
+ ansible.builtin.assert:
that: output.changed
#
# azure_rm_keyvaultsecret tests
#
-- name: create a keyvault secret
+- name: Create a keyvault secret
block:
- - azure_rm_keyvaultsecret:
+ - name: Create a keyvault secret
+ azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
secret_name: testsecret
secret_value: 'mysecret'
@@ -220,22 +225,25 @@
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault secret created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultsecret:
+ - name: Delete the keyvault secret
+ azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
secret_name: testsecret
-- name: delete a keyvault secret
+- name: Delete a keyvault secret
azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
secret_name: testsecret
register: output
-- assert:
+- name: Assert the keyvault secret deleted
+ ansible.builtin.assert:
that: output.changed
#
@@ -247,10 +255,10 @@
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -261,7 +269,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -272,6 +280,6 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py
index 1b7d0318f..c6f488f13 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/lookup_plugins/azure_service_principal_attribute.py
@@ -45,15 +45,13 @@ _raw:
"""
from ansible.errors import AnsibleError
-from ansible.plugins import AnsiblePlugin
from ansible.plugins.lookup import LookupBase
from ansible.module_utils._text import to_native
try:
from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
- from msrestazure import azure_cloud
- from msrestazure.azure_exceptions import CloudError
+ from azure.cli.core import cloud as azure_cloud
except ImportError:
raise AnsibleError(
"The lookup azure_service_principal_attribute requires azure.graphrbac, msrest")
@@ -89,6 +87,6 @@ class LookupModule(LookupBase):
sp = response[0]
return sp.object_id.split(',')
- except CloudError as ex:
+ except Exception as ex:
raise AnsibleError("Failed to get service principal object id: %s" % to_native(ex))
return False
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml
index 1d09f9e6d..869cb7257 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultkey/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
tenant_id: "{{ azure_tenant }}"
- run_once: yes
+ run_once: true
-- name: lookup service principal object id
- set_fact:
+- name: Lookup service principal object id
+ ansible.builtin.set_fact:
object_id: "{{ lookup('azure_service_principal_attribute',
azure_client_id=azure_client_id,
azure_secret=azure_secret,
@@ -16,7 +16,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
sku:
name: standard
@@ -50,33 +50,37 @@
- restore
register: output
-- name: create a kevyault key
+- name: Create a kevyault key
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkey
tags:
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey
-- name: delete a kevyault key
+- name: Delete a kevyault key
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey
register: output
-- name: create a kevyault key of type EC
+- name: Create a kevyault key of type EC
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key of type EC
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkeyEC
key_type: EC
@@ -84,24 +88,27 @@
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeyEC
-- name: delete a kevyault key of type EC
+- name: Delete a kevyault key of type EC
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeyEC
register: output
-- name: create a kevyault key of size 4096
+- name: Create a kevyault key of size 4096
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key of size 4096
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkey4096
key_size: 4096
@@ -109,24 +116,27 @@
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey4096
-- name: delete a kevyault key of size 4096
+- name: Delete a kevyault key of size 4096
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkey4096
register: output
-- name: create a kevyault key with P-521 curve
+- name: Create a kevyault key with P-521 curve
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key with P-521
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkeycurve
curve: P-521
@@ -134,24 +144,27 @@
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault key
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeycurve
-- name: delete a kevyault key with P-521 curve
+- name: Delete a kevyault key with P-521 curve
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeycurve
register: output
-- name: create a kevyault key with attributes
+- name: Create a kevyault key with attributes
block:
- - azure_rm_keyvaultkey:
+ - name: Create a keyvault key with attributes
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
key_name: testkeyattribute
key_attributes:
@@ -161,22 +174,25 @@
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault key created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultkey:
+ - name: Delete the keyvault ke
+ azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeyattributes
-- name: delete a kevyault key with attributes
+- name: Delete a kevyault key with attributes
azure_rm_keyvaultkey:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
key_name: testkeyattribute
register: output
-- assert:
+- name: Assert the keyvault key deleted
+ ansible.builtin.assert:
that: output.changed
- name: Delete instance of Key Vault
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py
index 1b7d0318f..c6f488f13 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/lookup_plugins/azure_service_principal_attribute.py
@@ -45,15 +45,13 @@ _raw:
"""
from ansible.errors import AnsibleError
-from ansible.plugins import AnsiblePlugin
from ansible.plugins.lookup import LookupBase
from ansible.module_utils._text import to_native
try:
from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
- from msrestazure import azure_cloud
- from msrestazure.azure_exceptions import CloudError
+ from azure.cli.core import cloud as azure_cloud
except ImportError:
raise AnsibleError(
"The lookup azure_service_principal_attribute requires azure.graphrbac, msrest")
@@ -89,6 +87,6 @@ class LookupModule(LookupBase):
sp = response[0]
return sp.object_id.split(',')
- except CloudError as ex:
+ except Exception as ex:
raise AnsibleError("Failed to get service principal object id: %s" % to_native(ex))
return False
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml
index 0a4226a0e..d91641d80 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_keyvaultsecret/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
tenant_id: "{{ azure_tenant }}"
- run_once: yes
+ run_once: true
-- name: lookup service principal object id
- set_fact:
+- name: Lookup service principal object id
+ ansible.builtin.set_fact:
object_id: "{{ lookup('azure_service_principal_attribute',
azure_client_id=azure_client_id,
azure_secret=azure_secret,
@@ -16,7 +16,7 @@
azure_rm_keyvault:
resource_group: "{{ resource_group }}"
vault_name: "vault{{ rpfx }}"
- enabled_for_deployment: yes
+ enabled_for_deployment: true
vault_tenant: "{{ tenant_id }}"
sku:
name: standard
@@ -44,23 +44,26 @@
- restore
register: output
-- name: create a kevyault secret
+- name: Create a kevyault secret
block:
- - azure_rm_keyvaultsecret:
+ - name: Create a kevyault secret
+ azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
secret_name: testsecret
secret_value: 'mysecret'
content_type: 'Content Type Secret'
- secret_valid_from: 2000-01-02T010203Z
- secret_expiry: 2030-03-04T040506Z
+ secret_valid_from: 2000-01-02T010203Z
+ secret_expiry: 2030-03-04T040506Z
tags:
testing: test
delete: on-exit
register: output
- - assert:
+ - name: Assert the keyvault secret created
+ ansible.builtin.assert:
that: output.changed
rescue:
- - azure_rm_keyvaultsecret:
+ - name: Delete the keyvault secret
+ azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
secret_name: testsecret
@@ -72,7 +75,7 @@
register: facts
- name: Assert secret facts
- assert:
+ ansible.builtin.assert:
that:
- facts['secrets'] | length == 1
- facts['secrets'][0]['sid']
@@ -85,12 +88,13 @@
- facts['secrets'][0]['attributes']['expires'] == "2030-03-04T04:05:06+00:00"
- facts['secrets'][0]['attributes']['not_before'] == "2000-01-02T01:02:03+00:00"
-- name: delete a kevyault secret
+- name: Delete a kevyault secret
azure_rm_keyvaultsecret:
keyvault_uri: https://vault{{ rpfx }}.vault.azure.net
state: absent
secret_name: testsecret
register: output
-- assert:
+- name: Assert the keyvault secret deleted
+ ansible.builtin.assert:
that: output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml
index 2c1eb736e..913e618d0 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loadbalancer/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
pipaname: "pipa{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
pipbname: "pipb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
lbvnname: "lbvn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
@@ -8,84 +8,84 @@
lbname_c1: "lbc1-{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
lbname_c2: "lbc2-{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
lbname_d: "lbd{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
-- name: create public ip
+- name: Create public ip
azure_rm_publicipaddress:
name: "{{ pipbname }}"
sku: Standard
allocation_method: Static
resource_group: '{{ resource_group }}'
-- name: create public ip
+- name: Create public ip
azure_rm_publicipaddress:
name: "{{ pipaname }}"
resource_group: '{{ resource_group }}'
-- name: clear load balancer
+- name: Clear load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
state: absent
-- name: create load balancer -- check mode
+- name: Create load balancer -- check mode
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
public_ip: "{{ pipaname }}"
- check_mode: yes
+ check_mode: true
register: output
-- name: assert load balancer created
- assert:
+- name: Assert load balancer created
+ ansible.builtin.assert:
that: output.changed
-- name: create load balancer
+- name: Create load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
public_ip: "{{ pipaname }}"
register: output
-- name: assert load balancer created
- assert:
+- name: Assert load balancer created
+ ansible.builtin.assert:
that: output.changed
-- name: create load balancer -- idempotent
+- name: Create load balancer -- idempotent
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
public_ip: "{{ pipaname }}"
register: output
-- name: assert no change
- assert:
+- name: Assert no change
+ ansible.builtin.assert:
that:
- not output.changed
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
state: absent
register: output
-- name: assert load balancer deleted
- assert:
+- name: Assert load balancer deleted
+ ansible.builtin.assert:
that: output.changed
-- name: delete load balancer (idempotent)
+- name: Delete load balancer (idempotent)
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_a }}"
state: absent
register: output
-- name: assert load balancer deleted (idempotent)
- assert:
+- name: Assert load balancer deleted (idempotent)
+ ansible.builtin.assert:
that: not output.changed
-- name: create another load balancer with more options
+- name: Create another load balancer with more options
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_b }}"
@@ -106,13 +106,13 @@
natpool_protocol: Tcp
register: output
-- name: assert complex load balancer created
- assert:
+- name: Assert complex load balancer created
+ ansible.builtin.assert:
that:
- - output.changed
- - output.state.sku.name == 'Standard'
+ - output.changed
+ - output.state.sku.name == 'Standard'
-- name: create load balancer again to check idempotency
+- name: Create load balancer again to check idempotency
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_b }}"
@@ -133,12 +133,12 @@
natpool_protocol: Tcp
register: output
-- name: assert that output has not changed
- assert:
+- name: Assert that output has not changed
+ ansible.builtin.assert:
that:
- - not output.changed
+ - not output.changed
-- name: create load balancer again to check idempotency - change something
+- name: Create load balancer again to check idempotency - change something
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_b }}"
@@ -159,18 +159,18 @@
natpool_protocol: Tcp
register: output
-- name: assert that output has changed
- assert:
+- name: Assert that output has changed
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_b }}"
state: absent
-- name: create load balancer with multiple parameters
+- name: Create load balancer with multiple parameters
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_c1 }}"
@@ -196,21 +196,21 @@
frontend_port: 80
backend_port: 80
probe: prob0
- disable_outbound_snat: True
+ disable_outbound_snat: true
register: output
-- name: assert complex load balancer created
- assert:
+- name: Assert complex load balancer created
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_c1 }}"
state: absent
-- name: create load balancer with multiple parameters
+- name: Create load balancer with multiple parameters
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_c2 }}"
@@ -229,7 +229,7 @@
frontend_port: 80
backend_port: 80
probe: prob0
- disable_outbound_snat: True
+ disable_outbound_snat: true
inbound_nat_rules:
- name: inboundnatrule0
backend_port: 8080
@@ -238,11 +238,11 @@
frontend_ip_configuration: frontendipconf0
register: output
-- name: assert complex load balancer created
- assert:
+- name: Assert complex load balancer created
+ ansible.builtin.assert:
that: output.changed
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_c2 }}"
@@ -250,19 +250,19 @@
- name: Create virtual network
azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ lbvnname }}"
- address_prefixes: "10.10.0.0/16"
+ resource_group: "{{ resource_group }}"
+ name: "{{ lbvnname }}"
+ address_prefixes: "10.10.0.0/16"
- name: Add subnet
azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
- address_prefix: "10.10.0.0/24"
- virtual_network: "{{ lbvnname }}"
+ resource_group: "{{ resource_group }}"
+ name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
+ address_prefix: "10.10.0.0/24"
+ virtual_network: "{{ lbvnname }}"
register: subnet
-- name: create internal loadbalancer
+- name: Create internal loadbalancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_d }}"
@@ -295,39 +295,39 @@
frontend_port: 80
backend_port: 80
probe: prob0
- disable_outbound_snat: False
+ disable_outbound_snat: false
register: output
-- name: assert complex load balancer created
- assert:
+- name: Assert complex load balancer created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.frontend_ip_configurations[0].zones | length == 3
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "{{ lbname_d }}"
state: absent
-- name: cleanup public ip
+- name: Cleanup public ip
azure_rm_publicipaddress:
name: "{{ item }}"
resource_group: '{{ resource_group }}'
state: absent
with_items:
- - "{{ pipaname }}"
- - "{{ pipbname }}"
+ - "{{ pipaname }}"
+ - "{{ pipbname }}"
-- name: cleanup subnet
+- name: Cleanup subnet
azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
- virtual_network: "{{ lbvnname }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
+ virtual_network: "{{ lbvnname }}"
+ state: absent
-- name: cleanup virtual network
+- name: Cleanup virtual network
azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ lbvnname }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ lbvnname }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml
index 3c9e1d493..be5e45572 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_loganalyticsworkspace/tasks/main.yml
@@ -1,26 +1,27 @@
- name: Prepare random number
- set_fact:
- name: "loganalytics{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "loganalytics{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
retention_days: 60
- name: Create Log Analytics Workspace (Check Mode On)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
intelligence_packs:
Backup: true
Containers: true
retention_in_days: "{{ retention_days }}"
resource_group: "{{ resource_group }}"
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Assert there is no log analytics workspace
+ ansible.builtin.assert:
that:
- output.changed
- name: Get Log Analytics workspace information
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
show_intelligence_packs: true
show_management_groups: true
@@ -28,13 +29,14 @@
show_usages: true
register: facts
-- assert:
+- name: Assert the log analytics workspace facts
+ ansible.builtin.assert:
that:
- facts.workspaces | length == 0
- name: Create Log Analytics Workspace
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
intelligence_packs:
Backup: true
Containers: true
@@ -44,7 +46,8 @@
key1: value1
register: output
-- assert:
+- name: Assert the log analytics workspace created
+ ansible.builtin.assert:
that:
- output.changed
- output.retention_in_days == 30
@@ -55,7 +58,7 @@
- name: Update Log Analytics Workspace
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
intelligence_packs:
Backup: true
Containers: true
@@ -66,7 +69,8 @@
key2: value2
register: output
-- assert:
+- name: Assert the log analytics workspace updated
+ ansible.builtin.assert:
that:
- output.changed
- output.retention_in_days == retention_days
@@ -74,7 +78,7 @@
- name: Get Log Analytics workspace information (Show full information)
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
show_intelligence_packs: true
show_management_groups: true
@@ -82,7 +86,8 @@
show_usages: true
register: facts
-- assert:
+- name: Assert the log analytics workspace facts
+ ansible.builtin.assert:
that:
- not facts.changed
- facts.workspaces | length > 0
@@ -100,11 +105,12 @@
- name: Get Log Analytics workspace information (Show default information)
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: facts
-- assert:
+- name: Assert the log analytics workspace facts
+ ansible.builtin.assert:
that:
- not facts.changed
- facts.workspaces | length > 0
@@ -117,67 +123,73 @@
- name: Create Log Analytics workspace (Test Idempotence)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
retention_in_days: "{{ retention_days }}"
register: output
-- assert:
+- name: Assert the log anaytics workspace already created
+ ansible.builtin.assert:
that:
- not output.changed
- name: Remove Log Analytics workspace (Check Mode On)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Assert there is no log anaytics workspace
+ ansible.builtin.assert:
that:
- output.changed
- name: Get Log Analytics workspace information(Check still exists after remove Check Mode On)
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: facts
-- assert:
+- name: Assert the log analytics workspace facts
+ ansible.builtin.assert:
that:
- facts.workspaces | length == 1
- name: Remove Log Analytics workspace
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
force: true
register: output
-- assert:
+- name: Assert the log analytics workspace deleted
+ ansible.builtin.assert:
that:
- output.changed
- name: Get Log Analytics workspace information
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: facts
-- assert:
+- name: Assert the log analytics workspace facts
+ ansible.builtin.assert:
that:
- facts.workspaces | length == 0
- name: Remove Log Analytics workspace (Test Idempotence)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
force: true
register: output
-- assert:
+- name: Assert the log analytics workspace deleted
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_manageddisk/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_manageddisk/tasks/main.yml
index ce6b4e6b6..1ccae8fc0 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_manageddisk/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_manageddisk/tasks/main.yml
@@ -1,260 +1,268 @@
- - name: Prepare random number
- set_fact:
- rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- parameter: {}
- run_once: yes
-
- - name: Clearing (if) previous disks were created
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}{{ item }}"
- managed_by: ''
- state: absent
- with_items:
- - 1
- - 2
- - 3
-
- - name: Test invalid account name (should give error)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "invalid_char$"
- disk_size_gb: 1
- register: output
- ignore_errors: yes
- check_mode: no
-
- - name: Assert task failed
- assert: { that: "output['failed'] == True" }
-
- - name: Create managed disk (Check Mode)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- storage_account_type: "Standard_LRS"
- disk_size_gb: 1
- tags:
- testing: testing
- delete: never
- register: output
- check_mode: yes
-
- - name: Assert status succeeded (Check Mode)
- assert:
- that:
- - output.changed
- - output.state
-
- - name: Create new managed disk succesfully
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- storage_account_type: "Standard_LRS"
- disk_size_gb: 1
- tags:
- testing: testing
- delete: never
- register: output
-
- - name: Assert status succeeded and results include an Id value
- assert:
- that:
- - output.changed
- - output.state.disk_size_gb == 1
- - output.state.id is defined
- - output.state.os_type == None
- - output.state.storage_account_type == "Standard_LRS"
-
- - name: Copy disk to a new managed disk
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}2"
- create_option: "copy"
- source_uri: "{{ output.state.id }}"
- disk_size_gb: 1
- register: disk2
-
- - name: Assert status succeeded and results include an Id value
- assert:
- that:
- - disk2.changed
- - disk2.state.id is defined
-
- - name: Create disk to a new managed disk with zone and os type
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}3"
- source_uri: "{{ output.state.id }}"
- disk_size_gb: 1
- zone: "1"
- os_type: windows
- register: disk3
-
- - name: Assert status succeeded and results include an Id value
- assert:
- that:
- - disk3.changed
- - disk3.state.id is defined
- - disk3.state.zone == "1"
- - disk3.state.os_type == "windows"
-
- - name: Change storage account type to an invalid type
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- storage_account_type: "PremiumL"
- disk_size_gb: 1
- register: output
- ignore_errors: yes
-
- - name: Assert storage account type change failed
- assert: { that: "output['failed'] == True" }
-
- - name: Update disk options (os_type, account_type, size, tags)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- disk_size_gb: 2
- os_type: linux
- storage_account_type: "StandardSSD_LRS"
- tags:
- galaxy: "no"
- delete: never
- register: output
-
- - assert:
- that:
- - output.changed
- - output.state.storage_account_type == "StandardSSD_LRS"
- - output.state.disk_size_gb == 2
- - "output.state.tags | length == 2"
- - "output.state.tags.galaxy == 'no'"
- - output.state.os_type == 'linux'
-
- - name: Gather facts to one specific disk
- azure_rm_manageddisk_info:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- register: output
-
- - assert:
- that:
- - "output.ansible_info.azure_managed_disk | length == 1"
- - output.ansible_info.azure_managed_disk[0].storage_account_type == "StandardSSD_LRS"
- - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
- - "output.ansible_info.azure_managed_disk[0].os_type == 'linux'"
-
- - set_fact:
- parameter: "{{parameter |combine({item.key: item.value})}}"
- when: "{{item.key not in ['id', 'changed'] and item.value != None}}"
- with_dict: "{{ output.ansible_info.azure_managed_disk[0] }}"
-
- - name: Create disk with facts return value
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- location: "{{ parameter.location }}"
- name: "{{ parameter.name }}"
- storage_account_type: "{{ parameter.storage_account_type }}"
- disk_size_gb: "{{ parameter.disk_size_gb }}"
- create_option: "{{ parameter.create_option }}"
- tags: "{{ parameter.tags }}"
- register: output
-
- - assert:
- that:
- - not output.changed
-
- - name: Create new managed disk with I(account_type=StandardSSD_ZRS)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}4"
- storage_account_type: "StandardSSD_ZRS"
- disk_size_gb: 2
- location: westus2
- register: output
-
- - assert:
- that:
- - output.changed
- - output.state.storage_account_type == "StandardSSD_ZRS"
- - output.state.disk_size_gb == 2
-
- - name: Gather facts to one specific disk
- azure_rm_manageddisk_info:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}4"
- register: output
-
- - assert:
- that:
- - "output.ansible_info.azure_managed_disk | length == 1"
- - output.ansible_info.azure_managed_disk[0].storage_account_type == "StandardSSD_ZRS"
- - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
-
- - name: Create new managed disk with I(account_type=Premium_ZRS)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}5"
- storage_account_type: "Premium_ZRS"
- disk_size_gb: 2
- location: westus2
- register: output
-
- - assert:
- that:
- - output.changed
- - output.state.storage_account_type == "Premium_ZRS"
- - output.state.disk_size_gb == 2
-
- - name: Gather facts to one specific disk
- azure_rm_manageddisk_info:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}5"
- register: output
-
- - assert:
- that:
- - "output.ansible_info.azure_managed_disk | length == 1"
- - output.ansible_info.azure_managed_disk[0].storage_account_type == "Premium_ZRS"
- - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
-
- - name: Delete managed disk (Check Mode)
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}1"
- state: absent
- register: output
- check_mode: yes
-
- - name: Assert status succeeded
- assert:
- that:
- - output.changed
- - output.state
-
- - name: Delete all managed disk
- azure_rm_manageddisk:
- resource_group: "{{ resource_group }}"
- name: "md{{ rpfx }}{{ item }}"
- managed_by: ''
- state: absent
- with_items:
- - 1
- - 2
- - 3
- - 4
- - 5
-
- - name: Delete virtual machine
- azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "tr{{ rpfx }}"
- state: absent
- vm_size: Standard_DS1_v2
-
- - name: Delete public ip
- azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- allocation_method: Static
- name: "tr{{ rpfx }}"
- state: absent
+- name: Prepare random number
+ ansible.builtin.set_fact:
+ rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ parameter: {}
+ run_once: true
+
+- name: Clearing (if) previous disks were created
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}{{ item }}"
+ managed_by: ''
+ state: absent
+ with_items:
+ - 1
+ - 2
+ - 3
+
+- name: Test invalid account name (should give error)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "invalid_char$"
+ disk_size_gb: 1
+ register: output
+ ignore_errors: true
+ check_mode: false
+
+- name: Assert task failed
+ ansible.builtin.assert: { that: "output['failed'] == True" }
+
+- name: Create managed disk (Check Mode)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ storage_account_type: "Standard_LRS"
+ disk_size_gb: 1
+ tags:
+ testing: testing
+ delete: never
+ register: output
+ check_mode: true
+
+- name: Assert status succeeded (Check Mode)
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state
+
+- name: Create new managed disk succesfully
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ storage_account_type: "Standard_LRS"
+ disk_size_gb: 1
+ tags:
+ testing: testing
+ delete: never
+ register: output
+
+- name: Assert status succeeded and results include an Id value
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.disk_size_gb == 1
+ - output.state.id is defined
+ - output.state.os_type == None
+ - output.state.storage_account_type == "Standard_LRS"
+
+- name: Copy disk to a new managed disk
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}2"
+ create_option: "copy"
+ source_uri: "{{ output.state.id }}"
+ disk_size_gb: 1
+ register: disk2
+
+- name: Assert status succeeded and results include an Id value
+ ansible.builtin.assert:
+ that:
+ - disk2.changed
+ - disk2.state.id is defined
+
+- name: Create disk to a new managed disk with zone and os type
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}3"
+ source_uri: "{{ output.state.id }}"
+ disk_size_gb: 1
+ zone: "1"
+ os_type: windows
+ register: disk3
+
+- name: Assert status succeeded and results include an Id value
+ ansible.builtin.assert:
+ that:
+ - disk3.changed
+ - disk3.state.id is defined
+ - disk3.state.zone == "1"
+ - disk3.state.os_type == "windows"
+
+- name: Change storage account type to an invalid type
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ storage_account_type: "PremiumL"
+ disk_size_gb: 1
+ register: output
+ ignore_errors: true
+
+- name: Assert storage account type change failed
+ ansible.builtin.assert: { that: "output['failed'] == True" }
+
+- name: Update disk options (os_type, account_type, size, tags)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ disk_size_gb: 2
+ os_type: linux
+ storage_account_type: "StandardSSD_LRS"
+ tags:
+ galaxy: "no"
+ delete: never
+ register: output
+
+- name: Assert the disk updated
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.storage_account_type == "StandardSSD_LRS"
+ - output.state.disk_size_gb == 2
+ - "output.state.tags | length == 2"
+ - "output.state.tags.galaxy == 'no'"
+ - output.state.os_type == 'linux'
+
+- name: Gather facts to one specific disk
+ azure_rm_manageddisk_info:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ register: output
+
+- name: Assert the disk facts
+ ansible.builtin.assert:
+ that:
+ - "output.ansible_info.azure_managed_disk | length == 1"
+ - output.ansible_info.azure_managed_disk[0].storage_account_type == "StandardSSD_LRS"
+ - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
+ - "output.ansible_info.azure_managed_disk[0].os_type == 'linux'"
+
+- name: Set variables
+ ansible.builtin.set_fact:
+ parameter: "{{ parameter | combine({item.key: item.value}) }}"
+ when: item.key not in ['id', 'changed'] and item.value != None
+ with_dict: "{{ output.ansible_info.azure_managed_disk[0] }}"
+
+- name: Create disk with facts return value
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ location: "{{ parameter.location }}"
+ name: "{{ parameter.name }}"
+ storage_account_type: "{{ parameter.storage_account_type }}"
+ disk_size_gb: "{{ parameter.disk_size_gb }}"
+ create_option: "{{ parameter.create_option }}"
+ tags: "{{ parameter.tags }}"
+ register: output
+
+- name: Assert the disk created
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Create new managed disk with I(account_type=StandardSSD_ZRS)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}4"
+ storage_account_type: "StandardSSD_ZRS"
+ disk_size_gb: 2
+ location: westus2
+ register: output
+
+- name: Assert the managed disk update
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.storage_account_type == "StandardSSD_ZRS"
+ - output.state.disk_size_gb == 2
+
+- name: Gather facts to one specific disk
+ azure_rm_manageddisk_info:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}4"
+ register: output
+
+- name: Assert the managed disk facts
+ ansible.builtin.assert:
+ that:
+ - "output.ansible_info.azure_managed_disk | length == 1"
+ - output.ansible_info.azure_managed_disk[0].storage_account_type == "StandardSSD_ZRS"
+ - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
+
+- name: Create new managed disk with I(account_type=Premium_ZRS)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}5"
+ storage_account_type: "Premium_ZRS"
+ disk_size_gb: 2
+ location: westus2
+ register: output
+
+- name: Assert the managed disk created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.storage_account_type == "Premium_ZRS"
+ - output.state.disk_size_gb == 2
+
+- name: Gather facts to one specific disk
+ azure_rm_manageddisk_info:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}5"
+ register: output
+
+- name: Assert the managed disk facts
+ ansible.builtin.assert:
+ that:
+ - "output.ansible_info.azure_managed_disk | length == 1"
+ - output.ansible_info.azure_managed_disk[0].storage_account_type == "Premium_ZRS"
+ - output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
+
+- name: Delete managed disk (Check Mode)
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}1"
+ state: absent
+ register: output
+ check_mode: true
+
+- name: Assert status succeeded
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state
+
+- name: Delete all managed disk
+ azure_rm_manageddisk:
+ resource_group: "{{ resource_group }}"
+ name: "md{{ rpfx }}{{ item }}"
+ managed_by: ''
+ state: absent
+ with_items:
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+
+- name: Delete virtual machine
+ azure_rm_virtualmachine:
+ resource_group: "{{ resource_group }}"
+ name: "tr{{ rpfx }}"
+ state: absent
+ vm_size: Standard_DS1_v2
+
+- name: Delete public ip
+ azure_rm_publicipaddress:
+ resource_group: "{{ resource_group }}"
+ allocation_method: Static
+ name: "tr{{ rpfx }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_managementgroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_managementgroup/tasks/main.yml
index 3a6c03649..1f4e94634 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_managementgroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_managementgroup/tasks/main.yml
@@ -5,31 +5,31 @@
- name: Get a managementgroup by id
azure_rm_managementgroup_info:
id: "{{ az_all_managementgroups.management_groups[0].id }}"
- recurse: True
- flatten: True
- children: True
+ recurse: true
+ flatten: true
+ children: true
register: az_recursive_managementgroups
- name: Get a managementgroup by name
azure_rm_managementgroup_info:
name: "{{ az_all_managementgroups.management_groups[0].name }}"
- recurse: True
- flatten: True
+ recurse: true
+ flatten: true
- name: Test invalid name id combo
azure_rm_managementgroup_info:
name: "{{ az_all_managementgroups.management_groups[0].name }}"
id: "{{ az_all_managementgroups.management_groups[0].id }}"
register: invalid_name
- ignore_errors: yes
+ ignore_errors: true
- name: Validate expected states
- assert:
+ ansible.builtin.assert:
that:
- invalid_name['failed']
- name: Validate expected attributes
- assert:
+ ansible.builtin.assert:
that:
- "{{ item.id is defined }}"
loop: "{{ az_recursive_managementgroups.management_groups + az_recursive_managementgroups.subscriptions }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml
index 14d101a9a..4fd89fb26 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create instance of MariaDB Server -- check mode
azure_rm_mariadbserver:
@@ -13,13 +13,13 @@
location: westus2
storage_mb: 51200
version: 10.2
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -33,12 +33,12 @@
location: westus2
storage_mb: 51200
version: 10.2
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -53,12 +53,12 @@
location: westus2
storage_mb: 51200
version: 10.2
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.state == 'Ready'
@@ -73,16 +73,17 @@
location: westus2
storage_mb: 128000
version: 10.2
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
-- debug:
+- name: Print the state of the mariadb server
+ ansible.builtin.debug:
var: output
- name: Gather facts MariaDB Server
@@ -91,7 +92,7 @@
name: mariadbsrv{{ rpfx }}
register: output
- name: Assert that storage size is correct
- assert:
+ ansible.builtin.assert:
that:
- output.servers[0]['storage_mb'] == 128000
@@ -105,7 +106,7 @@
location: westus2
storage_mb: 51200
version: 10.3
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
tags:
@@ -121,7 +122,7 @@
location: westus2
storage_mb: 51200
version: 10.3
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
tags:
@@ -131,10 +132,10 @@
azure_rm_mariadbserver_info:
resource_group: "{{ resource_group }}"
name: mariadbsrv{{ rpfx }}second
- register: output
+ register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -154,7 +155,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -184,10 +185,10 @@
resource_group: "{{ resource_group }}"
server_name: mariadbsrv{{ rpfx }}
name: testdatabase
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -200,7 +201,7 @@
charset: latin1
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -214,7 +215,7 @@
charset: latin1
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.name == 'testdatabase'
@@ -226,10 +227,10 @@
name: testdatabase
collation: utf8_general_ci
charset: utf8
- ignore_errors: yes
+ ignore_errors: true
register: output
- name: Assert that nothing has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
@@ -240,10 +241,10 @@
name: testdatabase
collation: utf8_general_ci
charset: utf8
- force_update: yes
+ force_update: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -259,10 +260,10 @@
resource_group: "{{ resource_group }}"
server_name: mariadbsrv{{ rpfx }}
name: testdatabase
- register: output
+ register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -276,7 +277,7 @@
server_name: mariadbsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -294,10 +295,10 @@
server_name: mariadbsrv{{ rpfx }}
name: testdatabase
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -309,7 +310,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -321,7 +322,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -335,10 +336,10 @@
name: firewallrule{{ rpfx }}
start_ip_address: 172.28.10.136
end_ip_address: 172.28.10.138
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -351,7 +352,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -364,7 +365,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -374,10 +375,10 @@
server_name: mariadbsrv{{ rpfx }}
name: firewallrule{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -390,7 +391,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -401,7 +402,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -417,7 +418,7 @@
server_name: mariadbsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -439,7 +440,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -451,7 +452,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -469,7 +470,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that empty list was returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- "output.rules | length == 0"
@@ -483,10 +484,10 @@
server_name: mariadbsrv{{ rpfx }}
name: event_scheduler
value: "ON"
- check_mode: yes
+ check_mode: true
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -497,7 +498,7 @@
name: event_scheduler
register: output
- name: Get facts of event_scheduler
- debug:
+ ansible.builtin.debug:
var: output
- name: Try to delete default configuraion
@@ -508,7 +509,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -520,7 +521,7 @@
value: "ON"
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -532,7 +533,7 @@
value: "ON"
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -544,7 +545,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -556,7 +557,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -567,7 +568,7 @@
name: event_scheduler
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -583,7 +584,7 @@
server_name: mariadbsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -602,10 +603,10 @@
resource_group: "{{ resource_group }}"
name: mariadbsrv{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -616,7 +617,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -627,7 +628,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml
index a725a0b33..46ef90a8d 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitordiagnosticsetting/tasks/main.yml
@@ -1,18 +1,18 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
# ------ setup ------
-- name: create virtual network
+- name: Create virtual network
azure_rm_virtualnetwork:
name: "vnet-{{ rpfx }}"
resource_group: "{{ resource_group }}"
address_prefixes: "10.0.0.0/16"
register: vnet_output
-- name: create web app
+- name: Create web app
azure_rm_webapp:
name: "webapp-{{ rpfx }}"
resource_group: "{{ resource_group }}"
@@ -23,7 +23,7 @@
sku: S1
register: webapp_output
-- name: create storage account
+- name: Create storage account
azure_rm_storageaccount:
name: "storage{{ rpfx }}"
resource_group: "{{ resource_group }}"
@@ -31,7 +31,7 @@
kind: StorageV2
register: storage_output
-- name: create second storage account
+- name: Create second storage account
azure_rm_storageaccount:
name: "storagesecond{{ rpfx }}"
resource_group: "{{ resource_group_secondary }}"
@@ -39,13 +39,13 @@
kind: StorageV2
register: storage2_output
-- name: create event hub namespace
+- name: Create event hub namespace
azure_rm_eventhub:
namespace_name: "hub-{{ rpfx }}"
resource_group: "{{ resource_group }}"
sku: "Basic"
-- name: create log analytics workspace
+- name: Create log analytics workspace
azure_rm_loganalyticsworkspace:
name: "analytics-{{ rpfx }}"
resource_group: "{{ resource_group_secondary }}"
@@ -54,23 +54,23 @@
# ------ tests ------
-- name: get diagnostic settings for non-existant resource
+- name: Get diagnostic settings for non-existant resource
azure_rm_monitordiagnosticsetting_info:
resource: "123abc"
register: output
failed_when: '"failed" not in output.msg | lower'
-- name: get diagnostic settings for virtual network
+- name: Get diagnostic settings for virtual network
azure_rm_monitordiagnosticsetting_info:
resource: "{{ vnet_output.state.id }}"
register: output
-- name: assert no settings
- assert:
+- name: Assert no settings
+ ansible.builtin.assert:
that:
- not output.changed
- output.settings | length == 0
-- name: create storage-based diagnostic setting for vnet (check mode)
+- name: Create storage-based diagnostic setting for vnet (check mode)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
@@ -81,12 +81,12 @@
- category: "AllMetrics"
check_mode: true
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- output.changed
-- name: create storage-based diagnostic setting for vnet (actually create)
+- name: Create storage-based diagnostic setting for vnet (actually create)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
@@ -96,8 +96,8 @@
metrics:
- category: "AllMetrics"
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.name == 'logs-storage'
@@ -111,7 +111,7 @@
- not output.state.event_hub
- not output.state.log_analytics
-- name: create storage-based diagnostic setting for vnet (idempotent)
+- name: Create storage-based diagnostic setting for vnet (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
@@ -122,12 +122,12 @@
- category: "AllMetrics"
check_mode: true
register: output
-- name: assert resource not changed
- assert:
+- name: Assert resource not changed
+ ansible.builtin.assert:
that:
- not output.changed
-- name: create storage-based diagnostic setting for vnet by resource dict (idempotent)
+- name: Create storage-based diagnostic setting for vnet by resource dict (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource:
@@ -140,12 +140,12 @@
metrics:
- category: "AllMetrics"
register: output
-- name: assert resource not changed
- assert:
+- name: Assert resource not changed
+ ansible.builtin.assert:
that:
- not output.changed
-- name: update storage-based diagnostic setting for vnet
+- name: Update storage-based diagnostic setting for vnet
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
@@ -153,8 +153,8 @@
logs:
- category_group: "allLogs"
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- output.changed
- output.state.name == 'logs-storage'
@@ -166,7 +166,7 @@
- not output.state.event_hub
- not output.state.log_analytics
-- name: create second storage-based diagnostic setting for vnet
+- name: Create second storage-based diagnostic setting for vnet
azure_rm_monitordiagnosticsetting:
name: "logs-storage2"
resource: "{{ vnet_output.state.id }}"
@@ -178,8 +178,8 @@
retention_policy:
days: 15
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.name == 'logs-storage2'
@@ -193,7 +193,7 @@
- not output.state.event_hub
- not output.state.log_analytics
-- name: update second storage-based diagnostic setting for vnet
+- name: Update second storage-based diagnostic setting for vnet
azure_rm_monitordiagnosticsetting:
name: "logs-storage2"
resource: "{{ vnet_output.state.id }}"
@@ -205,13 +205,13 @@
retention_policy:
days: 30
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.logs[0].retention_policy.days == 30
-- name: update second storage-based diagnostic setting for vnet (idempotent)
+- name: Update second storage-based diagnostic setting for vnet (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs-storage2"
resource: "{{ vnet_output.state.id }}"
@@ -223,17 +223,17 @@
retention_policy:
days: 30
register: output
-- name: assert resource not changed
- assert:
+- name: Assert resource not changed
+ ansible.builtin.assert:
that:
- not output.changed
-- name: get diagnostic settings for virtual network
+- name: Get diagnostic settings for virtual network
azure_rm_monitordiagnosticsetting_info:
resource: "{{ vnet_output.state.id }}"
register: output
-- name: assert output maches expectations
- assert:
+- name: Assert output maches expectations
+ ansible.builtin.assert:
that:
- output.settings | length == 2
- output.settings[0].name == 'logs-storage'
@@ -255,13 +255,13 @@
- not output.settings[1].event_hub
- not output.settings[1].log_analytics
-- name: get specific diagnostic settings for virtual network
+- name: Get specific diagnostic settings for virtual network
azure_rm_monitordiagnosticsetting_info:
name: "logs-storage2"
resource: "{{ vnet_output.state.id }}"
register: output
-- name: assert output maches expectations
- assert:
+- name: Assert output maches expectations
+ ansible.builtin.assert:
that:
- output.settings | length == 1
- output.settings[0].name == 'logs-storage2'
@@ -275,17 +275,17 @@
- not output.settings[0].event_hub
- not output.settings[0].log_analytics
-- name: get non-existant diagnostic setting for virtual network
+- name: Get non-existant diagnostic setting for virtual network
azure_rm_monitordiagnosticsetting_info:
name: "does-not-exist"
resource: "{{ vnet_output.state.id }}"
register: output
-- name: assert no settings
- assert:
+- name: Assert no settings
+ ansible.builtin.assert:
that:
- output.settings | length == 0
-- name: create diagnostic setting for webapp with log analytics, event hub, and storage
+- name: Create diagnostic setting for webapp with log analytics, event hub, and storage
azure_rm_monitordiagnosticsetting:
name: "logs"
resource:
@@ -308,8 +308,8 @@
- category: "AppServiceIPSecAuditLogs"
- category: "AppServicePlatformLogs"
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.name == 'logs'
@@ -326,7 +326,7 @@
- output.state.logs[5].category == 'AppServicePlatformLogs'
- output.state.metrics | length == 0
-- name: create diagnostic setting for webapp with log analytics, event hub, and storage (idempotent)
+- name: Create diagnostic setting for webapp with log analytics, event hub, and storage (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs"
resource:
@@ -349,12 +349,12 @@
- category: "AppServiceIPSecAuditLogs"
- category: "AppServicePlatformLogs"
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- not output.changed
-- name: update diagnostic setting to remove storage and log category
+- name: Update diagnostic setting to remove storage and log category
azure_rm_monitordiagnosticsetting:
name: "logs"
resource:
@@ -374,8 +374,8 @@
- category: "AppServiceIPSecAuditLogs"
- category: "AppServicePlatformLogs"
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- output.changed
- not output.state.storage_account
@@ -386,7 +386,7 @@
- output.state.logs[3].category == 'AppServiceIPSecAuditLogs'
- output.state.logs[4].category == 'AppServicePlatformLogs'
-- name: delete diagnostic setting via resource dict
+- name: Delete diagnostic setting via resource dict
azure_rm_monitordiagnosticsetting:
name: "logs"
resource:
@@ -395,12 +395,12 @@
resource_group: "{{ resource_group }}"
state: "absent"
register: output
-- name: assert resource delete
- assert:
+- name: Assert resource delete
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete diagnostic setting via resource dict (idempotent)
+- name: Delete diagnostic setting via resource dict (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs"
resource:
@@ -409,95 +409,95 @@
resource_group: "{{ resource_group }}"
state: "absent"
register: output
-- name: assert resource delete
- assert:
+- name: Assert resource delete
+ ansible.builtin.assert:
that:
- not output.changed
-- name: delete diagnostic setting (check mode)
+- name: Delete diagnostic setting (check mode)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
state: "absent"
check_mode: true
register: output
-- name: assert resource deleted
- assert:
+- name: Assert resource deleted
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete diagnostic setting (actually delete)
+- name: Delete diagnostic setting (actually delete)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
state: "absent"
register: output
-- name: assert resource deleted
- assert:
+- name: Assert resource deleted
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete diagnostic setting (idempotent)
+- name: Delete diagnostic setting (idempotent)
azure_rm_monitordiagnosticsetting:
name: "logs-storage"
resource: "{{ vnet_output.state.id }}"
state: "absent"
register: output
-- name: assert resource already deleted
- assert:
+- name: Assert resource already deleted
+ ansible.builtin.assert:
that:
- not output.changed
-- name: delete second diagnostic setting
+- name: Delete second diagnostic setting
azure_rm_monitordiagnosticsetting:
name: "logs-storage2"
resource: "{{ vnet_output.state.id }}"
state: "absent"
register: output
-- name: assert resource deleted
- assert:
+- name: Assert resource deleted
+ ansible.builtin.assert:
that:
- output.changed
# ------ teardown ------
-- name: delete log analytics workspace
+- name: Delete log analytics workspace
azure_rm_loganalyticsworkspace:
name: "analytics-{{ rpfx }}"
resource_group: "{{ resource_group_secondary }}"
state: "absent"
-- name: delete event hub namespace
+- name: Delete event hub namespace
azure_rm_eventhub:
namespace_name: "hub-{{ rpfx }}"
resource_group: "{{ resource_group }}"
state: "absent"
-- name: delete second storage account
+- name: Delete second storage account
azure_rm_storageaccount:
name: "storagesecond{{ rpfx }}"
resource_group: "{{ resource_group_secondary }}"
state: "absent"
-- name: delete storage account
+- name: Delete storage account
azure_rm_storageaccount:
name: "storage{{ rpfx }}"
resource_group: "{{ resource_group }}"
state: "absent"
-- name: delete web app
+- name: Delete web app
azure_rm_webapp:
name: "webapp-{{ rpfx }}"
resource_group: "{{ resource_group }}"
state: "absent"
-- name: delete web app plan
+- name: Delete web app plan
azure_rm_appserviceplan:
name: "webapp-{{ rpfx }}-plan"
resource_group: "{{ resource_group }}"
state: "absent"
-- name: delete virtual network
+- name: Delete virtual network
azure_rm_virtualnetwork:
name: "vnet-{{ rpfx }}"
resource_group: "{{ resource_group }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml
index dc30caf98..0a41203ad 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_monitorlogprofile/tasks/main.yml
@@ -1,17 +1,17 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
storage_name: "storage{{ resource_group | hash('md5') | truncate(5, True, '') }}{{ 1000 | random }}"
profile_name: "profile{{ resource_group | hash('md5') | truncate(5, True, '') }}{{ 1000 | random }}"
location: eastus
- run_once: yes
+ run_once: true
-- name: create Azure storage account
+- name: Create Azure storage account
azure_rm_storageaccount:
name: '{{ storage_name }}'
resource_group: "{{ resource_group }}"
account_type: Standard_LRS
-- name: create log profile (check mode)
+- name: Create log profile (check mode)
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
location: "{{ location }}"
@@ -22,20 +22,20 @@
- Write
- Action
retention_policy:
- enabled: False
+ enabled: false
days: 1
storage_account:
resource_group: "{{ resource_group }}"
name: "{{ storage_name }}"
- check_mode: yes
+ check_mode: true
register: output
-- name: assert create check mode
- assert:
+- name: Assert create check mode
+ ansible.builtin.assert:
that:
- output.changed
-- name: create log profile
+- name: Create log profile
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
location: "{{ location }}"
@@ -46,19 +46,19 @@
- Write
- Action
retention_policy:
- enabled: False
+ enabled: false
days: 1
storage_account:
resource_group: "{{ resource_group }}"
name: "{{ storage_name }}"
register: output
-- name: assert create
- assert:
+- name: Assert create
+ ansible.builtin.assert:
that:
- output.changed
- output.id
-- name: update log profile (idempotence)
+- name: Update log profile (idempotence)
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
location: "{{ location }}"
@@ -69,18 +69,18 @@
- Write
- Action
retention_policy:
- enabled: False
+ enabled: false
days: 1
storage_account:
resource_group: "{{ resource_group }}"
name: "{{ storage_name }}"
register: output
-- name: assert update idempotence
- assert:
+- name: Assert update idempotence
+ ansible.builtin.assert:
that:
- not output.changed
-- name: update log profile
+- name: Update log profile
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
location: "{{ location }}"
@@ -90,44 +90,44 @@
- Write
- Action
retention_policy:
- enabled: False
+ enabled: false
days: 2
storage_account:
resource_group: "{{ resource_group }}"
name: "{{ storage_name }}"
register: output
-- name: assert update
- assert:
+- name: Assert update
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete log profile (check mode)
+- name: Delete log profile (check mode)
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
state: absent
register: output
check_mode: true
-- name: assert delete
- assert:
+- name: Assert delete
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete log profile
+- name: Delete log profile
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
state: absent
register: output
-- name: assert delete
- assert:
+- name: Assert delete
+ ansible.builtin.assert:
that:
- output.changed
-- name: delete log profile (idempotence)
+- name: Delete log profile (idempotence)
azure_rm_monitorlogprofile:
name: "{{ profile_name }}"
state: absent
register: output
-- name: assert delete
- assert:
+- name: Assert delete
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml
index 78b712653..b25349009 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/main.yml
@@ -1,2 +1,4 @@
-- include_tasks: tasks/test_shared.yml
-- include_tasks: tasks/test_async.yml
+- name: Excute test_shared.yml
+ ansible.builtin.include_tasks: tasks/test_shared.yml
+- name: Excute test_async.yml
+ ansible.builtin.include_tasks: tasks/test_async.yml
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml
index 448a54dde..25398bf7e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_async.yml
@@ -16,28 +16,28 @@
- name: Create virtual machines
azure_rm_virtualmachine:
- resource_group: "{{ resource_group_secondary }}"
- name: "{{ async_virtual_machine_prefix }}-{{ item }}"
- vm_size: Standard_E2_v3
- managed_disk_type: Standard_LRS
- virtual_network: "{{ async_virtual_network }}-{{ item }}"
- admin_username: adminuser
- admin_password: "!test123@"
- os_type: Linux
- image:
- offer: UbuntuServer
- publisher: Canonical
- sku: 16.04-LTS
- version: latest
- tags:
- key: value
+ resource_group: "{{ resource_group_secondary }}"
+ name: "{{ async_virtual_machine_prefix }}-{{ item }}"
+ vm_size: Standard_E2_v3
+ managed_disk_type: Standard_LRS
+ virtual_network: "{{ async_virtual_network }}-{{ item }}"
+ admin_username: adminuser
+ admin_password: "!test123@"
+ os_type: Linux
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ version: latest
+ tags:
+ key: value
with_sequence: start=1 end="{{ async_number_virtual_machine }}"
register: create_vms
async: 1000
poll: 0
- name: Wait for Virtual machine to be created
- async_status:
+ ansible.builtin.async_status:
jid: "{{ item.ansible_job_id }}"
register: wait_create_vm
until: wait_create_vm.finished
@@ -52,7 +52,8 @@
- key
register: _vms
-- set_fact:
+- name: Set varialbes
+ ansible.builtin.set_fact:
attach_disk_config: "{{ lookup('template', 'disk_config.j2') | from_yaml }}"
vars:
virtual_machines: "{{ _vms.vms }}"
@@ -68,7 +69,7 @@
with_items: "{{ attach_disk_config }}"
- name: Wait for disks to be created and attached
- async_status:
+ ansible.builtin.async_status:
jid: "{{ item.ansible_job_id }}"
register: attach_disk
until: attach_disk.finished
@@ -84,7 +85,7 @@
with_items: "{{ attach_disk_config | map(attribute='disks') | flatten | list }}"
- name: Validate that disks are attached to VMs
- assert:
+ ansible.builtin.assert:
that:
- result.ansible_info.azure_managed_disk[0].managed_by
with_items: "{{ disks_info.results }}"
@@ -103,7 +104,7 @@
with_items: "{{ attach_disk_config }}"
- name: Wait for disks to be created and attached
- async_status:
+ ansible.builtin.async_status:
jid: "{{ item.ansible_job_id }}"
register: attach_disk
until: attach_disk.finished
@@ -119,7 +120,7 @@
with_items: "{{ attach_disk_config | map(attribute='disks') | flatten | list }}"
- name: Validate that disks are attached to VMs
- assert:
+ ansible.builtin.assert:
that:
- not result.ansible_info.azure_managed_disk[0].managed_by
with_items: "{{ disks_info.results }}"
@@ -136,7 +137,7 @@
with_items: "{{ attach_disk_config }}"
- name: Wait for disks to be created and attached
- async_status:
+ ansible.builtin.async_status:
jid: "{{ item.ansible_job_id }}"
register: attach_disk
until: attach_disk.finished
@@ -152,7 +153,7 @@
with_items: "{{ attach_disk_config | map(attribute='disks') | flatten | list }}"
- name: Validate that disks are attached to VMs
- assert:
+ ansible.builtin.assert:
that:
- result.ansible_info.azure_managed_disk == []
with_items: "{{ disks_info.results }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml
index 853ef8ed4..4b6e5f638 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_multiplemanageddisks/tasks/test_shared.yml
@@ -18,7 +18,7 @@
ignore_errors: true
- name: Validate that disk creation failed
- assert:
+ ansible.builtin.assert:
that:
- result is failed
- 'result.msg == "Some required options are missing from managed disks configuration."'
@@ -33,7 +33,7 @@
register: azure_disks
- name: Ensure result is changed
- assert:
+ ansible.builtin.assert:
that:
- azure_disks is changed
- azure_disks.state | length == 2
@@ -51,12 +51,12 @@
register: create_idempotency
- name: Ensure result is not changed
- assert:
+ ansible.builtin.assert:
that:
- create_idempotency is not changed
- name: Validate that disks have been created
- assert:
+ ansible.builtin.assert:
that:
- item.name in disk_names
with_items: "{{ shared_disks }}"
@@ -81,26 +81,26 @@
- name: Create virtual machines
azure_rm_virtualmachine:
- resource_group: "{{ item.resource_group }}"
- name: "{{ item.name }}"
- vm_size: Standard_E2_v3
- virtual_network: "vnet-{{ item.name }}"
- managed_disk_type: Standard_LRS
- admin_username: adminuser
- admin_password: "!test123@"
- os_type: Linux
- image:
- offer: UbuntuServer
- publisher: Canonical
- sku: 16.04-LTS
- version: latest
+ resource_group: "{{ item.resource_group }}"
+ name: "{{ item.name }}"
+ vm_size: Standard_E2_v3
+ virtual_network: "vnet-{{ item.name }}"
+ managed_disk_type: Standard_LRS
+ admin_username: adminuser
+ admin_password: "!test123@"
+ os_type: Linux
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ version: latest
with_items: "{{ shared_virtual_machines }}"
register: create_vms
async: 1000
poll: 0
- name: Wait for Virtual machine to be created
- async_status:
+ ansible.builtin.async_status:
jid: "{{ item.ansible_job_id }}"
register: wait_create_vm
until: wait_create_vm.finished
@@ -115,7 +115,8 @@
register: vm_result
with_items: "{{ shared_virtual_machines }}"
-- set_fact:
+- name: Assert the virtualmachine facts
+ ansible.builtin.set_fact:
vm_ids: "{{ vm_result.results | map(attribute='vms') | flatten | map(attribute='id') | list }}"
# Test attach disk on VMs
@@ -128,7 +129,7 @@
with_items: "{{ shared_virtual_machines }}"
- name: Ensure result is changed
- assert:
+ ansible.builtin.assert:
that:
- attach_disks is changed
- attach_disks.results | length == 2
@@ -141,7 +142,7 @@
with_items: "{{ shared_disks }}"
- name: Validate disks are attached to the VMs
- assert:
+ ansible.builtin.assert:
that:
- azure_managed_disks | length == 2
- azure_managed_disks.0.managed_by_extended | length == 2
@@ -160,7 +161,7 @@
register: attach_idempotency
- name: Ensure result is not changed
- assert:
+ ansible.builtin.assert:
that:
- attach_idempotency is not changed
@@ -169,13 +170,13 @@
azure.azcollection.azure_rm_multiplemanageddisks:
managed_disks:
- "{{ shared_disks[0] }}"
- managed_by_extended:
+ managed_by_extended:
- "{{ shared_virtual_machines[0] }}"
state: absent
register: detach_disks
- name: Ensure result is changed
- assert:
+ ansible.builtin.assert:
that:
- detach_disks is changed
@@ -187,7 +188,7 @@
with_items: "{{ shared_disks }}"
- name: Ensure disk 1 is attached to VM 1 only and disk 2 is attached to VM 1 and VM 2
- assert:
+ ansible.builtin.assert:
that:
- azure_managed_disks | length == 2
- azure_managed_disks.0.managed_by_extended | length == 1
@@ -204,20 +205,20 @@
azure.azcollection.azure_rm_multiplemanageddisks:
managed_disks:
- "{{ shared_disks[0] }}"
- managed_by_extended:
+ managed_by_extended:
- "{{ shared_virtual_machines[0] }}"
state: absent
register: detach_idempotency
- name: Ensure result is not changed
- assert:
+ ansible.builtin.assert:
that:
- detach_idempotency is not changed
# Test Detach disks from all VMs
- name: Detach disk 2 from all VMs
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[1] }}"
managed_by_extended: []
state: present
@@ -230,7 +231,7 @@
register: azure_disks
- name: Ensure disk is not attached to any VM
- assert:
+ ansible.builtin.assert:
that:
- detach_from_vms is changed
- azure_disks.ansible_info.azure_managed_disk | length == 1
@@ -239,14 +240,14 @@
- name: Detach disk 2 from all VMs once again (idempotency)
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[1] }}"
managed_by_extended: []
state: present
register: detach_from_vms
- name: Ensure nothing changed
- assert:
+ ansible.builtin.assert:
that:
- detach_from_vms is not changed
@@ -258,14 +259,14 @@
register: azure_disks
- name: Ensure disk is attached to at least one VM
- assert:
+ ansible.builtin.assert:
that:
- azure_disks.ansible_info.azure_managed_disk.0.managed_by
- azure_disks.ansible_info.azure_managed_disk.0.managed_by_extended | length > 0
- name: Delete managed disk attached to VM
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[0] }}"
state: absent
register: delete_attached_disk
@@ -277,41 +278,41 @@
register: azure_disks
- name: Ensure disk was deleted
- assert:
+ ansible.builtin.assert:
that:
- delete_attached_disk is changed
- azure_disks.ansible_info.azure_managed_disk | length == 0
- name: Delete managed disk once again (idempotency)
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[0] }}"
state: absent
register: delete_attached_disk
- name: Ensure delete idempotency
- assert:
+ ansible.builtin.assert:
that:
- delete_attached_disk is not changed
# Test managed disks deletion with managed_by_extended set to []
- name: Trying to delete managed disks with managed_by_extended set to []
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[1] }}"
managed_by_extended: []
state: absent
register: delete_with_wrong_parameter
- name: Ensure disks were not deleted
- assert:
+ ansible.builtin.assert:
that:
- delete_with_wrong_parameter is not changed
# Test managed disks deletion
- name: Delete managed disks
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[1] }}"
state: absent
register: delete_disk
@@ -323,19 +324,19 @@
register: azure_disks
- name: Ensure disk was deleted
- assert:
+ ansible.builtin.assert:
that:
- delete_disk is changed
- azure_disks.ansible_info.azure_managed_disk | length == 0
- name: Delete managed disks once again (idempotency)
azure.azcollection.azure_rm_multiplemanageddisks:
- managed_disks:
+ managed_disks:
- "{{ shared_disks[1] }}"
state: absent
register: delete_idempotency
- name: Ensure nothing changed
- assert:
+ ansible.builtin.assert:
that:
- delete_idempotency is not changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml
index 75475bc3b..819ebd9f7 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create instance of MySQL Server -- check mode
azure_rm_mysqlserver:
@@ -17,13 +17,13 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -41,12 +41,12 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -65,12 +65,12 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.state == 'Ready'
@@ -89,16 +89,17 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
-- debug:
+- name: Print the state of the mysql server
+ ansible.builtin.debug:
var: output
- name: Gather facts MySQL Server
@@ -107,7 +108,7 @@
name: mysqlsrv{{ rpfx }}
register: output
- name: Assert that storage size is correct
- assert:
+ ansible.builtin.assert:
that:
- output.servers[0]['storage_profile']['storage_mb'] == 128000
@@ -115,10 +116,10 @@
azure_rm_mysqlserver:
resource_group: "{{ resource_group }}"
name: mysqlsrv{{ rpfx }}
- restarted: True
+ restarted: true
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -136,7 +137,7 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
tags:
@@ -156,7 +157,7 @@
geo_redundant_backup: Disabled
storage_autogrow: Disabled
version: 5.7
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
tags:
@@ -166,10 +167,10 @@
azure_rm_mysqlserver_info:
resource_group: "{{ resource_group }}"
name: mysqlsrv{{ rpfx }}second
- register: output
+ register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -189,7 +190,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -219,10 +220,10 @@
resource_group: "{{ resource_group }}"
server_name: mysqlsrv{{ rpfx }}
name: testdatabase
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -235,7 +236,7 @@
charset: latin1
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -249,7 +250,7 @@
charset: latin1
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.name == 'testdatabase'
@@ -261,10 +262,10 @@
name: testdatabase
collation: utf8_general_ci
charset: utf8
- ignore_errors: yes
+ ignore_errors: true
register: output
- name: Assert that nothing has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
@@ -275,10 +276,10 @@
name: testdatabase
collation: utf8_general_ci
charset: utf8
- force_update: yes
+ force_update: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -294,10 +295,10 @@
resource_group: "{{ resource_group }}"
server_name: mysqlsrv{{ rpfx }}
name: testdatabase
- register: output
+ register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -311,7 +312,7 @@
server_name: mysqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -329,10 +330,10 @@
server_name: mysqlsrv{{ rpfx }}
name: testdatabase
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -344,7 +345,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -356,7 +357,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -370,10 +371,10 @@
name: firewallrule{{ rpfx }}
start_ip_address: 172.28.10.136
end_ip_address: 172.28.10.138
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -386,7 +387,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -399,7 +400,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -409,10 +410,10 @@
server_name: mysqlsrv{{ rpfx }}
name: firewallrule{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -425,7 +426,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -436,7 +437,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -452,7 +453,7 @@
server_name: mysqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -474,7 +475,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -486,7 +487,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -504,7 +505,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that empty list was returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- "output.rules | length == 0"
@@ -518,10 +519,10 @@
server_name: mysqlsrv{{ rpfx }}
name: event_scheduler
value: "ON"
- check_mode: yes
+ check_mode: true
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -532,7 +533,7 @@
name: event_scheduler
register: output
- name: Get facts of event_scheduler
- debug:
+ ansible.builtin.debug:
var: output
- name: Try to delete default configuraion
@@ -543,7 +544,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -555,7 +556,7 @@
value: "ON"
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -567,7 +568,7 @@
value: "ON"
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -579,7 +580,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -591,7 +592,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -602,7 +603,7 @@
name: event_scheduler
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -618,7 +619,7 @@
server_name: mysqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -637,10 +638,10 @@
resource_group: "{{ resource_group }}"
name: mysqlsrv{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -651,7 +652,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -662,7 +663,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_natgateway/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_natgateway/tasks/main.yml
index b411d2422..d950304eb 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_natgateway/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_natgateway/tasks/main.yml
@@ -1,9 +1,9 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: true
- name: Set json query to only retrieve gateways from this test
- set_fact:
+ ansible.builtin.set_fact:
query: "[?ends_with(name, `{{ rpfx }}`)]"
run_once: true
@@ -12,7 +12,7 @@
name: "{{ resource_group }}"
register: rg_output
- name: Store rg location
- set_fact:
+ ansible.builtin.set_fact:
rg_location: "{{ rg_output.resourcegroups[0].location }}"
run_once: true
@@ -21,7 +21,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert there are no gateways
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways | community.general.json_query(query) | length == 0
@@ -30,9 +30,9 @@
resource_group: "{{ resource_group }}"
name: nat-gateway{{ rpfx }}1
register: output
- check_mode: yes
+ check_mode: true
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -41,7 +41,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert there are still no gateways
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways | community.general.json_query(query) | length == 0
@@ -51,7 +51,7 @@
name: nat-gateway{{ rpfx }}1
register: natgw_output
- name: Assert that gateway is well created
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- natgw_output.resource_group == "{{ resource_group }}"
@@ -63,7 +63,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right default parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].idle_timeout_in_minutes == 4
@@ -73,7 +73,7 @@
name: nat-gateway{{ rpfx }}1
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -84,7 +84,7 @@
idle_timeout_in_minutes: 10
register: natgw_output
- name: Assert the resource instance is changed
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- natgw_output.location == "{{ rg_location }}"
@@ -94,7 +94,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].idle_timeout_in_minutes == 10
@@ -107,7 +107,7 @@
idle_timeout_in_minutes: 10
register: output
- name: Assert the resource instance is not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -142,7 +142,7 @@
- "nat-gateway{{ rpfx }}-pip2"
register: natgw_output
- name: Assert the resource instance is changed
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- name: Get NAT gateways
@@ -151,7 +151,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].public_ip_addresses | length == 2
@@ -166,7 +166,7 @@
- "nat-gateway{{ rpfx }}-pip2"
register: natgw_output
- name: Assert the resource instance is changed
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- name: Get NAT gateways
@@ -175,7 +175,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].public_ip_addresses | length == 1
@@ -189,7 +189,7 @@
name: standard
register: natgw_output
- name: Assert the resource instance is changed
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- name: Get NAT gateways
@@ -198,7 +198,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].public_ip_addresses == None
@@ -231,7 +231,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the NAT Gateway is associated
- assert:
+ ansible.builtin.assert:
that:
- output.subnets[0].nat_gateway == "{{ natgw_output.gateways[0].id }}"
@@ -254,7 +254,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the NAT Gateway is not associated
- assert:
+ ansible.builtin.assert:
that:
- output.subnets[0].nat_gateway == "{{ natgw_output3.id }}"
@@ -271,7 +271,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the NAT Gateway is not associated
- assert:
+ ansible.builtin.assert:
that:
- output.subnets[0].nat_gateway == None
@@ -282,12 +282,12 @@
name: nat-gateway{{ rpfx }}2
idle_timeout_in_minutes: 10
location: eastus
- zones: [ 1 ]
+ zones: [1]
sku:
name: standard
register: natgw_output
- name: Assert the resource instance is changed
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.changed
- natgw_output.location == "eastus"
@@ -297,7 +297,7 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert that gateway has the right parameters
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways[0].idle_timeout_in_minutes == 10
- natgw_output.gateways[0].zones[0] == "1"
@@ -310,9 +310,9 @@
state: absent
register: output
with_items:
- - 1
- - 2
- - 3
+ - 1
+ - 2
+ - 3
- name: Remove subnet
azure_rm_subnet:
@@ -332,15 +332,15 @@
resource_group: "{{ resource_group }}"
register: natgw_output
- name: Assert there are no gateways left
- assert:
+ ansible.builtin.assert:
that:
- natgw_output.gateways | community.general.json_query(query) | length == 0
- name: Delete public IPs for NAT Gateway
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "nat-gateway{{ rpfx }}-pip{{ item }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "nat-gateway{{ rpfx }}-pip{{ item }}"
+ state: absent
with_items:
- - 1
- - 2
+ - 1
+ - 2
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_networkinterface/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_networkinterface/tasks/main.yml
index 7e38fc7ee..e47906d72 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_networkinterface/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_networkinterface/tasks/main.yml
@@ -1,24 +1,24 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
applicationsecuritygroup_name1: "asg{{ resource_group | hash('md5') | truncate(5, True, '') }}{{ 1000 | random }}"
applicationsecuritygroup_name2: "asg{{ resource_group | hash('md5') | truncate(5, True, '') }}{{ 1000 | random }}"
nic_name1: "nic1{{ resource_group | hash('md5') | truncate(5, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create virtual network
azure_rm_virtualnetwork:
- resource_group: "{{ resource_group_secondary }}"
- name: "tn{{ rpfx }}"
- address_prefixes: ["10.10.0.0/16", "fdae:f296:2787::/48"]
+ resource_group: "{{ resource_group_secondary }}"
+ name: "tn{{ rpfx }}"
+ address_prefixes: ["10.10.0.0/16", "fdae:f296:2787::/48"]
register: vn
- name: Add subnet
azure_rm_subnet:
- resource_group: "{{ resource_group_secondary }}"
- name: "tn{{ rpfx }}"
- address_prefixes_cidr: ["10.10.0.0/24", "fdae:f296:2787::/64"]
- virtual_network: "tn{{ rpfx }}"
+ resource_group: "{{ resource_group_secondary }}"
+ name: "tn{{ rpfx }}"
+ address_prefixes_cidr: ["10.10.0.0/24", "fdae:f296:2787::/64"]
+ virtual_network: "tn{{ rpfx }}"
- name: Create public IP addresses
azure_rm_publicipaddress:
@@ -37,7 +37,7 @@
- name: 'tn{{ rpfx }}v6'
version: 'ipv6'
-- name: create load balancer with multiple parameters
+- name: Create load balancer with multiple parameters
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "lb{{ rpfx }}"
@@ -84,32 +84,34 @@
- name: Create most simple NIC with virtual_network id (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- public_ip: False
- create_with_security_group: False
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ public_ip: false
+ create_with_security_group: false
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the check mode facts
+ ansible.builtin.assert:
that:
- output.changed
- name: Create most simple NIC with virtual_network resource_group
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network:
name: "tn{{ rpfx }}"
- virtual_network:
- name: "tn{{ rpfx }}"
- resource_group: "{{ resource_group_secondary }}"
- subnet: "tn{{ rpfx }}"
- public_ip: False
- create_with_security_group: False
+ resource_group: "{{ resource_group_secondary }}"
+ subnet: "tn{{ rpfx }}"
+ public_ip: false
+ create_with_security_group: false
register: output
-- assert:
+- name: Assert the NIC created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id
@@ -121,7 +123,8 @@
name: "tn{{ rpfx }}"
register: facts
-- assert:
+- name: Assert the NIC facts
+ ansible.builtin.assert:
that:
- "facts.networkinterfaces | length == 1"
- facts.networkinterfaces[0].id == output.state.id
@@ -134,149 +137,157 @@
- name: Create most simple NIC with ip configurations (idempotent)
azure_rm_networkinterface:
- resource_group: "{{ facts.networkinterfaces[0].resource_group }}"
- name: "{{ facts.networkinterfaces[0].name }}"
- virtual_network: "{{ facts.networkinterfaces[0].virtual_network }}"
- create_with_security_group: False
- ip_configurations:
- - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
- private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
- private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
- primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
- subnet: "{{ facts.networkinterfaces[0].subnet }}"
+ resource_group: "{{ facts.networkinterfaces[0].resource_group }}"
+ name: "{{ facts.networkinterfaces[0].name }}"
+ virtual_network: "{{ facts.networkinterfaces[0].virtual_network }}"
+ create_with_security_group: false
+ ip_configurations:
+ - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
+ private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
+ private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
+ primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
+ subnet: "{{ facts.networkinterfaces[0].subnet }}"
register: output
-- assert:
+- name: Assert the NIC created
+ ansible.builtin.assert:
that:
- not output.changed
- name: Create most simple NIC (idempotent)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- create_with_security_group: False
- public_ip: False
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ create_with_security_group: false
+ public_ip: false
register: output
-- assert:
+- name: Assert NIC created
+ ansible.builtin.assert:
that:
- not output.changed
- name: Update security group (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- public_ip: False
- security_group: "tn{{ rpfx }}sg"
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ public_ip: false
+ security_group: "tn{{ rpfx }}sg"
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the security group check mode
+ ansible.builtin.assert:
that:
- output.changed
- name: Update public ip address (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- public_ip_address_name: "tn{{ rpfx }}"
- create_with_security_group: False
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ public_ip_address_name: "tn{{ rpfx }}"
+ create_with_security_group: false
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the public ip check mode
+ ansible.builtin.assert:
that:
- output.changed
- name: Update accelerated networking (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- enable_accelerated_networking: True
- create_with_security_group: False
- public_ip: False
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ enable_accelerated_networking: true
+ create_with_security_group: false
+ public_ip: false
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the network check mode facts
+ ansible.builtin.assert:
that:
- output.changed
- name: Update IP forwarding networking (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- create_with_security_group: False
- enable_ip_forwarding: True
- public_ip: False
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ create_with_security_group: false
+ enable_ip_forwarding: true
+ public_ip: false
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the NIC check mode facts
+ ansible.builtin.assert:
that:
- output.changed
- name: Update dns server (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- create_with_security_group: False
- public_ip: False
- dns_servers:
- - 8.9.10.11
- - 7.8.9.10
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ create_with_security_group: false
+ public_ip: false
+ dns_servers:
+ - 8.9.10.11
+ - 7.8.9.10
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the NIC check mode facts
+ ansible.builtin.assert:
that:
- output.changed
- name: Update NIC
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- enable_accelerated_networking: True
- enable_ip_forwarding: True
- security_group: "tn{{ rpfx }}sg"
- dns_servers:
- - 8.9.10.11
- - 7.8.9.10
- ip_configurations:
- - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
- private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
- private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
- primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
- - name: ipconfig1
- public_ip_name: "tn{{ rpfx }}"
- load_balancer_backend_address_pools:
- - "{{ lb.state.backend_address_pools[0].id }}"
- - name: backendaddrpool1
- load_balancer: "lb{{ rpfx }}"
- - name: ipconfig2
- public_ip_name: "tn{{ rpfx }}v6"
- private_ip_address_version: 'IPv6'
- load_balancer_backend_address_pools:
- - "{{ lb.state.backend_address_pools[2].id }}"
- - name: backendaddrpool2
- load_balancer: "lb{{ rpfx }}"
- register: output
-
-- assert:
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ enable_accelerated_networking: true
+ enable_ip_forwarding: true
+ security_group: "tn{{ rpfx }}sg"
+ dns_servers:
+ - 8.9.10.11
+ - 7.8.9.10
+ ip_configurations:
+ - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
+ private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
+ private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
+ primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
+ - name: ipconfig1
+ public_ip_name: "tn{{ rpfx }}"
+ load_balancer_backend_address_pools:
+ - "{{ lb.state.backend_address_pools[0].id }}"
+ - name: backendaddrpool1
+ load_balancer: "lb{{ rpfx }}"
+ - name: ipconfig2
+ public_ip_name: "tn{{ rpfx }}v6"
+ private_ip_address_version: 'IPv6'
+ load_balancer_backend_address_pools:
+ - "{{ lb.state.backend_address_pools[2].id }}"
+ - name: backendaddrpool2
+ load_balancer: "lb{{ rpfx }}"
+ register: output
+
+- name: Assert NIC update facts
+ ansible.builtin.assert:
that:
- output.changed
- output.state.dns_settings.dns_servers == ['8.9.10.11', '7.8.9.10']
@@ -286,37 +297,38 @@
- name: Complicated NIC (idempontent)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- enable_accelerated_networking: True
- security_group: "tn{{ rpfx }}sg"
- enable_ip_forwarding: True
- dns_servers:
- - 8.9.10.11
- - 7.8.9.10
- ip_configurations:
- - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
- private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
- private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
- primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
- - name: ipconfig1
- public_ip_name: "tn{{ rpfx }}"
- load_balancer_backend_address_pools:
- - "{{ lb.state.backend_address_pools[0].id }}"
- - name: backendaddrpool1
- load_balancer: "lb{{ rpfx }}"
- - name: ipconfig2
- public_ip_name: "tn{{ rpfx }}v6"
- private_ip_address_version: 'IPv6'
- load_balancer_backend_address_pools:
- - "{{ lb.state.backend_address_pools[2].id }}"
- - name: backendaddrpool2
- load_balancer: "lb{{ rpfx }}"
- register: output
-
-- assert:
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ enable_accelerated_networking: true
+ security_group: "tn{{ rpfx }}sg"
+ enable_ip_forwarding: true
+ dns_servers:
+ - 8.9.10.11
+ - 7.8.9.10
+ ip_configurations:
+ - name: "{{ facts.networkinterfaces[0].ip_configurations[0].name }}"
+ private_ip_address: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_address }}"
+ private_ip_allocation_method: "{{ facts.networkinterfaces[0].ip_configurations[0].private_ip_allocation_method }}"
+ primary: "{{ facts.networkinterfaces[0].ip_configurations[0].primary }}"
+ - name: ipconfig1
+ public_ip_name: "tn{{ rpfx }}"
+ load_balancer_backend_address_pools:
+ - "{{ lb.state.backend_address_pools[0].id }}"
+ - name: backendaddrpool1
+ load_balancer: "lb{{ rpfx }}"
+ - name: ipconfig2
+ public_ip_name: "tn{{ rpfx }}v6"
+ private_ip_address_version: 'IPv6'
+ load_balancer_backend_address_pools:
+ - "{{ lb.state.backend_address_pools[2].id }}"
+ - name: backendaddrpool2
+ load_balancer: "lb{{ rpfx }}"
+ register: output
+
+- name: Assert the NIC no change
+ ansible.builtin.assert:
that:
- not output.changed
@@ -324,9 +336,10 @@
azure_rm_networkinterface_info:
resource_group: "{{ resource_group }}"
name: "tn{{ rpfx }}"
- register: facts
+ register: facts
-- assert:
+- name: Assert the NIC facts
+ ansible.builtin.assert:
that:
- "facts.networkinterfaces | length == 1"
- facts.networkinterfaces[0].id == output.state.id
@@ -339,26 +352,27 @@
- name: Remove one dns server and ip configuration
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- virtual_network: "{{ vn.state.id }}"
- subnet: "tn{{ rpfx }}"
- security_group: "tn{{ rpfx }}sg"
- enable_accelerated_networking: True
- enable_ip_forwarding: True
- dns_servers:
- - 8.9.10.11
- ip_configurations:
- - name: ipconfig1
- public_ip_name: "tn{{ rpfx }}"
- primary: True
- load_balancer_backend_address_pools:
- - "{{ lb.state.backend_address_pools[0].id }}"
- - name: backendaddrpool1
- load_balancer: "lb{{ rpfx }}"
- register: output
-
-- assert:
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ virtual_network: "{{ vn.state.id }}"
+ subnet: "tn{{ rpfx }}"
+ security_group: "tn{{ rpfx }}sg"
+ enable_accelerated_networking: true
+ enable_ip_forwarding: true
+ dns_servers:
+ - 8.9.10.11
+ ip_configurations:
+ - name: ipconfig1
+ public_ip_name: "tn{{ rpfx }}"
+ primary: true
+ load_balancer_backend_address_pools:
+ - "{{ lb.state.backend_address_pools[0].id }}"
+ - name: backendaddrpool1
+ load_balancer: "lb{{ rpfx }}"
+ register: output
+
+- name: Assert the NIC changed
+ ansible.builtin.assert:
that:
- output.changed
- output.state.dns_settings.dns_servers == ['8.9.10.11']
@@ -370,15 +384,15 @@
- name: Create application security group(check mode)
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ applicationsecuritygroup_name1 }}"
- tags:
- testing: testing
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ applicationsecuritygroup_name1 }}"
+ tags:
+ testing: testing
+ check_mode: true
register: output
- name: Assert check mode creation
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -387,11 +401,11 @@
resource_group: "{{ resource_group }}"
name: "{{ applicationsecuritygroup_name1 }}"
tags:
- testing: testing
+ testing: testing
register: output
- name: Assert application security group creation
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.id != ''
@@ -403,7 +417,7 @@
register: facts
- name: Assert facts
- assert:
+ ansible.builtin.assert:
that:
- facts['applicationsecuritygroups'] | length == 1
- facts['applicationsecuritygroups'][0]['name'] != None
@@ -412,28 +426,28 @@
- name: Create application security group (idempotent)
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ applicationsecuritygroup_name1 }}"
- tags:
- testing: testing
+ resource_group: "{{ resource_group }}"
+ name: "{{ applicationsecuritygroup_name1 }}"
+ tags:
+ testing: testing
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Update application security group
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ applicationsecuritygroup_name1 }}"
- tags:
- testing: testing
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "{{ applicationsecuritygroup_name1 }}"
+ tags:
+ testing: testing
+ foo: bar
register: output
- name: Assert update
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -449,18 +463,18 @@
name: "{{ nic_name1 }}"
virtual_network: "{{ vn.state.id }}"
subnet: "tn{{ rpfx }}"
- create_with_security_group: True
- public_ip: False
+ create_with_security_group: true
+ public_ip: false
ip_configurations:
- name: ipconfig1
application_security_groups:
- "{{ applicationsecuritygroup_name1 }}"
- "{{ asg.id }}"
- primary: True
+ primary: true
register: output
-- name: assert creation succeeded
- assert:
+- name: Assert creation succeeded
+ ansible.builtin.assert:
that:
- output.changed
@@ -470,18 +484,18 @@
name: "{{ nic_name1 }}"
virtual_network: "{{ vn.state.id }}"
subnet: "tn{{ rpfx }}"
- create_with_security_group: True
- public_ip: False
+ create_with_security_group: true
+ public_ip: false
ip_configurations:
- name: ipconfig1
application_security_groups:
- "{{ asg.id }}"
- "{{ applicationsecuritygroup_name1 }}"
- primary: True
+ primary: true
register: output
-- name: assert idempotent
- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
@@ -491,17 +505,17 @@
name: "{{ nic_name1 }}"
virtual_network: "{{ vn.state.id }}"
subnet: "tn{{ rpfx }}"
- create_with_security_group: True
- public_ip: False
+ create_with_security_group: true
+ public_ip: false
ip_configurations:
- name: ipconfig1
application_security_groups:
- "{{ applicationsecuritygroup_name1 }}"
- primary: True
+ primary: true
register: output
-- name: assert update succeeded
- assert:
+- name: Assert update succeeded
+ ansible.builtin.assert:
that:
- output.changed
@@ -511,7 +525,8 @@
name: "{{ nic_name1 }}"
register: facts
-- assert:
+- name: Assert the NIC created
+ ansible.builtin.assert:
that:
- "facts.networkinterfaces[0].ip_configurations[0].application_security_groups | length == 1"
@@ -523,22 +538,29 @@
address_prefix_cidr: 10.10.1.0/24
register: appgw_subnet_output
+- name: Create public IP addresses
+ azure_rm_publicipaddress:
+ name: my-appgw-pip
+ resource_group: "{{ resource_group_secondary }}"
+ sku: 'standard'
+ allocation_method: 'static'
+ version: 'ipv4'
+
- name: Create application gateway to connect NIC to
azure_rm_appgateway:
resource_group: "{{ resource_group_secondary }}"
name: "appgateway{{ rpfx }}"
sku:
- name: standard_small
- tier: standard
+ name: standard_v2
+ tier: standard_v2
capacity: 2
gateway_ip_configurations:
- subnet:
id: "{{ appgw_subnet_output.state.id }}"
name: app_gateway_ip_config
frontend_ip_configurations:
- - subnet:
- id: "{{ appgw_subnet_output.state.id }}"
- name: sample_gateway_frontend_ip_config
+ - name: sample_gateway_frontend_ip_config
+ public_ip_address: my-appgw-pip
frontend_ports:
- port: 80
name: http_frontend_port
@@ -555,7 +577,7 @@
protocol: http
name: http_listener
request_routing_rules:
- - rule_type: Basic
+ - rule_type: basic
backend_address_pool: test_backend_address_pool
backend_http_settings: sample_appgateway_http_settings
http_listener: http_listener
@@ -584,7 +606,8 @@
- name: "test_backend_address_pool"
application_gateway: "appgateway{{ rpfx }}"
register: output
-- assert:
+- name: Assert the NIC created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.ip_configurations | length == 1
@@ -606,7 +629,8 @@
- name: "test_backend_address_pool"
application_gateway: "appgateway{{ rpfx }}"
register: output
-- assert:
+- name: Assert the NIC idempotent
+ ansible.builtin.assert:
that:
- not output.changed
@@ -615,7 +639,8 @@
name: "appgw-nic{{ rpfx }}"
resource_group: "{{ resource_group_secondary }}"
register: facts
-- assert:
+- name: Assert the NIC facts
+ ansible.builtin.assert:
that:
- facts.networkinterfaces | length == 1
- facts.networkinterfaces[0].id == output.state.id
@@ -629,7 +654,8 @@
resource_group: "{{ resource_group_secondary }}"
state: absent
register: output
-- assert:
+- name: Assert the NIC deleted
+ ansible.builtin.assert:
that:
- output.changed
@@ -639,51 +665,55 @@
resource_group: "{{ resource_group_secondary }}"
state: absent
register: output
-- assert:
+- name: Assert the application gateway deleted
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete the NIC (check mode)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- state: absent
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ state: absent
+ check_mode: true
register: output
-- assert:
+- name: Assert the NIC check mode
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete the NIC
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ state: absent
register: output
-- assert:
+- name: Assert the NIC deleted
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete the NIC (idempotent)
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "tn{{ rpfx }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "tn{{ rpfx }}"
+ state: absent
register: output
-- assert:
+- name: Assert the NIC idempotent
+ ansible.builtin.assert:
that:
- not output.changed
-- name: delete load balancer
+- name: Delete load balancer
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "lb{{ rpfx }}"
state: absent
-- name: delete public ip addresses
+- name: Delete public ip addresses
azure_rm_publicipaddress:
name: "{{ item }}"
resource_group: '{{ resource_group }}'
@@ -695,47 +725,48 @@
- 'tn{{ rpfx }}'
- 'tn{{ rpfx }}v6'
-- assert:
+- name: Assert the NIC deleted
+ ansible.builtin.assert:
that:
- output.changed
- output.results | length == 4
- name: Delete the NIC
azure_rm_networkinterface:
- resource_group: "{{ resource_group }}"
- name: "{{ nic_name1 }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ nic_name1 }}"
+ state: absent
- name: Delete the application security group (check mode)
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ applicationsecuritygroup_name1 }}"
- state: absent
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ applicationsecuritygroup_name1 }}"
+ state: absent
+ check_mode: true
register: output
- name: Assert delete check mode
- assert:
- that:
- - output.changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Delete the application security group
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group }}"
- name: "{{ applicationsecuritygroup_name1 }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "{{ applicationsecuritygroup_name1 }}"
+ state: absent
register: output
- name: Assert the deletion
- assert:
- that:
- - output.changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Delete second application security group
azure_rm_applicationsecuritygroup:
- resource_group: "{{ resource_group_secondary }}"
- name: "{{ applicationsecuritygroup_name2 }}"
- state: absent
+ resource_group: "{{ resource_group_secondary }}"
+ name: "{{ applicationsecuritygroup_name2 }}"
+ state: absent
register: output
- name: Delete network security groups
@@ -748,7 +779,8 @@
- '{{ nic_name1 }}'
- 'tn{{ rpfx }}sg'
-- assert:
+- name: Assert the security group deleted
+ ansible.builtin.assert:
that:
- output.changed
- output.results | length == 2
@@ -760,6 +792,7 @@
state: 'absent'
register: output
-- assert:
+- name: Assert the virtual network deleted
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_notificationhub/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_notificationhub/tasks/main.yml
index ed79aff83..7d734b077 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_notificationhub/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_notificationhub/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Create random notification hub and namespace
- set_fact:
- namespace_name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
+ ansible.builtin.set_fact:
+ namespace_name: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
+ name_rpfx: "test{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create Notification Hub Namespace (check mode)
azure_rm_notificationhub:
@@ -9,23 +9,25 @@
namespace_name: "{{ namespace_name }}"
resource_group: "{{ resource_group }}"
sku: "free"
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the notification hub check mode
+ ansible.builtin.assert:
that: results.changed
- name: Create Notification Hub (check mode)
azure_rm_notificationhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
sku: "free"
- check_mode: yes
+ check_mode: true
register: results
-- assert:
+- name: Assert the notfication hub check mode
+ ansible.builtin.assert:
that: results.changed
- name: Create Namespace Hub
@@ -36,19 +38,21 @@
sku: "free"
register: results
-- assert:
+- name: Assert the notification hub created
+ ansible.builtin.assert:
that: results.changed
- name: Create Notification Hub
azure_rm_notificationhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
sku: "free"
register: results
-- assert:
+- name: Assert the notification hub created
+ ansible.builtin.assert:
that: results.changed
- name: Update Namespace
@@ -60,24 +64,25 @@
test: modified
register: results
-- assert:
- that:
+- name: Assert the namespace updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
-
- name: Update Notification Hub
azure_rm_notificationhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
tags:
test: modified
register: results
-- assert:
- that:
+- name: Assert the notification hub updated
+ ansible.builtin.assert:
+ that:
- results.changed
- results.state.tags.test == 'modified'
@@ -88,8 +93,8 @@
register: results
- name: Assert that facts module returned result
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- results.namespace[0].tags.test == 'modified'
- name: Test idempotent
@@ -98,7 +103,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert the notification hub check mode
+ ansible.builtin.assert:
that:
- not results.changed
@@ -114,8 +120,9 @@
state: absent
- name: Pause for 3 minutes to make sure delete successfully
- pause:
+ ansible.builtin.pause:
minutes: 3
+ changed_when: true
- name: Delete Namespace (idempotent)
azure_rm_notificationhub:
@@ -125,29 +132,32 @@
state: absent
register: results
-- assert:
+- name: Assert the namespace deleted
+ ansible.builtin.assert:
that: not results.changed
- name: Delete Notification Hub
azure_rm_notificationhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
- name: Pause for 3 minutes to make sure delete successfully
- pause:
+ ansible.builtin.pause:
minutes: 3
+ changed_when: true
- name: Delete Notification Hub (idempotent)
azure_rm_notificationhub:
location: eastus2
namespace_name: "{{ namespace_name }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
register: results
-- assert:
+- name: Assert the notificationhub deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml
index a173bf929..969347b8d 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_openshiftmanagedcluster/tasks/main.yml
@@ -1,7 +1,8 @@
-- set_fact:
+- name: Set variables
+ ansible.builtin.set_fact:
cluster_name: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
-- name: get resource group info
+- name: Get resource group info
azure_rm_resourcegroup_info:
name: "{{ resource_group_secondary }}"
register: rg_output
@@ -11,8 +12,9 @@
resource_group: "{{ resource_group_secondary }}"
register: output
-- assert:
- that: output['clusters'] | length == 0
+- name: Assert the cluster facts
+ ansible.builtin.assert:
+ that: output['clusters'] | length == 0
- name: Get specific cluster information for a specific cluster
azure_rm_openshiftmanagedcluster_info:
@@ -20,15 +22,17 @@
name: "{{ cluster_name }}"
register: output
-- assert:
- that: output['clusters'].keys() | length == 0
+- name: Assert the cluster facts
+ ansible.builtin.assert:
+ that: output['clusters'].keys() | length == 0
- name: Get all clusters
azure_rm_openshiftmanagedcluster_info:
register: output
-- assert:
- that: output['clusters']['value'] | length == 0
+- name: Assert all clusters facts
+ ansible.builtin.assert:
+ that: output['clusters']['value'] | length == 0
- name: Create virtual network
azure_rm_virtualnetwork:
@@ -38,7 +42,7 @@
- 10.151.0.0/16
- 10.152.0.0/16
-- name: create master subnet
+- name: Create master subnet
azure_rm_subnet:
name: master_foobar
virtual_network_name: testVnet
@@ -46,7 +50,7 @@
address_prefix_cidr: 10.151.0.0/24
register: master_sub_output
-- name: create work subnet
+- name: Create work subnet
azure_rm_subnet:
name: worker_foobar
virtual_network_name: testVnet
@@ -78,8 +82,9 @@
subnet_id: "{{ master_sub_output.state.id }}"
register: output
-- assert:
- that: output.changed
+- name: Assert the cluster created
+ ansible.builtin.assert:
+ that: output.changed
- name: Get available clusters for a specific resource_group
@@ -87,8 +92,9 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that: output['clusters'] | length == 1
+- name: Assert the cluster facts
+ ansible.builtin.assert:
+ that: output['clusters'] | length == 1
- name: Get specific cluster information for a specific cluster
azure_rm_openshiftmanagedcluster_info:
@@ -96,15 +102,17 @@
name: "{{ cluster_name }}"
register: output
-- assert:
- that: output['clusters']['name'] == "{{ cluster_name }}"
+- name: Assert the cluster facts
+ ansible.builtin.assert:
+ that: output['clusters']['name'] == "{{ cluster_name }}"
- name: Get all clusters
azure_rm_openshiftmanagedcluster_info:
register: output
-- assert:
- that: output['clusters'] | length >= 1
+- name: Assert all cluster
+ ansible.builtin.assert:
+ that: output['clusters'] | length >= 1
- name: Delete openshift cluster
azure_rm_openshiftmanagedcluster:
@@ -114,5 +122,6 @@
state: absent
register: output
-- assert:
- that: output.changed
+- name: Assert the cluster deleted
+ ansible.builtin.assert:
+ that: output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml
index b4022b27b..e9602517a 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create instance of PostgreSQL Server -- check mode
azure_rm_postgresqlserver:
@@ -12,13 +12,13 @@
tier: Basic
location: westus2
storage_mb: 51200
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -31,12 +31,12 @@
tier: Basic
location: westus2
storage_mb: 51200
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -50,12 +50,12 @@
tier: Basic
location: westus2
storage_mb: 51200
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.state == 'Ready'
@@ -69,16 +69,17 @@
tier: Basic
location: westus2
storage_mb: 128000
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
-- debug:
+- name: Print the postgresql server states
+ ansible.builtin.debug:
var: output
- name: Gather facts postgresql Server
@@ -87,7 +88,7 @@
name: postgresqlsrv{{ rpfx }}
register: output
- name: Assert that storage size is correct
- assert:
+ ansible.builtin.assert:
that:
- output.servers[0]['storage_mb'] == 128000
@@ -100,8 +101,8 @@
tier: Basic
location: westus2
storage_mb: 51200
- enforce_ssl: True
- storage_autogrow: True
+ enforce_ssl: true
+ storage_autogrow: true
backup_retention_days: 7
admin_username: zimxyz
admin_password: Password123!
@@ -117,8 +118,8 @@
tier: Basic
location: westus2
storage_mb: 51200
- enforce_ssl: True
- storage_autogrow: True
+ enforce_ssl: true
+ storage_autogrow: true
backup_retention_days: 7
admin_username: zimxyz
admin_password: Password123!
@@ -132,7 +133,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -153,7 +154,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers[0]['id'] != None
@@ -185,10 +186,10 @@
name: testdatabase
charset: UTF8
collation: English_United States.1252
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -201,7 +202,7 @@
collation: English_United States.1252
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -215,7 +216,7 @@
collation: English_United States.1252
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.name == 'testdatabase'
@@ -227,10 +228,10 @@
name: testdatabase
charset: utf8
collation: en_US.utf8
- ignore_errors: yes
+ ignore_errors: true
register: output
- name: Assert that nothing has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
@@ -241,10 +242,10 @@
name: testdatabase
charset: utf8
collation: en_US.utf8
- force_update: yes
+ force_update: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.name == 'testdatabase'
@@ -263,7 +264,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -277,7 +278,7 @@
server_name: postgresqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0]['server_name'] != None
@@ -295,10 +296,10 @@
server_name: postgresqlsrv{{ rpfx }}
name: testdatabase
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -310,7 +311,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -322,7 +323,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -337,10 +338,10 @@
name: firewallrule{{ rpfx }}
start_ip_address: 172.28.10.136
end_ip_address: 172.28.10.138
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -353,7 +354,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -366,7 +367,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -385,7 +386,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -401,7 +402,7 @@
server_name: postgresqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -421,10 +422,10 @@
server_name: postgresqlsrv{{ rpfx }}
name: firewallrule{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -436,7 +437,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -448,7 +449,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -466,7 +467,7 @@
name: firewallrule{{ rpfx }}
register: output
- name: Assert that empty list was returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- "output.rules | length == 0"
@@ -480,10 +481,10 @@
server_name: postgresqlsrv{{ rpfx }}
name: deadlock_timeout
value: 2000
- check_mode: yes
+ check_mode: true
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -495,7 +496,7 @@
value: 2000
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -507,7 +508,7 @@
value: 2000
register: output
- name: Assert that change was not registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -519,7 +520,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -531,7 +532,7 @@
state: absent
register: output
- name: Assert that change was registered
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -542,7 +543,7 @@
name: deadlock_timeout
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -558,7 +559,7 @@
server_name: postgresqlsrv{{ rpfx }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.settings[0].id != None
@@ -577,10 +578,10 @@
resource_group: "{{ resource_group }}"
name: postgresqlsrv{{ rpfx }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -591,7 +592,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -602,7 +603,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml
index 645851a04..3de80ce43 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednsrecordset/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random domain name
- set_fact:
+ ansible.builtin.set_fact:
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create a Private DNS zone
@@ -10,10 +10,10 @@
register: results
- name: Assert that Private DNS zone was created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: create "A" record set with multiple records
+- name: Create "A" record set with multiple records
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -26,10 +26,10 @@
register: results
- name: Assert that A record set was created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: re-run "A" record with same values
+- name: Re-run "A" record with same values
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -42,7 +42,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update "A" record set with additional record
@@ -57,11 +57,11 @@
register: results
- name: Assert that new record was appended
- assert:
+ ansible.builtin.assert:
that:
- results.changed
-- name: re-update "A" record set with additional record
+- name: Re-update "A" record set with additional record
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -73,7 +73,7 @@
register: results
- name: Assert that A record set was not changed
- assert:
+ ansible.builtin.assert:
that:
- not results.changed
@@ -90,7 +90,7 @@
register: results
- name: Assert that record was deleted
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -102,11 +102,11 @@
record_type: A
records:
- entry: 192.168.100.105
- check_mode: yes
+ check_mode: true
register: results
- name: Assert that check_mode returns new state
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -118,7 +118,8 @@
record_type: A
register: results
-- assert:
+- name: Assert the DNS recoredset facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.dnsrecordsets[0].id != None
@@ -128,7 +129,7 @@
- results.dnsrecordsets[0].relative_name == 'www'
- results.dnsrecordsets[0].records | length > 0
-- name: delete a record set
+- name: Delete a record set
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -138,10 +139,10 @@
register: results
- name: Assert that record set deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: (idempotence test) re-run record set absent
+- name: Re-run record set absent (idempotence test)
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: www
@@ -150,11 +151,11 @@
state: absent
register: results
-- name:
- assert:
+- name: Assert recored set deleted
+ ansible.builtin.assert:
that: not results.changed
-- name: create SRV records in a new record set
+- name: Create SRV records in a new record set
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_sip._tcp.{{ domain_name }}.com"
@@ -163,14 +164,14 @@
record_type: SRV
state: present
records:
- - entry: sip.{{ domain_name }}.com
- priority: 20
- weight: 10
- port: 5060
+ - entry: sip.{{ domain_name }}.com
+ priority: 20
+ weight: 10
+ port: 5060
register: results
- name: Assert that SRV record set was created
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -182,7 +183,8 @@
record_type: SRV
register: results
-- assert:
+- name: Assert the DNS recordset facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.dnsrecordsets[0].id != None
@@ -192,7 +194,7 @@
- results.dnsrecordsets[0].relative_name == "_sip._tcp.{{ domain_name }}.com"
- results.dnsrecordsets[0].records | length > 0
-- name: create TXT records in a new record set
+- name: Create TXT records in a new record set
azure_rm_privatednsrecordset:
resource_group: "{{ resource_group }}"
relative_name: "_txt.{{ domain_name }}.com"
@@ -208,7 +210,7 @@
register: results
- name: Assert that TXT record set was created
- assert:
+ ansible.builtin.assert:
that:
- results.changed
@@ -220,7 +222,8 @@
record_type: TXT
register: results
-- assert:
+- name: Assert the DNS recordset facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.dnsrecordsets[0].id != None
@@ -248,7 +251,7 @@
register: results
- name: Assert that SOA record set was created
- assert:
+ ansible.builtin.assert:
that:
- results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszone/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszone/tasks/main.yml
index eba80899d..92b91344f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszone/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszone/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create random domain name
- set_fact:
+ ansible.builtin.set_fact:
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create a private DNS zone (check mode)
@@ -9,7 +9,8 @@
register: results
check_mode: true
-- assert:
+- name: Assert there is no private dns zone resource
+ ansible.builtin.assert:
that: results.changed
- name: Create a private DNS zone
@@ -18,7 +19,8 @@
name: "{{ domain_name }}.com"
register: results
-- assert:
+- name: Assert the private dns zone created
+ ansible.builtin.assert:
that: results.changed
- name: Update private DNS zone with tags
@@ -29,7 +31,8 @@
test: modified
register: results
-- assert:
+- name: Assert the private dns zone updated
+ ansible.builtin.assert:
that:
- results.changed
- results.state.tags.test == 'modified'
@@ -40,7 +43,8 @@
resource_group: "{{ resource_group }}"
register: results
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not results.changed
@@ -51,7 +55,7 @@
register: zones
- name: Assert that facts module returned result
- assert:
+ ansible.builtin.assert:
that:
- zones.privatednszones[0].tags.test == 'modified'
- zones.privatednszones[0].number_of_record_sets == 1
@@ -63,7 +67,7 @@
- name: Delete private DNS zone
azure_rm_privatednszone:
resource_group: "{{ resource_group }}"
- name: "{{ domain_name }}.com"
+ name: "{{ domain_name }}.com"
state: absent
- name: Delete private DNS zone (idempotent)
@@ -73,5 +77,6 @@
state: absent
register: results
-- assert:
+- name: Assert the private dns zone deleted
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml
index 6125abaa3..febd845bb 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatednszonelink/tasks/main.yml
@@ -1,14 +1,14 @@
- name: Create virtual network link name
- set_fact:
+ ansible.builtin.set_fact:
link_name: "link{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create random domain name
- set_fact:
+ ansible.builtin.set_fact:
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
- name: Create a Private DNS zone
@@ -22,11 +22,11 @@
name: "vnet{{ rpfx }}"
resource_group: "{{ resource_group }}"
address_prefixes_cidr:
- - 10.1.0.0/16
- - 172.100.0.0/16
+ - 10.1.0.0/16
+ - 172.100.0.0/16
dns_servers:
- - 127.0.0.1
- - 127.0.0.2
+ - 127.0.0.1
+ - 127.0.0.2
- name: Create a subnet
azure_rm_subnet:
@@ -45,7 +45,7 @@
register: results
- name: Assert that virtual network link is created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create a virtual network link (Idempotent test)
@@ -58,7 +58,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update a virtual network link
@@ -72,7 +72,7 @@
register: results
- name: Assert that virtual network link is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get virtual network link
@@ -82,7 +82,8 @@
zone_name: "{{ domain_name }}.com"
register: results
-- assert:
+- name: Assert the virtual network link facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.virtualnetworklinks[0].name == "{{ link_name }}"
@@ -98,7 +99,7 @@
register: results
- name: Assert that virtual network link is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete virtual network link (Idempotent test)
@@ -110,7 +111,7 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Delete virtual network
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml
index 306c1cc0a..589c27843 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpoint/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set Private Endpoint Name
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "private{{ resource_group | hash('md5') | truncate(18, True, '') }}"
- name: Create virtual network
@@ -42,7 +42,7 @@
tier: GeneralPurpose
location: eastus
storage_mb: 51200
- enforce_ssl: True
+ enforce_ssl: true
admin_username: zimxyz
admin_password: Password123!
register: post_output
@@ -70,7 +70,7 @@
register: output
- name: Assert status succeeded and results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id is defined
@@ -88,15 +88,16 @@
- postgresqlServer
subnet:
id: "{{ subnet_output.state.id }}"
- tags:
+ tags:
key1: value1
register: output
- name: Assert status succeeded and results match expectations
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- not output.changed
- ignore_errors: yes
+ ignore_errors: true
+ register: ignore_errors_register
- name: Update private endpoint with tags
azure_rm_privateendpoint:
@@ -109,13 +110,13 @@
- postgresqlServer
subnet:
id: "{{ subnet_output.state.id }}"
- tags:
+ tags:
key1: value1
key2: value2
register: output
- name: Assert status succeeded and results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.tags | length == 2
@@ -127,7 +128,7 @@
register: output
- name: Assert private endpoint info
- assert:
+ ansible.builtin.assert:
that:
- output.privateendpoints[0].provisioning_state == "Succeeded"
- output.privateendpoints[0].tags | length == 2
@@ -140,7 +141,7 @@
register: output
- name: Assert status succeeded and results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -152,6 +153,6 @@
register: output
- name: Assert status succeeded and results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml
index e58a3ba22..b5fc3e1f1 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privateendpointdnszonegroup/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: true
@@ -42,7 +42,7 @@
ignore_errors: true
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.msg is match("Could not load the private endpoint", ignorecase=True)
@@ -76,7 +76,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.groups | length == 0
@@ -92,7 +92,7 @@
register: output
check_mode: true
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -106,7 +106,7 @@
private_dns_zone: "privatelink.postgres.database.azure.com"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id
@@ -134,7 +134,7 @@
private_dns_zone: "privatelink.postgres.database.azure.com"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -145,7 +145,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.groups | length == 1
@@ -170,7 +170,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.groups | length == 1
@@ -199,7 +199,7 @@
private_dns_zone: "privatelink.postgres.database.azure.com"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.id
@@ -226,7 +226,7 @@
register: output
check_mode: true
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -238,7 +238,7 @@
state: "absent"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -250,6 +250,6 @@
state: "absent"
register: output
- name: Assert results match expectations
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml
index bc0363c56..a3743b074 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_privatelinkservice/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set Private Link Service Names
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(20, True, '') }}"
azure_subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef
@@ -27,14 +27,14 @@
private_endpoint_network_policies: Disabled
register: subnet_output
-- name: create public ip
+- name: Create public ip
azure_rm_publicipaddress:
resource_group: '{{ resource_group }}'
name: "pip{{ rpfx }}"
sku: Standard
allocation_method: Static
-- name: create load balancer with frontend_ip_configurations
+- name: Create load balancer with frontend_ip_configurations
azure_rm_loadbalancer:
resource_group: '{{ resource_group }}'
name: "lb{{ rpfx }}"
@@ -66,54 +66,55 @@
azure_rm_privatelinkservice:
name: "lsp{{ rpfx }}"
resource_group: "{{ resource_group }}"
- enable_proxy_protocol: True
+ enable_proxy_protocol: true
fqdns:
- 'dns01.com'
- 'dns02.com'
visibility:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
auto_approval:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
load_balancer_frontend_ip_configurations:
- id: "{{ lb_output.state.frontend_ip_configurations[0].id }}"
ip_configurations:
- name: ip_configuration01
properties:
- primary: True
+ primary: true
private_ip_allocation_method: 'Dynamic'
private_ip_address_version: 'IPv4'
subnet:
id: "{{ subnet_output.state.id }}"
tags:
key1: value1
- check_mode: True
+ check_mode: true
register: output
-- assert:
+- name: Assert there is no private link service
+ ansible.builtin.assert:
that: output.changed
- name: Create private link service
azure_rm_privatelinkservice:
name: "lsp{{ rpfx }}"
resource_group: "{{ resource_group }}"
- enable_proxy_protocol: True
+ enable_proxy_protocol: true
fqdns:
- 'dns01.com'
- 'dns02.com'
visibility:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
auto_approval:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
load_balancer_frontend_ip_configurations:
- id: "{{ lb_output.state.frontend_ip_configurations[0].id }}"
ip_configurations:
- name: ip_configuration01
properties:
- primary: True
+ primary: true
private_ip_allocation_method: 'Dynamic'
private_ip_address_version: 'IPv4'
subnet:
@@ -122,29 +123,30 @@
key1: value1
register: output
-- assert:
+- name: Assert the private link service created
+ ansible.builtin.assert:
that: output.changed
- name: Create private link service (Idempotent test)
azure_rm_privatelinkservice:
name: "lsp{{ rpfx }}"
resource_group: "{{ resource_group }}"
- enable_proxy_protocol: True
+ enable_proxy_protocol: true
fqdns:
- 'dns01.com'
- 'dns02.com'
visibility:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
auto_approval:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
load_balancer_frontend_ip_configurations:
- id: "{{ lb_output.state.frontend_ip_configurations[0].id }}"
ip_configurations:
- name: ip_configuration01
properties:
- primary: True
+ primary: true
private_ip_allocation_method: 'Dynamic'
private_ip_address_version: 'IPv4'
subnet:
@@ -153,29 +155,30 @@
key1: value1
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Update private link service
azure_rm_privatelinkservice:
name: "lsp{{ rpfx }}"
resource_group: "{{ resource_group }}"
- enable_proxy_protocol: False
+ enable_proxy_protocol: false
fqdns:
- 'dns03.com'
- 'dns04.com'
visibility:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
auto_approval:
- subscriptions:
- - "{{ azure_subscription_id }}"
+ subscriptions:
+ - "{{ azure_subscription_id }}"
load_balancer_frontend_ip_configurations:
- id: "{{ lb_output.state.frontend_ip_configurations[0].id }}"
ip_configurations:
- name: ip_configuration01
properties:
- primary: True
+ primary: true
private_ip_allocation_method: 'Dynamic'
private_ip_address_version: 'IPv4'
subnet:
@@ -185,7 +188,8 @@
key3: value3
register: output
-- assert:
+- name: Assert the private link service update
+ ansible.builtin.assert:
that: output.changed
- name: Get private link service info by name
@@ -194,7 +198,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the private link service facts
+ ansible.builtin.assert:
that:
- output.link_service[0].tags | length == 3
- output.link_service[0].fqdns | length == 4
@@ -217,7 +222,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the private endpoint connection facts
+ ansible.builtin.assert:
that:
- output.endpoint_connection[0].private_link_service_connection_state.actions_required == "None"
- output.endpoint_connection[0].private_link_service_connection_state.description == "Approved"
@@ -234,7 +240,8 @@
actions_required: "actions required"
register: output
-- assert:
+- name: Assert the private endpoint connection updated
+ ansible.builtin.assert:
that: output.changed
- name: Get private endpoint connection info by name
@@ -244,7 +251,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the private endpoint connection facts
+ ansible.builtin.assert:
that:
- output.endpoint_connection[0].private_link_service_connection_state.actions_required == "actions required"
- output.endpoint_connection[0].private_link_service_connection_state.description == "Rejected"
@@ -258,7 +266,8 @@
state: absent
register: output
-- assert:
+- name: Assert the private endpoint connection deleted
+ ansible.builtin.assert:
that: output.changed
- name: Delete private endpoint
@@ -267,11 +276,13 @@
resource_group: "{{ resource_group }}"
state: absent
-- assert:
+- name: Assert the private endpoint deleted
+ ansible.builtin.assert:
that: output.changed
- name: Pause for 5 mimutes to waiting
- shell: sleep 300
+ ansible.builtin.command: sleep 300
+ changed_when: true
- name: Delete private link service
azure_rm_privatelinkservice:
@@ -280,5 +291,6 @@
state: absent
register: output
-- assert:
+- name: Assert the private link service deleted
+ ansible.builtin.assert:
that: output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml
index bf7dbfd0b..c418d06d5 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_proximityplacementgroup/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create proximity placement group name
- set_fact:
+ ansible.builtin.set_fact:
group_name: "ppg{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create a proximity placement group
@@ -11,7 +11,7 @@
register: results
- name: Assert that placement group is created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create a proximity placement group again (Idempotent test)
@@ -23,7 +23,7 @@
register: results
- name: Assert that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Update a proximity placement group
@@ -37,7 +37,7 @@
register: results
- name: Assert that placement group is updated
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Get proximity placement group facts
@@ -46,7 +46,8 @@
name: "{{ group_name }}"
register: results
-- assert:
+- name: Assert the proximity placement facts
+ ansible.builtin.assert:
that:
- not results.changed
- results.proximityplacementgroups[0].name == "{{ group_name }}"
@@ -61,7 +62,7 @@
register: results
- name: Assert that placement group is deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete proximity placement group again (Idempotent test)
@@ -72,5 +73,5 @@
register: results
- name: Asset that output is not changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml
index 119747b26..07b60f46b 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml
@@ -1,109 +1,116 @@
- name: Create domain name
- set_fact:
- domain_name: "ansible-{{ resource_group | hash('md5') | truncate(24, True, '') }}"
- rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ ansible.builtin.set_fact:
+ domain_name: "ansible-{{ resource_group | hash('md5') | truncate(24, True, '') }}"
+ rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Remove public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ state: absent
- name: Create public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- allocation_method: Static
- domain_name: "{{ domain_name }}"
- tags:
- testing: testing
- delete: on-exit
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ allocation_method: Static
+ domain_name: "{{ domain_name }}"
+ tags:
+ testing: testing
+ delete: on-exit
register: output
-- assert:
- that:
- - output.state.public_ip_allocation_method == 'static'
- - output.state.dns_settings.domain_name_label == domain_name
- - output.state.tags | length == 2
- - output.state.tags.testing == 'testing'
+- name: Assert the public ip created
+ ansible.builtin.assert:
+ that:
+ - output.state.public_ip_allocation_method == 'static'
+ - output.state.dns_settings.domain_name_label == domain_name
+ - output.state.tags | length == 2
+ - output.state.tags.testing == 'testing'
- name: Create public ip with IPV6
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}-02"
- allocation_method: Static
- domain_name: "{{ domain_name }}-02"
- version: 'ipv6'
- sku: 'Standard'
- zones:
- - 1
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}-02"
+ allocation_method: Static
+ domain_name: "{{ domain_name }}-02"
+ version: 'ipv6'
+ sku: 'Standard'
+ zones:
+ - 1
register: output
-- assert:
- that:
- - output.state.public_ip_address_version == 'ipv6'
- - output.state.zones == ['1']
+- name: Assert the public ip created
+ ansible.builtin.assert:
+ that:
+ - output.state.public_ip_address_version == 'ipv6'
+ - output.state.zones == ['1']
- name: Should be idempotent
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- allocation_method: static
- domain_name: "{{ domain_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ allocation_method: static
+ domain_name: "{{ domain_name }}"
register: output
-- assert:
- that: not output.changed
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that: not output.changed
- name: Update tags
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- allocation_method: static
- domain_name: "{{ domain_name }}"
- append_tags: yes
- tags:
- delete: never
- foo: bar
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ allocation_method: static
+ domain_name: "{{ domain_name }}"
+ append_tags: true
+ tags:
+ delete: never
+ foo: bar
register: output
-- assert:
- that:
- - output.state.tags | length == 3
- - output.state.tags.delete == 'never'
+- name: Assert the public ip address updated
+ ansible.builtin.assert:
+ that:
+ - output.state.tags | length == 3
+ - output.state.tags.delete == 'never'
- name: Gather facts, filtering by tag
azure_rm_publicipaddress_info:
- resource_group: "{{ resource_group }}"
- tags:
- - testing
- - foo:bar
+ resource_group: "{{ resource_group }}"
+ tags:
+ - testing
+ - foo:bar
register: infos
-- assert:
- that: infos.publicipaddresses | length == 1
+- name: Assert the public ip address facts
+ ansible.builtin.assert:
+ that: infos.publicipaddresses | length == 1
- name: Purge all tags
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- allocation_method: static
- domain_name: "{{ domain_name }}"
- append_tags: no
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ allocation_method: static
+ domain_name: "{{ domain_name }}"
+ append_tags: false
register: output
-- assert:
- that:
- - output.state.tags | length == 0
+- name: Assert purge all tags
+ ansible.builtin.assert:
+ that:
+ - output.state.tags | length == 0
- name: Gather facts for a public ip
azure_rm_publicipaddress_info:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
register: pip
-- assert:
- that:
+- name: Assert the public ip address facts
+ ansible.builtin.assert:
+ that:
- "pip.publicipaddresses | length == 1"
- pip.publicipaddresses[0].name == "pip{{ rpfx }}"
- pip.publicipaddresses[0].allocation_method == 'static'
@@ -111,29 +118,31 @@
- name: Gather facts for all public ips
azure_rm_publicipaddress_info:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
register: infos
-- assert:
- that: infos.publicipaddresses | length > 0
+- name: Assert all public ips
+ ansible.builtin.assert:
+ that: infos.publicipaddresses | length > 0
- name: Remove IPV6 public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}-02"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}-02"
+ state: absent
- name: Remove public ip
azure_rm_publicipaddress:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
- state: absent
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
+ state: absent
- name: Gather facts for a public ip
azure_rm_publicipaddress_info:
- resource_group: "{{ resource_group }}"
- name: "pip{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ name: "pip{{ rpfx }}"
register: infos
-- assert:
- that: infos.publicipaddresses | length == 0
+- name: Assert public ip address facts
+ ansible.builtin.assert:
+ that: infos.publicipaddresses | length == 0
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml
index fc92da931..6918632cd 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_recoveryservicesvault/tasks/main.yml
@@ -1,42 +1,42 @@
- name: Fix resource prefix
- set_fact:
- name: "revault{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "revault{{ resource_group | hash('md5') | truncate(22, True, '') }}"
location: "eastus"
- name: Create Azure Recovery Service vault
azure_rm_recoveryservicesvault:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
location: "{{ location }}"
state: "present"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-
+
- name: Create Azure Recovery Service vault (idempotent)
azure_rm_recoveryservicesvault:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
location: "{{ location }}"
state: "present"
register: output
- name: Assert that output has no changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Get Azure Recovery Service Vault Details
azure_rm_recoveryservicesvault_info:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.response.id != None
- output.response.name != None
@@ -44,12 +44,12 @@
- name: Delete Azure Recovery Service vault
azure_rm_recoveryservicesvault:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
location: "{{ location }}"
state: "absent"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_rediscache/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_rediscache/tasks/main.yml
index 18e71e56e..4d134b0e9 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_rediscache/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_rediscache/tasks/main.yml
@@ -1,10 +1,10 @@
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
redis_name: "redis-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
vnet_name: "vnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
subnet_name: "subnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
rule_name: "rule1"
- run_once: yes
+ run_once: true
- name: Create a redis cache (Check Mode)
azure_rm_rediscache:
@@ -13,12 +13,12 @@
sku:
name: basic
size: C1
- wait_for_provisioning: False
- check_mode: yes
+ wait_for_provisioning: false
+ check_mode: true
register: output
- name: Assert creating redis cache check mode
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -29,11 +29,11 @@
sku:
name: basic
size: C1
- wait_for_provisioning: False
+ wait_for_provisioning: false
register: output
- name: Assert creating redis cache
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.id
@@ -45,7 +45,7 @@
register: facts
- name: Assert facts
- assert:
+ ansible.builtin.assert:
that:
- facts.rediscaches | length == 1
- facts.rediscaches[0].id != None
@@ -61,119 +61,121 @@
sku:
name: basic
size: C1
- wait_for_provisioning: False
+ wait_for_provisioning: false
register: output
-- name: assert output not changed
- assert:
+- name: Assert output not changed
+ ansible.builtin.assert:
that:
- not output.changed
-- name: long-running rediscache tests [run with `--tags long_run,untagged` to enable]
+- name: Long-running rediscache tests [run with `--tags long_run,untagged` to enable]
# creating redis Cache costs about 20 mins async operation,
# need to poll status from Creating to Running, then able to perform updating/deleting operation,
# otherwise, will met error:
# "The resource '<resource_id>' is busy processing a previous update request or is undergoing system maintenance.
# As such, it is currently unable to accept the update request. Please try again later."
block:
- - name: Wait for Redis provisioning to complete
- azure_rm_rediscache_info:
+ - name: Wait for Redis provisioning to complete
+ azure_rm_rediscache_info:
resource_group: "{{ resource_group }}"
name: "{{ redis_name }}"
- register: facts
- until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
- retries: 30
- delay: 60
-
- - name: (actually) update redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- sku:
- name: basic
- size: C1
- enable_non_ssl_port: true
- tags:
- testing: foo
- wait_for_provisioning: True
- register: output
-
- - name: assert output changed
- assert:
- that:
- - output.changed
-
- - name: Update redis cache configuration
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- sku:
- name: basic
- size: C1
- enable_non_ssl_port: True
- maxmemory_policy: allkeys_lru
- tags:
- testing: foo
- register: output
-
- - name: assert output changed
- assert:
- that:
- - output.changed
-
- - name: Scale up the redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- sku:
- name: standard
- size: C1
- tags:
- testing: foo
- wait_for_provisioning: True
- register: output
-
- - assert:
- that:
- - output.changed
-
- - name: Force reboot redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- reboot:
- reboot_type: all
- register: output
-
- - name: assert redis rebooted
- assert:
- that:
- - output.changed
-
- - name: Delete the redis cache (Check Mode)
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- state: absent
- check_mode: yes
- register: output
-
- - name: assert deleting redis cache check mode
- assert:
- that: output.changed
-
- - name: Delete the redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}"
- state: absent
- register: output
-
- - assert:
- that:
- - output.changed
- tags: [long_run, never]
+ register: facts
+ until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
+ retries: 30
+ delay: 60
+
+ - name: (Actually) update redis cache
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ sku:
+ name: basic
+ size: C1
+ enable_non_ssl_port: true
+ tags:
+ testing: foo
+ wait_for_provisioning: true
+ register: output
+
+ - name: Assert output changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Update redis cache configuration
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ sku:
+ name: basic
+ size: C1
+ enable_non_ssl_port: true
+ maxmemory_policy: allkeys_lru
+ tags:
+ testing: foo
+ register: output
+
+ - name: Assert output changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Scale up the redis cache
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ sku:
+ name: standard
+ size: C1
+ tags:
+ testing: foo
+ wait_for_provisioning: true
+ register: output
+
+ - name: Assert the redis cache
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Force reboot redis cache
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ reboot:
+ reboot_type: all
+ register: output
+
+ - name: Assert redis rebooted
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Delete the redis cache (Check Mode)
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ state: absent
+ check_mode: true
+ register: output
+
+ - name: Assert deleting redis cache check mode
+ ansible.builtin.assert:
+ that: output.changed
+
+ - name: Delete the redis cache
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}"
+ state: absent
+ register: output
+
+ - name: Assert the redis cache deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ tags: [long_run, never]
- name: Create a redis cache with enhanced configuration options
@@ -189,7 +191,7 @@
wait_for_provisioning: false
register: output
- name: Assert creating redis cache
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -199,7 +201,7 @@
name: "{{ redis_name }}-enhanced"
register: facts
- name: Assert enhanced cache facts
- assert:
+ ansible.builtin.assert:
that:
- facts.rediscaches | length == 1
- facts.rediscaches[0].id != None
@@ -212,122 +214,123 @@
- facts.rediscaches[0].public_network_access == 'Disabled'
-- name: long-running enhanced rediscache tests [run with `--tags long_run,untagged` to enable]
+- name: Long-running enhanced rediscache tests [run with `--tags long_run,untagged` to enable]
# creating redis Cache costs about 20 mins async operation,
# need to poll status from Creating to Running, then able to perform updating/deleting operation,
# otherwise, will met error:
# "The resource '<resource_id>' is busy processing a previous update request or is undergoing system maintenance.
# As such, it is currently unable to accept the update request. Please try again later."
block:
- - name: Wait for Redis provisioning to complete
- azure_rm_rediscache_info:
+ - name: Wait for Redis provisioning to complete
+ azure_rm_rediscache_info:
resource_group: "{{ resource_group }}"
name: "{{ redis_name }}-enhanced"
- register: facts
- until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
- retries: 30
- delay: 60
-
- - name: update redis (idempotent)
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- sku:
- name: basic
- size: C1
- redis_version: "6"
- minimum_tls_version: "1.2"
- public_network_access: "Disabled"
- wait_for_provisioning: true
- register: output
- - name: assert output not changed
- assert:
- that:
- - not output.changed
-
- - name: update redis cache TLS
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- sku:
- name: basic
- size: C1
- redis_version: "6"
- minimum_tls_version: "1.1"
- public_network_access: "Disabled"
- wait_for_provisioning: true
- register: output
- - name: assert output changed
- assert:
- that:
- - output.changed
-
- - name: update redis cache public network access
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- sku:
- name: basic
- size: C1
- redis_version: "6"
- minimum_tls_version: "1.1"
- public_network_access: "Enabled"
- wait_for_provisioning: true
- register: output
- - name: assert output changed
- assert:
- that:
- - output.changed
-
- - name: Get facts for enhanced cache
- azure_rm_rediscache_info:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- register: facts
- - name: Assert enhanced cache facts
- assert:
- that:
- - facts.rediscaches[0].minimum_tls_version == '1.1'
- - facts.rediscaches[0].public_network_access == 'Enabled'
-
- - name: update redis cache version
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- sku:
- name: basic
- size: C1
- redis_version: "6"
- minimum_tls_version: "1.1"
- public_network_access: "Enabled"
- wait_for_provisioning: true
- register: output
- failed_when: "output.changed or 'not supported' not in output.msg"
-
- - name: Delete the redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}-enhanced"
- state: absent
- register: output
- - assert:
- that:
- - output.changed
- tags: [long_run, never]
+ register: facts
+ until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
+ retries: 30
+ delay: 60
+
+ - name: Update redis (idempotent)
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ sku:
+ name: basic
+ size: C1
+ redis_version: "6"
+ minimum_tls_version: "1.2"
+ public_network_access: "Disabled"
+ wait_for_provisioning: true
+ register: output
+ - name: Assert output not changed
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+ - name: Update redis cache TLS
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ sku:
+ name: basic
+ size: C1
+ redis_version: "6"
+ minimum_tls_version: "1.1"
+ public_network_access: "Disabled"
+ wait_for_provisioning: true
+ register: output
+ - name: Assert output changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Update redis cache public network access
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ sku:
+ name: basic
+ size: C1
+ redis_version: "6"
+ minimum_tls_version: "1.1"
+ public_network_access: "Enabled"
+ wait_for_provisioning: true
+ register: output
+ - name: Assert output changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Get facts for enhanced cache
+ azure_rm_rediscache_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ register: facts
+ - name: Assert enhanced cache facts
+ ansible.builtin.assert:
+ that:
+ - facts.rediscaches[0].minimum_tls_version == '1.1'
+ - facts.rediscaches[0].public_network_access == 'Enabled'
+
+ - name: Update redis cache version
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ sku:
+ name: basic
+ size: C1
+ redis_version: "6"
+ minimum_tls_version: "1.1"
+ public_network_access: "Enabled"
+ wait_for_provisioning: true
+ register: output
+ failed_when: "output.changed or 'not supported' not in output.msg"
+
+ - name: Delete the redis cache
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}-enhanced"
+ state: absent
+ register: output
+ - name: Assert the redis cache deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ tags: [long_run, never]
- name: Create virtual network
azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ vnet_name }}"
- address_prefixes: "10.10.0.0/16"
+ resource_group: "{{ resource_group }}"
+ name: "{{ vnet_name }}"
+ address_prefixes: "10.10.0.0/16"
- name: Add subnet
azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- name: "{{ subnet_name }}"
- address_prefix: "10.10.0.0/24"
- virtual_network: "{{ vnet_name }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ subnet_name }}"
+ address_prefix: "10.10.0.0/24"
+ virtual_network: "{{ vnet_name }}"
- name: Create redis with subnet
azure_rm_rediscache:
@@ -339,11 +342,11 @@
subnet:
name: "{{ subnet_name }}"
virtual_network_name: "{{ vnet_name }}"
- wait_for_provisioning: False
+ wait_for_provisioning: false
register: output
- name: Assert creating redis cache
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.id
@@ -352,11 +355,11 @@
azure_rm_rediscache_info:
resource_group: "{{ resource_group }}"
name: "{{ redis_name }}2"
- return_access_keys: True
+ return_access_keys: true
register: facts
- name: Assert facts
- assert:
+ ansible.builtin.assert:
that:
- facts.rediscaches | length == 1
- facts.rediscaches[0].subnet != None
@@ -369,16 +372,15 @@
name: "{{ rule_name }}"
start_ip_address: 192.168.1.1
end_ip_address: 192.168.1.4
- check_mode: yes
+ check_mode: true
register: output
- name: Assert check mode creation
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-
-- name: long-running key/firewallrule tests [run with `--tags long_run,untagged` to enable]
+- name: Long-running key/firewallrule tests [run with `--tags long_run,untagged` to enable]
# Creating firewall rule need Redis status is running, while creating redis Cache costs about 20 mins async operation,
# need to poll status from Creating to Running, then able to perform firewall rule creating,
# otherwise, will met error:
@@ -386,107 +388,107 @@
# '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Cache/Redis/myRedis' is busy processing
# a previous update request or is undergoing system maintenance. As such, it is currently unable to accept the update request. Please try again later."
block:
- - name: Wait for Redis provisioning to complete
- azure_rm_rediscache_info:
+ - name: Wait for Redis provisioning to complete
+ azure_rm_rediscache_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}2"
+ register: facts
+ until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
+ retries: 30
+ delay: 60
+
+ - name: Create firewall rule
+ azure_rm_rediscachefirewallrule:
+ resource_group: "{{ resource_group }}"
+ cache_name: "{{ redis_name }}2"
+ name: "{{ rule_name }}"
+ start_ip_address: 192.168.1.1
+ end_ip_address: 192.168.1.4
+ register: output
+
+ - name: Assert creation
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.id
+
+ - name: Update firewall rule idempotence
+ azure_rm_rediscachefirewallrule:
+ resource_group: "{{ resource_group }}"
+ cache_name: "{{ redis_name }}2"
+ name: "{{ rule_name }}"
+ start_ip_address: 192.168.1.1
+ end_ip_address: 192.168.1.4
+ register: output
+
+ - name: Assert idempotence
+ ansible.builtin.assert:
+ that:
+ - output.changed == false
+
+ - name: Update firewall rule
+ azure_rm_rediscachefirewallrule:
+ resource_group: "{{ resource_group }}"
+ cache_name: "{{ redis_name }}2"
+ name: "{{ rule_name }}"
+ end_ip_address: 192.168.1.5
+ register: output
+
+ - name: Assert updating
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Get key facts
+ azure_rm_rediscache_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}2"
+ return_access_keys: true
+ register: key_facts
+
+ - name: Regenerate primary redis key
+ azure_rm_rediscache:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}2"
+ regenerate_key:
+ key_type: "primary"
+ register: output
+
+ - name: Assert output
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Get facts after key regeneration
+ azure_rm_rediscache_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ redis_name }}2"
+ return_access_keys: true
+ register: key_facts2
+
+ - name: Assert key change
+ ansible.builtin.assert:
+ that:
+ - key_facts.rediscaches[0].access_keys.primary != key_facts2.rediscaches[0].access_keys.primary
+ - key_facts.rediscaches[0].access_keys.secondary == key_facts2.rediscaches[0].access_keys.secondary
+
+ - name: Delete firewall rule
+ azure_rm_rediscachefirewallrule:
+ resource_group: "{{ resource_group }}"
+ cache_name: "{{ redis_name }}2"
+ name: "{{ rule_name }}"
+ state: absent
+ register: output
+
+ - name: Assert deletion
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+ - name: Delete the redis cache
+ azure_rm_rediscache:
resource_group: "{{ resource_group }}"
name: "{{ redis_name }}2"
- register: facts
- until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
- retries: 30
- delay: 60
-
- - name: Create firewall rule
- azure_rm_rediscachefirewallrule:
- resource_group: "{{ resource_group }}"
- cache_name: "{{ redis_name }}2"
- name: "{{ rule_name }}"
- start_ip_address: 192.168.1.1
- end_ip_address: 192.168.1.4
- register: output
-
- - name: Assert creation
- assert:
- that:
- - output.changed
- - output.id
-
- - name: Update firewall rule idempotence
- azure_rm_rediscachefirewallrule:
- resource_group: "{{ resource_group }}"
- cache_name: "{{ redis_name }}2"
- name: "{{ rule_name }}"
- start_ip_address: 192.168.1.1
- end_ip_address: 192.168.1.4
- register: output
-
- - name: Assert idempotence
- assert:
- that:
- - output.changed == False
-
- - name: Update firewall rule
- azure_rm_rediscachefirewallrule:
- resource_group: "{{ resource_group }}"
- cache_name: "{{ redis_name }}2"
- name: "{{ rule_name }}"
- end_ip_address: 192.168.1.5
- register: output
-
- - name: Assert updating
- assert:
- that:
- - output.changed
-
- - name: Get key facts
- azure_rm_rediscache_info:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}2"
- return_access_keys: True
- register: key_facts
-
- - name: regenerate primary redis key
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}2"
- regenerate_key:
- key_type: "primary"
- register: output
-
- - name: Assert output
- assert:
- that:
- - output.changed
-
- - name: Get facts after key regeneration
- azure_rm_rediscache_info:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}2"
- return_access_keys: true
- register: key_facts2
-
- - name: Assert key change
- assert:
- that:
- - key_facts.rediscaches[0].access_keys.primary != key_facts2.rediscaches[0].access_keys.primary
- - key_facts.rediscaches[0].access_keys.secondary == key_facts2.rediscaches[0].access_keys.secondary
-
- - name: Delete firewall rule
- azure_rm_rediscachefirewallrule:
- resource_group: "{{ resource_group }}"
- cache_name: "{{ redis_name }}2"
- name: "{{ rule_name }}"
- state: absent
- register: output
-
- - name: Assert deletion
- assert:
- that:
- - output.changed
-
- - name: Delete the redis cache
- azure_rm_rediscache:
- resource_group: "{{ resource_group }}"
- name: "{{ redis_name }}2"
- state: absent
- register: output
- tags: [long_run, never]
+ state: absent
+ register: output
+ tags: [long_run, never]
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml
index 055524705..05cc5d552 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationassignment/tasks/main.yml
@@ -1,10 +1,10 @@
-- name: set facts
- set_fact:
+- name: Set facts
+ ansible.builtin.set_fact:
subscription_id: "{{ azure_subscription_id }}"
managed_by_tenant_id: "{{ azure_managed_by_tenant_id }}"
principal_id: "{{ azure_principal_id }}"
role_definition_id: "{{ azure_role_definition_id }}"
- run_once: yes
+ run_once: true
- name: Create a RegistrationDefinition
azure_rm_registrationdefinition:
@@ -23,42 +23,46 @@
properties:
registration_definition_id: "{{ output1.state.id }}"
register: output
- check_mode: yes
+ check_mode: true
-- assert:
+- name: Assert the registration assignment check mode
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
-- name: Create a RegistrationAssignment
+- name: Create a RegistrationAssignment
azure_rm_registrationassignment:
scope: subscriptions/{{ subscription_id }}
properties:
registration_definition_id: "{{ output1.state.id }}"
register: output2
-- assert:
+- name: Assert the registration assignment created
+ ansible.builtin.assert:
that:
- output2.changed
- name: Create a RegistrationAssignment -- idempotent
azure_rm_registrationassignment:
scope: subscriptions/{{ subscription_id }}
- registration_assignment_id: "{{ output2.state.name }}"
+ registration_assignment_id: "{{ output2.state.name }}"
properties:
registration_definition_id: "{{ output1.state.id }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
- name: Get a RegistrationAssignment
azure_rm_registrationassignment_info:
scope: subscriptions/{{ subscription_id }}
- registration_assignment_id: "{{ output2.state.name }}"
+ registration_assignment_id: "{{ output2.state.name }}"
register: output
-- assert:
+- name: Assert the registration assignment facts
+ ansible.builtin.assert:
that:
- output.registration_assignments[0].properties.registration_definition_id == "{{ output1.state.id }}"
@@ -67,12 +71,13 @@
scope: subscriptions/{{ subscription_id }}
register: output
-- assert:
+- name: Assert all registration assignment facts
+ ansible.builtin.assert:
that:
- output.registration_assignments | length >= 1
- name: Delete the RegistrationAssignment
azure_rm_registrationassignment:
scope: subscriptions/{{ subscription_id }}
- registration_assignment_id: "{{ output2.state.name }}"
+ registration_assignment_id: "{{ output2.state.name }}"
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml
index 0395db002..3a5d58143 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_registrationdefinition/tasks/main.yml
@@ -1,12 +1,12 @@
-- name: set facts
- set_fact:
- subscription_id: "{{ azure_subscription_id }}"
- subscription_sec_id: "{{ azure_subscription_sec_id }}"
- managed_by_tenant_id: "{{ azure_managed_by_tenant_id }}"
- principal_id: "{{ azure_principal_id }}"
- role_definition_id: "{{ azure_role_definition_id }}"
- reg_def_name: test_name
- run_once: yes
+- name: Set facts
+ ansible.builtin.set_fact:
+ subscription_id: "{{ azure_subscription_id }}"
+ subscription_sec_id: "{{ azure_subscription_sec_id }}"
+ managed_by_tenant_id: "{{ azure_managed_by_tenant_id }}"
+ principal_id: "{{ azure_principal_id }}"
+ role_definition_id: "{{ azure_role_definition_id }}"
+ reg_def_name: test_name
+ run_once: true
- name: Create a RegistrationDefinition -- check mode
azure_rm_registrationdefinition:
@@ -17,11 +17,11 @@
role_definition_id: "{{ role_definition_id }}"
managed_by_tenant_id: "{{ managed_by_tenant_id }}"
registration_definition_name: "{{ reg_def_name }}"
- check_mode: yes
+ check_mode: true
register: output
- name: Assert creating registration definition check mode
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -38,7 +38,7 @@
register: output2
- name: Assert creating registration definition
- assert:
+ ansible.builtin.assert:
that:
- output2.changed
@@ -54,7 +54,7 @@
register: output1
- name: Assert creating registration definition
- assert:
+ ansible.builtin.assert:
that:
- output1.changed
@@ -71,7 +71,7 @@
register: output
- name: Assert creating registration definition
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -88,17 +88,17 @@
register: output
- name: Assert creating registration definition
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Get the Registration Definition info
azure_rm_registrationdefinition_info:
- registration_definition_id: "{{ output1.state.name }}"
+ registration_definition_id: "{{ output1.state.name }}"
register: output
- name: Assert the registration definition info
- assert:
+ ansible.builtin.assert:
that:
- output.registration_definitions[0].name == "{{ output1.state.name }}"
- output.registration_definitions[0].properties.authorizations[0].principal_id == "{{ principal_id }}"
@@ -109,11 +109,11 @@
- name: Get All Registration Definition info in the subscription
azure_rm_registrationdefinition_info:
- scope: "{{ subscription_id }}"
+ scope: "{{ subscription_id }}"
register: output
- name: Assert all the registration definition info
- assert:
+ ansible.builtin.assert:
that:
- output.registration_definitions | length >=1
@@ -124,7 +124,7 @@
register: output
- name: Assert delete registration definition success
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resource/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resource/tasks/main.yml
index 6ec87237d..0f9834165 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resource/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resource/tasks/main.yml
@@ -1,9 +1,9 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
nsgname: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
storageaccountname: "stacc{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
dbname: "mdb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Call REST API
azure_rm_resource:
@@ -14,11 +14,11 @@
resource_name: "{{ nsgname }}"
body:
location: eastus
- idempotency: yes
+ idempotency: true
register: output
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Call REST API
@@ -30,11 +30,11 @@
resource_name: "{{ nsgname }}"
body:
location: eastus
- idempotency: yes
+ idempotency: true
register: output
- name: Assert that nothing has changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Call REST API
@@ -49,11 +49,11 @@
tags:
a: "abc"
b: "cde"
- idempotency: yes
+ idempotency: true
register: output
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Try to get information about account
@@ -66,7 +66,7 @@
register: output
- name: Assert value was returned
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.response[0]['name'] != None
@@ -80,7 +80,7 @@
resource_type: networksecuritygroups
register: output
- name: Assert value was returned
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.response[0]['name'] != None
@@ -93,7 +93,7 @@
resource_type: networksecuritygroups
register: output
- name: Assert value was returned
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.response[0]['name'] != None
@@ -105,7 +105,7 @@
resource_type: resources
register: output
- name: Assert value was returned
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.response | length >= 1
@@ -127,7 +127,7 @@
register: output
- name: Assert that storage was successfully created
- assert:
+ ansible.builtin.assert:
that: "output['response']['name'] == '{{ storageaccountname }}'"
@@ -144,7 +144,7 @@
register: keys
- name: Assert that key was returned
- assert:
+ ansible.builtin.assert:
that: keys['response']['keys'][0]['value'] | length > 0
- name: Delete storage - without API version
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml
index 706a855e8..4f66237b7 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_resourcegroup/tasks/main.yml
@@ -1,50 +1,55 @@
- name: Get resource group datalake info
azure_rm_resourcegroup_info:
- name: "{{ resource_group_datalake }}"
- list_resources: yes
+ name: "{{ resource_group_datalake }}"
+ list_resources: true
register: rg
-- assert:
+- name: Assert the resource group facts
+ ansible.builtin.assert:
that:
- - rg.resourcegroups | length == 1
- - rg.resourcegroups[0].resources | length >= 0
+ - rg.resourcegroups | length == 1
+ - rg.resourcegroups[0].resources | length >= 0
- name: Get resource group info
azure_rm_resourcegroup_info:
register: rg
-- assert:
+- name: Assert all resource group facts
+ ansible.builtin.assert:
that:
- - rg.resourcegroups | length >= 1
+ - rg.resourcegroups | length >= 1
- name: Get resource group info
azure_rm_resourcegroup_info:
- name: "{{ resource_group }}"
- list_resources: yes
+ name: "{{ resource_group }}"
+ list_resources: true
register: rg
-- assert:
+- name: Assert the resource group facts
+ ansible.builtin.assert:
that:
- - rg.resourcegroups | length == 1
- - rg.resourcegroups[0].resources | length >= 0
+ - rg.resourcegroups | length == 1
+ - rg.resourcegroups[0].resources | length >= 0
- name: Create resource group (idempontent)
azure_rm_resourcegroup:
- name: "{{ resource_group }}"
- location: "{{ rg.resourcegroups[0].location }}"
+ name: "{{ resource_group }}"
+ location: "{{ rg.resourcegroups[0].location }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- - not output.changed
+ - not output.changed
-- name: delete resource group
+- name: Delete resource group
azure_rm_resourcegroup:
- name: "{{ resource_group }}"
- state: absent
- check_mode: yes
+ name: "{{ resource_group }}"
+ state: absent
+ check_mode: true
register: output
-- assert:
+- name: Assert the resource group deleted
+ ansible.builtin.assert:
that:
- - output.changed \ No newline at end of file
+ - output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roleassignment/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roleassignment/tasks/main.yml
index c4e4d15d6..e918bdc19 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roleassignment/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roleassignment/tasks/main.yml
@@ -1,5 +1,5 @@
-- name: setup basic facts
- set_fact:
+- name: Setup basic facts
+ ansible.builtin.set_fact:
uuid: bb21a88b-30e1-42b5-84e8-1d3f322de033
# Disk Backup Reader, unlikely to be already assigned in ansible-test resource groups.
az_role_definition_guid: '3e5e47e6-65f7-47ef-90b5-e5dd4d455f24'
@@ -15,7 +15,7 @@
id: "{{ item.id | default(omit) }}"
role_definition_id: "{{ item.role_definition_id | default(omit) }}"
scope: "{{ item.scope | default(omit) }}"
- strict_scope_match: True
+ strict_scope_match: true
register: az_role_assignment_specific
loop:
- name: "{{ az_role_assignments.roleassignments[0].name }}"
@@ -25,10 +25,10 @@
role_definition_id: "{{ az_role_assignments.roleassignments[0].role_definition_id }}"
- id: "{{ az_role_assignments.roleassignments[0].id }}"
-- name: check specific fetch for single return
- assert:
+- name: Check specific fetch for single return
+ ansible.builtin.assert:
that:
- - "{{ ( item.roleassignments | length) == 1 }}"
+ - "{{ (item.roleassignments | length) == 1 }}"
loop: "{{ az_role_assignment_specific.results }}"
- name: Intentional mutual exclusion info
@@ -38,7 +38,7 @@
id: "{{ item.id | default(omit) }}"
scope: "{{ item.scope | default(omit) }}"
register: failures_info
- ignore_errors: True
+ ignore_errors: true
loop:
- name: "{{ az_role_assignments.roleassignments[0].name }}"
assignee: "{{ az_role_assignments.roleassignments[0].principal_id }}"
@@ -47,8 +47,8 @@
- name: "{{ az_role_assignments.roleassignments[0].name }}"
id: "{{ az_role_assignments.roleassignments[0].id }}"
-- name: check intended failures
- assert:
+- name: Check intended failures
+ ansible.builtin.assert:
that:
- item.failed
loop: "{{ failures_info.results }}"
@@ -62,7 +62,7 @@
role_definition_id: "{{ item.role_definition_id | default(omit) }}"
state: "{{ item.state | default(omit) }}"
register: failures_mutable
- ignore_errors: True
+ ignore_errors: true
loop:
# mutually exclusive
- scope: "{{ az_role_assignments.roleassignments[0].scope }}"
@@ -87,33 +87,33 @@
role_definition_id: "{{ az_role_assignments.roleassignments[0].role_definition_id }}"
state: "absent"
-- name: check intended failures
- assert:
+- name: Check intended failures
+ ansible.builtin.assert:
that:
- item.failed
loop: "{{ failures_mutable.results }} "
-- name: get resource group info
+- name: Get resource group info
azure_rm_resourcegroup_info:
name: "{{ resource_group }}"
register: az_resource_group
-- name: create role assignment by id
+- name: Create role assignment by id
azure_rm_roleassignment:
id: "{{ az_resource_group.resourcegroups[0].id }}/providers/Microsoft.Authorization/roleAssignments/{{ uuid }}"
assignee_object_id: "{{ az_role_assignments.roleassignments[0].principal_id }}"
role_definition_id: "/subscriptions/{{ az_resource_group.resourcegroups[0].id.split('/')[2] }}/providers/Microsoft.Authorization/roleDefinitions/{{ az_role_definition_guid }}"
register: az_role_assignment_create
-- name: create role assignment by scope
+- name: Create role assignment by scope
azure_rm_roleassignment:
scope: "{{ az_resource_group.resourcegroups[0].id }}"
assignee_object_id: "{{ az_role_assignments.roleassignments[0].principal_id }}"
role_definition_id: "/subscriptions/{{ az_resource_group.resourcegroups[0].id.split('/')[2] }}/providers/Microsoft.Authorization/roleDefinitions/{{ az_role_definition_guid }}"
register: az_role_assignment_idempotent
-- name: check idempotence
- assert:
+- name: Check idempotence
+ ansible.builtin.assert:
that:
- az_role_assignment_idempotent.changed == False
@@ -131,13 +131,13 @@
- name: List Role Assignments at scope with strict matching
azure_rm_roleassignment_info:
scope: "{{ az_role_assignments.roleassignments[0].scope }}"
- strict_scope_match: True
+ strict_scope_match: true
register: az_role_assignment_by_scope_strict
-- name: check strict scope matching
- assert:
+- name: Check strict scope matching
+ ansible.builtin.assert:
that:
- - item.scope == az_role_assignments.roleassignments[0].scope
+ - item.scope == az_role_assignments.roleassignments[0].scope
loop: "{{ az_role_assignment_by_scope_strict.roleassignments }}"
- name: List Role Assignments at id
@@ -157,12 +157,12 @@
register: az_role_assignment_delete
when: az_role_assignment_create.changed
-- name: create role assignment with name
+- name: Create role assignment with name
azure_rm_roleassignment:
scope: "{{ az_resource_group.resourcegroups[0].id }}"
assignee_object_id: "{{ az_role_assignments.roleassignments[0].principal_id }}"
role_definition_id: "/subscriptions/{{ az_resource_group.resourcegroups[0].id.split('/')[2] }}/providers/Microsoft.Authorization/roleDefinitions/{{ az_role_definition_guid }}"
- name: "{{ uuid }}"
+ name: "{{ uuid }}"
register: az_role_assignment_create
- name: Delete Role by Name
@@ -173,14 +173,14 @@
register: az_role_assignment_delete
when: az_role_assignment_create.changed
-- name: create role assignment by scope
+- name: Create role assignment by scope
azure_rm_roleassignment:
scope: "{{ az_resource_group.resourcegroups[0].id }}"
assignee_object_id: "{{ az_role_assignments.roleassignments[0].principal_id }}"
role_definition_id: "/subscriptions/{{ az_resource_group.resourcegroups[0].id.split('/')[2] }}/providers/Microsoft.Authorization/roleDefinitions/{{ az_role_definition_guid }}"
register: az_role_assignment_create_by_scope
-- name: delete by scope, assignee_object_id and role_definition_id
+- name: Delete by scope, assignee_object_id and role_definition_id
azure_rm_roleassignment:
scope: "{{ az_resource_group.resourcegroups[0].id }}"
assignee_object_id: "{{ az_role_assignments.roleassignments[0].principal_id }}"
@@ -189,20 +189,20 @@
register: az_role_assignment_delete
when: az_role_assignment_create.changed
-- name: absent assignment that doesn't exist - id
+- name: Absent assignment that doesn't exist - id
azure.azcollection.azure_rm_roleassignment:
id: "{{ az_role_assignment_delete.id }}"
state: absent
register: absent_nochange_id
-- name: absent assignment that doesn't exist - name
+- name: Absent assignment that doesn't exist - name
azure.azcollection.azure_rm_roleassignment:
name: "{{ az_role_assignment_delete.name }}"
scope: "{{ az_role_assignment_delete.scope }}"
state: absent
register: absent_nochange_name
-- name: absent assignment that doesn't exist - properties
+- name: Absent assignment that doesn't exist - properties
azure.azcollection.azure_rm_roleassignment:
scope: "{{ az_role_assignment_delete.scope }}"
assignee_object_id: "{{ az_role_assignment_delete.assignee_object_id }}"
@@ -210,11 +210,11 @@
state: absent
register: absent_nochange_properties
-- name: check intended failures info
- assert:
+- name: Check intended failures info
+ ansible.builtin.assert:
that:
- item.changed == false
- loop:
+ loop:
- "{{ absent_nochange_properties }}"
- "{{ absent_nochange_id }}"
- "{{ absent_nochange_name }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roledefinition/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roledefinition/tasks/main.yml
index 15cf266b6..6367198a8 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roledefinition/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_roledefinition/tasks/main.yml
@@ -1,13 +1,13 @@
- name: Fix resource prefix
- set_fact:
- role_name: "{{ (resource_group | replace('-','x'))[-8:] }}{{ 1000 | random }}testrole"
- subscription_id: "{{azure_subscription_id}}"
- principal_id: "{{azure_client_id}}"
- run_once: yes
+ ansible.builtin.set_fact:
+ my_role_name: "{{ (resource_group | replace('-', 'x'))[-8:] }}{{ 1000 | random }}testrole"
+ subscription_id: "{{ azure_subscription_id }}"
+ principal_id: "{{ azure_client_id }}"
+ run_once: true
- name: Create a role definition (Check Mode)
azure_rm_roledefinition:
- name: "{{ role_name }}"
+ name: "{{ my_role_name }}"
scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
permissions:
- actions:
@@ -19,18 +19,18 @@
not_data_actions:
- "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
assignable_scopes:
- - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
- check_mode: yes
+ - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
+ check_mode: true
register: output
- name: Assert creating role definition check mode
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Create a role definition
azure_rm_roledefinition:
- name: "{{ role_name }}"
+ name: "{{ my_role_name }}"
scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
permissions:
- actions:
@@ -42,48 +42,48 @@
not_data_actions:
- "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
assignable_scopes:
- - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
+ - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
register: output
- name: Assert creating role definition
- assert:
+ ansible.builtin.assert:
that:
- output.changed
## because of the bug of azure service , the following tasks will cause failures randomly
#
-#- name: Get facts by type
+# - name: Get facts by type
# azure_rm_roledefinition_info:
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# type: custom
# register: facts
#
-#- name: Assert facts
-# assert:
+# - name: Assert facts
+# ansible.builtin.assert:
# that:
# - facts['roledefinitions'] | length > 1
#
-#- name: Get facts by name
+# - name: Get facts by name
# azure_rm_roledefinition_info:
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
-# role_name: "{{ role_name }}"
+# role_name: "{{ my_role_name }}"
# register: facts
# until: facts.roledefinitions | length > 0
# retries: 50
# delay: 60
#
-#- name: Assert facts
-# assert:
+# - name: Assert facts
+# ansible.builtin.assert:
# that:
# - facts['roledefinitions'] | length == 1
# - facts['roledefinitions'][0]['permissions'] | length == 1
# - facts['roledefinitions'][0]['permissions'][0]['not_data_actions'] | length == 1
# - facts['roledefinitions'][0]['permissions'][0]['data_actions'] | length == 1
#
-#- name: Update the role definition (idempotent)
+# - name: Update the role definition (idempotent)
# azure_rm_roledefinition:
-# name: "{{ role_name }}"
+# name: "{{ my_role_name }}"
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# permissions:
# - actions:
@@ -98,14 +98,14 @@
# - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# register: output
#
-#- name: assert output not changed
-# assert:
+# - name: ansible.builtin.assert output not changed
+# ansible.builtin.assert:
# that:
# - not output.changed
#
-#- name: Update the role definition
+# - name: Update the role definition
# azure_rm_roledefinition:
-# name: "{{ role_name }}"
+# name: "{{ my_role_name }}"
# description: "update description"
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# permissions:
@@ -122,14 +122,14 @@
# - "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# register: output
#
-#- name: assert output changed
-# assert:
+# - name: ansible.builtin.assert output changed
+# ansible.builtin.assert:
# that:
# - output.changed
#
-#- name: Get role definition facts
+# - name: Get role definition facts
# azure_rm_roledefinition_info:
-# role_name: "{{ role_name }}"
+# role_name: "{{ my_role_name }}"
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# type: custom
# register: roledef
@@ -137,13 +137,13 @@
# retries: 50
# delay: 60
#
-#- name: Assert role definition facts
-# assert:
+# - name: Assert role definition facts
+# ansible.builtin.assert:
# that:
# - roledef['roledefinitions'] | length == 1
# - roledef['roledefinitions'][0]['id']
#
-#- name: Create a role assignment (Check Mode)
+# - name: Create a role assignment (Check Mode)
# azure_rm_roleassignment:
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# assignee_object_id: "{{ principal_id }}"
@@ -151,61 +151,61 @@
# check_mode: yes
# register: output
#
-#- name: Assert creating role definition check mode
-# assert:
+# - name: Assert creating role definition check mode
+# ansible.builtin.assert:
# that:
# - output.changed
#
-#- name: Create a role assignment
+# - name: Create a role assignment
# azure_rm_roleassignment:
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# assignee_object_id: "{{ principal_id }}"
# role_definition_id: "{{ roledef['roledefinitions'][0]['id'] }}"
# register: output
#
-#- name: Assert creating role assignment
-# assert:
+# - name: Assert creating role assignment
+# ansible.builtin.assert:
# that:
# - output.changed
#
-#- name: Get facts
+# - name: Get facts
# azure_rm_roleassignment_info:
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# assignee: "{{ principal_id }}"
# role_definition_id: "{{ roledef['roledefinitions'][0]['id'] }}"
# register: facts
#
-#- name: assert role assignment facts
-# assert:
+# - name: ansible.builtin.assert role assignment facts
+# ansible.builtin.assert:
# that:
# - facts['roleassignments'] | length > 0
# - facts['roleassignments'][0]['id']
#
-#- name: delete role assignment
+# - name: delete role assignment
# azure_rm_roleassignment:
# name: "{{ facts['roleassignments'][0]['id'].split('/')[-1] }}"
# scope: "/subscriptions/{{ subscription_id }}"
# state: absent
#
-#- name: Delete the role definition (Check Mode)
+# - name: Delete the role definition (Check Mode)
# azure_rm_roledefinition:
-# name: "{{ role_name }}"
+# name: "{{ my_role_name }}"
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# state: absent
# check_mode: yes
# register: output
#
-#- name: assert deleting role definition check mode
-# assert:
+# - name: ansible.builtin.assert deleting role definition check mode
+# ansible.builtin.assert:
# that: output.changed
#
-#- name: Delete the role definition
+# - name: Delete the role definition
# azure_rm_roledefinition:
-# name: "{{ role_name }}"
+# name: "{{ my_role_name }}"
# scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
# state: absent
# register: output
#
-#- assert:
+# - ansible.builtin.assert:
# that:
# - output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_routetable/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_routetable/tasks/main.yml
index 98b3c752a..057e516ea 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_routetable/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_routetable/tasks/main.yml
@@ -1,55 +1,59 @@
- name: Prepare random number
- set_fact:
- name: "table{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "table{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
route_name: "route{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create a route table (check mode)
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
tags:
purpose: testing
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Assert check mode
+ ansible.builtin.assert:
that:
- not output.id
- output.changed
- name: Create a route table
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
tags:
- purpose: testing
+ purpose: testing
register: output
-- assert:
+- name: Assert the route table created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
- name: Create a route table (idemponent)
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
tags:
purpose: testing
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
- name: Get facts of the table
azure_rm_routetable_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the route table facts
+ ansible.builtin.assert:
that:
- "output.route_tables | length == 1"
- "output.route_tables[0].routes | length == 0"
@@ -60,11 +64,12 @@
resource_group: "{{ resource_group }}"
next_hop_type: virtual_network_gateway
address_prefix: "10.1.0.0/16"
- route_table_name: "{{ name }}"
- check_mode: yes
+ route_table_name: "{{ name_rpfx }}"
+ check_mode: true
register: output
-- assert:
+- name: Assert check mode
+ ansible.builtin.assert:
that:
- output.changed
- not output.id
@@ -75,10 +80,11 @@
resource_group: "{{ resource_group }}"
next_hop_type: virtual_network_gateway
address_prefix: "10.1.0.0/16"
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert the route created
+ ansible.builtin.assert:
that:
- output.changed
- output.id
@@ -89,23 +95,25 @@
resource_group: "{{ resource_group }}"
next_hop_type: virtual_network_gateway
address_prefix: "10.1.0.0/16"
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
-- name: update route
+- name: Update route
azure_rm_route:
name: "{{ route_name }}"
resource_group: "{{ resource_group }}"
next_hop_type: virtual_network_gateway
address_prefix: "10.1.0.0/24"
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert the route updated
+ ansible.builtin.assert:
that:
- output.changed
@@ -113,21 +121,23 @@
azure_rm_route_info:
name: "{{ route_name }}"
resource_group: "{{ resource_group }}"
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert the route facts
+ ansible.builtin.assert:
that:
- output.routes[0].address_prefix == "10.1.0.0/24"
- output.routes[0].next_hop_type == "VirtualNetworkGateway"
- name: Get facts of the table
azure_rm_routetable_info:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the route table facts
+ ansible.builtin.assert:
that:
- "output.route_tables | length == 1"
- "output.route_tables[0].routes | length == 1"
@@ -137,19 +147,20 @@
azure_rm_route:
name: "{{ route_name }}"
resource_group: "{{ resource_group }}"
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
state: absent
- check_mode: yes
+ check_mode: true
- name: Delete route
azure_rm_route:
name: "{{ route_name }}"
resource_group: "{{ resource_group }}"
state: absent
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert the route deleted
+ ansible.builtin.assert:
that:
- output.changed
@@ -158,38 +169,41 @@
name: "{{ route_name }}"
resource_group: "{{ resource_group }}"
state: absent
- route_table_name: "{{ name }}"
+ route_table_name: "{{ name_rpfx }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
- name: Delete route table (check mode)
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
- check_mode: yes
+ check_mode: true
- name: Delete route table
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
register: output
-- assert:
+- name: Assert the route table deleted
+ ansible.builtin.assert:
that:
- output.changed
- name: Delete route table (idemponent)
azure_rm_routetable:
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
resource_group: "{{ resource_group }}"
state: absent
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml
index dd35db16a..6dc584a6f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml
@@ -1,10 +1,10 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
secgroupname: "sg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
asg_name1: "asg1{{ resource_group | hash('md5') | truncate(7, True, '') }}"
asg_name2: "asg2{{ resource_group | hash('md5') | truncate(7, True, '') }}"
sg_name1: "sgasg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create security group
azure_rm_securitygroup:
@@ -15,7 +15,7 @@
delete: on-exit
foo: bar
testkey: testvalue
- purge_rules: yes
+ purge_rules: true
rules:
- name: DenySSH
protocol: Tcp
@@ -31,8 +31,8 @@
priority: 101
direction: Inbound
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that: "{{ output.state.rules | length }} == 2"
- name: Gather facts by tags
@@ -43,8 +43,8 @@
- foo:bar
- testkey
register: output
-- name: assert resource retrieved
- assert:
+- name: Assert resource retrieved
+ ansible.builtin.assert:
that:
- output.securitygroups | length == 1
- output.securitygroups[0].default_rules | length > 0
@@ -77,8 +77,8 @@
- 443
priority: 103
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- "{{ output.state.rules | length }} == 4"
- output.state.rules[0].source_address_prefix == '174.108.158.0/24'
@@ -88,8 +88,8 @@
resource_group: "{{ resource_group }}"
name: "{{ secgroupname }}"
register: output
-- name: assert rules updated
- assert:
+- name: Assert rules updated
+ ansible.builtin.assert:
that:
- output.securitygroups[0].rules | length == 4
@@ -117,8 +117,8 @@
- 443
priority: 103
register: output
-- name: assert resource not updated
- assert:
+- name: Assert resource not updated
+ ansible.builtin.assert:
that: not output.changed
- name: Update tags
@@ -131,8 +131,8 @@
baz: bar
append_tags: false
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- output.state.tags | length == 3
- output.state.tags.delete == 'never'
@@ -146,8 +146,8 @@
testing: testing
delete: on-exit
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- output.state.tags | length == 2
- output.state.tags.delete == 'on-exit'
@@ -157,8 +157,8 @@
resource_group: "{{ resource_group }}"
name: "{{ secgroupname }}"
register: output
-- name: assert resource retrieved
- assert:
+- name: Assert resource retrieved
+ ansible.builtin.assert:
that:
- output.securitygroups | length == 1
@@ -168,8 +168,8 @@
tags:
- testing:testing
register: output_groups
-- name: assert resource retrieved
- assert:
+- name: Assert resource retrieved
+ ansible.builtin.assert:
that:
- output_groups.securitygroups | length > 0
@@ -181,7 +181,7 @@
testing: testing
delete: on-exit
foo: bar
- purge_rules: yes
+ purge_rules: true
rules:
- name: AllowSSH
protocol: Tcp
@@ -194,8 +194,8 @@
priority: 101
direction: Inbound
register: output
-- name: assert resource created
- assert:
+- name: Assert resource created
+ ansible.builtin.assert:
that:
- "{{ output.state.rules | length }} == 1"
- "{{ output.state.rules[0].source_address_prefixes | length }} == 3"
@@ -209,7 +209,7 @@
testing: testing
delete: on-exit
foo: bar
- purge_rules: yes
+ purge_rules: true
rules:
- name: AllowSSH
protocol: Tcp
@@ -222,8 +222,8 @@
priority: 101
direction: Inbound
register: output
-- name: assert resource not updated
- assert:
+- name: Assert resource not updated
+ ansible.builtin.assert:
that: not output.changed
- name: Add a single one group
@@ -244,8 +244,8 @@
priority: 102
direction: Inbound
register: output
-- name: assert resource updated
- assert:
+- name: Assert resource updated
+ ansible.builtin.assert:
that:
- output.changed
- "{{ output.state.rules | length }} == 2"
@@ -285,8 +285,8 @@
priority: 100
direction: Inbound
register: output
-- name: assert resource not updated
- assert:
+- name: Assert resource not updated
+ ansible.builtin.assert:
that:
- not output.changed
@@ -310,7 +310,7 @@
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ sg_name1 }}"
- purge_rules: yes
+ purge_rules: true
rules:
- name: AsgToAsg
protocol: Tcp
@@ -324,8 +324,8 @@
priority: 101
direction: Inbound
register: output
-- name: assert resource retrieved
- assert:
+- name: Assert resource retrieved
+ ansible.builtin.assert:
that:
- output.changed
@@ -333,7 +333,7 @@
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ sg_name1 }}"
- purge_rules: yes
+ purge_rules: true
rules:
- name: AsgToAsg
protocol: Tcp
@@ -347,8 +347,8 @@
priority: 101
direction: Inbound
register: output
-- name: assert resource not updated
- assert:
+- name: Assert resource not updated
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_servicebus/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_servicebus/tasks/main.yml
index 1bc4c11f9..3b4495faf 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_servicebus/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_servicebus/tasks/main.yml
@@ -1,18 +1,19 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create a namespace
azure_rm_servicebus:
- name: "ns{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- sku: premium
- tags:
- key1: value1
+ name: "ns{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ sku: premium
+ tags:
+ key1: value1
register: namespace
-- assert:
+- name: Assert the namespace created
+ ansible.builtin.assert:
that:
- namespace.id
- namespace.changed
@@ -20,162 +21,171 @@
- name: Create a namespace (idempontent)
azure_rm_servicebus:
- name: "ns{{ rpfx }}"
- resource_group: "{{ resource_group }}"
+ name: "ns{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
register: namespace
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not namespace.changed
- name: Create a queue
azure_rm_servicebusqueue:
- name: "queue{{ rpfx }}"
- namespace: "ns{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- max_message_size_in_kb: 2048
- max_size_in_mb: 2048
+ name: "queue{{ rpfx }}"
+ namespace: "ns{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ max_message_size_in_kb: 2048
+ max_size_in_mb: 2048
register: queue
-- assert:
- that:
- - queue.id
- - queue.changed
+- name: Assert the queue created
+ ansible.builtin.assert:
+ that:
+ - queue.id
+ - queue.changed
- name: Create a topic (check mode)
azure_rm_servicebustopic:
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- duplicate_detection_time_in_seconds: 600
- max_message_size_in_kb: 2048
- max_size_in_mb: 2048
- check_mode: yes
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ duplicate_detection_time_in_seconds: 600
+ max_message_size_in_kb: 2048
+ max_size_in_mb: 2048
+ check_mode: true
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the check mode
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Create a topic
azure_rm_servicebustopic:
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- duplicate_detection_time_in_seconds: 600
- max_message_size_in_kb: 2048
- max_size_in_mb: 2048
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ duplicate_detection_time_in_seconds: 600
+ max_message_size_in_kb: 2048
+ max_size_in_mb: 2048
register: output
-- assert:
- that:
- - output.changed
- - output.id
- - "'subscription_count' not in output"
+- name: Assert the topic created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.id
+ - "'subscription_count' not in output"
- name: Create a topic (idempontent)
azure_rm_servicebustopic:
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- duplicate_detection_time_in_seconds: 600
- max_message_size_in_kb: 2048
- max_size_in_mb: 2048
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ duplicate_detection_time_in_seconds: 600
+ max_message_size_in_kb: 2048
+ max_size_in_mb: 2048
register: output
-- assert:
- that:
- - not output.changed
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
- name: Create test policy
azure_rm_servicebussaspolicy:
- name: testpolicy
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- topic: "topic{{ rpfx }}"
- rights: manage
+ name: testpolicy
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ topic: "topic{{ rpfx }}"
+ rights: manage
- name: Create a subscription
azure_rm_servicebustopicsubscription:
- name: "subs{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- topic: "topic{{ rpfx }}"
+ name: "subs{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ topic: "topic{{ rpfx }}"
register: subs
-- assert:
- that:
- - subs.id
- - subs.changed
+- name: Assert the subscription created
+ ansible.builtin.assert:
+ that:
+ - subs.id
+ - subs.changed
- name: Retrive topic
azure_rm_servicebus_info:
- type: topic
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- show_sas_policies: yes
+ type: topic
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ show_sas_policies: true
register: facts
-- assert:
- that:
- - "facts.servicebuses | length == 1"
- - facts.servicebuses[0].id == output.id
- - facts.servicebuses[0].subscription_count == 1
- - facts.servicebuses[0].sas_policies.testpolicy
- - facts.servicebuses[0].sas_policies.testpolicy.rights == 'manage'
+- name: Assert the topic facts
+ ansible.builtin.assert:
+ that:
+ - "facts.servicebuses | length == 1"
+ - facts.servicebuses[0].id == output.id
+ - facts.servicebuses[0].subscription_count == 1
+ - facts.servicebuses[0].sas_policies.testpolicy
+ - facts.servicebuses[0].sas_policies.testpolicy.rights == 'manage'
- name: Delete subscription
azure_rm_servicebustopicsubscription:
- name: "subs{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- topic: "topic{{ rpfx }}"
- state: absent
+ name: "subs{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ topic: "topic{{ rpfx }}"
+ state: absent
- name: Retrive topic
azure_rm_servicebus_info:
- type: topic
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- show_sas_policies: yes
+ type: topic
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ show_sas_policies: true
register: facts
-- assert:
- that:
- - facts.servicebuses[0].subscription_count == 0
- - "facts.servicebuses | length == 1"
+- name: Assert the topic facts
+ ansible.builtin.assert:
+ that:
+ - facts.servicebuses[0].subscription_count == 0
+ - "facts.servicebuses | length == 1"
- name: Delete topic
azure_rm_servicebustopic:
- name: "topic{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- state: absent
+ name: "topic{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ state: absent
- name: Retrive topic
azure_rm_servicebus_info:
- name: "topic{{ rpfx }}"
- type: topic
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- show_sas_policies: yes
+ name: "topic{{ rpfx }}"
+ type: topic
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ show_sas_policies: true
register: facts
-- assert:
- that:
- - "facts.servicebuses | length == 0"
+- name: Assert the topic facts
+ ansible.builtin.assert:
+ that:
+ - "facts.servicebuses | length == 0"
- name: Delete queue
azure_rm_servicebusqueue:
- name: "queue{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- namespace: "ns{{ rpfx }}"
- state: absent
+ name: "queue{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ namespace: "ns{{ rpfx }}"
+ state: absent
- name: Delete namespace
azure_rm_servicebus:
- name: "ns{{ rpfx }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "ns{{ rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml
index 99c9f80cb..822f1d188 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlmanagedinstance/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
random_postfix: "sqlmi{{ 1000 | random }}{{ resource_group | hash('md5') | truncate(7, True, '') }}"
- name: Create virtual network
@@ -29,7 +29,7 @@
testing: testing
delete: on-exit
foo: bar
- purge_rules: yes
+ purge_rules: true
rules:
- name: DenySSH
protocol: Tcp
@@ -83,7 +83,7 @@
register: output
- name: Assert the resource instance is not exist
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -108,7 +108,7 @@
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -132,7 +132,7 @@
register: output
- name: Assert the resource instance no changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -158,7 +158,7 @@
register: output
- name: Assert the resource instance is update
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -169,7 +169,7 @@
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.sql_managed_instance[0].tags | length == 1
- output.sql_managed_instance[0].storage_size_in_gb == 256
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml
index e71b620ca..25ee16b40 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
random_postfix: "{{ 1000 | random }}{{ resource_group | hash('md5') | truncate(7, True, '') }}"
tenant_id: "{{ azure_tenant }}"
run_azuread_tests: false
azuread_group_name: "Test Security Group"
azuread_group_id: "00000000-0000-0000-0000-000000000000"
- run_once: yes
+ run_once: true
- name: Create instance of SQL Server -- check mode
azure_rm_sqlserver:
@@ -14,10 +14,10 @@
location: eastus
admin_username: mylogin
admin_password: Password123!
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -32,7 +32,7 @@
aaa: bbb
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -46,7 +46,7 @@
admin_password: Password123!
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.state == 'Ready'
@@ -65,7 +65,7 @@
aaa: bbb
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -84,7 +84,7 @@
aaa: bbb
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.state == 'Ready'
@@ -98,7 +98,7 @@
change_admin_password: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -118,7 +118,7 @@
register: output
when: run_azuread_tests | bool
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state == 'Ready'
@@ -140,7 +140,7 @@
register: output
when: run_azuread_tests | bool
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.state == 'Ready'
@@ -154,7 +154,7 @@
server_name: "sqlsrv{{ random_postfix }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers.sqlsrv{{ random_postfix }}.id != None
@@ -175,7 +175,7 @@
server_name: "sqlsrv-extended-{{ random_postfix }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers['sqlsrv-extended-{{ random_postfix }}'].id != None
@@ -200,7 +200,7 @@
register: output
when: run_azuread_tests | bool
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers['sqlsrv-azuread-{{ random_postfix }}'].id != None
@@ -227,7 +227,7 @@
server_name: "unexisting"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers == {}
@@ -237,7 +237,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.servers.sqlsrv{{ random_postfix }}.id != None
@@ -257,10 +257,10 @@
server_name: sqlsrv{{ random_postfix }}
name: database{{ random_postfix }}
location: eastus
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -275,7 +275,7 @@
aaa: bbb
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.status == 'Online'
@@ -291,7 +291,7 @@
aaa: bbb
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.status == 'Online'
@@ -305,9 +305,9 @@
register: output
until: output.databases[0].earliest_restore_date != None
retries: 10
- delay: 20
+ delay: 60
- name: Assert that it can be restored from
- assert:
+ ansible.builtin.assert:
that:
- output.databases[0].id != None
- output.databases[0].earliest_restore_date != None
@@ -323,7 +323,7 @@
location: eastus
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -335,7 +335,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -354,7 +354,7 @@
name: database{{ random_postfix }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0].id != None
@@ -372,7 +372,7 @@
server_name: sqlsrv{{ random_postfix }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0].id != None
@@ -406,10 +406,10 @@
server_name: sqlsrv{{ random_postfix }}
name: database{{ random_postfix }}
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -421,7 +421,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -433,7 +433,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -447,14 +447,14 @@
sku:
name: S0
tier: Standard
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-- name: Create SQL Database with sku
+- name: Create SQL Database with sku
azure_rm_sqldatabase:
resource_group: "{{ resource_group }}"
server_name: sqlsrv{{ random_postfix }}
@@ -467,11 +467,11 @@
tier: Standard
register: output
- name: Assert the resource instance is well created with good SKU
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.status == 'Online'
-
+
- name: Gather facts SQL Database with good SKU
azure_rm_sqldatabase_info:
resource_group: "{{ resource_group }}"
@@ -479,7 +479,7 @@
name: database{{ random_postfix }}2
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0].id != None
@@ -490,7 +490,7 @@
- output.databases[0].sku.capacity != None
- output.databases[0].kind != None
- output.databases[0].status != None
-
+
- name: Create again instance of SQL Database with same SKU
azure_rm_sqldatabase:
resource_group: "{{ resource_group }}"
@@ -504,7 +504,7 @@
tier: Standard
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
- output.status == 'Online'
@@ -522,7 +522,7 @@
tier: Premium
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.status == 'Online'
@@ -534,7 +534,7 @@
name: database{{ random_postfix }}2
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases[0].id != None
@@ -554,7 +554,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -566,7 +566,7 @@
name: database{{ random_postfix }}2
register: output
- name: Assert that empty dictionary was returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases | length == 0
@@ -577,7 +577,7 @@
server_name: sqlsrv{{ random_postfix }}
register: output
- name: Assert that empty dictionary was returned (one database is there by default)
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.databases | length == 1
@@ -591,10 +591,10 @@
name: firewallrule{{ random_postfix }}
start_ip_address: 172.28.10.136
end_ip_address: 172.28.10.138
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -607,7 +607,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -620,7 +620,7 @@
end_ip_address: 172.28.10.138
register: output
- name: Assert the state has not changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
@@ -643,7 +643,7 @@
name: firewallrule{{ random_postfix }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -659,7 +659,7 @@
server_name: sqlsrv{{ random_postfix }}
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules[0].id != None
@@ -696,7 +696,7 @@
name: firewallrule{{ random_postfix }}
register: output
- name: Assert that empty dictionary was returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.rules | length == 0
@@ -708,13 +708,13 @@
resource_group: "{{ resource_group }}"
server_name: sqlsrv{{ random_postfix }}
name: EP{{ random_postfix }}
- zone_redundant: False
+ zone_redundant: false
tags:
aaa: bbb
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -723,13 +723,13 @@
resource_group: "{{ resource_group }}"
server_name: sqlsrv{{ random_postfix }}
name: EP{{ random_postfix }}
- zone_redundant: False
+ zone_redundant: false
tags:
aaa: bbb
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -738,13 +738,13 @@
resource_group: "{{ resource_group }}"
server_name: sqlsrv{{ random_postfix }}
name: EP{{ random_postfix }}
- zone_redundant: False
+ zone_redundant: false
tags:
aaa: bbb
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -753,13 +753,13 @@
resource_group: "{{ resource_group }}"
server_name: sqlsrv{{ random_postfix }}
name: EP{{ random_postfix }}
- zone_redundant: True
+ zone_redundant: true
tags:
aaa1: bbb1
register: output
- name: Assert the resource instance is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -771,7 +771,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.elastic_pool[0].zone_redundant == true
@@ -786,7 +786,7 @@
register: output
- name: Assert the resource instance is deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -797,10 +797,10 @@
resource_group: "{{ resource_group }}"
name: "sqlsrv{{ random_postfix }}"
state: absent
- check_mode: yes
+ check_mode: true
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -811,7 +811,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -822,7 +822,7 @@
state: absent
register: output
- name: Assert the state has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed == false
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageaccount/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageaccount/tasks/main.yml
index 8c738a627..dfeabed07 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageaccount/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageaccount/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Set Storage Account Names
- set_fact:
+ ansible.builtin.set_fact:
storage_account_name_default: "sa{{ resource_group | hash('md5') | truncate(20, True, '') }}"
storage_account_name_explicit: "sa{{ resource_group | hash('sha1') | truncate(20, True, '') }}"
@@ -11,7 +11,7 @@
register: output
ignore_errors: true
- name: Check intentional name failure.
- assert:
+ ansible.builtin.assert:
that:
- output.failed
- output.msg is regex('AccountNameInvalid')
@@ -38,14 +38,14 @@
account_type: Standard_LRS
register: defaults_output
- name: Assert status succeeded and results match expectations
- assert:
+ ansible.builtin.assert:
that:
- defaults_output.changed
- defaults_output.state.name == storage_account_name_default
- defaults_output.state.id is defined
- defaults_output.state.https_only
- defaults_output.state.access_tier == None
- - defaults_output.state.allow_blob_public_access == true
+ - defaults_output.state.allow_blob_public_access == false
- defaults_output.state.minimum_tls_version == "TLS1_0"
- name: Create storage account with static website disabled
@@ -58,7 +58,7 @@
enabled: false
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.static_website is defined
@@ -76,7 +76,7 @@
enabled: false
register: output
- name: Assert not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -90,7 +90,7 @@
enabled: true
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.static_website is defined
@@ -110,7 +110,7 @@
error_document404_path: "error.html"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.static_website is defined
@@ -130,7 +130,7 @@
error_document404_path: "error.html"
register: output
- name: Assert not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -143,7 +143,7 @@
is_hns_enabled: true
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -152,7 +152,8 @@
resource_group: "{{ resource_group }}"
name: "{{ storage_account_name_default }}06"
register: output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that:
- "output.storageaccounts | length == 1"
- output.storageaccounts[0].is_hns_enabled == true
@@ -168,7 +169,7 @@
index_document: "abc.htm"
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.static_website is defined
@@ -187,7 +188,7 @@
index_document: "abc.htm"
register: output
- name: Assert not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -201,7 +202,7 @@
enabled: false
register: output
- name: Assert output
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.static_website is defined
@@ -217,7 +218,7 @@
kind: FileStorage
register: filestorage_output
- name: Assert status succeeded and results match I(kind=FileStorage)
- assert:
+ ansible.builtin.assert:
that:
- filestorage_output.changed
- filestorage_output.state.sku_name == "Premium_ZRS"
@@ -226,7 +227,7 @@
azure_rm_storageaccount:
access_tier: Hot
account_type: Premium_LRS
- allow_blob_public_access: False
+ allow_blob_public_access: false
append_tags: false
blob_cors:
- allowed_origins:
@@ -241,7 +242,7 @@
exposed_headers:
- x-ms-meta-*
max_age_in_seconds: 200
- https_only: False
+ https_only: false
kind: StorageV2
location: eastus
minimum_tls_version: 'TLS1_2'
@@ -258,7 +259,7 @@
galaxy: galaxy
register: explicit_output
- name: Assert status succeeded and correct parameter results
- assert:
+ ansible.builtin.assert:
that:
- explicit_output.changed
- explicit_output.state.id is defined
@@ -274,7 +275,7 @@
azure_rm_storageaccount:
access_tier: Hot
account_type: Premium_LRS
- allow_blob_public_access: False
+ allow_blob_public_access: false
append_tags: false
blob_cors:
- allowed_origins:
@@ -289,7 +290,7 @@
exposed_headers:
- x-ms-meta-*
max_age_in_seconds: 200
- https_only: False
+ https_only: false
kind: StorageV2
location: eastus
minimum_tls_version: 'TLS1_2'
@@ -306,7 +307,7 @@
galaxy: galaxy
register: output
- name: Assert that properties have not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.state.access_tier == explicit_output.state.access_tier
@@ -333,7 +334,7 @@
name: "{{ storage_account_name_explicit }}"
register: output
- name: Assert that properties have not changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.state.access_tier == explicit_output.state.access_tier
@@ -358,7 +359,7 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account_name_default }}"
- allow_blob_public_access: False
+ allow_blob_public_access: false
append_tags: false
blob_cors:
- allowed_origins:
@@ -373,7 +374,7 @@
exposed_headers:
- x-ms-meta-*
max_age_in_seconds: 200
- https_only: False
+ https_only: false
kind: StorageV2
minimum_tls_version: 'TLS1_1'
network_acls:
@@ -387,7 +388,7 @@
galaxy: galaxy
register: output
- name: Assert account change success
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.allow_blob_public_access == False
@@ -409,7 +410,7 @@
register: output
ignore_errors: true
- name: Assert account type change failed
- assert:
+ ansible.builtin.assert:
that:
- output.failed
- output.msg is regex('Storage account of type .* cannot be changed')
@@ -424,7 +425,7 @@
ignore_errors: true
register: output
- name: Assert CNAME failure
- assert:
+ ansible.builtin.assert:
that:
- output.failed
- output.msg is regex('custom domain name could not be verified')
@@ -440,7 +441,7 @@
public_network_access: 'Disabled'
register: output
- name: Assert desired account config
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.https_only
@@ -459,7 +460,7 @@
public_network_access: 'Disabled'
register: output
- name: Assert no change
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -470,7 +471,8 @@
- test
- galaxy
register: output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that: output.storageaccounts | length >= 1
- name: Update account tags
@@ -482,7 +484,8 @@
testing: testing
delete: never
register: output
-- assert:
+- name: Assert the storage account updated
+ ansible.builtin.assert:
that:
- "output.state.tags | length == 2"
- "output.state.tags.testing == 'testing'"
@@ -492,10 +495,11 @@
azure_rm_storageaccount_info:
resource_group: "{{ resource_group }}"
name: "{{ storage_account_name_explicit }}"
- show_connection_string: True
- show_blob_cors: True
+ show_connection_string: true
+ show_blob_cors: true
register: output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that:
- "output.storageaccounts | length == 1"
- not output.storageaccounts[0].custom_domain
@@ -514,7 +518,8 @@
resource_group: "{{ resource_group }}"
name: "{{ storage_account_name_default }}01"
register: output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that:
- output.storageaccounts | length == 1
- output.storageaccounts[0].static_website is defined
@@ -527,7 +532,8 @@
resource_group: "{{ resource_group }}"
name: "{{ storage_account_name_default }}04"
register: output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that:
- output.storageaccounts | length == 1
- output.storageaccounts[0].static_website is defined
@@ -551,7 +557,7 @@
register: encryption_output
- name: Assert storage account with (require_infrastructure_encryption=false) created
- assert:
+ ansible.builtin.assert:
that:
- encryption_output.changed
@@ -561,7 +567,8 @@
name: "{{ storage_account_name_default }}05"
register: encryption_output
-- assert:
+- name: Assert the storage account facts
+ ansible.builtin.assert:
that:
- output.storageaccounts | length == 1
- output.storageaccounts[0].encryption.key_source == 'Microsoft.Storage'
@@ -572,7 +579,8 @@
azure_rm_storageaccount_info:
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert all storage account facts
+ ansible.builtin.assert:
that:
- "output.storageaccounts | length >= 2"
@@ -581,7 +589,7 @@
resource_group: "{{ resource_group }}"
name: "{{ item }}"
state: absent
- force_delete_nonempty: True
+ force_delete_nonempty: true
loop:
- "{{ storage_account_name_default }}"
- "{{ storage_account_name_explicit }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageblob/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageblob/tasks/main.yml
index 8ad07331f..307d52d27 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageblob/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageblob/tasks/main.yml
@@ -1,11 +1,11 @@
- name: Create storage account name
- set_fact:
+ ansible.builtin.set_fact:
storage_account: "sb{{ resource_group | hash('md5') | truncate(22, True, '') }}"
test1_file: "./targets/azure_rm_storageblob/files/Ratings.png"
- name: Create storage account
azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
account_type: Standard_LRS
@@ -17,7 +17,7 @@
- name: Force upload blob
azure_rm_storageblob:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
container_name: my-blobs
blob: 'Ratings.png'
@@ -30,7 +30,7 @@
- name: Upload blob idempotence
azure_rm_storageblob:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
container_name: my-blobs
blob: 'Ratings.png'
@@ -40,71 +40,84 @@
val1: foo
val2: bar
register: upload_facts
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: "not upload_facts.changed"
-- name: Download file idempotence
+- name: Download file idempotence
azure_rm_storageblob:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
container_name: my-blobs
blob: 'Ratings.png'
dest: '{{ test1_file }}'
register: download_results
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not download_results.changed
-- file: path="/tmp/Ratings.png" state=absent
+- name: Delete file
+ ansible.builtin.file:
+ path: "/tmp/Ratings.png"
+ state: absent
-- name: Download file
+- name: Download file
azure_rm_storageblob:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
container_name: my-blobs
blob: 'Ratings.png'
dest: '/tmp/Ratings.png'
register: download_results
-- assert:
+- name: Assert download file
+ ansible.builtin.assert:
that: "download_results.changed"
-- find: paths='/tmp' patterns="Ratings.png"
+- name: Find file
+ ansible.builtin.find:
+ paths: '/tmp'
+ patterns: "Ratings.png"
register: find_results
-- assert:
+- name: Assert matched the file
+ ansible.builtin.assert:
that: "find_results['matched'] == 1"
-- name: Do not delete container that has blobs
+- name: Do not delete container that has blobs
azure_rm_storageblob:
resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
- container_name: my-blobs
+ container_name: my-blobs
state: absent
register: output
-- assert:
+- name: Assert no blobs
+ ansible.builtin.assert:
that: "not output.changed"
- name: Delete blob object
azure_rm_storageblob:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
- container_name: my-blobs
+ container_name: my-blobs
blob: "Ratings.png"
state: absent
register: output
-- assert:
+- name: Assert the blob deleted
+ ansible.builtin.assert:
that: "output.changed"
-- name: Delete container
+- name: Delete container
azure_rm_storageblob:
resource_group: "{{ resource_group }}"
account_name: "{{ storage_account }}"
- container_name: my-blobs
+ container_name: my-blobs
state: absent
register: output
-- assert:
+- name: Assert delete the container
+ ansible.builtin.assert:
that: "output.changed"
- name: Delete storage account
azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
+ resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- state: absent
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageshare/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageshare/tasks/main.yml
index ffe672d4d..15ea83446 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageshare/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_storageshare/tasks/main.yml
@@ -1,7 +1,6 @@
----
- name: Set storage account name
- set_fact:
- storage_account: "sb{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+ ansible.builtin.set_fact:
+ storage_account: "sb{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create storage account
azure_rm_storageaccount:
@@ -11,7 +10,7 @@
kind: StorageV2
- name: Set storage share facts
- set_fact:
+ ansible.builtin.set_fact:
share_name: testshare
quota: 32
access_tier: Cool
@@ -30,7 +29,7 @@
register: create_result
- name: Assert create success
- assert:
+ ansible.builtin.assert:
that:
- create_result.changed
- create_result.state.name == share_name
@@ -49,7 +48,7 @@
register: create_result
- name: Assert idempotence
- assert:
+ ansible.builtin.assert:
that: not create_result.changed
- name: Get share details
@@ -60,7 +59,7 @@
register: share_facts
- name: Assert storage share details
- assert:
+ ansible.builtin.assert:
that:
- not share_facts.changed
- share_facts.storageshares.name == share_name
@@ -72,7 +71,7 @@
- share_facts.storageshares.etag is defined
- name: Set new storage share facts
- set_fact:
+ ansible.builtin.set_fact:
quota: 64
access_tier: Hot
@@ -86,7 +85,7 @@
register: update_result
- name: Assert share update success
- assert:
+ ansible.builtin.assert:
that: update_result.changed
- name: Get updated details
@@ -97,7 +96,7 @@
register: share_facts
- name: Assert storage share details
- assert:
+ ansible.builtin.assert:
that:
- share_facts.storageshares.name == share_name
- share_facts.storageshares.share_quota == quota
@@ -116,8 +115,9 @@
register: delete_output
- name: Pause for 3 minutes to waiting delete
- pause:
+ ansible.builtin.pause:
minutes: 3
+ changed_when: true
- name: Delete storage account
azure_rm_storageaccount:
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subnet/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subnet/tasks/main.yml
index 6e4e6cbb1..0caa850ce 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subnet/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subnet/tasks/main.yml
@@ -33,9 +33,10 @@
resource_group: "{{ resource_group }}"
address_prefix_cidr: "10.1.0/24"
register: output
- ignore_errors: yes
+ ignore_errors: true
-- assert:
+- name: Assert created fail
+ ansible.builtin.assert:
that: output.failed
- name: Add the subnet back
@@ -46,7 +47,8 @@
address_prefix_cidr: "10.1.0.0/24"
register: output
-- assert:
+- name: Assert the subnet created
+ ansible.builtin.assert:
that:
- output.changed
- output.state.address_prefix == "10.1.0.0/24"
@@ -58,7 +60,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Create network security group
@@ -94,7 +97,8 @@
- westus
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Able to completely remove service endpoints
@@ -106,7 +110,8 @@
service_endpoints: []
register: output
-- assert:
+- name: Assert the subnet updated
+ ansible.builtin.assert:
that: output.state.service_endpoints is not defined
- name: Create network security group in another resource group
@@ -127,10 +132,11 @@
resource_group: "{{ resource_group_secondary }}"
register: output
-- assert:
- that:
- - output.changed
- - output.state.network_security_group.id == nsg.state.id
+- name: Assert the subnet update
+ ansible.builtin.assert:
+ that:
+ - output.changed
+ - output.state.network_security_group.id == nsg.state.id
- name: Update the subnet (idempotent)
azure_rm_subnet:
@@ -142,7 +148,8 @@
security_group: "{{ nsg.state.id }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Create subnet with IPv4 and IPv6
@@ -155,7 +162,8 @@
- "fdda:e69b:1587:495e::/64"
register: output
-- assert:
+- name: Assert the subnet created
+ ansible.builtin.assert:
that:
- output.changed
- not output.state.address_prefix
@@ -171,7 +179,8 @@
- "fdda:e69b:1587:495e::/64"
register: output
-- assert:
+- name: Assert the subnet updated
+ ansible.builtin.assert:
that: not output.changed
- name: Update the subnet's IPv4 and IPv6 address
@@ -185,7 +194,8 @@
security_group: "{{ nsg.state.id }}"
register: output
-- assert:
+- name: Assert the subnet update
+ ansible.builtin.assert:
that:
- output.changed
@@ -198,7 +208,8 @@
private_endpoint_network_policies: Enabled
register: output
-- assert:
+- name: Assert the subnet updated
+ ansible.builtin.assert:
that: output
- name: The subnet with network policies should be idempotent
@@ -210,7 +221,8 @@
private_endpoint_network_policies: Enabled
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Update the subnet with delegations
@@ -223,7 +235,8 @@
serviceName: 'Microsoft.ContainerInstance/containerGroups'
register: output
-- assert:
+- name: Assert the subnet updated
+ ansible.builtin.assert:
that: output
- name: The subnet with delegations should be idempotent
@@ -236,7 +249,8 @@
serviceName: 'Microsoft.ContainerInstance/containerGroups'
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Get subnet facts
@@ -247,7 +261,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.subnets[0]['id'] != None
@@ -270,7 +284,7 @@
register: output
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
- output.subnets[0]['id'] != None
@@ -297,7 +311,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Remove subnet
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subscription/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subscription/tasks/main.yml
index 113cfe546..e8e58645c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subscription/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_subscription/tasks/main.yml
@@ -1,6 +1,6 @@
- name: Get list of all subscriptions
azure_rm_subscription_info:
- all: True
+ all: true
register: az_all_subscriptions
- name: Get a subscription by id
@@ -16,9 +16,9 @@
name: "{{ az_all_subscriptions.subscriptions[0].display_name }}"
id: "{{ az_all_subscriptions.subscriptions[0].subscription_id }}"
register: invalid_name
- ignore_errors: yes
+ ignore_errors: true
- name: Assert task failed
- assert:
- that:
+ ansible.builtin.assert:
+ that:
- "invalid_name['failed'] == True"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
index 865c56dc4..6e2a7f342 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
@@ -1,127 +1,127 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
tmname: "tm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
endpointname1: "ep1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
endpointname2: "ep2{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create a Traffic Manager profile(check mode)
azure_rm_trafficmanagerprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- location: global
- profile_status: enabled
- routing_method: performance
- dns_config:
- relative_name: "{{ tmname }}"
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
- check_mode: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ check_mode: true
- name: Check there is no Traffic Manager profile created
azure_rm_trafficmanagerprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
register: fact
- name: Check there is no Traffic Manager profile created
- assert: { that: "{{ fact.tms | length }} == 0" }
+ ansible.builtin.assert: { that: "{{ fact.tms | length }} == 0" }
- name: Create a Traffic Manager profile
azure_rm_trafficmanagerprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- location: global
- profile_status: enabled
- routing_method: performance
- dns_config:
- relative_name: "{{ tmname }}"
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
register: tm
- name: Assert the Traffic Manager profile is well created
- assert:
+ ansible.builtin.assert:
that:
- tm.changed
- name: Gather Traffic Manager profile facts
azure_rm_trafficmanagerprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
register: fact
- name: Assert fact returns the created one
- assert:
- that:
- - "fact.tms | length == 1"
- - fact.tms[0].id == tm.id
- - fact.tms[0].endpoints | length == 0
+ ansible.builtin.assert:
+ that:
+ - "fact.tms | length == 1"
+ - fact.tms[0].id == tm.id
+ - fact.tms[0].endpoints | length == 0
- name: Create a Traffic Manager profile (idempotent)
azure_rm_trafficmanagerprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- location: global
- profile_status: enabled
- routing_method: performance
- dns_config:
- relative_name: "{{ tmname }}"
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Update the Traffic Manager profile
azure_rm_trafficmanagerprofile:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
- tags:
- testing: testing
- delete: on-exit
- foo: bar
- location: global
- profile_status: disabled
- routing_method: priority
- dns_config:
- relative_name: "{{ tmname }}"
- ttl: 60
- monitor_config:
- protocol: HTTPS
- port: 80
- path: '/'
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: disabled
+ routing_method: priority
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
register: output
- name: Assert the Traffic Manager profile is updated
- assert:
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
- name: Create Traffic Manager endpoint(check mode)
azure_rm_trafficmanagerendpoint:
@@ -133,11 +133,11 @@
priority: 2
weight: 1
target: 1.2.3.4
- check_mode: yes
+ check_mode: true
register: output
- name: Assert check mode changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -148,7 +148,7 @@
register: facts
- name: Check no endpoint created in check mode
- assert:
+ ansible.builtin.assert:
that:
- facts.endpoints | length == 0
@@ -165,7 +165,7 @@
register: output
- name: Assert endpoint create changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -176,7 +176,7 @@
register: facts
- name: Check endpoint created
- assert:
+ ansible.builtin.assert:
that:
- facts.endpoints | length == 1
- facts.endpoints[0].name == "{{ endpointname1 }}"
@@ -199,7 +199,7 @@
register: facts
- name: Check 2 endpoint in profile
- assert:
+ ansible.builtin.assert:
that:
- facts.endpoints | length == 2
@@ -216,7 +216,7 @@
register: output
- name: Assert endpoint creation idempotent
- assert:
+ ansible.builtin.assert:
that:
- output.changed == False
@@ -230,7 +230,7 @@
register: output
- name: Assert endpoint deletion changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -241,7 +241,7 @@
register: facts
- name: Check 1 endpoint left in profile
- assert:
+ ansible.builtin.assert:
that:
- facts.endpoints | length == 1
@@ -250,20 +250,20 @@
resource_group: "{{ resource_group }}"
name: "{{ tmname }}"
state: absent
- check_mode: yes
+ check_mode: true
- name: Gather Traffic Manager profile facts
azure_rm_trafficmanagerprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
register: fact
- name: Assert the traffic manager profile is still there
- assert:
- that:
- - "fact.tms | length == 1"
- - fact.tms[0].id == tm.id
- - fact.tms[0].endpoints | length == 1
+ ansible.builtin.assert:
+ that:
+ - "fact.tms | length == 1"
+ - fact.tms[0].id == tm.id
+ - fact.tms[0].endpoints | length == 1
- name: Delete the Traffic Manager profile
azure_rm_trafficmanagerprofile:
@@ -273,17 +273,17 @@
register: output
- name: Assert the Traffic Manager profile is well deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- name: Get Traffic Manager profile fact
azure_rm_trafficmanagerprofile_info:
- resource_group: "{{ resource_group }}"
- name: "{{ tmname }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
register: fact
- name: Assert fact returns empty
- assert:
+ ansible.builtin.assert:
that:
- "fact.tms | length == 0"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhub/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhub/tasks/main.yml
index 36707bec5..530e92524 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhub/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhub/tasks/main.yml
@@ -1,54 +1,55 @@
-- set_fact:
- name: "{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+- name: Set varialbles
+ ansible.builtin.set_fact:
+ name_rpfx: "{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- name: Create a VirtualHub (check mode)
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
sku: Standard
- check_mode: yes
+ check_mode: true
- name: Create a VirtualHub
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
sku: Standard
register: output
- name: Assert the virtual hub is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.provisioning_state == 'Succeeded'
-
+
- name: Create a VirtualHub (idempotent)
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
sku: Standard
register: output
- name: Assert idempotent
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Get Virtual Hub Info
azure_rm_virtualhub_info:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
register: output
- name: Assert fact returns
- assert:
+ ansible.builtin.assert:
that:
- - output.virtual_hubs[0].provisioning_state == "Succeeded"
+ - output.virtual_hubs[0].provisioning_state == "Succeeded"
- output.virtual_hubs[0].sku == "Standard"
- name: Create a VirtualWan
azure_rm_virtualwan:
resource_group: "{{ resource_group }}"
- name: "wan-{{ name }}"
+ name: "wan-{{ name_rpfx }}"
disable_vpn_encryption: true
allow_branch_to_branch_traffic: true
allow_vnet_to_vnet_traffic: true
@@ -58,7 +59,7 @@
- name: Create Second VirtualHub
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}-seondary"
+ name: "{{ name_rpfx }}-seondary"
sku: Standard
address_prefix: 12.0.0.0/16
virtual_wan:
@@ -70,7 +71,7 @@
register: output
- name: Assert the virtual hub is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.state.provisioning_state == 'Succeeded'
@@ -78,17 +79,17 @@
- name: Delete Second VirtualHub
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}-seondary"
+ name: "{{ name_rpfx }}-seondary"
state: absent
- name: Delete virtual hub
azure_rm_virtualhub:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
state: absent
register: output
- name: Assert the AKS instance is upgraded
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml
index 562ecbacc..c110bdd32 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualhubconnection/tasks/main.yml
@@ -1,163 +1,164 @@
- - set_fact:
- rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
+- name: Set variables
+ ansible.builtin.set_fact:
+ rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}"
- - name: Create virtual network
- azure_rm_virtualnetwork:
- name: "vnet{{ rpfx }}"
- address_prefixes_cidr:
- - 10.1.0.0/16
- - 172.100.0.0/16
- resource_group: "{{ resource_group }}"
- register: vnet_output
-
- - name: Create a Virtual Wan
- azure_rm_virtualwan:
- resource_group: "{{ resource_group }}"
- name: "virtualwan{{ rpfx }}"
- office365_local_breakout_category: All
- disable_vpn_encryption: true
- allow_branch_to_branch_traffic: true
- allow_vnet_to_vnet_traffic: true
- virtual_wan_type: Basic
- register: vwan_output
-
- - name: Create a VirtualHub
- azure_rm_virtualhub:
- resource_group: "{{ resource_group }}"
- name: "vhub{{ rpfx }}"
- sku: Standard
- address_prefix: 12.0.0.0/16
- virtual_wan:
- id: "{{ vwan_output.state.id }}"
- virtual_router_asn: 65515
- virtual_router_ips:
- - 12.0.32.4
- - 12.0.32.5
- register: output
-
- - name: Create virtual hub connection
- azure_rm_virtualhubconnection:
- resource_group: "{{ resource_group }}"
- vhub_name: "vhub{{ rpfx }}"
- name: "connection{{ rpfx }}"
- enable_internet_security: true
- allow_remote_vnet_to_use_hub_vnet_gateways: false
- allow_hub_to_remote_vnet_transit: true
- remote_virtual_network:
- id: "{{ vnet_output.state.id }}"
- routing_configuration:
- propagated_route_tables:
- labels:
- - labels1
- - labels3
- vnet_routes:
- static_routes:
- - name: route1
- address_prefixes:
- - 10.1.0.0/16
- - 10.2.0.0/16
- - 10.6.0.0/16
- next_hop_ip_address: 10.0.0.68
- - name: route2
- address_prefixes:
- - 10.4.0.0/16
- next_hop_ip_address: 10.0.0.65
- register: output
-
- - name: Assert the virtual hub connection is well created
- assert:
- that:
- - output.changed
-
- - name: Create virtual hub connection (idempotent test)
- azure_rm_virtualhubconnection:
- resource_group: "{{ resource_group }}"
- vhub_name: "vhub{{ rpfx }}"
- name: "connection{{ rpfx }}"
- enable_internet_security: true
- allow_remote_vnet_to_use_hub_vnet_gateways: false
- allow_hub_to_remote_vnet_transit: true
- remote_virtual_network:
- id: "{{ vnet_output.state.id }}"
- routing_configuration:
- propagated_route_tables:
- labels:
- - labels1
- - labels3
- vnet_routes:
- static_routes:
- - name: route1
- address_prefixes:
- - 10.1.0.0/16
- - 10.2.0.0/16
- - 10.6.0.0/16
- next_hop_ip_address: 10.0.0.68
- - name: route2
- address_prefixes:
- - 10.4.0.0/16
- next_hop_ip_address: 10.0.0.65
- register: output
-
- - name: Assert the virtual hub connection no changed
- assert:
- that:
- - not output.changed
-
- - name: Update virtual hub connection
- azure_rm_virtualhubconnection:
- resource_group: "{{ resource_group }}"
- vhub_name: "vhub{{ rpfx }}"
- name: "connection{{ rpfx }}"
- enable_internet_security: false
- allow_remote_vnet_to_use_hub_vnet_gateways: false
- allow_hub_to_remote_vnet_transit: true
- remote_virtual_network:
- id: "{{ vnet_output.state.id }}"
- routing_configuration:
- propagated_route_tables:
- labels:
- - labels1
- - labels2
- - labels3
- vnet_routes:
- static_routes:
- - name: route1
- address_prefixes:
- - 10.1.0.0/16
- - 10.2.0.0/16
- - 10.6.0.0/16
- - 10.7.0.0/16
- next_hop_ip_address: 10.0.0.68
- - name: route2
- address_prefixes:
- - 10.4.0.0/16
- next_hop_ip_address: 10.0.0.65
- register: output
-
- - name: Assert the virtual hub connection no changed
- assert:
- that:
- - output.changed
-
- - name: Get virtual hub connection info
- azure_rm_virtualhubconnection_info:
- resource_group: "{{ resource_group }}"
- virtual_hub_name: "vhub{{ rpfx }}"
- name: "connection{{ rpfx }}"
- register: output
-
- - name: Assert fact returns
- assert:
- that:
- - output.virtual_hub_connection[0].allow_hub_to_remote_vnet_transit
- - not output.virtual_hub_connection[0].allow_remote_vnet_to_use_hub_vnet_gateways
- - not output.virtual_hub_connection[0].enable_internet_security
- - output.virtual_hub_connection[0].routing_configuration.propagated_route_tables.labels | length == 3
- - output.virtual_hub_connection[0].routing_configuration.vnet_routes.static_routes | length == 2
-
- - name: Delete the virtual hub connection
- azure_rm_virtualhubconnection:
- resource_group: "{{ resource_group }}"
- vhub_name: "vhub{{ rpfx }}"
- name: "connection{{ rpfx }}"
- state: absent
+- name: Create virtual network
+ azure_rm_virtualnetwork:
+ name: "vnet{{ rpfx }}"
+ address_prefixes_cidr:
+ - 10.1.0.0/16
+ - 172.100.0.0/16
+ resource_group: "{{ resource_group }}"
+ register: vnet_output
+
+- name: Create a Virtual Wan
+ azure_rm_virtualwan:
+ resource_group: "{{ resource_group }}"
+ name: "virtualwan{{ rpfx }}"
+ office365_local_breakout_category: All
+ disable_vpn_encryption: true
+ allow_branch_to_branch_traffic: true
+ allow_vnet_to_vnet_traffic: true
+ virtual_wan_type: Basic
+ register: vwan_output
+
+- name: Create a VirtualHub
+ azure_rm_virtualhub:
+ resource_group: "{{ resource_group }}"
+ name: "vhub{{ rpfx }}"
+ sku: Standard
+ address_prefix: 12.0.0.0/16
+ virtual_wan:
+ id: "{{ vwan_output.state.id }}"
+ virtual_router_asn: 65515
+ virtual_router_ips:
+ - 12.0.32.4
+ - 12.0.32.5
+ register: output
+
+- name: Create virtual hub connection
+ azure_rm_virtualhubconnection:
+ resource_group: "{{ resource_group }}"
+ vhub_name: "vhub{{ rpfx }}"
+ name: "connection{{ rpfx }}"
+ enable_internet_security: true
+ allow_remote_vnet_to_use_hub_vnet_gateways: false
+ allow_hub_to_remote_vnet_transit: true
+ remote_virtual_network:
+ id: "{{ vnet_output.state.id }}"
+ routing_configuration:
+ propagated_route_tables:
+ labels:
+ - labels1
+ - labels3
+ vnet_routes:
+ static_routes:
+ - name: route1
+ address_prefixes:
+ - 10.1.0.0/16
+ - 10.2.0.0/16
+ - 10.6.0.0/16
+ next_hop_ip_address: 10.0.0.68
+ - name: route2
+ address_prefixes:
+ - 10.4.0.0/16
+ next_hop_ip_address: 10.0.0.65
+ register: output
+
+- name: Assert the virtual hub connection is well created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Create virtual hub connection (idempotent test)
+ azure_rm_virtualhubconnection:
+ resource_group: "{{ resource_group }}"
+ vhub_name: "vhub{{ rpfx }}"
+ name: "connection{{ rpfx }}"
+ enable_internet_security: true
+ allow_remote_vnet_to_use_hub_vnet_gateways: false
+ allow_hub_to_remote_vnet_transit: true
+ remote_virtual_network:
+ id: "{{ vnet_output.state.id }}"
+ routing_configuration:
+ propagated_route_tables:
+ labels:
+ - labels1
+ - labels3
+ vnet_routes:
+ static_routes:
+ - name: route1
+ address_prefixes:
+ - 10.1.0.0/16
+ - 10.2.0.0/16
+ - 10.6.0.0/16
+ next_hop_ip_address: 10.0.0.68
+ - name: route2
+ address_prefixes:
+ - 10.4.0.0/16
+ next_hop_ip_address: 10.0.0.65
+ register: output
+
+- name: Assert the virtual hub connection no changed
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Update virtual hub connection
+ azure_rm_virtualhubconnection:
+ resource_group: "{{ resource_group }}"
+ vhub_name: "vhub{{ rpfx }}"
+ name: "connection{{ rpfx }}"
+ enable_internet_security: false
+ allow_remote_vnet_to_use_hub_vnet_gateways: false
+ allow_hub_to_remote_vnet_transit: true
+ remote_virtual_network:
+ id: "{{ vnet_output.state.id }}"
+ routing_configuration:
+ propagated_route_tables:
+ labels:
+ - labels1
+ - labels2
+ - labels3
+ vnet_routes:
+ static_routes:
+ - name: route1
+ address_prefixes:
+ - 10.1.0.0/16
+ - 10.2.0.0/16
+ - 10.6.0.0/16
+ - 10.7.0.0/16
+ next_hop_ip_address: 10.0.0.68
+ - name: route2
+ address_prefixes:
+ - 10.4.0.0/16
+ next_hop_ip_address: 10.0.0.65
+ register: output
+
+- name: Assert the virtual hub connection no changed
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Get virtual hub connection info
+ azure_rm_virtualhubconnection_info:
+ resource_group: "{{ resource_group }}"
+ virtual_hub_name: "vhub{{ rpfx }}"
+ name: "connection{{ rpfx }}"
+ register: output
+
+- name: Assert fact returns
+ ansible.builtin.assert:
+ that:
+ - output.virtual_hub_connection[0].allow_hub_to_remote_vnet_transit
+ - not output.virtual_hub_connection[0].allow_remote_vnet_to_use_hub_vnet_gateways
+ - not output.virtual_hub_connection[0].enable_internet_security
+ - output.virtual_hub_connection[0].routing_configuration.propagated_route_tables.labels | length == 3
+ - output.virtual_hub_connection[0].routing_configuration.vnet_routes.static_routes | length == 2
+
+- name: Delete the virtual hub connection
+ azure_rm_virtualhubconnection:
+ resource_group: "{{ resource_group }}"
+ vhub_name: "vhub{{ rpfx }}"
+ name: "connection{{ rpfx }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/inventory.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/inventory.yml
index ceb88cd7e..88172852a 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/inventory.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/inventory.yml
@@ -36,6 +36,10 @@ all:
network: 10.42.6.0/24
subnet: 10.42.6.0/28
+ azure_test_vm_identity:
+ network: 10.42.7.0/24
+ subnet: 10.42.7.0/28
+
vars:
ansible_connection: local
ansible_python_interpreter: "{{ ansible_playbook_python }}"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/main.yml
index c9c9158c4..9ba46c362 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/main.yml
@@ -1,7 +1,8 @@
+---
- name: Run Azure VM tests in parallel
hosts: all
- gather_facts: no
- strategy: free
+ gather_facts: false
+ strategy: linear
tasks:
- name: Include tasks based on inventory hostname
- include_tasks: tasks/{{ inventory_hostname }}.yml
+ ansible.builtin.include_tasks: tasks/{{ inventory_hostname }}.yml
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/runme.sh b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/runme.sh
index c7895c9d2..c7895c9d2 100644..100755
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/runme.sh
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/runme.sh
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml
index 3c86c7419..09bb56e9c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set parameters
+ ansible.builtin.include_tasks: setup.yml
- name: Create minimal VM with defaults
azure_rm_virtualmachine:
@@ -12,9 +13,9 @@
vm_size: Standard_B1ms
virtual_network: "{{ network_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
@@ -25,18 +26,19 @@
register: vm_state
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command: sleep 600
+ changed_when: true
- name: Restart the virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
- restarted: yes
+ restarted: true
vm_size: Standard_B1ms
register: restart_result
- name: Ensue VM was restarted
- assert:
+ ansible.builtin.assert:
that:
- "azure_vm.powerstate in ['starting', 'running']"
- restart_result is changed
@@ -45,12 +47,12 @@
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
- allocated: no
+ allocated: false
vm_size: Standard_B1ms
register: deallocate_result
- name: Ensure VM was deallocated
- assert:
+ ansible.builtin.assert:
that:
- azure_vm.powerstate == 'deallocated'
- deallocate_result is changed
@@ -60,11 +62,11 @@
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
vm_size: Standard_B1ms
- started: True
+ started: true
register: start_result
- name: Ensure VM was started
- assert:
+ ansible.builtin.assert:
that:
- "azure_vm.powerstate in ['starting', 'running']"
- start_result is changed
@@ -99,5 +101,5 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- force_delete_nonempty: yes
+ force_delete_nonempty: false
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml
index 6202e3534..f6865b2e7 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
- name: Create virtual network in secondary resource group
azure_rm_virtualnetwork:
@@ -42,18 +43,18 @@
network_interfaces: "{{ nic_list }}"
availability_set: "{{ availability_set }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
tags:
abc: def
- name: Ensure VM was created properly
- assert:
+ ansible.builtin.assert:
that:
- - azure_vm.properties.availabilitySet.id
- - azure_vm.properties.storageProfile.osDisk.name == 'testosdiskxx'
+ - azure_vm.availability_set.id
+ - azure_vm.storage_profile.os_disk.name == 'testosdiskxx'
- name: Retrieve VM facts (filtering by name)
azure_rm_virtualmachine_info:
@@ -62,7 +63,7 @@
register: vm_facts_results
- name: Ensure facts module returned the second VM
- assert:
+ ansible.builtin.assert:
that:
- vm_facts_results.vms | length == 1
- vm_facts_results.vms[0].name == "{{ vm_name }}"
@@ -78,7 +79,7 @@
register: facts_by_tags_results
- name: Assert that facts module returned the second VM
- assert:
+ ansible.builtin.assert:
that:
- facts_by_tags_results.vms | length >= 1
@@ -101,14 +102,14 @@
network_interfaces: "{{ nic_list }}"
availability_set: "{{ availability_set }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: dual_nics_result
- name: Ensure nothing changed
- assert:
+ ansible.builtin.assert:
that: dual_nics_result is not changed
- name: Get VM facts
@@ -118,13 +119,14 @@
register: vm_state
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command: sleep 600
+ changed_when: true
- name: Generalize VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}" # Should this be resource_group_secondary?
name: "{{ vm_name }}"
- generalized: yes
+ generalized: true
- name: Gather facts and check if machine is generalized
azure_rm_virtualmachine_info:
@@ -133,7 +135,7 @@
register: generalized_output
- name: Ensure power state is generalized
- assert:
+ ansible.builtin.assert:
that: generalized_output.vms[0].power_state == 'generalized'
- name: Delete dual NIC VM
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml
index 4169333b9..1b18c71ef 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_ephemeral_os.yml
@@ -1,6 +1,7 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
-- name: create proximity placement group
+- name: Create proximity placement group
azure_rm_proximityplacementgroup:
resource_group: "{{ resource_group }}"
name: testproximityplacement
@@ -19,9 +20,9 @@
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
vm_size: Standard_DS2_v2
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
@@ -32,13 +33,14 @@
register: vm_state
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command: sleep 600
+ changed_when: true
- name: Generalize VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
- generalized: yes
+ generalized: true
- name: Create an image from VM
azure_rm_image:
@@ -48,7 +50,8 @@
os_type: Linux
register: output
-- assert:
+- name: Assert the VM created
+ ansible.builtin.assert:
that:
- output.changed
@@ -63,11 +66,12 @@
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
vm_size: Standard_DS2_v2
os_disk_caching: ReadOnly
- ephemeral_os_disk: True
+ ephemeral_os_disk: true
image: testimage
register: output
-- assert:
+- name: Assert the vm created
+ ansible.builtin.assert:
that:
- output.changed
- output.ansible_facts.azure_vm.properties.storageProfile.osDisk.diffDiskSettings.option == 'Local'
@@ -83,11 +87,12 @@
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
vm_size: Standard_DS2_v2
os_disk_caching: ReadOnly
- ephemeral_os_disk: True
+ ephemeral_os_disk: true
image: testimage
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- not output.changed
@@ -102,12 +107,13 @@
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
vm_size: Standard_DS2_v2
os_disk_caching: ReadOnly
- ephemeral_os_disk: False
+ ephemeral_os_disk: false
image: testimage
- ignore_errors: yes
+ ignore_errors: true
register: ouput
-- assert:
+- name: Assert the vm updated
+ ansible.builtin.assert:
that:
- not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml
index 812ef48d3..54e070d69 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_latest.yml
@@ -1,15 +1,16 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
-- name: List available versions for UbuntuServer image
+- name: List available versions for 0001-com-ubuntu-server-focal image
azure_rm_virtualmachineimage_info:
location: eastus
publisher: Canonical
- offer: UbuntuServer
- sku: 16.04-LTS
+ offer: 0001-com-ubuntu-server-focal
+ sku: 20_04-lts
register: image_list
-- name: Get latest UbuntuServer image name
- set_fact:
+- name: Get latest 0001-com-ubuntu-server-focal image name
+ ansible.builtin.set_fact:
latest_image_name: "{{ (image_list['vmimages'] | map(attribute='name') | sort(reverse=True))[0] }}"
- name: Create minimal VM with defaults
@@ -24,14 +25,14 @@
vm_size: Standard_B1ms
virtual_network: "{{ network_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
-- name: Ensure VM was created using the latest UbuntuServer image version / name
- assert:
+- name: Ensure VM was created using the latest 0001-com-ubuntu-server-focal image version / name
+ ansible.builtin.assert:
that:
- vm_output.azure_vm.properties.storageProfile.imageReference.version == latest_image_name
@@ -65,5 +66,5 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- force_delete_nonempty: yes
+ force_delete_nonempty: true
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml
index 12fc28154..6f7d21386 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_image_specific.yml
@@ -1,7 +1,8 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
-- name: Set specific UbuntuServer image version
- set_fact:
+- name: Set specific 0001-com-ubuntu-server-focal image version
+ ansible.builtin.set_fact:
specific_image_name: "16.04.202104140"
- name: Create minimal VM with defaults
@@ -16,14 +17,14 @@
vm_size: Standard_B1ms
virtual_network: "{{ network_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: "{{ specific_image_name }}"
register: vm_output
-- name: Ensure VM was created using the specific UbuntuServer image version / name
- assert:
+- name: Ensure VM was created using the specific 0001-com-ubuntu-server-focal image version / name
+ ansible.builtin.assert:
that:
- vm_output.azure_vm.properties.storageProfile.imageReference.version == specific_image_name
@@ -57,5 +58,5 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- force_delete_nonempty: yes
+ force_delete_nonempty: true
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml
index 86ec72de1..e4bc5b3db 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml
@@ -4,7 +4,7 @@
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
register: fail_invalid_image_dict
failed_when: 'fail_invalid_image_dict.msg != "parameter error: expecting image to contain [publisher, offer, sku, version], [name, resource_group] or [id]"'
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml
index 750cbe0b4..bf6035750 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
# # Tests possible when CI user acccount setup with required authority
# - name: Create virtual machine with image and plan which requires acceptance of terms
@@ -18,7 +19,7 @@
# plan_paid: "{{ plan_paid }}"
# register: create_image_plan_result
-# - assert:
+# - ansible.builtin.assert:
# that:
# - create_image_plan_result is changed
# - create_image_plan_result.ansible_facts.azure_vm.properties.storageProfile.imageReference.publisher == image_paid.publisher
@@ -40,7 +41,7 @@
# plan_paid: "{{ plan_paid }}"
# register: create_image_plan_again_result
-# - assert:
+# - ansible.builtin.assert:
# that: create_image_plan_again is not changed
- name: Create minimal VM with defaults
@@ -55,9 +56,9 @@
vm_size: Standard_B1ms
virtual_network: "{{ network_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
@@ -68,7 +69,7 @@
register: nsg_result
- name: Assert that security group were exist before deleting
- assert:
+ ansible.builtin.assert:
that:
- nsg_result.securitygroups | length == 1
- nsg_result.securitygroups[0].network_interfaces | length == 1
@@ -99,7 +100,7 @@
register: pip_result
- name: Assert that autocreated resources were deleted
- assert:
+ ansible.builtin.assert:
that:
# what about the default storage group?
- nic_result.networkinterfaces | length == 0
@@ -129,5 +130,5 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- force_delete_nonempty: yes
+ force_delete_nonempty: true
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml
index 27274b0de..423baa71c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal_manageddisk.yml
@@ -38,14 +38,14 @@
vm_size: Standard_D4s_v3
virtual_network: "{{ network_name }}-disk"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
- name: Assert status succeeded
- assert:
+ ansible.builtin.assert:
that:
- vm_output.changed
@@ -62,6 +62,7 @@
name: "{{ interface_name }}-disk"
state: absent
ignore_errors: true
+ register: ignore_errors_register
- name: Delete network security group
azure_rm_securitygroup:
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml
index 7b88dd8d8..62a8e16fe 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_nsg.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
- name: Create minimal VM with defaults
azure_rm_virtualmachine:
@@ -13,9 +14,9 @@
virtual_network: "{{ network_name }}"
created_nsg: false
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: vm_output
@@ -26,7 +27,7 @@
register: nsg_result
- name: Assert that security group were not exist before deleting
- assert:
+ ansible.builtin.assert:
that:
- nsg_result.securitygroups | length == 0
@@ -50,7 +51,7 @@
register: pip_result
- name: Assert that autocreated resources were deleted
- assert:
+ ansible.builtin.assert:
that:
# what about the default storage group?
- nic_result.networkinterfaces | length == 0
@@ -79,5 +80,5 @@
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
- force_delete_nonempty: yes
+ force_delete_nonempty: true
state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml
index 5b41a6eb9..bcec8da62 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
- name: Create virtual machine without public ip address and with boot diagnostics enabled
azure_rm_virtualmachine:
@@ -17,22 +18,22 @@
availability_set: "{{ availability_set }}"
virtual_network: "{{ network_name }}"
boot_diagnostics:
- enabled: yes
+ enabled: true
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: create_vm_public_result
- name: Ensure VM was created properly
- assert:
+ ansible.builtin.assert:
that:
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.storageUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.consoleScreenshotBlobUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.serialConsoleLogBlobUri is defined
- - not 'publicIPAddress' in create_vm_public_result.ansible_facts.azure_vm.properties.networkProfile.networkInterfaces[0].properties.ipConfigurations[0].properties
+ - azure_vm.diagnostics_profile.boot_diagnostics.enabled
+ - azure_vm.diagnostics_profile.boot_diagnostics.storage_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.console_screenshot_blob_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.serial_console_log_blob_uri is defined
+ - not 'public_ip_address' in create_vm_public_result.ansible_facts.azure_vm.network_profile.network_interfaces[0].properties.ip_configurations[0]
- name: Delete VM with no public ip
azure_rm_virtualmachine:
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml
index 6e3e47ea1..2ee786b34 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
- name: Create public ip
azure_rm_publicipaddress:
@@ -10,7 +11,7 @@
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ security_group }}"
- purge_rules: yes
+ purge_rules: true
rules:
- name: ALLOW_SSH
protocol: Tcp
@@ -54,23 +55,23 @@
network_interfaces: "{{ interface_name }}"
availability_set: "{{ availability_set }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
custom_data: |
#!/bin/sh
echo "custom_data was executed" > /tmp/custom_data.txt
- name: Ensure VM was created properly
- assert:
+ ansible.builtin.assert:
that:
- - azure_vm.properties.provisioningState == 'Succeeded'
- - azure_vm.properties.availabilitySet.id
+ - azure_vm.provisioning_state == 'Succeeded'
+ - azure_vm.availability_set.id
# initial response from creation has no diagnosticsProfile
# if you run it again however, there is one in the response
# so we handle both cases
- - "'diagnosticsProfile' not in azure_vm.properties or not azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled"
+ - "'diagnostics_profile' not in azure_vm or not azure_vm.diagnostics_profile.boot_diagnostics.enabled"
- name: Get facts for virtual machine without boot diagnostics disabled
azure_rm_virtualmachine_info:
@@ -79,7 +80,7 @@
register: vm_facts_no_boot_diag_result
- name: Ensure VM facts are correct
- assert:
+ ansible.builtin.assert:
that:
- vm_facts_no_boot_diag_result.vms != []
- not vm_facts_no_boot_diag_result.vms[0].boot_diagnostics.enabled
@@ -92,23 +93,24 @@
register: vm_state
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command: sleep 600
+ changed_when: true
- name: Enable boot diagnostics on an existing VM for the first time without specifying a storage account
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
boot_diagnostics:
- enabled: yes
+ enabled: true
# without specifying storage_account you get a new default storage account for the VM
- name: Ensure VM properties are correct
- assert:
+ ansible.builtin.assert:
that:
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.storageUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.consoleScreenshotBlobUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.serialConsoleLogBlobUri is defined
+ - azure_vm.diagnostics_profile.boot_diagnostics.enabled
+ - azure_vm.diagnostics_profile.boot_diagnostics.storage_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.console_screenshot_blob_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.serial_console_log_blob_uri is defined
- name: Get facts for virtual machine with boot diagnostics enabled
azure_rm_virtualmachine_info:
@@ -117,7 +119,7 @@
register: vm_facts_boot_diag_result
- name: Ensure VM facts were returned
- assert:
+ ansible.builtin.assert:
that:
- vm_facts_boot_diag_result.vms != []
- vm_facts_boot_diag_result.vms[0].boot_diagnostics.enabled
@@ -130,38 +132,39 @@
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
boot_diagnostics:
- enabled: yes
+ enabled: true
storage_account: "{{ storage_account }}"
- ignore_errors: yes
+ ignore_errors: true
+ register: ignore_errors_register
- name: Disable boot diagnostics and change the storage account at the same time
azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- boot_diagnostics:
- enabled: no
- storage_account: "{{ storage_account }}"
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ boot_diagnostics:
+ enabled: false
+ storage_account: "{{ storage_account }}"
- name: Ensure boot diagnostics was disabled
- assert:
+ ansible.builtin.assert:
that:
- - not azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled
+ - not azure_vm.diagnostics_profile.boot_diagnostics.enabled
- name: Re-enable boot diagnostics on an existing VM where it was previously configured
azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- boot_diagnostics:
- enabled: yes
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ boot_diagnostics:
+ enabled: true
register: reenable_boot_diag_result
- name: Ensure boot diagnostics was reenabled
- assert:
+ ansible.builtin.assert:
that:
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled
- - azure_vm.properties.diagnosticsProfile.bootDiagnostics.storageUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.consoleScreenshotBlobUri is defined
- - azure_vm.properties.instanceView.bootDiagnostics.serialConsoleLogBlobUri is defined
+ - azure_vm.diagnostics_profile.boot_diagnostics.enabled
+ - azure_vm.diagnostics_profile.boot_diagnostics.storage_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.console_screenshot_blob_uri is defined
+ - azure_vm.instance_view.boot_diagnostics.serial_console_log_blob_uri is defined
# - add_host:
# name: new_azure_vm
@@ -188,8 +191,8 @@
# raw: cat /tmp/custom_data.txt
# register: custom_data_content
-# - name: assert contents
-# assert:
+# - name: ansible.builtin.assert contents
+# ansible.builtin.assert:
# that: custom_data_content.stdout | regex_search('custom_data was executed')
# delegate_to: new_azure_vm
@@ -220,14 +223,14 @@
os_type: Linux
network_interfaces: "{{ interface_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: single_nic_result
- name: Ensure nothing changed
- assert:
+ ansible.builtin.assert:
that: single_nic_result is not changed
- name: Resize VM
@@ -247,17 +250,17 @@
os_type: Linux
network_interfaces: "{{ interface_name }}"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 16.04-LTS
+ sku: 20_04-lts
version: latest
register: resize_result
- name: Esure VM was resized
- assert:
+ ansible.builtin.assert:
that:
- resize_result is changed
- - resize_result.ansible_facts.azure_vm.properties.hardwareProfile.vmSize == "Standard_A1"
+ - resize_result.ansible_facts.azure_vm.hardware_profile.vm_size == "Standard_A1"
- name: Delete VM
azure_rm_virtualmachine:
@@ -273,7 +276,7 @@
register: output
- name: Ensure NIC was removed
- assert:
+ ansible.builtin.assert:
that: output.networkinterfaces | length == 0
- name: Public IP should be gone
@@ -283,7 +286,7 @@
register: output
- name: Ensure public IP was removed
- assert:
+ ansible.builtin.assert:
that: output.publicipaddresses | length == 0
- name: Destroy NIC
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml
index a967e050d..43944e511 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_spot.yml
@@ -1,4 +1,5 @@
-- include_tasks: setup.yml
+- name: Set variables
+ ansible.builtin.include_tasks: setup.yml
- name: Create minimal VM with Spot Instance default values
azure_rm_virtualmachine:
@@ -21,7 +22,7 @@
register: vm_output
- name: Ensure VM was created using Spot Instance default values
- assert:
+ ansible.builtin.assert:
that:
- azure_vm.properties.priority == 'Spot'
- azure_vm.properties.evictionPolicy == 'Deallocate'
@@ -56,7 +57,7 @@
register: vm_output
- name: Ensure VM was created using custom spot instance values
- assert:
+ ansible.builtin.assert:
that:
- azure_vm.properties.priority == 'Spot'
- azure_vm.properties.evictionPolicy == 'Delete'
@@ -80,4 +81,4 @@
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ network_name }}"
- state: absent \ No newline at end of file
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_vm_identity.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_vm_identity.yml
new file mode 100644
index 000000000..c39cc10d1
--- /dev/null
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_vm_identity.yml
@@ -0,0 +1,209 @@
+- name: Create virtual network
+ azure_rm_virtualnetwork:
+ resource_group: "{{ resource_group }}"
+ name: "{{ network_name }}-identity"
+ address_prefixes: "{{ network }}"
+ location: westeurope
+
+- name: Create subnet
+ azure_rm_subnet:
+ resource_group: "{{ resource_group }}"
+ name: "{{ subnet_name }}"
+ address_prefix: "{{ subnet }}"
+ virtual_network: "{{ network_name }}-identity"
+
+- name: Create network interface
+ azure_rm_networkinterface:
+ resource_group: "{{ resource_group }}"
+ name: "{{ interface_name }}-identity"
+ virtual_network: "{{ network_name }}-identity"
+ subnet: "{{ subnet_name }}"
+ location: westeurope
+
+- name: Create User Managed Identities
+ azure_rm_resource:
+ resource_group: "{{ resource_group }}"
+ provider: ManagedIdentity
+ resource_type: userAssignedIdentities
+ resource_name: "{{ item }}"
+ api_version: "2023-01-31"
+ body:
+ location: westeurope
+ state: present
+ loop:
+ - "ansible-test-vm-identity"
+ - "ansible-test-vm-identity-2"
+
+- name: Set identities IDs to test. Identities ansible-test-vm-identity and ansible-test-vm-identity-2 have to be created previously
+ ansible.builtin.set_fact:
+ user_identity_1: "/subscriptions/{{ azure_subscription_id }}/resourcegroups/{{ resource_group }}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ansible-test-vm-identity"
+ user_identity_2: "/subscriptions/{{ azure_subscription_id }}/resourcegroups/{{ resource_group }}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ansible-test-vm-identity-2"
+
+- name: Create minimal VM with UserAssigned Identity
+ azure_rm_virtualmachine:
+ allocated: false
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ vm_identity:
+ type: UserAssigned
+ user_assigned_identities:
+ id:
+ - "{{ user_identity_1 }}"
+ admin_username: "testuser"
+ ssh_password_enabled: false
+ public_ip_allocation_method: Disabled
+ location: westeurope
+ network_interface_names:
+ - name: "{{ interface_name }}-identity"
+ resource_group: "{{ resource_group }}"
+ ssh_public_keys:
+ - path: /home/testuser/.ssh/authorized_keys
+ key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
+ vm_size: Standard_D4s_v3
+ virtual_network: "{{ network_name }}-identity"
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ version: latest
+ register: vm_output
+
+- name: Assert User identity assigned
+ ansible.builtin.assert:
+ that:
+ - vm_output.ansible_facts.azure_vm.identity.type == 'UserAssigned'
+ - "\"{{ user_identity_1 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+
+- name: Append another UserAssigned
+ azure_rm_virtualmachine:
+ name: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ vm_identity:
+ type: "UserAssigned"
+ user_assigned_identities:
+ id:
+ - "{{ user_identity_2 }}"
+ append: true
+ register: vm_output
+
+- name: Assert appended user identity
+ ansible.builtin.assert:
+ that:
+ - vm_output.ansible_facts.azure_vm.identity.type == 'UserAssigned'
+ - "\"{{ user_identity_1 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+ - "\"{{ user_identity_2 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+
+- name: Add SystemAssigned
+ azure_rm_virtualmachine:
+ name: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ vm_identity:
+ type: "SystemAssigned, UserAssigned"
+ user_assigned_identities:
+ append: true
+ register: vm_output
+
+- name: Assert System identity assigned
+ ansible.builtin.assert:
+ that:
+ - vm_output.ansible_facts.azure_vm.identity.type == 'SystemAssigned, UserAssigned'
+ - "\"{{ user_identity_1 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+ - "\"{{ user_identity_2 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+
+- name: Force only one UserAssigned
+ azure_rm_virtualmachine:
+ name: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ vm_identity:
+ type: "SystemAssigned, UserAssigned"
+ user_assigned_identities:
+ id:
+ - "{{ user_identity_2 }}"
+ append: false
+ register: vm_output
+
+- name: Assert appended user identity
+ ansible.builtin.assert:
+ that:
+ - vm_output.ansible_facts.azure_vm.identity.type == 'SystemAssigned, UserAssigned'
+ - "\"{{ user_identity_1 }}\" not in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+ - "\"{{ user_identity_2 }}\" in vm_output.ansible_facts.azure_vm.identity.user_assigned_identities"
+
+- name: Remove UserAssigned
+ azure_rm_virtualmachine:
+ name: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ vm_identity:
+ type: "SystemAssigned"
+ register: vm_output
+
+- name: Assert removed user identities
+ ansible.builtin.assert:
+ that:
+ - vm_output.ansible_facts.azure_vm.identity.type == 'SystemAssigned'
+ - "'user_assigned_identities' not in vm_output.ansible_facts.azure_vm.identity"
+
+- name: Disable SystemAssigned
+ azure_rm_virtualmachine:
+ name: "{{ vm_name }}"
+ resource_group: "{{ resource_group }}"
+ vm_identity:
+ type: "None"
+ register: vm_output
+
+- name: Assert no managed identities
+ ansible.builtin.assert:
+ that:
+ - "'identity' not in vm_output.ansible_facts.azure_vm"
+
+- name: Delete VM
+ azure_rm_virtualmachine:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ remove_on_absent: all_autocreated
+ state: absent
+
+- name: Destroy NIC
+ azure_rm_networkinterface:
+ resource_group: "{{ resource_group }}"
+ name: "{{ interface_name }}-identity"
+ state: absent
+ ignore_errors: true
+ register: ignore_errors_register
+
+- name: Delete network security group
+ azure_rm_securitygroup:
+ resource_group: "{{ resource_group }}"
+ name: "{{ interface_name }}-identity"
+ state: absent
+
+- name: Destroy subnet
+ azure_rm_subnet:
+ resource_group: "{{ resource_group }}"
+ virtual_network: "{{ network_name }}"
+ name: "{{ subnet_name }}-identity"
+ state: absent
+
+- name: Destroy virtual network
+ azure_rm_virtualnetwork:
+ resource_group: "{{ resource_group }}"
+ name: "{{ network_name }}-identity"
+ state: absent
+
+- name: Destroy SA of the machine
+ azure_rm_storageaccount:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_output.ansible_facts.azure_vm.tags._own_sa_ }}"
+ state: absent
+
+- name: Destroy User Managed Identities
+ azure_rm_resource:
+ resource_group: "{{ resource_group }}"
+ provider: ManagedIdentity
+ resource_type: userAssignedIdentities
+ resource_name: "{{ item }}"
+ api_version: "2023-01-31"
+ state: absent
+ loop:
+ - "ansible-test-vm-identity"
+ - "ansible-test-vm-identity-2"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml
index f053cac03..a14fa7eff 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml
@@ -1,4 +1,5 @@
-- debug:
+- name: Set variables
+ ansible.builtin.debug:
msg: "UID is {{ uid_short }}"
- name: SETUP | Create storage account
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml
index a4a1e62ee..e053cf0b8 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Create Random Storage Account Name
- set_fact:
+ ansible.builtin.set_fact:
storage_account: "vme{{ resource_group | hash('md5') | truncate(21, True, '') }}"
public_settings_file: "files/test-public-settings.json"
protected_settings_file: "files/test-protected-settings.json"
@@ -44,7 +44,7 @@
public_ip_name: testPublicIP
security_group_name: testNetworkSecurityGroup
-- name: create a storage account
+- name: Create a storage account
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storage_account }}"
@@ -84,7 +84,7 @@
settings: {"commandToExecute": "date"}
register: results
- name: Assert that VM Extension ran
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Query extension
@@ -94,7 +94,7 @@
virtual_machine_name: testVM
register: results
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- results.changed == False
- results.extensions[0]['id'] != None
@@ -120,7 +120,7 @@
settings: {"commandToExecute": "date"}
register: results
- name: Assert no updates
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Create VM Extension (force update)
@@ -136,7 +136,7 @@
force_update_tag: true
register: results
- name: Assert updates
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: List extensions
@@ -145,7 +145,7 @@
virtual_machine_name: testVM
register: results
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- results.changed == False
- results.extensions[0]['id'] != None
@@ -167,7 +167,7 @@
state: absent
register: results
- name: Assert that VM Extension deleted
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete VM Extension (idempotent)
@@ -178,7 +178,7 @@
state: absent
register: results
- name: Assert no changes
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Create VM Extension to configure python required for VM diagnostic extension
@@ -193,7 +193,7 @@
settings: {"commandToExecute": "apt-get update && apt-get install -y python2 && update-alternatives --install /usr/bin/python python /usr/bin/python2 1"}
register: results
- name: Assert that VM Extension ran
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Install VM Extension for diagnostics
@@ -209,7 +209,7 @@
protected_settings: "{{ lookup('file', protected_settings_file) }}"
register: results
- name: Assert extension installed
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Install VM Extension for diagnostics (idempotent)
@@ -225,7 +225,7 @@
protected_settings: "{{ lookup('file', protected_settings_file) }}"
register: results
- name: Assert no updates
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: List extensions
@@ -234,7 +234,7 @@
virtual_machine_name: testVM
register: results
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- results.changed == False
- results.extensions | length >= 2
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml
index 88fd5ce19..8252214a4 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml
@@ -1,5 +1,5 @@
-- name: set location
- set_fact:
+- name: Set location
+ ansible.builtin.set_fact:
location: eastus
- name: Get facts for a specific image
@@ -11,8 +11,9 @@
version: '7.5.201808150'
register: output
-- assert:
- that: output['vmimages'] | length == 1
+- name: Assert the image facts
+ ansible.builtin.assert:
+ that: output['vmimages'] | length == 1
- name: List available versions
azure_rm_virtualmachineimage_info:
@@ -22,8 +23,9 @@
sku: '7.5'
register: output
-- assert:
- that: output['vmimages'] | length > 0
+- name: Assert all image version facts
+ ansible.builtin.assert:
+ that: output['vmimages'] | length > 0
- name: List available offers
azure_rm_virtualmachineimage_info:
@@ -31,16 +33,18 @@
publisher: OpenLogic
register: output
-- assert:
- that: output['vmimages'] | length > 0
+- name: Assert image facts
+ ansible.builtin.assert:
+ that: output['vmimages'] | length > 0
- name: List available publishers
azure_rm_virtualmachineimage_info:
location: "{{ location }}"
register: output
-- assert:
- that: output['vmimages'] | length > 0
+- name: Assert image facts
+ ansible.builtin.assert:
+ that: output['vmimages'] | length > 0
- name: Get facts for a specific image's latest version
azure_rm_virtualmachineimage_info:
@@ -51,5 +55,6 @@
version: 'latest'
register: output
-- assert:
- that: output['vmimages'] | length == 1 \ No newline at end of file
+- name: Assert image facts
+ ansible.builtin.assert:
+ that: output['vmimages'] | length == 1
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml
index d027146c2..98f51ee9f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml
@@ -1,7 +1,7 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Create virtual network
azure_rm_virtualnetwork:
@@ -69,9 +69,9 @@
vm_size: Standard_B1ms
network_interfaces: "vmforimage{{ rpfx }}nic"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
- name: Get VM facts
azure_rm_virtualmachine_info:
@@ -79,12 +79,13 @@
name: "vmforimage{{ rpfx }}"
register: vm_state
- name: Pause for 10 mimutes to VM updating
- shell: sleep 600
+ ansible.builtin.command: sleep 600
+ changed_when: true
- name: Generalize VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "vmforimage{{ rpfx }}"
- generalized: yes
+ generalized: true
- name: Create image A
azure_rm_image:
resource_group: "{{ resource_group }}"
@@ -107,9 +108,9 @@
name: testVMSS{{ rpfx }}
vm_size: Standard_A1_v2
admin_username: testuser
- single_placement_group: False
+ single_placement_group: false
platform_fault_domain_count: 1
- public_ip_per_vm: True
+ public_ip_per_vm: true
ssh_password_enabled: false
ssh_public_keys:
- path: /home/testuser/.ssh/authorized_keys
@@ -120,9 +121,9 @@
orchestration_mode: Flexible
os_disk_caching: ReadWrite
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -132,7 +133,7 @@
register: results
- name: Assert that VMSS can be created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create VMSS with I(orchestration_mode=Flexible) again --- Idempotent
@@ -141,9 +142,9 @@
name: testVMSS{{ rpfx }}
vm_size: Standard_A1_v2
admin_username: testuser
- single_placement_group: False
+ single_placement_group: false
platform_fault_domain_count: 1
- public_ip_per_vm: True
+ public_ip_per_vm: true
ssh_password_enabled: false
ssh_public_keys:
- path: /home/testuser/.ssh/authorized_keys
@@ -154,9 +155,9 @@
orchestration_mode: Flexible
os_disk_caching: ReadWrite
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -166,7 +167,7 @@
register: results
- name: Assert that VMSS can be created
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Retrieve scaleset VMSS fact
@@ -175,9 +176,10 @@
resource_group: "{{ resource_group }}"
register: output_scaleset
-- assert:
+- name: Assert vmss facts
+ ansible.builtin.assert:
that:
- - output_scaleset.vmss[0].properties.orchestrationMode == "Flexible"
+ - output_scaleset.vmss[0].orchestration_mode == "Flexible"
- name: Delete VMSS
azure_rm_virtualmachinescaleset:
@@ -193,7 +195,7 @@
admin_username: testuser
priority: Spot
eviction_policy: Deallocate
- single_placement_group: True
+ single_placement_group: true
ssh_password_enabled: false
ssh_public_keys:
- path: /home/testuser/.ssh/authorized_keys
@@ -206,9 +208,9 @@
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -218,11 +220,11 @@
register: results
- name: Assert that VMSS was created using Spot Instance default values
- assert:
+ ansible.builtin.assert:
that:
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.priority == 'Spot'
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.evictionPolicy == 'Deallocate'
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.billingProfile.maxPrice == -1.0
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.priority == 'Spot'
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.eviction_policy == 'Deallocate'
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.billing_profile.max_price == -1.0
- name: Delete VMSS
azure_rm_virtualmachinescaleset:
@@ -250,11 +252,11 @@
tier: Standard
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
- single_placement_group: True
+ single_placement_group: true
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -264,17 +266,17 @@
register: results
- name: Assert that VMSS was created using Spot Instance custom values
- assert:
+ ansible.builtin.assert:
that:
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.priority == 'Spot'
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.evictionPolicy == 'Delete'
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.billingProfile.maxPrice == 1.0
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.priority == 'Spot'
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.eviction_policy == 'Delete'
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.billing_profile.max_price == 1.0
- name: Delete VMSS
azure_rm_virtualmachinescaleset:
resource_group: "{{ resource_group }}"
name: testVMSS{{ rpfx }}
- state: absent
+ state: absent
- name: Create VMSS (check mode)
azure_rm_virtualmachinescaleset:
@@ -294,11 +296,11 @@
tier: Standard
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
- single_placement_group: True
+ single_placement_group: true
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -306,13 +308,13 @@
caching: ReadWrite
managed_disk_type: Standard_LRS
register: results
- check_mode: yes
+ check_mode: true
- name: Assert that VMSS can be created
- assert:
+ ansible.builtin.assert:
that: results.changed
-- name: Get VMSS to assert no VMSS is created in check mode
+- name: Get VMSS to ansible.builtin.assert no VMSS is created in check mode
azure_rm_virtualmachinescaleset_info:
resource_group: "{{ resource_group }}"
name: testVMSS{{ rpfx }}
@@ -320,7 +322,7 @@
register: output_scaleset
- name: Assert no VMSS created in check mode
- assert:
+ ansible.builtin.assert:
that:
- output_scaleset.vmss | length == 0
@@ -343,11 +345,11 @@
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
custom_data: "#cloud-config"
- single_placement_group: True
+ single_placement_group: true
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -358,7 +360,7 @@
register: results
- name: Assert that VMSS was created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create VMSS -- test upgrade_policy idempotence and load balancer
@@ -380,11 +382,11 @@
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
custom_data: "#cloud-config"
- single_placement_group: True
+ single_placement_group: true
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
data_disks:
- lun: 0
@@ -394,7 +396,7 @@
register: results
- name: Assert that VMSS was created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Retrieve scaleset facts
@@ -404,9 +406,10 @@
format: curated
register: output_scaleset
-- assert:
+- name: Assert the vmss facts
+ ansible.builtin.assert:
that:
- - output_scaleset.vmss[0].load_balancer == "testLB1"
+ - output_scaleset.vmss[0].load_balancer == "testLB1"
- name: Retrieve scaleset VMs facts
azure_rm_virtualmachinescalesetinstance_info:
@@ -415,7 +418,7 @@
register: instances
- name: Assert that facts returned correctly
- assert:
+ ansible.builtin.assert:
that:
- instances.instances | length == 1
- instances.instances[0].id != None
@@ -427,7 +430,7 @@
- instances.instances[0].power_state != None
- name: Get scaleset body
- set_fact:
+ ansible.builtin.set_fact:
body: "{{ output_scaleset.vmss[0] }}"
- name: Try to update VMSS using output as input
@@ -451,11 +454,11 @@
image: "{{ body.image }}"
data_disks: "{{ body.data_disks }}"
overprovision: "{{ body.overprovision }}"
- single_placement_group: True
+ single_placement_group: true
register: results
- name: Assert that nothing was changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Install VMSS Extension
@@ -471,7 +474,7 @@
register: results
- name: Assert that something was changed
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Install Again VMSS Extension - again
@@ -487,7 +490,7 @@
register: results
- name: Assert that nothing was changed
- assert:
+ ansible.builtin.assert:
that: not results.changed
- name: Query extension
@@ -498,7 +501,7 @@
register: results
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- results.changed == False
- results.extensions[0]['id'] != None
@@ -518,7 +521,7 @@
register: results
- name: Assert that facts are returned
- assert:
+ ansible.builtin.assert:
that:
- results.changed == False
- results.extensions[0]['id'] != None
@@ -540,7 +543,7 @@
register: results
- name: Assert that change was reported
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Upgrade instance to the latest image
@@ -548,11 +551,11 @@
resource_group: "{{ resource_group }}"
vmss_name: testVMSS{{ rpfx }}
instance_id: "{{ instances.instances[0].instance_id }}"
- latest_model: yes
+ latest_model: true
register: results
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Stop virtual machine
@@ -564,7 +567,7 @@
register: results
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete instance
@@ -576,7 +579,7 @@
register: results
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Delete VMSS
@@ -603,13 +606,13 @@
resource_group: "{{ resource_group }}"
upgrade_policy: Manual
security_group: testNetworkSecurityGroup
- enable_accelerated_networking: yes
- single_placement_group: True
+ enable_accelerated_networking: true
+ single_placement_group: true
register: results
- check_mode: yes
+ check_mode: true
- name: Assert that VMSS can be created
- assert:
+ ansible.builtin.assert:
that: results.changed
- name: Create VMSS with security group in same resource group, with accelerated networking.
@@ -630,16 +633,16 @@
resource_group: "{{ resource_group }}"
upgrade_policy: Manual
security_group: testNetworkSecurityGroup
- enable_accelerated_networking: yes
- single_placement_group: True
+ enable_accelerated_networking: true
+ single_placement_group: true
register: results
- name: Assert that VMSS ran
- assert:
+ ansible.builtin.assert:
that:
- 'results.changed'
- - 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.enableAcceleratedNetworking == true'
- - 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup != {}'
+ - 'results.ansible_facts.azure_vmss.virtual_machine_profile.network_profile.network_interface_configurations[0].enable_accelerated_networking == true'
+ - 'results.ansible_facts.azure_vmss.virtual_machine_profile.network_profile.network_interface_configurations[0].network_security_group != {}'
- name: Create VMSS with security group in same resource group, with accelerated networking.
azure_rm_virtualmachinescaleset:
@@ -659,12 +662,12 @@
resource_group: "{{ resource_group }}"
upgrade_policy: Manual
security_group: testNetworkSecurityGroup
- enable_accelerated_networking: yes
- single_placement_group: True
+ enable_accelerated_networking: true
+ single_placement_group: true
register: results
- name: Assert that nothing has changed
- assert:
+ ansible.builtin.assert:
that:
- not results.changed
@@ -686,16 +689,16 @@
resource_group: "{{ resource_group }}"
upgrade_policy: Manual
security_group: testNetworkSecurityGroup
- enable_accelerated_networking: yes
- single_placement_group: True
+ enable_accelerated_networking: true
+ single_placement_group: true
register: results
- name: Assert that something has changed
- assert:
+ ansible.builtin.assert:
that:
- results.changed
-- name: update VMSS with security group in different resource group.
+- name: Update VMSS with security group in different resource group.
azure_rm_virtualmachinescaleset:
resource_group: "{{ resource_group }}"
name: testVMSS{{ rpfx }}2
@@ -715,12 +718,12 @@
security_group:
name: testNetworkSecurityGroup2
resource_group: "{{ resource_group_secondary }}"
- single_placement_group: True
+ single_placement_group: true
register: results
# disable for now
-#- name: Assert that security group is correct
-# assert:
+# - name: Assert that security group is correct
+# ansible.builtin.assert:
# that:
# - 'results.changed'
# - '"testNetworkSecurityGroup2" in results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup.id'
@@ -742,9 +745,9 @@
admin_username: testuser
ssh_password_enabled: false
ssh_public_keys:
- - path: /home/testuser/.ssh/authorized_keys
- key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
- ephemeral_os_disk: True
+ - path: /home/testuser/.ssh/authorized_keys
+ key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
+ ephemeral_os_disk: true
image:
name: testimageb
resource_group: "{{ resource_group }}"
@@ -752,13 +755,14 @@
security_group:
name: testNetworkSecurityGroup2
resource_group: "{{ resource_group_secondary }}"
- single_placement_group: True
+ single_placement_group: true
register: results
-- assert:
+- name: Assert vmss created
+ ansible.builtin.assert:
that:
- results.changed
- - results.ansible_facts.azure_vmss.properties.virtualMachineProfile.storageProfile.osDisk.diffDiskSettings.option == 'Local'
+ - results.ansible_facts.azure_vmss.virtual_machine_profile.storage_profile.os_disk.diff_disk_settings.option == 'Local'
- name: Check VMSS ephmeral OS disk can't udpate
azure_rm_virtualmachinescaleset:
@@ -773,7 +777,7 @@
ssh_public_keys:
- path: /home/testuser/.ssh/authorized_keys
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
- ephemeral_os_disk: False
+ ephemeral_os_disk: false
image:
name: testimageb
resource_group: "{{ resource_group }}"
@@ -781,8 +785,9 @@
security_group:
name: testNetworkSecurityGroup2
resource_group: "{{ resource_group_secondary }}"
- single_placement_group: True
- ignore_errors: yes
+ single_placement_group: true
+ ignore_errors: true
+ register: ignore_errors_register
- name: Delete VMSS
azure_rm_virtualmachinescaleset:
@@ -803,18 +808,18 @@
- path: /home/testuser/.ssh/authorized_keys
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
image:
- offer: UbuntuServer
+ offer: 0001-com-ubuntu-server-focal
publisher: Canonical
- sku: 18.04-LTS
+ sku: 20_04-lts
version: latest
upgrade_policy: Manual
- enable_accelerated_networking: yes
- single_placement_group: True
+ enable_accelerated_networking: true
+ single_placement_group: true
register: results
- ignore_errors: yes
+ ignore_errors: true
- name: Assert failure to show that accelerated networking is enabled only with supported instance types.
- assert:
+ ansible.builtin.assert:
that:
- '"VMSizeIsNotPermittedToEnableAcceleratedNetworkingForVmss" in results.msg'
@@ -857,41 +862,41 @@
# TODO: Until we have a module to create/delete images this is the best tests
# I can do
-- name: assert error thrown with invalid image dict
+- name: Assert error thrown with invalid image dict
azure_rm_virtualmachinescaleset:
- resource_group: "{{ resource_group }}"
- name: testvm002
- vm_size: Standard_B1s
- image:
- offer: UbuntuServer
+ resource_group: "{{ resource_group }}"
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
+ offer: 0001-com-ubuntu-server-focal
register: fail_invalid_image_dict
failed_when: 'fail_invalid_image_dict.msg != "parameter error: expecting image to contain [publisher, offer, sku, version], [name, resource_group] or [id]"'
-- name: assert error thrown with invalid image type
+- name: Assert error thrown with invalid image type
azure_rm_virtualmachinescaleset:
- resource_group: "{{ resource_group }}"
- name: testvm002
- vm_size: Standard_B1s
- image:
+ resource_group: "{{ resource_group }}"
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
- testing
register: fail_invalid_image_type
failed_when: 'fail_invalid_image_type.msg != "parameter error: expecting image to be a string or dict not list"'
-- name: assert error finding missing custom image
+- name: Assert error finding missing custom image
azure_rm_virtualmachinescaleset:
- resource_group: "{{ resource_group }}"
- name: testvm002
- vm_size: Standard_B1s
- image: invalid-image
+ resource_group: "{{ resource_group }}"
+ name: testvm002
+ vm_size: Standard_B1s
+ image: invalid-image
register: fail_missing_custom_image
failed_when: fail_missing_custom_image.msg != "Error could not find image with name invalid-image"
-- name: assert error finding missing custom image (dict style)
+- name: Assert error finding missing custom image (dict style)
azure_rm_virtualmachinescaleset:
- resource_group: "{{ resource_group }}"
- name: testvm002
- vm_size: Standard_B1s
- image:
- name: invalid-image
+ resource_group: "{{ resource_group }}"
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
+ name: invalid-image
register: fail_missing_custom_image_dict
failed_when: fail_missing_custom_image_dict.msg != "Error could not find image with name invalid-image"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml
index 48f5726d8..95e1952f9 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/meta/main.yml
@@ -1,2 +1,2 @@
dependencies:
- - setup_azure \ No newline at end of file
+ - setup_azure
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml
index d3aad3f72..289cda25e 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualmachinesize_info/tasks/main.yml
@@ -1,5 +1,5 @@
-- name: set location
- set_fact:
+- name: Set location
+ ansible.builtin.set_fact:
location: eastus
- name: Get specific size information for a specific location
@@ -8,13 +8,15 @@
name: Standard_A1_v2
register: output
-- assert:
- that: output['sizes'] | length == 1
+- name: Assert the virtuam machine size
+ ansible.builtin.assert:
+ that: output['sizes'] | length == 1
- name: Get available sizes for a specific location
azure_rm_virtualmachinesize_info:
location: "{{ location }}"
register: output
-- assert:
- that: output['sizes'] | length > 0
+- name: Assert the virtualmachine size
+ ansible.builtin.assert:
+ that: output['sizes'] | length > 0
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml
index 143396720..79bbb608f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetwork/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
vnetname: "vnet{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Delete virtual network, if it exists
@@ -37,7 +37,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the virtual network update
+ ansible.builtin.assert:
that:
- "output.state.address_prefixes | length == 3"
- "output.state.flow_timeout_in_minutes == 8"
@@ -60,7 +61,8 @@
- testing
register: facts
-- assert:
+- name: Assert the virtual network facts
+ ansible.builtin.assert:
that:
- "facts.virtualnetworks | length == 1"
- "facts.virtualnetworks[0].dns_servers | length == 2"
@@ -75,7 +77,8 @@
- testing
register: facts
-- assert:
+- name: Assert the virtualnetwork facts
+ ansible.builtin.assert:
that: "facts.virtualnetworks | length >= 1"
- name: Gather facts by tags
@@ -84,7 +87,8 @@
- testing
register: facts
-- assert:
+- name: Assert the virtual network facts
+ ansible.builtin.assert:
that: "facts.virtualnetworks | length >= 1"
- name: Should be idempotent
@@ -103,7 +107,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the virtual network idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Update tags
@@ -116,22 +121,24 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that: output.state.tags | length == 3
+- name: Assert the virtual network updated
+ ansible.builtin.assert:
+ that: output.state.tags | length == 3
- name: Purge tags
azure_rm_virtualnetwork:
name: "{{ vnetname }}"
- append_tags: no
+ append_tags: false
tags:
testing: 'always'
resource_group: "{{ resource_group }}"
register: output
-- assert:
- that:
- - output.state.tags | length == 1
- - output.state.tags.testing == 'always'
+- name: Assert the virtual network updated
+ ansible.builtin.assert:
+ that:
+ - output.state.tags | length == 1
+ - output.state.tags.testing == 'always'
- name: Should require address_prefixes_cidr when purge_address_prefixes
azure_rm_virtualnetwork:
@@ -139,10 +146,11 @@
purge_address_prefixes: true
resource_group: "{{ resource_group }}"
register: output
- ignore_errors: yes
+ ignore_errors: true
-- assert:
- that: output.failed
+- name: Assert the virtual network updated
+ ansible.builtin.assert:
+ that: output.failed
- name: Purge address prefixes
azure_rm_virtualnetwork:
@@ -152,12 +160,13 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the virtual network updated
+ ansible.builtin.assert:
that:
- - output.state.address_prefixes | length == 1
- - output.state.address_prefixes[0] == '10.1.0.0/16'
- - output.state.dns_servers | length == 2
- - output.state.dns_servers[0] == '127.0.0.1'
+ - output.state.address_prefixes | length == 1
+ - output.state.address_prefixes[0] == '10.1.0.0/16'
+ - output.state.dns_servers | length == 2
+ - output.state.dns_servers[0] == '127.0.0.1'
- name: Purge DNS servers
azure_rm_virtualnetwork:
@@ -166,7 +175,8 @@
resource_group: "{{ resource_group }}"
register: output
-- assert:
+- name: Assert the virtual network DNS server purged
+ ansible.builtin.assert:
that: output.state['dns_servers'] is undefined
- name: Gather facts
@@ -175,7 +185,8 @@
name: "{{ vnetname }}"
register: facts
-- assert:
+- name: Assert the virtual network facts
+ ansible.builtin.assert:
that:
- facts.virtualnetworks | length == 1
- "facts.virtualnetworks[0].subnets | length == 1"
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml
index 9dbd87e69..4b692fd1c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkgateway/tasks/main.yml
@@ -1,13 +1,13 @@
# FIXME: needs minimal tests (check mode?) that can run quickly, VNG creation takes > 20min
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
vnetname: "vnet{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
vngname: "vng{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
pubipname: "testPublicIP{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Create virtual network gateway without bgp settings (check mode)
- check_mode: yes
+ check_mode: true
azure_rm_virtualnetworkgateway:
resource_group: "{{ resource_group }}"
name: "{{ vngname }}"
@@ -20,11 +20,12 @@
common: "xyz"
register: output
-- assert:
+- name: Assert the virtual network gateway check mode
+ ansible.builtin.assert:
that: output.changed
- name: Create virtual network gateway Generation2 (check mode)
- check_mode: yes
+ check_mode: true
azure_rm_virtualnetworkgateway:
resource_group: "{{ resource_group }}"
name: "{{ vngname }}"
@@ -38,153 +39,159 @@
tags:
common: "xyz"
-- assert:
+- name: Assert the virtual network gateway check mode
+ ansible.builtin.assert:
that: output.changed
-
-- name: long-running virtualnetworkgateway tests [run with `--tags long_run,untagged` to enable]
+- name: Long-running virtualnetworkgateway tests [run with `--tags long_run,untagged` to enable]
tags: [long_run, never]
block:
- - name: Create virtual network
- azure_rm_virtualnetwork:
+ - name: Create virtual network
+ azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vnetname }}"
address_prefixes: "10.0.0.0/16"
- - name: Add subnet
- azure_rm_subnet:
+ - name: Add subnet
+ azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: GatewaySubnet
address_prefix: "10.0.2.0/24"
virtual_network: "{{ vnetname }}"
- - name: Create public IP address
- azure_rm_publicipaddress:
+ - name: Create public IP address
+ azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Dynamic
name: "{{ pubipname }}"
- - name: Create virtual network gateway without bgp settings
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: testPublicIP
- virtual_network: "{{ vnetname }}"
- tags:
- common: "xyz"
- register: output
-
- - assert:
- that: output.changed
-
- - name: Create virtual network gateway without bgp settings - idempotent
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: "{{ pubipname }}"
- virtual_network: "{{ vnetname }}"
- tags:
- common: "xyz"
- register: output
-
- - assert:
- that: not output.changed
-
- - name: Update virtual network gateway
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: "{{ pubipname }}"
- virtual_network: "{{ vnetname }}"
- tags:
- common: "mno"
- register: output
- - assert:
- that: output.changed
-
- - name: Delete virtual network gateway
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- state: absent
- register: output
- - assert:
- that: output.changed
-
-- name: long-running generation virtualnetworkgateway tests [run with `--tags long_run_gen,untagged` to enable]
+ - name: Create virtual network gateway without bgp settings
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: testPublicIP
+ virtual_network: "{{ vnetname }}"
+ tags:
+ common: "xyz"
+ register: output
+
+ - name: Assert the virtual network gateway created
+ ansible.builtin.assert:
+ that: output.changed
+
+ - name: Create virtual network gateway without bgp settings - idempotent
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: "{{ pubipname }}"
+ virtual_network: "{{ vnetname }}"
+ tags:
+ common: "xyz"
+ register: output
+
+ - name: Assert the idempotent
+ ansible.builtin.assert:
+ that: not output.changed
+
+ - name: Update virtual network gateway
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: "{{ pubipname }}"
+ virtual_network: "{{ vnetname }}"
+ tags:
+ common: "mno"
+ register: output
+ - name: Assert the virtual network gateway updated
+ ansible.builtin.assert:
+ that: output.changed
+
+ - name: Delete virtual network gateway
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ state: absent
+ register: output
+ - name: Assert the virtual network gateway deleted
+ ansible.builtin.assert:
+ that: output.changed
+
+- name: Long-running generation virtualnetworkgateway tests [run with `--tags long_run_gen,untagged` to enable]
tags: [long_run_gen, never]
block:
- - name: Create virtual network
- azure_rm_virtualnetwork:
+ - name: Create virtual network
+ azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vnetname }}"
address_prefixes: "10.0.0.0/16"
- - name: Add subnet
- azure_rm_subnet:
+ - name: Add subnet
+ azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: GatewaySubnet
address_prefix: "10.0.2.0/24"
virtual_network: "{{ vnetname }}"
- - name: Create public IP address
- azure_rm_publicipaddress:
+ - name: Create public IP address
+ azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Dynamic
name: "{{ pubipname }}"
- - name: Create virtual network gateway w/ sku and Generation2
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- sku: VpnGw2
- vpn_gateway_generation: Generation2
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: "{{ pubipname }}"
- virtual_network: "{{ vnetname }}"
- tags:
- common: "xyz"
-
- - assert:
- that: output.changed
-
- - name: Update virtual network gateway
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- sku: VpnGw2
- vpn_gateway_generation: Generation2
- ip_configurations:
- - name: testipconfig
- private_ip_allocation_method: Dynamic
- public_ip_address_name: "{{ pubipname }}"
- virtual_network: "{{ vnetname }}"
- tags:
- common: "mno"
-
- register: output
- - assert:
- that: output.changed
-
- - name: Delete virtual network gateway
- azure_rm_virtualnetworkgateway:
- resource_group: "{{ resource_group }}"
- name: "{{ vngname }}"
- state: absent
- register: output
- - assert:
- that: output.changed
+ - name: Create virtual network gateway w/ sku and Generation2
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ sku: VpnGw2
+ vpn_gateway_generation: Generation2
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: "{{ pubipname }}"
+ virtual_network: "{{ vnetname }}"
+ tags:
+ common: "xyz"
+
+ - name: Assert the virtual network gateay created
+ ansible.builtin.assert:
+ that: output.changed
+
+ - name: Update virtual network gateway
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ sku: VpnGw2
+ vpn_gateway_generation: Generation2
+ ip_configurations:
+ - name: testipconfig
+ private_ip_allocation_method: Dynamic
+ public_ip_address_name: "{{ pubipname }}"
+ virtual_network: "{{ vnetname }}"
+ tags:
+ common: "mno"
+ register: output
+ - name: Assert the virtual network gateway updated
+ ansible.builtin.assert:
+ that: output.changed
+
+ - name: Delete virtual network gateway
+ azure_rm_virtualnetworkgateway:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vngname }}"
+ state: absent
+ register: output
+ - name: Assert the virtual network gateway deleted
+ ansible.builtin.assert:
+ that: output.changed
- name: Delete virtual network gateway - idempotent
azure_rm_virtualnetworkgateway:
@@ -192,7 +199,8 @@
name: "{{ vngname }}"
state: absent
register: output
-- assert:
+- name: Assert the virtual network gateway deleted
+ ansible.builtin.assert:
that: not output.changed
# Clean up networking components after test
@@ -202,7 +210,6 @@
name: GatewaySubnet
virtual_network: "{{ vnetname }}"
state: absent
-
- name: Delete public IP address
azure_rm_publicipaddress:
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml
index bf7a4aa13..3464847c1 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualnetworkpeering/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
vnetname1: "vnet1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
vnetname2: "vnet2{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
peering_name: "peering1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 100 | random }}"
@@ -23,7 +23,8 @@
resource_group: "{{ resource_group_secondary }}"
register: vnet2
-- assert:
+- name: Assert the second virtual network created
+ ansible.builtin.assert:
that:
- vnet1.changed
- vnet2.changed
@@ -38,10 +39,11 @@
name: "{{ vnetname2 }}"
allow_virtual_network_access: false
allow_forwarded_traffic: true
- check_mode: yes
+ check_mode: true
register: output
-- assert:
+- name: Assert the virtual network peering check mode
+ ansible.builtin.assert:
that: output.changed
- name: Create virtual network peering
@@ -56,7 +58,8 @@
allow_forwarded_traffic: true
register: output
-- assert:
+- name: Assert the virtual network peering created
+ ansible.builtin.assert:
that: output.changed
- name: Update virtual network peering (idempotent)
@@ -71,7 +74,8 @@
allow_forwarded_traffic: true
register: output
-- assert:
+- name: Assert the virtual network peering idempotent
+ ansible.builtin.assert:
that: not output.changed
- name: Update virtual network peering
@@ -86,7 +90,8 @@
allow_forwarded_traffic: false
register: output
-- assert:
+- name: Assert the virtual network peering updated
+ ansible.builtin.assert:
that: output.changed
- name: Get facts
@@ -97,7 +102,7 @@
register: facts
- name: Assert Facts
- assert:
+ ansible.builtin.assert:
that:
- facts['vnetpeerings'] | length == 1
- facts['vnetpeerings'][0]['id']
@@ -123,4 +128,4 @@
azure_rm_virtualnetwork:
name: "{{ vnetname2 }}"
resource_group: "{{ resource_group_secondary }}"
- state: absent \ No newline at end of file
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualwan/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualwan/tasks/main.yml
index c53b7d513..cb9a21554 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualwan/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_virtualwan/tasks/main.yml
@@ -1,61 +1,65 @@
- - name: Prepare random number
- set_fact:
- rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
-
- - name: Create a VirtualWan
- azure_rm_virtualwan:
- resource_group: "{{ resource_group }}"
- name: "virtualwan{{ rpfx }}"
- office365_local_breakout_category: All
- disable_vpn_encryption: true
- allow_branch_to_branch_traffic: true
- allow_vnet_to_vnet_traffic: true
- virtual_wan_type: Basic
- register: output
-
- - assert:
- that:
- - output.changed
-
- - name: Create a VirtualWan again (Idempotent test)
- azure_rm_virtualwan:
- resource_group: "{{ resource_group }}"
- name: "virtualwan{{ rpfx }}"
- register: output
-
- - assert:
- that:
- - not output.changed
-
- - name: Update the VirtualWan
- azure_rm_virtualwan:
- resource_group: "{{ resource_group }}"
- office365_local_breakout_category: All
- name: "virtualwan{{ rpfx }}"
- disable_vpn_encryption: false
- allow_branch_to_branch_traffic: true
- allow_vnet_to_vnet_traffic: true
- virtual_wan_type: Basic
- register: output
-
- - assert:
- that:
- - output.changed
-
- - name: Get VirtualWan info
- azure_rm_virtualwan_info:
- resource_group: "{{ resource_group }}"
- name: "virtualwan{{ rpfx }}"
- register: output
-
- - assert:
- that:
- - output.virtual_wans[0]['allow_branch_to_branch_traffic'] == true
- - output.virtual_wans[0]['disable_vpn_encryption'] == false
-
- - name: Delete the VirtualWan
- azure_rm_virtualwan:
- resource_group: "{{ resource_group }}"
- name: "virtualwan{{ rpfx }}"
- state: absent
+- name: Prepare random number
+ ansible.builtin.set_fact:
+ rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ run_once: true
+
+- name: Create a VirtualWan
+ azure_rm_virtualwan:
+ resource_group: "{{ resource_group }}"
+ name: "virtualwan{{ rpfx }}"
+ office365_local_breakout_category: All
+ disable_vpn_encryption: true
+ allow_branch_to_branch_traffic: true
+ allow_vnet_to_vnet_traffic: true
+ virtual_wan_type: Basic
+ register: output
+
+- name: Assert the virtual wan created
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Create a VirtualWan again (Idempotent test)
+ azure_rm_virtualwan:
+ resource_group: "{{ resource_group }}"
+ name: "virtualwan{{ rpfx }}"
+ register: output
+
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Update the VirtualWan
+ azure_rm_virtualwan:
+ resource_group: "{{ resource_group }}"
+ office365_local_breakout_category: All
+ name: "virtualwan{{ rpfx }}"
+ disable_vpn_encryption: false
+ allow_branch_to_branch_traffic: true
+ allow_vnet_to_vnet_traffic: true
+ virtual_wan_type: Basic
+ register: output
+
+- name: Assert the virtual wan updated
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Get VirtualWan info
+ azure_rm_virtualwan_info:
+ resource_group: "{{ resource_group }}"
+ name: "virtualwan{{ rpfx }}"
+ register: output
+
+- name: Assert the virtual wan facts
+ ansible.builtin.assert:
+ that:
+ - output.virtual_wans[0]['allow_branch_to_branch_traffic'] == true
+ - output.virtual_wans[0]['disable_vpn_encryption'] == false
+
+- name: Delete the VirtualWan
+ azure_rm_virtualwan:
+ resource_group: "{{ resource_group }}"
+ name: "virtualwan{{ rpfx }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml
index 9eb906f90..46ec87281 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vmbackuppolicy/tasks/main.yml
@@ -1,13 +1,13 @@
- name: Fix resource prefix
- set_fact:
- name: "myPolicy{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "myPolicy{{ resource_group | hash('md5') | truncate(22, True, '') }}"
vault_name: "myVault"
location: "eastus"
- name: Create Azure Recovery Service vault
azure_rm_recoveryservicesvault:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
location: "{{ location }}"
state: "present"
register: vault
@@ -15,38 +15,38 @@
- name: Create VM Backup Policy
azure_rm_vmbackuppolicy:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
vault_name: "{{ vault.response.name }}"
state: "present"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
-
+
- name: Create VM Backup Policy (idempotent)
azure_rm_vmbackuppolicy:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
vault_name: "{{ vault.response.name }}"
state: "present"
register: output
- name: Assert that output has no changed
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- name: Get VM Backup Policy Details
azure_rm_vmbackuppolicy_info:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
vault_name: "{{ vault.response.name }}"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.response.id != None
- output.response.name != None
@@ -54,13 +54,13 @@
- name: Delete VM Backup Policy
azure_rm_vmbackuppolicy:
resource_group: "{{ resource_group }}"
- name: "{{ name }}"
+ name: "{{ name_rpfx }}"
vault_name: "{{ vault.response.name }}"
state: "absent"
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -73,6 +73,6 @@
register: output
- name: Assert that output has changed
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vpnsite/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vpnsite/tasks/main.yml
index 07cb7dd45..7e6dbdf6f 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vpnsite/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_vpnsite/tasks/main.yml
@@ -1,102 +1,106 @@
- - name: Create vpn site name
- set_fact:
- vpn_site: "vpn{{ resource_group | hash('md5') | truncate(22, True, '') }}"
+- name: Create vpn site name
+ ansible.builtin.set_fact:
+ vpn_site: "vpn{{ resource_group | hash('md5') | truncate(22, True, '') }}"
- - name: Create a VpnSite
- azure_rm_vpnsite:
- resource_group: "{{ resource_group }}"
- name: "{{ vpn_site }}"
- ip_address: 10.0.0.0
- is_security_site: true
- device_properties:
- device_vendor: 10.0.0.23
- device_model: test_model
- link_speed_in_mbps: 10
- address_space:
- address_prefixes:
- - 10.0.0.0/16
- bgp_properties:
- asn: 1234
- bgp_peering_address: 192.168.0.0
- o365_policy:
- break_out_categories:
- allow: false
- optimize: false
- default: false
- register: output
-
- - assert:
- that:
- - output.changed
+- name: Create a VpnSite
+ azure_rm_vpnsite:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vpn_site }}"
+ ip_address: 10.0.0.0
+ is_security_site: true
+ device_properties:
+ device_vendor: 10.0.0.23
+ device_model: test_model
+ link_speed_in_mbps: 10
+ address_space:
+ address_prefixes:
+ - 10.0.0.0/16
+ bgp_properties:
+ asn: 1234
+ bgp_peering_address: 192.168.0.0
+ o365_policy:
+ break_out_categories:
+ allow: false
+ optimize: false
+ default: false
+ register: output
- - name: Create the VpnSite without change (Idempotent test)
- azure_rm_vpnsite:
- resource_group: "{{ resource_group }}"
- name: "{{ vpn_site }}"
- ip_address: 10.0.0.0
- is_security_site: true
- device_properties:
- device_vendor: 10.0.0.23
- device_model: test_model
- link_speed_in_mbps: 10
- address_space:
- address_prefixes:
- - 10.0.0.0/16
- bgp_properties:
- asn: 1234
- bgp_peering_address: 192.168.0.0
- o365_policy:
- break_out_categories:
- allow: false
- optimize: false
- default: false
- register: output
-
- - assert:
- that:
- - not output.changed
-
- - name: Update the VpnSite's device properties
- azure_rm_vpnsite:
- resource_group: "{{ resource_group }}"
- name: "{{ vpn_site }}"
- ip_address: 10.0.0.0
- is_security_site: true
- device_properties:
- device_vendor: 10.0.0.23
- device_model: test_model
- link_speed_in_mbps: 100
- address_space:
- address_prefixes:
- - 10.0.0.0/16
- bgp_properties:
- asn: 1234
- bgp_peering_address: 192.168.0.0
- o365_policy:
- break_out_categories:
- allow: false
- optimize: false
- default: false
- register: output
-
- - assert:
- that:
- - output.changed
-
- - name: Get the VpnSite info
- azure_rm_vpnsite_info:
- resource_group: "{{ resource_group }}"
- name: "{{ vpn_site }}"
- register: output
+- name: Assert the vpn site created
+ ansible.builtin.assert:
+ that:
+ - output.changed
- - assert:
- that:
- - "output.vpn_sites[0].is_security_site == true"
- - "output.vpn_sites[0].ip_address == '10.0.0.0'"
- - "output.vpn_sites[0].device_properties.link_speed_in_mbps == 100"
+- name: Create the VpnSite without change (Idempotent test)
+ azure_rm_vpnsite:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vpn_site }}"
+ ip_address: 10.0.0.0
+ is_security_site: true
+ device_properties:
+ device_vendor: 10.0.0.23
+ device_model: test_model
+ link_speed_in_mbps: 10
+ address_space:
+ address_prefixes:
+ - 10.0.0.0/16
+ bgp_properties:
+ asn: 1234
+ bgp_peering_address: 192.168.0.0
+ o365_policy:
+ break_out_categories:
+ allow: false
+ optimize: false
+ default: false
+ register: output
- - name: Delete the VpnSite
- azure_rm_vpnsite:
- resource_group: "{{ resource_group }}"
- name: "{{ vpn_site }}"
- state: absent
+- name: Assert idempotent
+ ansible.builtin.assert:
+ that:
+ - not output.changed
+
+- name: Update the VpnSite's device properties
+ azure_rm_vpnsite:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vpn_site }}"
+ ip_address: 10.0.0.0
+ is_security_site: true
+ device_properties:
+ device_vendor: 10.0.0.23
+ device_model: test_model
+ link_speed_in_mbps: 100
+ address_space:
+ address_prefixes:
+ - 10.0.0.0/16
+ bgp_properties:
+ asn: 1234
+ bgp_peering_address: 192.168.0.0
+ o365_policy:
+ break_out_categories:
+ allow: false
+ optimize: false
+ default: false
+ register: output
+
+- name: Assert the vpn site updated
+ ansible.builtin.assert:
+ that:
+ - output.changed
+
+- name: Get the VpnSite info
+ azure_rm_vpnsite_info:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vpn_site }}"
+ register: output
+
+- name: Assert the vpn site facts
+ ansible.builtin.assert:
+ that:
+ - "output.vpn_sites[0].is_security_site == true"
+ - "output.vpn_sites[0].ip_address == '10.0.0.0'"
+ - "output.vpn_sites[0].device_properties.link_speed_in_mbps == 100"
+
+- name: Delete the VpnSite
+ azure_rm_vpnsite:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vpn_site }}"
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webapp/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webapp/tasks/main.yml
index b286bfe13..42a3abe3c 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webapp/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webapp/tasks/main.yml
@@ -1,15 +1,15 @@
- name: Prepare facts
- set_fact:
+ ansible.builtin.set_fact:
resource_prefix: "{{ resource_group_secondary | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- run_once: yes
+ run_once: true
- name: Fix resource prefix
- set_fact:
+ ansible.builtin.set_fact:
linux_app_plan_resource_group: "{{ resource_group_secondary }}"
- win_app_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}{{ 1000 | random}}winapp"
- linux_app_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}{{ 1000 | random}}linuxapp"
- win_plan_name: "{{ (resource_prefix | replace('-','x'))[-8:] }}winplan"
- linux_plan_name: "{{ (resource_group_secondary | replace('-','x'))[-8:] }}linplan"
+ win_app_name: "{{ (resource_prefix | replace('-', 'x'))[-8:] }}{{ 1000 | random }}winapp"
+ linux_app_name: "{{ (resource_prefix | replace('-', 'x'))[-8:] }}{{ 1000 | random }}linuxapp"
+ win_plan_name: "{{ (resource_prefix | replace('-', 'x'))[-8:] }}winplan"
+ linux_plan_name: "{{ (resource_group_secondary | replace('-', 'x'))[-8:] }}linplan"
slot1_name: "stage1"
- name: Create a windows web app with non-exist app service plan
@@ -29,7 +29,7 @@
plan: "{{ win_plan_name }}"
register: output
-- name: stop the web app
+- name: Stop the web app
azure_rm_webapp:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}2"
@@ -37,19 +37,19 @@
app_state: stopped
register: output
-- name: assert output changed
- assert:
+- name: Assert output changed
+ ansible.builtin.assert:
that:
output.changed
-- name: get the web app
+- name: Get the web app
azure_rm_webapp_info:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}2"
register: stopped
-- name: assert web app is stopped
- assert:
+- name: Assert web app is stopped
+ ansible.builtin.assert:
that:
- stopped.webapps[0].app_state == "Stopped"
@@ -63,7 +63,7 @@
testwebapptag: test
register: output
-- name: get web app with resource group and tag
+- name: Get web app with resource group and tag
azure_rm_webapp_info:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}3"
@@ -71,7 +71,8 @@
- testwebapptag
register: output
-- assert:
+- name: Assert the web app facts
+ ansible.builtin.assert:
that:
- output.webapps | length == 1
@@ -90,17 +91,18 @@
testkey: "testvalue"
register: output
-- name: assert the web app was created
- assert:
+- name: Assert web app was created
+ ansible.builtin.assert:
that: output.changed
-- name: get web app with name
+- name: Get web app with name
azure_rm_webapp_info:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}4"
register: output
-- assert:
+- name: Assert the web app facts
+ ansible.builtin.assert:
that:
- output.webapps | length == 1
- output.webapps[0].app_settings | length == 1
@@ -122,31 +124,32 @@
register: output
- name: Assert the web app was updated
- assert:
+ ansible.builtin.assert:
that:
- - output.changed
+ - output.changed
-- name: get web app with name
+- name: Get web app with name
azure_rm_webapp_info:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}4"
register: output
- name: Assert updating
- assert:
+ ansible.builtin.assert:
that:
- - output.webapps[0].app_settings | length == 2
- - output.webapps[0].app_settings['testkey'] == 'testvalue'
- - output.webapps[0].app_settings['testkey2'] == 'testvalue2'
+ - output.webapps[0].app_settings | length == 2
+ - output.webapps[0].app_settings['testkey'] == 'testvalue'
+ - output.webapps[0].app_settings['testkey2'] == 'testvalue2'
-- name: get web app with return publishing profile
+- name: Get web app with return publishing profile
azure_rm_webapp_info:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}4"
return_publish_profile: true
register: output
-- assert:
+- name: Assert the web app facts
+ ansible.builtin.assert:
that:
- output.webapps | length == 1
- output.webapps[0].publishing_username != ""
@@ -161,7 +164,7 @@
register: output
- name: Assert the web app was updated
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a win web app with python run time and php run time
@@ -179,7 +182,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a docker web app with some app settings
@@ -197,7 +200,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a docker web app with private acr registry
@@ -215,7 +218,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a linux web app with nodejs framework
@@ -242,9 +245,10 @@
version: "6.6"
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that: not output.changed
-
+
- name: Update nodejs framework
azure_rm_webapp:
resource_group: "{{ resource_group }}"
@@ -258,7 +262,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a linux web app with deployment source github
@@ -275,7 +279,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Delete web app
@@ -286,10 +290,10 @@
register: output
- name: Assert the web app was deleted
- assert:
+ ansible.builtin.assert:
that: output.changed
-- name: assert error that java is mutually exclusive with frameworks
+- name: Assert error that java is mutually exclusive with frameworks
azure_rm_webapp:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}11"
@@ -302,7 +306,7 @@
register: fail_win_java_version_mutual_exclusive
failed_when: 'fail_win_java_version_mutual_exclusive.msg != "Java is mutually exclusive with other frameworks."'
-- name: assert error when linux web app, only can specify one framework
+- name: Assert error when linux web app, only can specify one framework
azure_rm_webapp:
resource_group: "{{ resource_group }}"
name: "{{ linux_plan_name }}12"
@@ -333,7 +337,7 @@
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Get facts with publish profile
@@ -344,7 +348,7 @@
register: facts
- name: Assert publish profile returned
- assert:
+ ansible.builtin.assert:
that:
- facts.webapps[0].ftp_publish_url != ''
@@ -370,7 +374,7 @@
ftps_state: "Disabled"
register: output
- name: Assert the web app was created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Create a web app with various site config params - idempotent
@@ -395,7 +399,7 @@
ftps_state: "Disabled"
register: output
- name: Assert the web app not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: Get facts for site config params
@@ -404,7 +408,7 @@
name: "{{ linux_app_name }}-siteconfig"
register: facts
- name: Assert site config params meet expectations
- assert:
+ ansible.builtin.assert:
that:
- facts.webapps[0].always_on
- facts.webapps[0].min_tls_version == '1.2'
@@ -432,7 +436,7 @@
ftps_state: "FtpsOnly"
register: output
- name: Assert the web app was updated
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: Get facts for site config params
@@ -441,7 +445,7 @@
name: "{{ linux_app_name }}-siteconfig"
register: facts
- name: Assert site config params meet expectations
- assert:
+ ansible.builtin.assert:
that:
- facts.webapps[0].always_on
- facts.webapps[0].min_tls_version == '1.2'
@@ -454,12 +458,12 @@
name: "{{ slot1_name }}"
configuration_source: "{{ win_app_name }}13"
app_settings:
- testkey: testvalue
- check_mode: yes
+ testkey: testvalue
+ check_mode: true
register: output
- name: Assert slot check mode creation
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -470,11 +474,11 @@
name: "{{ slot1_name }}"
configuration_source: "{{ win_app_name }}13"
app_settings:
- testkey: testvalueslot
+ testkey: testvalueslot
register: output
- name: Assert slot creation
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -484,11 +488,11 @@
webapp_name: "{{ win_app_name }}13"
name: "{{ slot1_name }}"
app_settings:
- testkey: testvalueslot
+ testkey: testvalueslot
register: output
- name: Assert idempotence
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
@@ -501,11 +505,11 @@
- name: "node"
version: "10.1"
app_settings:
- testkey: testvalue2
+ testkey: testvalue2
register: output
- name: Assert updating
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -519,7 +523,7 @@
register: output
- name: Assert swap
- assert:
+ ansible.builtin.assert:
that:
- output.changed
@@ -532,6 +536,6 @@
register: output
- name: Assert stopped
- assert:
+ ansible.builtin.assert:
that:
- output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml
index 05061d195..9850dd148 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappaccessrestriction/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: true
@@ -30,7 +30,7 @@
register: output
check_mode: true
- name: Assert the resource is well created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: "Create webapp access restriction"
@@ -49,7 +49,7 @@
scm_ip_security_restrictions_use_main: true
register: output
- name: Assert the resource is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 2
@@ -65,7 +65,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert restrictions
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.ip_security_restrictions | length == 2
@@ -91,7 +91,7 @@
scm_ip_security_restrictions_use_main: true
register: output
- name: Assert the resource is not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: "Delete specific webapp access restriction"
@@ -106,7 +106,7 @@
scm_ip_security_restrictions_use_main: true
register: output
- name: Assert the resource is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 1
@@ -126,7 +126,7 @@
scm_ip_security_restrictions_use_main: true
register: output
- name: Assert the resource is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 1
@@ -146,7 +146,7 @@
scm_ip_security_restrictions_use_main: false
register: output
- name: Assert the resource is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 1
@@ -171,7 +171,7 @@
scm_ip_security_restrictions_use_main: false
register: output
- name: Assert the resource is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 1
@@ -203,7 +203,7 @@
scm_ip_security_restrictions_use_main: false
register: output
- name: Assert the resource is updated
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 1
@@ -237,7 +237,7 @@
scm_ip_security_restrictions_use_main: false
register: output
- name: Assert the resource is not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: "Delete webapp access restrictions"
@@ -247,7 +247,7 @@
state: "absent"
register: output
- name: Assert the resource is deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.ip_security_restrictions | length == 0
@@ -260,7 +260,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert no restrictions
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.ip_security_restrictions | length <= 1
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml
index 66a1b55cf..9478e6516 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_webappvnetconnection/tasks/main.yml
@@ -1,5 +1,5 @@
- name: Prepare random number
- set_fact:
+ ansible.builtin.set_fact:
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: true
@@ -42,7 +42,7 @@
check_mode: true
register: output
- name: Assert the resource is well created
- assert:
+ ansible.builtin.assert:
that: output.changed
- name: "Check webapp vnetconnection facts 1"
@@ -51,7 +51,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the resource has no connections
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.connection | length == 0
@@ -64,7 +64,7 @@
subnet: subnet{{ rpfx }}
register: output
- name: Assert the resource is well created
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.connection.vnet_name == 'vnet{{ rpfx }}'
@@ -77,7 +77,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the connection exists
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.connection.vnet_name == 'vnet{{ rpfx }}'
@@ -92,7 +92,7 @@
subnet: subnet{{ rpfx }}
register: output
- name: Assert the resource is not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
- name: "Delete webapp vnetconnection"
@@ -102,7 +102,7 @@
state: "absent"
register: output
- name: Assert the connection is deleted
- assert:
+ ansible.builtin.assert:
that:
- output.changed
- output.connection | length == 0
@@ -113,7 +113,7 @@
resource_group: "{{ resource_group }}"
register: output
- name: Assert the resource has no connections
- assert:
+ ansible.builtin.assert:
that:
- not output.changed
- output.connection | length == 0
@@ -125,5 +125,5 @@
state: "absent"
register: output
- name: Assert the resource is not changed
- assert:
+ ansible.builtin.assert:
that: not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_workspace/tasks/main.yml b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_workspace/tasks/main.yml
index 7f9a05f79..9a7ea1efa 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_workspace/tasks/main.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_workspace/tasks/main.yml
@@ -1,128 +1,140 @@
- name: Prepare random number
- set_fact:
- name: "workspace{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ ansible.builtin.set_fact:
+ name_rpfx: "workspace{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Create workspace (check mode)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- retention_in_days: 40
- check_mode: yes
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ retention_in_days: 40
+ check_mode: true
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the workspace check mode
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Get workspace
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
register: facts
-- assert:
- that:
- - facts.workspaces | length == 0
+- name: Assert the workspace facts
+ ansible.builtin.assert:
+ that:
+ - facts.workspaces | length == 0
- name: Create workspace
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- retention_in_days: 40
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ retention_in_days: 40
register: output
-- assert:
+- name: Assert the workspace created
+ ansible.builtin.assert:
that:
- - output.retention_in_days == 40
- - output.changed
- - output.intelligence_packs
+ - output.retention_in_days == 40
+ - output.changed
+ - output.intelligence_packs
- name: Create workspace (idempontent)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- retention_in_days: 40
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ retention_in_days: 40
register: output
-- assert:
+- name: Assert idempotent
+ ansible.builtin.assert:
that:
- - not output.changed
+ - not output.changed
- name: Get workspace
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
register: facts
-- assert:
- that:
- - facts.workspaces | length == 1
- - facts.workspaces[0].id == output.id
+- name: Assert the loganalytics workspace facts
+ ansible.builtin.assert:
+ that:
+ - facts.workspaces | length == 1
+ - facts.workspaces[0].id == output.id
-- set_fact:
- pack: "{{ pack | default({}) | combine({output.intelligence_packs[0].name: not output.intelligence_packs[0].enabled}) }}"
+- name: Set parameters
+ ansible.builtin.set_fact:
+ pack: "{{ pack | default({}) | combine({output.intelligence_packs[0].name: not output.intelligence_packs[0].enabled}) }}"
- name: Update intelligence pack
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- intelligence_packs: "{{ pack }}"
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ intelligence_packs: "{{ pack }}"
register: intelligence
-- assert:
- that:
- - intelligence.intelligence_packs[0].enabled != output.intelligence_packs[0].enabled
+- name: Assert the loganalytics workspace updated
+ ansible.builtin.assert:
+ that:
+ - intelligence.intelligence_packs[0].enabled != output.intelligence_packs[0].enabled
- name: Remove workspace (check mode)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
- check_mode: yes
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
+ check_mode: true
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the loganalytics workspace check mode
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Get workspace
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
register: facts
-- assert:
- that:
- - facts.workspaces | length == 1
+- name: Assert the loganalystics workspace facts
+ ansible.builtin.assert:
+ that:
+ - facts.workspaces | length == 1
- name: Remove workspace
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
register: output
-- assert:
- that:
- - output.changed
+- name: Assert the loganalytics workspace deleted
+ ansible.builtin.assert:
+ that:
+ - output.changed
- name: Get workspace
azure_rm_loganalyticsworkspace_info:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
register: facts
-- assert:
- that:
- - facts.workspaces | length == 0
+- name: Assert the loganalystics workspace facts
+ ansible.builtin.assert:
+ that:
+ - facts.workspaces | length == 0
- name: Remove workspace (idempontent)
azure_rm_loganalyticsworkspace:
- name: "{{ name }}"
- resource_group: "{{ resource_group }}"
- state: absent
+ name: "{{ name_rpfx }}"
+ resource_group: "{{ resource_group }}"
+ state: absent
register: output
-- assert:
- that:
- - not output.changed
+- name: Assert the loganalystics workspace deleted
+ ansible.builtin.assert:
+ that:
+ - not output.changed
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml
index 6ed4067af..79699d69b 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/create_inventory_config.yml
@@ -1,11 +1,13 @@
---
-- hosts: localhost
+- name: Config inventory file
+ hosts: localhost
connection: local
- gather_facts: no
+ gather_facts: false
vars:
template_name: "../templates/{{ template | default('basic.yml') }}"
tasks:
- - name: write inventory config file
- copy:
+ - name: Write inventory config file
+ ansible.builtin.copy:
dest: ../test.azure_rm.yml
content: "{{ lookup('template', template_name) }}"
+ mode: preserve
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml
index 06a427931..41811854b 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/empty_inventory_config.yml
@@ -1,9 +1,11 @@
---
-- hosts: localhost
+- name: Empty inventory file
+ hosts: localhost
connection: local
- gather_facts: no
+ gather_facts: false
tasks:
- - name: write inventory config file
- copy:
+ - name: Write inventory config file
+ ansible.builtin.copy:
dest: ../test.azure_rm.yml
content: ""
+ mode: preserve
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/setup.yml b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/setup.yml
index a8358089f..f162e9134 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/setup.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/setup.yml
@@ -1,48 +1,49 @@
---
-- hosts: localhost
+- name: Set hosts
+ hosts: localhost
connection: local
- gather_facts: no
-
+ gather_facts: false
tasks:
- - include_vars: vars.yml
- - name: SETUP | Create storage account
- azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ storage_account }}"
- account_type: Standard_LRS
+ - name: Set facts
+ ansible.builtin.include_vars: vars.yml
+ - name: SETUP | Create storage account
+ azure_rm_storageaccount:
+ resource_group: "{{ resource_group }}"
+ name: "{{ storage_account }}"
+ account_type: Standard_LRS
- - name: SETUP | Create availability set
- azure_rm_availabilityset:
- name: "{{ availability_set }}"
- resource_group: "{{ resource_group }}"
+ - name: SETUP | Create availability set
+ azure_rm_availabilityset:
+ name: "{{ availability_set }}"
+ resource_group: "{{ resource_group }}"
- - name: SETUP | Create virtual network
- azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ network_name }}"
- address_prefixes: "{{ network }}"
+ - name: SETUP | Create virtual network
+ azure_rm_virtualnetwork:
+ resource_group: "{{ resource_group }}"
+ name: "{{ network_name }}"
+ address_prefixes: "{{ network }}"
- - name: SETUP | Create subnet
- azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- name: "{{ subnet_name }}"
- address_prefix: "{{ subnet }}"
- virtual_network: "{{ network_name }}"
+ - name: SETUP | Create subnet
+ azure_rm_subnet:
+ resource_group: "{{ resource_group }}"
+ name: "{{ subnet_name }}"
+ address_prefix: "{{ subnet }}"
+ virtual_network: "{{ network_name }}"
- - name: Create minimal VM with defaults
- azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- admin_username: testuser
- ssh_password_enabled: false
- ssh_public_keys:
- - path: /home/testuser/.ssh/authorized_keys
- key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
- vm_size: Standard_B1ms
- virtual_network: "{{ network_name }}"
- image:
- offer: UbuntuServer
- publisher: Canonical
- sku: 16.04-LTS
- version: latest
- register: vm_output
+ - name: Create minimal VM with defaults
+ azure_rm_virtualmachine:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ admin_username: testuser
+ ssh_password_enabled: false
+ ssh_public_keys:
+ - path: /home/testuser/.ssh/authorized_keys
+ key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com"
+ vm_size: Standard_B1ms
+ virtual_network: "{{ network_name }}"
+ image:
+ offer: 0001-com-ubuntu-server-focal
+ publisher: Canonical
+ sku: 20_04-lts
+ version: latest
+ register: vm_output
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/teardown.yml b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/teardown.yml
index 3a1adfdd4..2a131033a 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/teardown.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/teardown.yml
@@ -1,40 +1,42 @@
---
-- hosts: localhost
+- name: Destroy all resource
+ hosts: localhost
connection: local
- gather_facts: no
+ gather_facts: false
tasks:
- - include_vars: vars.yml
+ - name: Set facts
+ ansible.builtin.include_vars: vars.yml
- - name: Delete VM
- azure_rm_virtualmachine:
- resource_group: "{{ resource_group }}"
- name: "{{ vm_name }}"
- remove_on_absent: all_autocreated
- state: absent
+ - name: Delete VM
+ azure_rm_virtualmachine:
+ resource_group: "{{ resource_group }}"
+ name: "{{ vm_name }}"
+ remove_on_absent: all_autocreated
+ state: absent
- - name: Destroy subnet
- azure_rm_subnet:
- resource_group: "{{ resource_group }}"
- virtual_network: "{{ network_name }}"
- name: "{{ subnet_name }}"
- state: absent
+ - name: Destroy subnet
+ azure_rm_subnet:
+ resource_group: "{{ resource_group }}"
+ virtual_network: "{{ network_name }}"
+ name: "{{ subnet_name }}"
+ state: absent
- - name: Destroy virtual network
- azure_rm_virtualnetwork:
- resource_group: "{{ resource_group }}"
- name: "{{ network_name }}"
- state: absent
+ - name: Destroy virtual network
+ azure_rm_virtualnetwork:
+ resource_group: "{{ resource_group }}"
+ name: "{{ network_name }}"
+ state: absent
- - name: Destroy availability set
- azure_rm_availabilityset:
- resource_group: "{{ resource_group }}"
- name: "{{ availability_set }}"
- state: absent
+ - name: Destroy availability set
+ azure_rm_availabilityset:
+ resource_group: "{{ resource_group }}"
+ name: "{{ availability_set }}"
+ state: absent
- - name: Destroy storage account
- azure_rm_storageaccount:
- resource_group: "{{ resource_group }}"
- name: "{{ storage_account }}"
- force_delete_nonempty: yes
- state: absent \ No newline at end of file
+ - name: Destroy storage account
+ azure_rm_storageaccount:
+ resource_group: "{{ resource_group }}"
+ name: "{{ storage_account }}"
+ force_delete_nonempty: true
+ state: absent
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/test_inventory.yml b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/test_inventory.yml
index fd39a273c..b00e48247 100644
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/test_inventory.yml
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/playbooks/test_inventory.yml
@@ -1,16 +1,20 @@
---
-- hosts: localhost
+- name: Config hosts
+ hosts: localhost
connection: local
- gather_facts: no
+ gather_facts: false
tasks:
- - include_vars: vars.yml
+ - name: Set facts
+ ansible.builtin.include_vars: vars.yml
- - name: Pause for 10 mimutes for updating
- shell: sleep 600
+ - name: Pause for 10 mimutes for updating
+ ansible.builtin.command: sleep 600
+ changed_when: false
- - meta: refresh_inventory
+ - name: Refresh inventory
+ ansible.builtin.meta: refresh_inventory
- - name: Test Inventory
- assert:
- that:
- - vm_name in hostvars
+ - name: Test Inventory
+ ansible.builtin.assert:
+ that:
+ - vm_name in hostvars
diff --git a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/runme.sh b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/runme.sh
index 6f381c0a5..6f381c0a5 100644..100755
--- a/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/runme.sh
+++ b/ansible_collections/azure/azcollection/tests/integration/targets/inventory_azure/runme.sh
diff --git a/ansible_collections/azure/azcollection/tests/lint/ignore-lint.txt b/ansible_collections/azure/azcollection/tests/lint/ignore-lint.txt
new file mode 100644
index 000000000..55878110f
--- /dev/null
+++ b/ansible_collections/azure/azcollection/tests/lint/ignore-lint.txt
@@ -0,0 +1,5 @@
+---
+skip_list:
+ - yaml[line-length]
+ - sanity[cannot-ignore]
+ - no-handler
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.10.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.10.txt
deleted file mode 100644
index bde4b19b6..000000000
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.10.txt
+++ /dev/null
@@ -1,270 +0,0 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_aks.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_galleryimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_iothubconsumergroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:mutually_exclusive-unknown
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabenvironment.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_vmbackuppolicy.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
-tests/utils/shippable/check_matrix.py replace-urlopen
-tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.11.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.11.txt
deleted file mode 100644
index bde4b19b6..000000000
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.11.txt
+++ /dev/null
@@ -1,270 +0,0 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_aks.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_galleryimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_iothubconsumergroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:mutually_exclusive-unknown
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabenvironment.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_vmbackuppolicy.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
-tests/utils/shippable/check_matrix.py replace-urlopen
-tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.12.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.12.txt
deleted file mode 100644
index bde4b19b6..000000000
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.12.txt
+++ /dev/null
@@ -1,270 +0,0 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_aks.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_galleryimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_iothubconsumergroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:mutually_exclusive-unknown
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabenvironment.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_vmbackuppolicy.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
-tests/utils/shippable/check_matrix.py replace-urlopen
-tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.13.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.13.txt
index 8d42b0a2c..44a2ab267 100644
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.13.txt
+++ b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.13.txt
@@ -1,269 +1,18 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_aks.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_galleryimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_iothubconsumergroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:mutually_exclusive-unknown
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabenvironment.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_vmbackuppolicy.py validate-modules:parameter-list-no-elements
plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
tests/utils/shippable/check_matrix.py replace-urlopen
tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.14.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.14.txt
index 20be76d1f..44a2ab267 100644
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.14.txt
+++ b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.14.txt
@@ -1,266 +1,18 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_aks.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimage.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_galleryimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_iothubconsumergroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_publicipaddress.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_securitygroup.py validate-modules:mutually_exclusive-unknown
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webapp.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_webappslot.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabenvironment.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_snapshot.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-required-mismatch
plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword_info.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
-plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:parameter-list-no-elements
-plugins/modules/azure_rm_subnet.py validate-modules:doc-elements-mismatch
-plugins/modules/azure_rm_vmbackuppolicy.py validate-modules:parameter-list-no-elements
plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
tests/utils/shippable/check_matrix.py replace-urlopen
tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.15.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.15.txt
new file mode 100644
index 000000000..44a2ab267
--- /dev/null
+++ b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.15.txt
@@ -0,0 +1,18 @@
+plugins/modules/azure_rm_apimanagement.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_dnsrecordset.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_gallery.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_galleryimage.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_galleryimageversion.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_managementgroup.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_registrationdefinition.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_registrationassignment.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_virtualwan.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_snapshot.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_vpnsite.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_batchaccount.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_azurefirewall.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_apimanagementservice.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_openshiftmanagedcluster.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_privatednsrecordset.py validate-modules:invalid-ansiblemodule-schema
+tests/utils/shippable/check_matrix.py replace-urlopen
+tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.9.txt b/ansible_collections/azure/azcollection/tests/sanity/ignore-2.9.txt
deleted file mode 100644
index 3947cceb3..000000000
--- a/ansible_collections/azure/azcollection/tests/sanity/ignore-2.9.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-plugins/modules/azure_rm_aks.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_aks.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aks.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_appgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_availabilityset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistryreplication_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_containerregistrywebhook_info.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_datalakestore.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_deployment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_galleryimageversion.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvault.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_keyvault.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultkey.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_keyvaultsecret.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_networkinterface.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_networkinterface_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resource_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_securitygroup.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_securitygroup.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_securitygroup.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_storageaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_storageblob.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachine_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualwan.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_webappslot.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_autoscale.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlab.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabartifactsource.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabcustomimage.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabpolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_devtestlabvirtualmachine.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_devtestlabvirtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_loadbalancer.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_loganalyticsworkspace.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbdatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mariadbserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_mysqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlconfiguration.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_postgresqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_rediscache.py validate-modules:doc-type-does-not-match-spec
-plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_rediscachefirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_route.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebusqueue.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopic.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebustopicsubscription.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_servicebussaspolicy.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanager.py validate-modules:invalid-documentation
-plugins/modules/azure_rm_trafficmanager.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerendpoint.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_trafficmanagerprofile.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-choices-do-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-default-does-not-match-spec
-plugins/modules/azure_rm_virtualnetworkgateway.py validate-modules:doc-missing-type
-plugins/modules/azure_rm_batchaccount.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnprofile.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cosmosdbaccount.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_devtestlabschedule.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:missing-suboption-docs
-plugins/modules/azure_rm_azurefirewall.py validate-modules:parameter-type-not-in-doc
-plugins/modules/azure_rm_azurefirewall.py validate-modules:undocumented-parameter
-plugins/modules/azure_rm_adpassword.py validate-modules:nonexistent-parameter-documented
-plugins/modules/azure_rm_adpassword.py validate-modules:return-syntax-error
-plugins/modules/azure_rm_adpassword.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adpassword_info.py validate-modules:import-before-documentation
-plugins/modules/azure_rm_adserviceprincipal.py validate-modules:nonexistent-parameter-documented
-tests/utils/shippable/check_matrix.py replace-urlopen
-tests/utils/shippable/timing.py shebang
diff --git a/ansible_collections/azure/azcollection/tests/utils/ado/ado.sh b/ansible_collections/azure/azcollection/tests/utils/ado/ado.sh
index b313208ce..bd8a195b3 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/ado/ado.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/ado/ado.sh
@@ -67,6 +67,8 @@ mkdir -p shippable/testresults
pip install -I -r "${TEST_DIR}/requirements-azure.txt"
pip install -I -r "${TEST_DIR}/sanity-requirements-azure.txt"
+pip install ansible-lint
+
timeout=90
if [ "$4" = "all" ]
@@ -107,8 +109,11 @@ AZURE_MANAGED_BY_TENANT_ID:${AZURE_MANAGED_BY_TENANT_ID}
AZURE_ROLE_DEFINITION_ID:${AZURE_ROLE_DEFINITION_ID}
EOF
+rm -rf "ansible"
+
if [ "sanity" = "${group}" ]
then
+ ansible-lint --exclude "tests/integration/targets/inventory_azure/playbooks/vars.yml" --force-color -c "tests/lint/ignore-lint.txt"
ansible-test sanity --color -v --junit
else
ansible-test integration --color -v --retry-on-error "shippable/azure/group${group}/" --allow-destructive
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/azure.sh b/ansible_collections/azure/azcollection/tests/utils/shippable/azure.sh
index da037e09e..da037e09e 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/azure.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/azure.sh
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/check_matrix.py b/ansible_collections/azure/azcollection/tests/utils/shippable/check_matrix.py
index 96a377589..96a377589 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/check_matrix.py
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/check_matrix.py
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/cloud.sh b/ansible_collections/azure/azcollection/tests/utils/shippable/cloud.sh
index da037e09e..da037e09e 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/cloud.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/cloud.sh
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/sanity.sh b/ansible_collections/azure/azcollection/tests/utils/shippable/sanity.sh
index 0c54a42c8..0c54a42c8 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/sanity.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/sanity.sh
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/shippable.sh b/ansible_collections/azure/azcollection/tests/utils/shippable/shippable.sh
index b67235789..b67235789 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/shippable.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/shippable.sh
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/timing.py b/ansible_collections/azure/azcollection/tests/utils/shippable/timing.py
index d9456855d..d9456855d 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/timing.py
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/timing.py
diff --git a/ansible_collections/azure/azcollection/tests/utils/shippable/timing.sh b/ansible_collections/azure/azcollection/tests/utils/shippable/timing.sh
index 77e257830..77e257830 100644..100755
--- a/ansible_collections/azure/azcollection/tests/utils/shippable/timing.sh
+++ b/ansible_collections/azure/azcollection/tests/utils/shippable/timing.sh
diff --git a/ansible_collections/azure/azcollection/ansible.cfg b/ansible_collections/grafana/grafana/ansible.cfg
index fecf5b666..fecf5b666 100644
--- a/ansible_collections/azure/azcollection/ansible.cfg
+++ b/ansible_collections/grafana/grafana/ansible.cfg