summaryrefslogtreecommitdiffstats
path: root/collections-debian-merged/ansible_collections/community/azure/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
commita453ac31f3428614cceb99027f8efbdb9258a40b (patch)
treef61f87408f32a8511cbd91799f9cececb53e0374 /collections-debian-merged/ansible_collections/community/azure/tests
parentInitial commit. (diff)
downloadansible-upstream.tar.xz
ansible-upstream.zip
Adding upstream version 2.10.7+merged+base+2.10.8+dfsg.upstream/2.10.7+merged+base+2.10.8+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'collections-debian-merged/ansible_collections/community/azure/tests')
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/.gitignore1
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/aliases4
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml74
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/aliases17
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml714
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/aliases8
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml581
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/aliases10
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml581
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/aliases10
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml552
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/aliases4
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml95
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/aliases5
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/tasks/main.yml269
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/aliases4
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml269
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/aliases8
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml375
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/aliases4
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/inventory.yml66
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/main.yml7
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/runme.sh5
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml78
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml116
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml31
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml64
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml38
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml236
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml22
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/aliases4
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml167
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/aliases7
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml547
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/aliases5
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/meta/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/tasks/main.yml369
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/setup_azure/aliases0
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/requirements.yml3
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/sanity/ignore-2.10.txt270
-rw-r--r--collections-debian-merged/ansible_collections/community/azure/tests/sanity/requirements.txt4
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/ado/ado.sh124
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/azure.sh19
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/check_matrix.py120
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/cloud.sh19
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/sanity.sh27
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/shippable.sh202
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.py16
-rwxr-xr-xcollections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.sh5
60 files changed, 6180 insertions, 0 deletions
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/.gitignore b/collections-debian-merged/ansible_collections/community/azure/tests/.gitignore
new file mode 100644
index 00000000..ea1472ec
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/.gitignore
@@ -0,0 +1 @@
+output/
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/aliases
new file mode 100644
index 00000000..7bf5a027
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/aliases
@@ -0,0 +1,4 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_automationaccount_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml
new file mode 100644
index 00000000..025bba9a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_automationaccount/tasks/main.yml
@@ -0,0 +1,74 @@
+- name: Prepare random number
+ 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: true
+- name: Create automation account
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+- assert:
+ that:
+ - output.changed
+- name: Create automation account
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+- assert:
+ that:
+ - output.changed
+ - output.id
+- name: Create automation account
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+- assert:
+ that:
+ - not output.changed
+- name: Get automation account
+ azure_rm_automationaccount_facts:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+ list_statistics: true
+ list_usages: true
+ list_keys: true
+ register: facts
+- 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"
+- name: Delete account
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+ state: absent
+- assert:
+ that:
+ - output.changed
+- name: Delete account
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+ state: absent
+- assert:
+ that:
+ - output.changed
+- name: Delete account
+ register: output
+ azure.azcollection.azure_rm_automationaccount:
+ name: '{{ name }}'
+ resource_group: '{{ resource_group }}'
+ state: absent
+- assert:
+ that:
+ - not output.changed
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/aliases
new file mode 100644
index 00000000..d8e65689
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/aliases
@@ -0,0 +1,17 @@
+cloud/azure
+destructive
+shippable/azure/group1
+azure_rm_devtestlab_facts
+azure_rm_devtestlabarmtemplate
+azure_rm_devtestlabartifact
+azure_rm_devtestlabartifactsource_facts
+azure_rm_devtestlabartifactsource
+azure_rm_devtestlabcustomimage
+azure_rm_devtestlabpolicy
+azure_rm_devtestlabschedule
+azure_rm_devtestlabvirtualmachine_facts
+azure_rm_devtestlabvirtualmachine_facts
+azure_rm_devtestlabvirtualnetwork_facts
+azure_rm_devtestlabvirtualnetwork
+disabled
+
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml
new file mode 100644
index 00000000..45090966
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_devtestlab/tasks/main.yml
@@ -0,0 +1,714 @@
+- name: Prepare random number
+ set_fact:
+ lab_name: lab{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}
+ vn_name: vn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}
+ vm_name: vn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}
+ artifacts_name: myartifacts
+ github_token: '{{ lookup(''env'',''GITHUB_ACCESS_TOKEN'') }}'
+ run_once: true
+- name: Create instance of Lab -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ location: eastus
+ storage_type: standard
+ premium_data_disks: false
+- name: Check if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Lab
+ register: output_lab
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ location: eastus
+ storage_type: standard
+ premium_data_disks: false
+- name: Check if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Create again instance of Lab
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ location: eastus
+ storage_type: standard
+ premium_data_disks: false
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+- name: Update lab - premium_data_disks
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ location: eastus
+ storage_type: standard
+ premium_data_disks: true
+- name: Assert the change was registered
+ assert:
+ that:
+ - output.changed
+- name: List DevTest Lab in a resource group
+ azure_rm_devtestlab_facts:
+ resource_group: '{{ resource_group }}'
+ register: output_lab
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output_lab.changed == False
+ - output_lab.labs[0]['id'] != None
+ - output_lab.labs[0]['resource_group'] != None
+ - output_lab.labs[0]['name'] != None
+ - output_lab.labs[0]['location'] != None
+ - output_lab.labs[0]['storage_type'] != None
+ - output_lab.labs[0]['premium_data_disks'] != None
+ - output_lab.labs[0]['provisioning_state'] != None
+ - output_lab.labs[0]['vault_name'] != None
+- name: Get DevTest Lab facts
+ azure_rm_devtestlab_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ register: output_lab
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output_lab.changed == False
+ - output_lab.labs[0]['id'] != None
+ - output_lab.labs[0]['resource_group'] != None
+ - output_lab.labs[0]['name'] != None
+ - output_lab.labs[0]['location'] != None
+ - output_lab.labs[0]['storage_type'] != None
+ - output_lab.labs[0]['premium_data_disks'] != None
+ - output_lab.labs[0]['provisioning_state'] != None
+ - output_lab.labs[0]['artifacts_storage_account'] != None
+ - output_lab.labs[0]['default_premium_storage_account'] != None
+ - output_lab.labs[0]['default_storage_account'] != None
+ - output_lab.labs[0]['premium_data_disk_storage_account'] != None
+ - output_lab.labs[0]['vault_name'] != None
+- name: Create instance of DevTest Lab Policy
+ register: output
+ azure.azcollection.azure_rm_devtestlabpolicy:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ policy_set_name: default
+ name: myDtlPolicy
+ fact_name: user_owned_lab_vm_count
+ threshold: 5
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Create instance of DevTest Lab Policy -- idempotent
+ register: output
+ azure.azcollection.azure_rm_devtestlabpolicy:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ policy_set_name: default
+ name: myDtlPolicy
+ fact_name: user_owned_lab_vm_count
+ threshold: 5
+- debug:
+ var: output
+- name: Assert if the change was not reported
+ assert:
+ that:
+ - not output.changed
+- name: Create instance of DevTest Lab Policy -- change value
+ register: output
+ azure.azcollection.azure_rm_devtestlabpolicy:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ policy_set_name: default
+ name: myDtlPolicy
+ fact_name: user_owned_lab_vm_count
+ threshold: 6
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of DevTest Lab Policy
+ register: output
+ azure.azcollection.azure_rm_devtestlabpolicy:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ policy_set_name: default
+ name: myDtlPolicy
+ state: absent
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Create instance of DevTest Lab Schedule
+ register: output
+ azure.azcollection.azure_rm_devtestlabschedule:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: lab_vms_shutdown
+ time: '1030'
+ time_zone_id: UTC+12
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Update instance of DevTest Lab Schedule -- idempotent
+ register: output
+ azure.azcollection.azure_rm_devtestlabschedule:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: lab_vms_shutdown
+ time: '1030'
+ time_zone_id: UTC+12
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - not output.changed
+- name: Update instance of DevTest Lab Schedule -- change time
+ register: output
+ azure.azcollection.azure_rm_devtestlabschedule:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: lab_vms_shutdown
+ time: '1130'
+ time_zone_id: UTC+12
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of DevTest Lab Schedule
+ register: output
+ azure.azcollection.azure_rm_devtestlabschedule:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: lab_vms_shutdown
+ state: absent
+- debug:
+ var: output
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Create instance of DevTest Labs virtual network
+ register: output
+ azure.azcollection.azure_rm_devtestlabvirtualnetwork:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vn_name }}'
+ location: eastus
+ description: My DevTest Lab
+- name: Assert the change was registered
+ assert:
+ that:
+ - output.changed
+- name: Update instance of DevTest Labs virtual network with same parameters
+ register: output
+ azure.azcollection.azure_rm_devtestlabvirtualnetwork:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vn_name }}'
+ location: eastus
+ description: My DevTest Lab
+- name: Assert that nothing was changed
+ assert:
+ that:
+ - output.changed == false
+- name: Update instance of DevTest Labs virtual network with changed description
+ register: output
+ azure.azcollection.azure_rm_devtestlabvirtualnetwork:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vn_name }}'
+ location: eastus
+ description: My DevTest Lab Updated
+- name: Assert that nothing was changed
+ assert:
+ that:
+ - output.changed
+- name: Get DevTest Lab Virtual Network facts
+ azure_rm_devtestlabvirtualnetwork_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vn_name }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.virtualnetworks[0]['id'] != None
+ - output.virtualnetworks[0]['resource_group'] != None
+ - output.virtualnetworks[0]['lab_name'] != None
+ - output.virtualnetworks[0]['name'] != None
+ - output.virtualnetworks[0]['external_provider_resource_id'] != None
+ - output.virtualnetworks[0]['description'] != None
+ - output.virtualnetworks[0]['provisioning_state'] != None
+- name: List all Virtual Networks in DevTest Lab
+ azure_rm_devtestlabvirtualnetwork_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.virtualnetworks[0]['id'] != None
+ - output.virtualnetworks[0]['resource_group'] != None
+ - output.virtualnetworks[0]['lab_name'] != None
+ - output.virtualnetworks[0]['name'] != None
+ - output.virtualnetworks[0]['external_provider_resource_id'] != None
+ - output.virtualnetworks[0]['description'] != None
+ - output.virtualnetworks[0]['provisioning_state'] != None
+- name: Create instance of DevTest Labs artifacts source
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabartifactsource:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ artifacts_name }}'
+ uri: https://github.com/Azure/azure_preview_modules.git
+ source_type: github
+ folder_path: /tasks
+ security_token: '{{ github_token }}'
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Update instance of DevTest Labs artifacts source with same parameters
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabartifactsource:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ artifacts_name }}'
+ uri: https://github.com/Azure/azure_preview_modules.git
+ source_type: github
+ folder_path: /tasks
+ security_token: '{{ github_token }}'
+- name: Assert that nothing was changed
+ assert:
+ that:
+ - output.changed == false
+ when: github_token | length > 0
+- name: Update instance of DevTest Labs artifacts source, add display name, change folder
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabartifactsource:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ artifacts_name }}'
+ uri: https://github.com/Azure/azure_preview_modules.git
+ source_type: github
+ folder_path: /library
+ security_token: '{{ github_token }}'
+ display_name: My Artifacts Source
+- name: Assert that nothing was changed
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: null
+ set_fact:
+ artifact_source:
+ - source_name: public repo
+ source_path: /Artifacts/linux-install-mongodb
+ when: github_token | length > 0
+- name: null
+ set_fact:
+ artifact_source: null
+ when: github_token | length == 0
+- name: Create instance of DTL Virtual Machine
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabvirtualmachine:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vm_name }}'
+ notes: Virtual machine notes, just something....
+ os_type: linux
+ vm_size: Standard_A2_v2
+ user_name: dtladmin
+ password: ZSasfovobocu$$21!
+ lab_subnet:
+ virtual_network_name: '{{ vn_name }}'
+ name: '{{ vn_name }}Subnet'
+ disallow_public_ip_address: false
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ os_type: Linux
+ version: latest
+ artifacts: '{{ artifact_source }}'
+ allow_claim: false
+ expiration_date: '2029-02-22T01:49:12.117974Z'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Update instance of DTL Virtual Machine with same parameters
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabvirtualmachine:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vm_name }}'
+ notes: Virtual machine notes, just something....
+ os_type: linux
+ vm_size: Standard_A2_v2
+ user_name: dtladmin
+ password: ZSasfovobocu$$21!
+ lab_subnet:
+ virtual_network_name: '{{ vn_name }}'
+ name: '{{ vn_name }}Subnet'
+ disallow_public_ip_address: false
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ os_type: Linux
+ version: latest
+ artifacts: '{{ artifact_source }}'
+ allow_claim: false
+ expiration_date: '2029-02-22T01:49:12.117974Z'
+- name: Assert that nothing has changed
+ assert:
+ that:
+ - output.changed == false
+ when: github_token | length > 0
+- name: Update instance of DTL Virtual Machine - change notes
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabvirtualmachine:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vm_name }}'
+ notes: Virtual machine notes, just something.... more text
+ os_type: linux
+ vm_size: Standard_A2_v2
+ user_name: dtladmin
+ password: ZSasfovobocu$$21!
+ lab_subnet:
+ virtual_network_name: '{{ vn_name }}'
+ name: '{{ vn_name }}Subnet'
+ disallow_public_ip_address: false
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ os_type: Linux
+ version: latest
+ artifacts: '{{ artifact_source }}'
+ allow_claim: false
+ expiration_date: '2029-02-22T01:49:12.117974Z'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Get Facts of DTL Virtual Machine
+ azure_rm_devtestlabvirtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ vm_name }}'
+ register: output_vm
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output_vm.changed == False
+ - output_vm.virtualmachines[0]['id'] != None
+ - output_vm.virtualmachines[0]['resource_group'] != None
+ - output_vm.virtualmachines[0]['lab_name'] != None
+ - output_vm.virtualmachines[0]['name'] != None
+ - output_vm.virtualmachines[0]['compute_vm_id'] != None
+ - output_vm.virtualmachines[0]['compute_vm_resource_group'] != None
+ - output_vm.virtualmachines[0]['compute_vm_name'] != None
+ - output_vm.virtualmachines[0]['disallow_public_ip_address'] != None
+ - output_vm.virtualmachines[0]['expiration_date'] != None
+ - output_vm.virtualmachines[0]['fqdn'] != None
+ - output_vm.virtualmachines[0]['id'] != None
+ - output_vm.virtualmachines[0]['image'] != None
+ - output_vm.virtualmachines[0]['notes'] != None
+ - output_vm.virtualmachines[0]['os_type'] != None
+ - output_vm.virtualmachines[0]['provisioning_state'] != None
+ - output_vm.virtualmachines[0]['storage_type'] != None
+ - output_vm.virtualmachines[0]['user_name'] != None
+ - output_vm.virtualmachines[0]['vm_size'] != None
+ when: github_token | length > 0
+- name: List Facts of DTL Virtual Machine
+ azure_rm_devtestlabvirtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ register: output_vm
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output_vm.changed == False
+ - output_vm.virtualmachines[0]['id'] != None
+ - output_vm.virtualmachines[0]['resource_group'] != None
+ - output_vm.virtualmachines[0]['lab_name'] != None
+ - output_vm.virtualmachines[0]['name'] != None
+ - output_vm.virtualmachines[0]['compute_vm_id'] != None
+ - output_vm.virtualmachines[0]['disallow_public_ip_address'] != None
+ - output_vm.virtualmachines[0]['expiration_date'] != None
+ - output_vm.virtualmachines[0]['fqdn'] != None
+ - output_vm.virtualmachines[0]['id'] != None
+ - output_vm.virtualmachines[0]['image'] != None
+ - output_vm.virtualmachines[0]['notes'] != None
+ - output_vm.virtualmachines[0]['os_type'] != None
+ - output_vm.virtualmachines[0]['provisioning_state'] != None
+ - output_vm.virtualmachines[0]['storage_type'] != None
+ - output_vm.virtualmachines[0]['user_name'] != None
+ - output_vm.virtualmachines[0]['vm_size'] != None
+ when: github_token | length > 0
+- name: List all artifact sources
+ azure_rm_devtestlabartifactsource_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.artifactsources[0]['id'] != None
+ - output.artifactsources[0]['resource_group'] != None
+ - output.artifactsources[0]['lab_name'] != None
+ - output.artifactsources[0]['name'] != None
+ - output.artifactsources[0]['display_name'] != None
+ - output.artifactsources[0]['source_type'] != None
+ - output.artifactsources[0]['is_enabled'] != None
+ - output.artifactsources[0]['uri'] != None
+ - output.artifactsources[0]['folder_path'] != None
+ - output.artifactsources[0]['provisioning_state'] != None
+ - output.artifactsources | length >= 2
+- name: Get artifacts source facts
+ azure_rm_devtestlabartifactsource_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: public repo
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.artifactsources[0]['id'] != None
+ - output.artifactsources[0]['resource_group'] != None
+ - output.artifactsources[0]['lab_name'] != None
+ - output.artifactsources[0]['name'] != None
+ - output.artifactsources[0]['display_name'] != None
+ - output.artifactsources[0]['source_type'] != None
+ - output.artifactsources[0]['is_enabled'] != None
+ - output.artifactsources[0]['uri'] != None
+ - output.artifactsources[0]['folder_path'] != None
+ - output.artifactsources[0]['provisioning_state'] != None
+- name: Delete instance of DevTest Labs artifacts source
+ register: output
+ when: github_token | length > 0
+ azure.azcollection.azure_rm_devtestlabartifactsource:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: '{{ artifacts_name }}'
+ state: absent
+- name: Assert that change was correctly registered
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: List ARM Template facts
+ azure_rm_devtestlabarmtemplate_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ artifact_source_name: public environment repo
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.armtemplates[0]['id'] != None
+ - output.armtemplates[0]['resource_group'] != None
+ - output.armtemplates[0]['lab_name'] != None
+ - output.armtemplates[0]['artifact_source_name'] != None
+ - output.armtemplates[0]['name'] != None
+ - output.armtemplates[0]['display_name'] != None
+ - output.armtemplates[0]['description'] != None
+ - output.armtemplates[0]['publisher'] != None
+ - output.armtemplates | length > 1
+- name: Get ARM Template facts
+ azure_rm_devtestlabarmtemplate_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ artifact_source_name: public environment repo
+ name: ServiceFabric-LabCluster
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.armtemplates[0]['id'] != None
+ - output.armtemplates[0]['resource_group'] != None
+ - output.armtemplates[0]['lab_name'] != None
+ - output.armtemplates[0]['artifact_source_name'] != None
+ - output.armtemplates[0]['name'] != None
+ - output.armtemplates[0]['display_name'] != None
+ - output.armtemplates[0]['description'] != None
+ - output.armtemplates[0]['publisher'] != None
+ - output.armtemplates | length == 1
+- name: Get Artifact facts
+ azure_rm_devtestlabartifact_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ artifact_source_name: public repo
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.artifacts[0]['id'] != None
+ - output.artifacts[0]['resource_group'] != None
+ - output.artifacts[0]['lab_name'] != None
+ - output.artifacts[0]['artifact_source_name'] != None
+ - output.artifacts[0]['name'] != None
+ - output.artifacts[0]['description'] != None
+ - output.artifacts[0]['file_path'] != None
+ - output.artifacts[0]['publisher'] != None
+ - output.artifacts[0]['target_os_type'] != None
+ - output.artifacts[0]['publisher'] != None
+ - output.artifacts | length > 1
+- name: Get Artifact facts
+ azure_rm_devtestlabartifact_facts:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ artifact_source_name: public repo
+ name: windows-webdeploy
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.artifacts[0]['id'] != None
+ - output.artifacts[0]['resource_group'] != None
+ - output.artifacts[0]['lab_name'] != None
+ - output.artifacts[0]['artifact_source_name'] != None
+ - output.artifacts[0]['name'] != None
+ - output.artifacts[0]['description'] != None
+ - output.artifacts[0]['file_path'] != None
+ - output.artifacts[0]['publisher'] != None
+ - output.artifacts[0]['target_os_type'] != None
+ - output.artifacts[0]['publisher'] != None
+ - output.artifacts | length == 1
+- name: Create instance of DevTest Lab Environment
+ register: output
+ azure.azcollection.azure_rm_devtestlabenvironment:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ user_name: '@me'
+ name: myEnvironment
+ location: eastus
+ deployment_template: '{{ output_lab.labs[0].id }}/artifactSources/public environment repo/armTemplates/WebApp'
+- name: Assert if the change was correctly reported
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Create instance of DevTest Lab Environment - idempotent
+ register: output
+ azure.azcollection.azure_rm_devtestlabenvironment:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ user_name: '@me'
+ name: myEnvironment
+ location: eastus
+ deployment_template:
+ artifact_source_name: public environment repo
+ name: WebApp
+- name: Assert if the change was not detected
+ assert:
+ that:
+ - not output.changed
+ when: github_token | length > 0
+- name: Delete instance of DevTest Lab Environment
+ register: output
+ azure.azcollection.azure_rm_devtestlabenvironment:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ user_name: '@me'
+ name: myEnvironment
+ state: absent
+- name: Assert that change was detected
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Create instance of DevTest Lab Image
+ register: output
+ azure.azcollection.azure_rm_devtestlabcustomimage:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: myImage
+ source_vm: '{{ output_vm.virtualmachines[0][''name''] }}'
+ linux_os_state: non_deprovisioned
+- name: Assert that change was detected
+ assert:
+ that:
+ - output.changed
+ when: github_token | length > 0
+- name: Create instance of DevTest Lab Image -- idempotent
+ register: output
+ azure.azcollection.azure_rm_devtestlabcustomimage:
+ resource_group: '{{ resource_group }}'
+ lab_name: '{{ lab_name }}'
+ name: myImage
+ source_vm: '{{ output_vm.virtualmachines[0][''name''] }}'
+ linux_os_state: non_deprovisioned
+- name: Assert that change was detected
+ assert:
+ that:
+ - not output.changed
+ when: github_token | length > 0
+- name: Delete instance of Lab -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ state: absent
+ name: '{{ lab_name }}'
+- name: Assert if the change was correctly reported in check mode
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of Lab
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}'
+ state: absent
+- name: Assert the change was correctly reported
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of Lab
+ register: output
+ azure.azcollection.azure_rm_devtestlab:
+ resource_group: '{{ resource_group }}'
+ name: '{{ lab_name }}unexisting'
+ state: absent
+- name: Assert thes state has not changed
+ assert:
+ that:
+ - output.changed == false
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/aliases
new file mode 100644
index 00000000..e0296d74
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/aliases
@@ -0,0 +1,8 @@
+cloud/azure
+destructive
+shippable/azure/group1
+azure_rm_mariadbserver_facts
+azure_rm_mariadbdatabase
+azure_rm_mariadbdatabase_facts
+azure_rm_mariadbfirewallrule
+azure_rm_mariadbfirewallrule_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml
new file mode 100644
index 00000000..a0f69078
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mariadbserver/tasks/main.yml
@@ -0,0 +1,581 @@
+- name: Prepare random number
+ set_fact:
+ rpfx: '{{ resource_group | hash(''md5'') | truncate(7, True, '''') }}{{ 1000 | random }}'
+ run_once: true
+- name: Create instance of MariaDB Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of MariaDB Server
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- name: Create again instance of MariaDB Server
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.state == 'Ready'
+- name: Update instance of MariaDB Server, change storage size
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 128000
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- debug:
+ var: output
+- name: Gather facts MariaDB Server
+ azure_rm_mariadbserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ register: output
+- name: Assert that storage size is correct
+ assert:
+ that:
+ - output.servers[0]['storage_mb'] == 128000
+- name: Create second instance of MariaDB Server
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ aaa: bbb
+- name: Create second instance of MariaDB Server
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 10.2
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ ccc: ddd
+- name: Gather facts MariaDB Server
+ azure_rm_mariadbserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}second
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[0]['tags']['aaa'] == 'bbb'
+ - output.servers[0]['tags']['ccc'] == 'ddd'
+- name: Gather facts MariaDB Server
+ azure_rm_mariadbserver_facts:
+ resource_group: '{{ resource_group }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[1]['id'] != None
+ - output.servers[1]['name'] != None
+ - output.servers[1]['location'] != None
+ - output.servers[1]['sku']['name'] != None
+ - output.servers[1]['sku']['tier'] != None
+ - output.servers[1]['sku']['capacity'] != None
+ - output.servers[1]['version'] != None
+ - output.servers[1]['user_visible_state'] != None
+ - output.servers[1]['fully_qualified_domain_name'] != None
+- name: Create instance of MariaDB Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of MariaDB Database
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_swedish_ci
+ charset: latin1
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create again instance of MariaDB Database
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_swedish_ci
+ charset: latin1
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.name == 'testdatabase'
+- name: Try to update database without force_update
+ ignore_errors: true
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_czech_ci
+ charset: latin1
+- name: Assert that nothing has changed
+ assert:
+ that:
+ - output.changed == False
+- name: Update instance of database using force_update
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_czech_ci
+ charset: latin1
+ force_update: true
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create second instance of MariaDB Database
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase2
+- name: Gather facts MariaDB Database
+ azure_rm_mariadbdatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+- name: Gather facts MariaDB Database
+ azure_rm_mariadbdatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+ - output.databases[1]['server_name'] != None
+ - output.databases[1]['name'] != None
+ - output.databases[1]['charset'] != None
+ - output.databases[1]['collation'] != None
+- name: Delete instance of MariaDB Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of MariaDB Database
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of MariaDB Database
+ register: output
+ azure.azcollection.azure_rm_mariadbdatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Create instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create again instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule -- second
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Gather facts MariaDB Firewall Rule
+ azure_rm_mariadbfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules | length == 1
+- name: Gather facts MariaDB Firewall Rule
+ azure_rm_mariadbfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules[1].id != None
+ - output.rules[1].name != None
+ - output.rules[1].start_ip_address != None
+ - output.rules[1].end_ip_address != None
+ - output.rules | length == 2
+- name: Delete instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete instance of Firewall Rule - second
+ azure.azcollection.azure_rm_mariadbfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ state: absent
+- name: Gather facts MariaDB Firewall Rule
+ azure_rm_mariadbfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that empty list was returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules | length == 0
+- name: Create instance of Configuration -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to delete default configuraion
+ azure_rm_mariadbconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ register: output
+- name: Get facts of event_scheduler
+ debug:
+ var: output
+- name: Try to delete default configuraion
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Try to change default configuraion
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to change default configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Try to reset configuration
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to reset configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_mariadbconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Gather facts MariaDB Configuration
+ azure_rm_mariadbconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ name: event_scheduler
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length == 1
+- name: Gather facts MariaDB Configuration
+ azure_rm_mariadbconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mariadbsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length > 1
+- name: Delete instance of MariaDB Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of MariaDB Server
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of MariaDB Server
+ register: output
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete second instance of MariaDB Server
+ async: 400
+ poll: 0
+ azure.azcollection.azure_rm_mariadbserver:
+ resource_group: '{{ resource_group }}'
+ name: mariadbsrv{{ rpfx }}second
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/aliases
new file mode 100644
index 00000000..0eedad4b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/aliases
@@ -0,0 +1,10 @@
+cloud/azure
+destructive
+shippable/azure/group1
+azure_rm_mysqlserver_facts
+azure_rm_mysqldatabase
+azure_rm_mysqldatabase_facts
+azure_rm_mysqlfirewallrule
+azure_rm_mysqlfirewallrule_facts
+azure_rm_mysqlconfiguration
+azure_rm_mysqlconfiguration_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml
new file mode 100644
index 00000000..a31bef15
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_mysqlserver/tasks/main.yml
@@ -0,0 +1,581 @@
+- name: Prepare random number
+ set_fact:
+ rpfx: '{{ resource_group | hash(''md5'') | truncate(7, True, '''') }}{{ 1000 | random }}'
+ run_once: true
+- name: Create instance of MySQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of MySQL Server
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- name: Create again instance of MySQL Server
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.state == 'Ready'
+- name: Update instance of MySQL Server, change storage size
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 128000
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- debug:
+ var: output
+- name: Gather facts MySQL Server
+ azure_rm_mysqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ register: output
+- name: Assert that storage size is correct
+ assert:
+ that:
+ - output.servers[0]['storage_mb'] == 128000
+- name: Create second instance of MySQL Server
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ aaa: bbb
+- name: Create second instance of MySQL Server
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ version: 5.6
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ ccc: ddd
+- name: Gather facts MySQL Server
+ azure_rm_mysqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}second
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[0]['tags']['aaa'] == 'bbb'
+ - output.servers[0]['tags']['ccc'] == 'ddd'
+- name: Gather facts MySQL Server
+ azure_rm_mysqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[1]['id'] != None
+ - output.servers[1]['name'] != None
+ - output.servers[1]['location'] != None
+ - output.servers[1]['sku']['name'] != None
+ - output.servers[1]['sku']['tier'] != None
+ - output.servers[1]['sku']['capacity'] != None
+ - output.servers[1]['version'] != None
+ - output.servers[1]['user_visible_state'] != None
+ - output.servers[1]['fully_qualified_domain_name'] != None
+- name: Create instance of MySQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of MySQL Database
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_swedish_ci
+ charset: latin1
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create again instance of MySQL Database
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_swedish_ci
+ charset: latin1
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.name == 'testdatabase'
+- name: Try to update database without force_update
+ ignore_errors: true
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_czech_ci
+ charset: latin1
+- name: Assert that nothing has changed
+ assert:
+ that:
+ - output.changed == False
+- name: Update instance of database using force_update
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ collation: latin1_czech_ci
+ charset: latin1
+ force_update: true
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create second instance of MySQL Database
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase2
+- name: Gather facts MySQL Database
+ azure_rm_mysqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+- name: Gather facts MySQL Database
+ azure_rm_mysqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+ - output.databases[1]['server_name'] != None
+ - output.databases[1]['name'] != None
+ - output.databases[1]['charset'] != None
+ - output.databases[1]['collation'] != None
+- name: Delete instance of MySQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of MySQL Database
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of MySQL Database
+ register: output
+ azure.azcollection.azure_rm_mysqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Create instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create again instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule -- second
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Gather facts MySQL Firewall Rule
+ azure_rm_mysqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules | length == 1
+- name: Gather facts MySQL Firewall Rule
+ azure_rm_mysqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules[1].id != None
+ - output.rules[1].name != None
+ - output.rules[1].start_ip_address != None
+ - output.rules[1].end_ip_address != None
+ - output.rules | length == 2
+- name: Delete instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete instance of Firewall Rule - second
+ azure.azcollection.azure_rm_mysqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ state: absent
+- name: Gather facts MySQL Firewall Rule
+ azure_rm_mysqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that empty list was returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules | length == 0
+- name: Create instance of Configuration -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to delete default configuraion
+ azure_rm_mysqlconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ register: output
+- name: Get facts of event_scheduler
+ debug:
+ var: output
+- name: Try to delete default configuraion
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Try to change default configuraion
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to change default configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ value: 'ON'
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Try to reset configuration
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to reset configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_mysqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Gather facts MySQL Configuration
+ azure_rm_mysqlconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ name: event_scheduler
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length == 1
+- name: Gather facts MySQL Configuration
+ azure_rm_mysqlconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: mysqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length > 1
+- name: Delete instance of MySQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of MySQL Server
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of MySQL Server
+ register: output
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete second instance of MySQL Server
+ async: 400
+ poll: 0
+ azure.azcollection.azure_rm_mysqlserver:
+ resource_group: '{{ resource_group }}'
+ name: mysqlsrv{{ rpfx }}second
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/aliases
new file mode 100644
index 00000000..b5923cc0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/aliases
@@ -0,0 +1,10 @@
+cloud/azure
+destructive
+shippable/azure/group1
+azure_rm_postgresqlserver_facts
+azure_rm_postgresqldatabase
+azure_rm_postgresqldatabase_facts
+azure_rm_postgresqlfirewallrule
+azure_rm_postgresqlfirewallrule_facts
+azure_rm_postgresqlserverconfiguration
+azure_rm_postgresqlserverconfiguration_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml
new file mode 100644
index 00000000..03a87f65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_postgresqlserver/tasks/main.yml
@@ -0,0 +1,552 @@
+- name: Prepare random number
+ set_fact:
+ rpfx: '{{ resource_group | hash(''md5'') | truncate(7, True, '''') }}{{ 1000 | random }}'
+ run_once: true
+- name: Create instance of PostgreSQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of PostgreSQL Server
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- name: Create again instance of PostgreSQL Server
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.state == 'Ready'
+- name: Update instance of PostgreSQL Server, change storage size
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 128000
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- debug:
+ var: output
+- name: Gather facts postgresql Server
+ azure_rm_postgresqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ register: output
+- name: Assert that storage size is correct
+ assert:
+ that:
+ - output.servers[0]['storage_mb'] == 128000
+- name: Create second instance of PostgreSQL Server
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ aaa: bbb
+- name: Create second instance of PostgreSQL Server -- add tags
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}second
+ sku:
+ name: B_Gen5_1
+ tier: Basic
+ location: westus2
+ storage_mb: 51200
+ enforce_ssl: true
+ admin_username: zimxyz
+ admin_password: Testpasswordxyz12!
+ tags:
+ ccc: ddd
+- name: Gather facts PostgreSQL Server
+ azure_rm_postgresqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}second
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[0]['tags']['aaa'] == 'bbb'
+ - output.servers[0]['tags']['ccc'] == 'ddd'
+- name: Gather facts PostgreSQL Server
+ azure_rm_postgresqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers[0]['id'] != None
+ - output.servers[0]['name'] != None
+ - output.servers[0]['location'] != None
+ - output.servers[0]['sku']['name'] != None
+ - output.servers[0]['sku']['tier'] != None
+ - output.servers[0]['sku']['capacity'] != None
+ - output.servers[0]['version'] != None
+ - output.servers[0]['user_visible_state'] != None
+ - output.servers[0]['fully_qualified_domain_name'] != None
+ - output.servers[1]['id'] != None
+ - output.servers[1]['name'] != None
+ - output.servers[1]['location'] != None
+ - output.servers[1]['sku']['name'] != None
+ - output.servers[1]['sku']['tier'] != None
+ - output.servers[1]['sku']['capacity'] != None
+ - output.servers[1]['version'] != None
+ - output.servers[1]['user_visible_state'] != None
+ - output.servers[1]['fully_qualified_domain_name'] != None
+- name: Create instance of PostgreSQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ charset: UTF8
+ collation: English_United States.1252
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of PostgreSQL Database
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ charset: UTF8
+ collation: English_United States.1252
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create again instance of PostgreSQL Database
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ charset: UTF8
+ collation: English_United States.1252
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.name == 'testdatabase'
+- name: Try to update PostgreSQL Database without force_update
+ ignore_errors: true
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ charset: WIN1252
+ collation: SQL_Latin1_General_CP1_CS_AS
+- name: Assert that nothing has changed
+ assert:
+ that:
+ - output.changed == False
+- name: Try to update PostgreSQL Database with force_update
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ charset: WIN1252
+ collation: SQL_Latin1_General_CP1_CS_AS
+ force_update: true
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+ - output.name == 'testdatabase'
+- name: Create second instance of PostgreSQL Database
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase2
+- name: Gather facts PostgreSQL Database
+ azure_rm_postgresqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+- name: Gather facts PostgreSQL Database
+ azure_rm_postgresqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0]['server_name'] != None
+ - output.databases[0]['name'] != None
+ - output.databases[0]['charset'] != None
+ - output.databases[0]['collation'] != None
+ - output.databases[1]['server_name'] != None
+ - output.databases[1]['name'] != None
+ - output.databases[1]['charset'] != None
+ - output.databases[1]['collation'] != None
+- name: Delete instance of PostgreSQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of PostgreSQL Database
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of PostgreSQL Database
+ register: output
+ azure.azcollection.azure_rm_postgresqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: testdatabase
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Create instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create again instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+- name: Create Firewall Rule - second
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Gather facts PostgreSQL Firewall Rule
+ azure_rm_postgresqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules | length == 1
+- name: Gather facts PostgreSQL Firewall Rule
+ azure_rm_postgresqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules[1].id != None
+ - output.rules[1].name != None
+ - output.rules[1].start_ip_address != None
+ - output.rules[1].end_ip_address != None
+ - output.rules | length == 2
+- name: Delete instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete instance of Firewall Rule - second
+ azure.azcollection.azure_rm_postgresqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}second
+ state: absent
+- name: Gather facts PostgreSQL Firewall Rule
+ azure_rm_postgresqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: firewallrule{{ rpfx }}
+ register: output
+- name: Assert that empty list was returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules | length == 0
+- name: Create instance of Configuration -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ value: 2000
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to change default configuration
+ register: output
+ azure.azcollection.azure_rm_postgresqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ value: 2000
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to change default configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_postgresqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ value: 2000
+- name: Assert that change was not registered
+ assert:
+ that:
+ - not output.changed
+- name: Try to reset configuration
+ register: output
+ azure.azcollection.azure_rm_postgresqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - output.changed
+- name: Try to reset configuration -- idempotent
+ register: output
+ azure.azcollection.azure_rm_postgresqlconfiguration:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ state: absent
+- name: Assert that change was registered
+ assert:
+ that:
+ - not output.changed
+- name: Gather facts PostgreSQL Configuration
+ azure_rm_postgresqlconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ name: deadlock_timeout
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length == 1
+- name: Gather facts PostgreSQL Configuration
+ azure_rm_postgresqlconfiguration_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: postgresqlsrv{{ rpfx }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.settings[0].id != None
+ - output.settings[0].name != None
+ - output.settings[0].value != None
+ - output.settings[0].description != None
+ - output.settings[0].source != None
+ - output.settings | length > 1
+- name: Delete instance of PostgreSQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of PostgreSQL Server
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of PostgreSQL Server
+ register: output
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Delete second instance of PostgreSQL Server
+ async: 400
+ poll: 0
+ azure.azcollection.azure_rm_postgresqlserver:
+ resource_group: '{{ resource_group }}'
+ name: postgresqlsrv{{ rpfx }}second
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/aliases
new file mode 100644
index 00000000..eed0eb55
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/aliases
@@ -0,0 +1,4 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_publicipaddress_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml
new file mode 100644
index 00000000..6d9ef050
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_publicipaddress/tasks/main.yml
@@ -0,0 +1,95 @@
+- 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 }}'
+- name: Remove public ip
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ state: absent
+- name: Create public ip
+ register: output
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ allocation_method: Static
+ domain_name: '{{ domain_name }}'
+ tags:
+ testing: testing
+ delete: on-exit
+- 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: Should be idempotent
+ register: output
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ allocation_method: static
+ domain_name: '{{ domain_name }}'
+- assert:
+ that: not output.changed
+- name: Update tags
+ register: output
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ allocation_method: static
+ domain_name: '{{ domain_name }}'
+ append_tags: true
+ tags:
+ delete: never
+ foo: bar
+- assert:
+ that:
+ - output.state.tags | length == 3
+ - output.state.tags.delete == 'never'
+- name: Gather facts, filtering by tag
+ azure_rm_publicipaddress_facts:
+ resource_group: '{{ resource_group }}'
+ tags:
+ - testing
+ - foo:bar
+- assert:
+ that: azure_publicipaddresses | length == 1
+- name: Purge all tags
+ register: output
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ allocation_method: static
+ domain_name: '{{ domain_name }}'
+ append_tags: false
+- assert:
+ that:
+ - output.state.tags | length == 0
+- name: Gather facts for a public ip
+ azure_rm_publicipaddress_facts:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ register: pip
+- assert:
+ that:
+ - pip.publicipaddresses | length == 1
+ - pip.publicipaddresses[0].name == "pip{{ rpfx }}"
+ - pip.publicipaddresses[0].allocation_method == 'static'
+ - pip.publicipaddresses[0].dns_settings.domain_name_label == domain_name
+- name: Gather facts for all public ips
+ azure_rm_publicipaddress_facts:
+ resource_group: '{{ resource_group }}'
+- assert:
+ that: azure_publicipaddresses | length > 0
+- name: Remove public ip
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+ state: absent
+- name: Gather facts for a public ip
+ azure_rm_publicipaddress_facts:
+ resource_group: '{{ resource_group }}'
+ name: pip{{ rpfx }}
+- assert:
+ that: azure_publicipaddresses | length == 0
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/aliases
new file mode 100644
index 00000000..0e4abdd8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/aliases
@@ -0,0 +1,5 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_rediscache_facts
+azure_rm_rediscachefirewallrule
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/tasks/main.yml
new file mode 100644
index 00000000..ba5e62e8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_rediscache/tasks/main.yml
@@ -0,0 +1,269 @@
+- name: Fix resource prefix
+ 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: true
+- name: Create a redis cache (Check Mode)
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ sku:
+ name: basic
+ size: C1
+ wait_for_provisioning: false
+- name: Assert creating redis cache check mode
+ assert:
+ that:
+ - output.changed
+- name: Create a redis cache
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ sku:
+ name: basic
+ size: C1
+ wait_for_provisioning: false
+- name: Assert creating redis cache
+ assert:
+ that:
+ - output.changed
+ - output.id
+- name: Get facts
+ azure_rm_rediscache_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ register: facts
+- name: Assert facts
+ assert:
+ that:
+ - facts.rediscaches | length == 1
+ - facts.rediscaches[0].id != None
+ - facts.rediscaches[0].host_name != None
+ - facts.rediscaches[0].provisioning_state != None
+ - facts.rediscaches[0].sku.name == 'basic'
+ - facts.rediscaches[0].sku.size == 'C1'
+- name: Update the redis cache (idempotent)
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ sku:
+ name: basic
+ size: C1
+ wait_for_provisioning: false
+- name: assert output not changed
+ assert:
+ that:
+ - not output.changed
+- name: long-running rediscache tests [run with `--tags long_run,untagged` to enable]
+ block:
+ - name: Wait for Redis provisioning to complete
+ azure_rm_rediscache_facts:
+ 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
+ register: output
+ azure.azcollection.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
+ - name: assert output changed
+ assert:
+ that:
+ - output.changed
+ - name: Update redis cache configuration
+ register: output
+ azure.azcollection.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
+ - name: assert output changed
+ assert:
+ that:
+ - output.changed
+ - name: Scale up the redis cache
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ sku:
+ name: standard
+ size: C1
+ tags:
+ testing: foo
+ wait_for_provisioning: true
+ - assert:
+ that:
+ - output.changed
+ - name: Force reboot redis cache
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ reboot:
+ reboot_type: all
+ - assert:
+ that:
+ - output.changed
+ - name: Delete the redis cache (Check Mode)
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ state: absent
+ - name: assert deleting redis cache check mode
+ assert:
+ that: output.changed
+ - name: Delete the redis cache
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}'
+ state: absent
+ - assert:
+ that:
+ - output.changed
+ tags:
+ - long_run
+ - never
+- name: Create virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vnet_name }}'
+ address_prefixes: 10.10.0.0/16
+- name: Add subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ name: '{{ subnet_name }}'
+ address_prefix: 10.10.0.0/24
+ virtual_network: '{{ vnet_name }}'
+- name: Create redis with subnet
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}2'
+ sku:
+ name: premium
+ size: P1
+ subnet:
+ name: '{{ subnet_name }}'
+ virtual_network_name: '{{ vnet_name }}'
+ wait_for_provisioning: false
+- name: Assert creating redis cache
+ assert:
+ that:
+ - output.changed
+ - output.id
+- name: Get facts
+ azure_rm_rediscache_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}2'
+ return_access_keys: true
+ register: facts
+- name: Assert facts
+ assert:
+ that:
+ - facts.rediscaches | length == 1
+ - facts.rediscaches[0].subnet != None
+ - facts.rediscaches[0].access_keys.primary != None
+- name: Create firewall rule (Check mode)
+ check_mode: true
+ register: output
+ azure.azcollection.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
+- name: Assert check mode creation
+ assert:
+ that:
+ - output.changed
+- name: long-running rediscachefirewallrule tests [run with `--tags long_run,untagged` to enable]
+ block:
+ - name: Wait for Redis provisioning to complete
+ azure_rm_rediscache_facts:
+ 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
+ register: output
+ azure.azcollection.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
+ - name: Assert creation
+ assert:
+ that:
+ - output.changed
+ - output.id
+ - name: Update firewall rule idempotence
+ register: output
+ azure.azcollection.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
+ - name: Assert idempotence
+ assert:
+ that:
+ - output.changed == False
+ - name: Update firewall rule
+ register: output
+ azure.azcollection.azure_rm_rediscachefirewallrule:
+ resource_group: '{{ resource_group }}'
+ cache_name: '{{ redis_name }}2'
+ name: '{{ rule_name }}'
+ end_ip_address: 192.168.1.5
+ - name: Assert updating
+ assert:
+ that:
+ - output.changed
+ - name: Delete firewall rule
+ register: output
+ azure.azcollection.azure_rm_rediscachefirewallrule:
+ resource_group: '{{ resource_group }}'
+ cache_name: '{{ redis_name }}2'
+ name: '{{ rule_name }}'
+ state: absent
+ - name: Assert deletion
+ assert:
+ that:
+ - output.changed
+ - name: Delete the redis cache
+ register: output
+ azure.azcollection.azure_rm_rediscache:
+ resource_group: '{{ resource_group }}'
+ name: '{{ redis_name }}2'
+ state: absent
+ tags:
+ - long_run
+ - never
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/aliases
new file mode 100644
index 00000000..69848e3b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/aliases
@@ -0,0 +1,4 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_securitygroup1
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml
new file mode 100644
index 00000000..d44c0286
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_securitygroup/tasks/main.yml
@@ -0,0 +1,269 @@
+- name: Prepare random number
+ 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: true
+- name: Create security group
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ 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
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+- assert:
+ that: '{{ output.state.rules | length }} == 2'
+- name: Gather facts by tags
+ register: output
+ azure.azcollection.azure_rm_securitygroup_info:
+ resource_group: '{{ resource_group }}'
+ tags:
+ - testing
+ - foo:bar
+- assert:
+ that: output.securitygroups | length == 1
+- name: Add/Update rules on existing security group
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ rules:
+ - name: AllowSSH
+ protocol: Tcp
+ source_address_prefix: 174.108.158.0/24
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ - name: AllowSSHFromHome
+ protocol: Tcp
+ source_address_prefix: 174.109.158.0/24
+ destination_port_range: 22-23
+ priority: 102
+- assert:
+ that:
+ - '{{ output.state.rules | length }} == 3'
+ - output.state.rules[0].source_address_prefix == '174.108.158.0/24'
+- name: Test idempotence
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ rules:
+ - name: AllowSSH
+ protocol: Tcp
+ source_address_prefix: 174.108.158.0/24
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ - name: AllowSSHFromHome
+ protocol: Tcp
+ source_address_prefix: 174.109.158.0/24
+ destination_port_range: 22-23
+ priority: 102
+- assert:
+ that: not output.changed
+- name: Update tags
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ tags:
+ testing: testing
+ delete: never
+ baz: bar
+ append_tags: false
+- assert:
+ that:
+ - output.state.tags | length == 3
+ - output.state.tags.delete == 'never'
+- name: Purge tags
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ append_tags: false
+ tags:
+ testing: testing
+ delete: on-exit
+- assert:
+ that:
+ - output.state.tags | length == 2
+ - output.state.tags.delete == 'on-exit'
+- name: Gather facts for one accounts
+ register: output
+ azure.azcollection.azure_rm_securitygroup_info:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+- assert:
+ that:
+ - output.securitygroups | length == 1
+- name: Gather facts for all accounts
+ register: output_groups
+ azure.azcollection.azure_rm_securitygroup_info:
+ resource_group: '{{ resource_group }}'
+- assert:
+ that:
+ - output_groups.securitygroups | length > 0
+- name: Create security group with source_address_prefixes
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ purge_rules: true
+ rules:
+ - name: AllowSSH
+ protocol: Tcp
+ source_address_prefix:
+ - 52.100.120.240
+ - 53.100.250.190
+ - 54.110.200.200
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+- assert:
+ that:
+ - '{{ output.state.rules | length }} == 1'
+ - '{{ output.state.rules[0].source_address_prefixes | length }} == 3'
+ - not output.state.rules[0].source_address_prefix
+- name: Create security group with source_address_prefixes(idempontent)
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ purge_rules: true
+ rules:
+ - name: AllowSSH
+ protocol: Tcp
+ source_address_prefix:
+ - 52.100.120.240
+ - 53.100.250.190
+ - 54.110.200.200
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+- assert:
+ that: not output.changed
+- name: Add a single one group
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ secgroupname }}'
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ rules:
+ - name: DenySSH
+ protocol: Tcp
+ source_address_prefix:
+ - 54.120.120.240
+ destination_port_range: 22
+ access: Deny
+ priority: 102
+ direction: Inbound
+- assert:
+ that:
+ - output.changed
+ - '{{ output.state.rules | length }} == 2'
+- name: Create Application security group 1
+ register: asg1
+ azure.azcollection.azure_rm_applicationsecuritygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ asg_name1 }}'
+ tags:
+ testing: testing
+- name: Create Application security group 2
+ register: asg2
+ azure.azcollection.azure_rm_applicationsecuritygroup:
+ resource_group: '{{ resource_group_secondary }}'
+ name: '{{ asg_name2 }}'
+ tags:
+ testing: testing
+- name: Create security group with application security group
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ sg_name1 }}'
+ purge_rules: true
+ rules:
+ - name: AsgToAsg
+ protocol: Tcp
+ source_application_security_groups:
+ - '{{ asg1.id }}'
+ destination_application_security_groups:
+ - resource_group: '{{ resource_group_secondary }}'
+ name: '{{ asg_name2 }}'
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+- assert:
+ that:
+ - output.changed
+- name: Create security group with application security group - Idempotent
+ register: output
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ sg_name1 }}'
+ purge_rules: true
+ rules:
+ - name: AsgToAsg
+ protocol: Tcp
+ source_application_security_groups:
+ - '{{ asg_name1 }}'
+ destination_application_security_groups:
+ - resource_group: '{{ resource_group_secondary }}'
+ name: '{{ asg_name2 }}'
+ destination_port_range: 22
+ access: Allow
+ priority: 101
+ direction: Inbound
+- assert:
+ that:
+ - not output.changed
+- name: Delete security group
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ sg_name1 }}'
+ state: absent
+- name: Delete all security groups
+ with_items: '{{ output_groups.securitygroups }}'
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ item.name }}'
+ state: absent
+- name: Should have no security groups remaining
+ register: output
+ azure.azcollection.azure_rm_securitygroup_info:
+ resource_group: '{{ resource_group }}'
+- assert:
+ that:
+ - output.securitygroups | length == 0
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/aliases
new file mode 100644
index 00000000..74b30b7f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/aliases
@@ -0,0 +1,8 @@
+cloud/azure
+destructive
+shippable/azure/group1
+azure_rm_sqlserver_facts
+azure_rm_sqldatabase
+azure_rm_sqldatabase_facts
+azure_rm_sqlfirewallrule
+azure_rm_sqlfirewallrule_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml
new file mode 100644
index 00000000..c0c3c309
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_sqlserver/tasks/main.yml
@@ -0,0 +1,375 @@
+- name: Prepare random number
+ set_fact:
+ random_postfix: '{{ 1000 | random }}{{ resource_group | hash(''md5'') | truncate(7, True, '''') }}'
+ run_once: true
+- name: Create instance of SQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ location: eastus
+ admin_username: mylogin
+ admin_password: Testpasswordxyz12!
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of SQL Server
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ location: eastus
+ admin_username: mylogin
+ admin_password: Testpasswordxyz12!
+ tags:
+ aaa: bbb
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.state == 'Ready'
+- name: Create again instance of SQL Server
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ location: eastus
+ admin_username: mylogin
+ admin_password: Testpasswordxyz12!
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.state == 'Ready'
+- name: Gather facts SQL Server
+ azure_rm_sqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers.sqlsrv{{ random_postfix }}.id != None
+ - output.servers.sqlsrv{{ random_postfix }}.name == "sqlsrv{{ random_postfix }}"
+ - output.servers.sqlsrv{{ random_postfix }}.type != None
+ - output.servers.sqlsrv{{ random_postfix }}.location != None
+ - output.servers.sqlsrv{{ random_postfix }}.kind != None
+ - output.servers.sqlsrv{{ random_postfix }}.version != None
+ - output.servers.sqlsrv{{ random_postfix }}.state != None
+ - output.servers.sqlsrv{{ random_postfix }}.fully_qualified_domain_name != None
+ - output.servers.sqlsrv{{ random_postfix }}.tags.aaa == 'bbb'
+- name: Gather facts SQL Server - unexisting
+ azure_rm_sqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: unexisting
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers == {}
+- name: Gather facts SQL Server - list
+ azure_rm_sqlserver_facts:
+ resource_group: '{{ resource_group }}'
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.servers.sqlsrv{{ random_postfix }}.id != None
+ - output.servers.sqlsrv{{ random_postfix }}.name == "sqlsrv{{ random_postfix }}"
+ - output.servers.sqlsrv{{ random_postfix }}.type != None
+ - output.servers.sqlsrv{{ random_postfix }}.location != None
+ - output.servers.sqlsrv{{ random_postfix }}.kind != None
+ - output.servers.sqlsrv{{ random_postfix }}.version != None
+ - output.servers.sqlsrv{{ random_postfix }}.state != None
+ - output.servers.sqlsrv{{ random_postfix }}.fully_qualified_domain_name != None
+- name: Create instance of SQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ location: eastus
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of SQL Database
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ location: eastus
+ tags:
+ aaa: bbb
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+ - output.status == 'Online'
+- name: Create again instance of SQL Database
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ location: eastus
+ tags:
+ aaa: bbb
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+ - output.status == 'Online'
+- name: Create second SQL Database
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}second
+ location: eastus
+- name: Gather facts SQL Database
+ azure_rm_sqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0].id != None
+ - output.databases[0].name != None
+ - output.databases[0].location != None
+ - output.databases[0].sku.name != None
+ - output.databases[0].sku.tier != None
+ - output.databases[0].sku.capacity != None
+ - output.databases[0].kind != None
+ - output.databases[0].status != None
+- name: Gather facts SQL Database
+ azure_rm_sqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases[0].id != None
+ - output.databases[0].name != None
+ - output.databases[0].location != None
+ - output.databases[0].sku.name != None
+ - output.databases[0].sku.tier != None
+ - output.databases[0].sku.capacity != None
+ - output.databases[0].kind != None
+ - output.databases[0].status != None
+ - output.databases[1].id != None
+ - output.databases[1].name != None
+ - output.databases[1].location != None
+ - output.databases[1].sku.name != None
+ - output.databases[1].sku.tier != None
+ - output.databases[1].sku.capacity != None
+ - output.databases[1].kind != None
+ - output.databases[1].status != None
+- name: Delete instance of secondary database
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}second
+ state: absent
+- name: Delete instance of SQL Database -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of SQL Database
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of SQL Database
+ register: output
+ azure.azcollection.azure_rm_sqldatabase:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
+- name: Gather facts SQL Database
+ azure_rm_sqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: database{{ random_postfix }}
+ register: output
+- name: Assert that empty dictionary was returned
+ assert:
+ that:
+ - output.changed == False
+ - output.databases | length == 0
+- name: Gather facts SQL Database
+ azure_rm_sqldatabase_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ register: output
+- name: Assert that empty dictionary was returned (one database is there by default)
+ assert:
+ that:
+ - output.changed == False
+ - output.databases | length == 1
+- name: Create instance of Firewall Rule -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the resource instance is well created
+ assert:
+ that:
+ - output.changed
+- name: Create again instance of Firewall Rule
+ register: output
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Assert the state has not changed
+ assert:
+ that:
+ - output.changed == false
+- name: Create Firewall Rule - second
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}second
+ start_ip_address: 172.28.10.136
+ end_ip_address: 172.28.10.138
+- name: Gather facts SQL Firewall Rule
+ azure_rm_sqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].resource_group != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+- name: Gather facts SQL Firewall Rule
+ azure_rm_sqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ register: output
+- name: Assert that facts are returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules[0].id != None
+ - output.rules[0].id != None
+ - output.rules[0].resource_group != None
+ - output.rules[0].server_name != None
+ - output.rules[0].name != None
+ - output.rules[0].start_ip_address != None
+ - output.rules[0].end_ip_address != None
+ - output.rules[1].id != None
+ - output.rules[1].resource_group != None
+ - output.rules[1].server_name != None
+ - output.rules[1].name != None
+ - output.rules[1].start_ip_address != None
+ - output.rules[1].end_ip_address != None
+- name: Delete instance of Firewall Rule
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ state: absent
+- name: Delete instance of Firewall Rule
+ azure.azcollection.azure_rm_sqlfirewallrule:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}second
+ state: absent
+- name: Gather facts SQL Firewall Rule
+ azure_rm_sqlfirewallrule_facts:
+ resource_group: '{{ resource_group }}'
+ server_name: sqlsrv{{ random_postfix }}
+ name: firewallrule{{ random_postfix }}
+ register: output
+- name: Assert that empty dictionary was returned
+ assert:
+ that:
+ - output.changed == False
+ - output.rules | length == 0
+- name: Delete instance of SQL Server -- check mode
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete instance of SQL Server
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed
+- name: Delete unexisting instance of SQL Server
+ register: output
+ azure.azcollection.azure_rm_sqlserver:
+ resource_group: '{{ resource_group }}'
+ name: sqlsrv{{ random_postfix }}
+ state: absent
+- name: Assert the state has changed
+ assert:
+ that:
+ - output.changed == false
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/aliases
new file mode 100644
index 00000000..218b8261
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/aliases
@@ -0,0 +1,4 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_virtualmachine_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/inventory.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/inventory.yml
new file mode 100644
index 00000000..acd98ebf
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/inventory.yml
@@ -0,0 +1,66 @@
+all:
+ hosts:
+ azure_test_invalid:
+ azure_test_public_ip:
+ network: 10.42.0.0/24
+ subnet: 10.42.0.0/28
+
+ azure_test_no_public_ip:
+ network: 10.42.1.0/24
+ subnet: 10.42.1.0/28
+
+ azure_test_deallocate:
+ network: 10.42.2.0/24
+ subnet: 10.42.2.0/28
+
+ azure_test_minimal:
+ network: 10.42.3.0/24
+ subnet: 10.42.3.0/28
+
+ azure_test_dual_nic:
+ network: 10.42.4.0/24
+ subnet: 10.42.4.0/28
+ secondary_network: 10.42.5.0/24
+ secondary_subnet: 10.42.5.0/28
+ nic_list:
+ - name: "{{ 'int' ~ uid_short ~ '-1' }}"
+ resource_group: "{{ resource_group_secondary }}"
+ - name: "{{ 'int' ~ uid_short ~ '-2' }}"
+ resource_group: "{{ resource_group_secondary }}"
+
+ vars:
+ ansible_connection: local
+ ansible_python_interpreter: "{{ ansible_playbook_python }}"
+
+ uid: "{{ (resource_group ~ inventory_hostname) | hash('md5') | truncate(18, True, '') }}"
+ uid_short: "{{ (resource_group ~ inventory_hostname) | hash('md5') | truncate(10, True, '') }}"
+
+ storage_account: "{{ 'stor' ~ uid }}"
+ availability_set: "{{ 'avbs' ~ uid_short }}"
+ vm_name: "{{ 'vm' ~ uid_short }}"
+ network_name: "{{ 'vnet' ~ uid_short }}"
+ subnet_name: "{{ 'snet' ~ uid_short }}"
+ security_group: "{{ 'sg' ~ uid_short }}"
+ public_ip_name: "{{ 'ip' ~ uid_short }}"
+ interface_name: "{{ 'int' ~ uid_short }}"
+
+ ssh_keys:
+ - path: '/home/chouseknecht/.ssh/authorized_keys'
+ key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1igsIlcmTa/yfsJnTtnrEX7PP/a01gwbXcig6JOKyrUmJB8E6c/wtZwP115VSyDRTO6TEL/sBFUpkSw01zM8ydNATErh8meBlAlbnDq5NLhDXnMizgG0VNn0iLc/WplFTqkefsHXa8NtIxAtyEVIj/fKbK3XfBOdEpE3+MJYNtGlWyaod28W+5qmQPZDQys+YnE4OjSwN7D3g85/7dtLFvDH+lEC4ooJOaxVFr9VSMXUIkaRF6oI+R1Zu803LFSCTb4BfFOYOHPuQ/rEMP0KuUzggvP+TEBY14PEA2FoHOn+oRsT0ZR2+loGRaxSVqCQKaEHbNbkm+6Rllx2NQRO0BJxCSKRU1iifInLPxmSc4gvsHCKMAWy/tGkmKHPWIfN8hvwyDMK5MNBp/SJ1pVx4xuFDQjVWNbll0yk2+72uJgtFHHwEPK9QsOz45gX85vS3yhYCKrscS/W9h2l36SWwQXuGy4fXotE7esPsvNGAzBndHX1O8RMPg47qJXz059RyoGforoa9TnzIs3hIv+ts7ESx3OEq3HNk0FJ+wDka7IM7WQpGrVToJ0vfDy9Q46nw54vv5Zc/u4OZF3F5twHmyf3rLYKXRDuCvZQKT2iWQKVX6j63bq6orA5hwl22zndxWZNtOwtq8Sd0Ns0K/Fo/ggYDDGBtr68DwhA+MrxrHw== chouseknecht@ansible.com"
+
+ image:
+ offer: CentOS
+ publisher: OpenLogic
+ sku: '7.1'
+ version: latest
+
+ image_paid:
+ publisher: cognosys
+ offer: ubuntu-14-04-lts
+ sku: hardened-ubuntu-14-04
+ version: latest
+
+ plan_paid:
+ name: hardened-ubuntu-14-04
+ product: ubuntu-14-04-lts
+ publisher: cognosys
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/main.yml
new file mode 100644
index 00000000..7722487b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/main.yml
@@ -0,0 +1,7 @@
+- name: Run Azurue VM tests in parallel
+ hosts: all
+ gather_facts: no
+ strategy: free
+ tasks:
+ - name: Include tasks based on inventory hostname
+ include_tasks: tasks/{{ inventory_hostname }}.yml
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/runme.sh b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/runme.sh
new file mode 100755
index 00000000..c7895c9d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/runme.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -eux
+
+ansible-playbook -i inventory.yml main.yml "$@"
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml
new file mode 100644
index 00000000..80dc5946
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_deallocate.yml
@@ -0,0 +1,78 @@
+- include_tasks: setup.yml
+- name: Create minimal VM with defaults
+ register: vm_output
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ admin_username: testuser
+ admin_password: Pass123$$$abx!
+ vm_size: Standard_A0
+ virtual_network: '{{ network_name }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Restart the virtual machine
+ register: restart_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ restarted: true
+ vm_size: Standard_A0
+- name: Ensue VM was restarted
+ assert:
+ that:
+ - azure_vm.powerstate in ['starting', 'running']
+ - restart_result is changed
+- name: Deallocate the virtual machine
+ register: deallocate_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ allocated: false
+ vm_size: Standard_A0
+- name: Ensure VM was deallocated
+ assert:
+ that:
+ - azure_vm.powerstate == 'deallocated'
+ - deallocate_result is changed
+- name: Start the virtual machine
+ register: start_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+- name: Ensure VM was started
+ assert:
+ that:
+ - azure_vm.powerstate in ['starting', 'running']
+ - start_result is changed
+- name: Delete VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ state: absent
+ remove_on_absent: all_autocreated
+- name: Destroy subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ virtual_network: '{{ network_name }}'
+ name: '{{ subnet_name }}'
+ state: absent
+- name: Destroy virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: '{{ network_name }}'
+ state: absent
+- name: Destroy availability set
+ azure.azcollection.azure_rm_availabilityset:
+ resource_group: '{{ resource_group }}'
+ name: '{{ availability_set }}'
+ state: absent
+- name: Destroy storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ force_delete_nonempty: true
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml
new file mode 100644
index 00000000..64e5b54b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_dual_nic.yml
@@ -0,0 +1,116 @@
+- include_tasks: setup.yml
+- name: Create virtual network in secondary resource group
+ register: create_virt_net_result
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group_secondary }}'
+ name: '{{ network_name ~ ''-2'' }}'
+ address_prefixes: '{{ secondary_network }}'
+- name: Create subnet in secondary resource group
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group_secondary }}'
+ name: '{{ subnet_name ~ ''-2'' }}'
+ address_prefix: '{{ secondary_subnet }}'
+ virtual_network: '{{ network_name ~ ''-2'' }}'
+- name: Create NICs for dual NIC VM in secondary resource group
+ loop: '{{ nic_list }}'
+ azure.azcollection.azure_rm_networkinterface:
+ resource_group: '{{ item.resource_group }}'
+ name: '{{ item.name }}'
+ virtual_network: '{{ network_name ~ ''-2'' }}'
+ subnet: '{{ subnet_name ~ ''-2'' }}'
+- name: Create virtual machine with two NICs
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+ storage_account: '{{ storage_account }}'
+ storage_container: '{{ vm_name }}'
+ storage_blob: '{{ vm_name }}.vhd'
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ os_disk_size_gb: 64
+ os_disk_name: testosdiskxx
+ network_interfaces: '{{ nic_list }}'
+ availability_set: '{{ availability_set }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+ tags:
+ abc: def
+- name: Ensure VM was created properly
+ assert:
+ that:
+ - azure_vm.properties.availabilitySet.id
+ - azure_vm.properties.storageProfile.osDisk.name == 'testosdiskxx'
+- name: Retrieve VM facts (filtering by name)
+ azure_rm_virtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ register: vm_facts_results
+- name: Ensure facts module returned the second VM
+ assert:
+ that:
+ - vm_facts_results.vms | length == 1
+ - vm_facts_results.vms[0].name == "{{ vm_name }}"
+ - vm_facts_results.vms[0].location
+ - vm_facts_results.vms[0].admin_username == 'adminuser'
+ - vm_facts_results.vms[0].resource_group == "{{ resource_group }}"
+ - vm_facts_results.vms[0].power_state != None
+- name: Retrieve facts by tags
+ azure_rm_virtualmachine_facts:
+ tags:
+ - abc:def
+ register: facts_by_tags_results
+- name: Assert that facts module returned the second VM
+ assert:
+ that:
+ - facts_by_tags_results.vms | length >= 1
+- name: Should be idempotent with a dual NICs
+ register: dual_nics_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+ storage_account: '{{ storage_account }}'
+ storage_container: '{{ vm_name }}'
+ storage_blob: '{{ vm_name }}.vhd'
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ os_disk_size_gb: 64
+ network_interfaces: '{{ nic_list }}'
+ availability_set: '{{ availability_set }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Ensure nothing changed
+ assert:
+ that: dual_nics_result is not changed
+- name: Generalize VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ generalized: true
+- name: Gather facts and check if machine is generalized
+ azure_rm_virtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ register: generalized_output
+- name: Ensure power state is generalized
+ assert:
+ that: generalized_output.vms[0].power_state == 'generalized'
+- name: Delete dual NIC VM
+ async: 5000
+ poll: 0
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ state: absent
+ vm_size: Standard_A0
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml
new file mode 100644
index 00000000..8b1979a9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_invalid.yml
@@ -0,0 +1,31 @@
+- name: Assert error thrown with invalid image dict
+ 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]"'
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ image:
+ offer: UbuntuServer
+- name: Assert error thrown with invalid image type
+ register: fail_invalid_image_type
+ failed_when: 'fail_invalid_image_type.msg != "parameter error: expecting image to be a string or dict not list"'
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ image:
+ - testing
+- name: Assert error finding missing custom image
+ register: fail_missing_custom_image
+ failed_when: fail_missing_custom_image.msg != "Error could not find image with name invalid-image"
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ image: invalid-image
+- name: Assert error finding missing custom image (dict style)
+ register: fail_missing_custom_image_dict
+ failed_when: fail_missing_custom_image_dict.msg != "Error could not find image with name invalid-image"
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ image:
+ name: invalid-image
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml
new file mode 100644
index 00000000..74446055
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_minimal.yml
@@ -0,0 +1,64 @@
+- include_tasks: setup.yml
+- name: Create minimal VM with defaults
+ register: vm_output
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ admin_username: testuser
+ admin_password: Pass123$$$abx!
+ vm_size: Standard_B1ms
+ virtual_network: '{{ network_name }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Delete VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ remove_on_absent: all_autocreated
+ state: absent
+- name: Query auto created NIC
+ register: nic_result
+ azure.azcollection.azure_rm_networkinterface_info:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}01'
+- name: Query auto created security group
+ register: nsg_result
+ azure.azcollection.azure_rm_securitygroup_info:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}01'
+- name: Query auto created public IP
+ register: pip_result
+ azure.azcollection.azure_rm_publicipaddress_info:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}01'
+- name: Assert that autocreated resources were deleted
+ assert:
+ that:
+ - nic_result.networkinterfaces | length == 0
+ - nsg_result.securitygroups | length == 0
+ - pip_result.publicipaddresses | length == 0
+- name: Destroy subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ virtual_network: '{{ network_name }}'
+ name: '{{ subnet_name }}'
+ state: absent
+- name: Destroy virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: '{{ network_name }}'
+ state: absent
+- name: Destroy availability set
+ azure.azcollection.azure_rm_availabilityset:
+ resource_group: '{{ resource_group }}'
+ name: '{{ availability_set }}'
+ state: absent
+- name: Destroy storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ force_delete_nonempty: true
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml
new file mode 100644
index 00000000..e9b81b08
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_no_public_ip.yml
@@ -0,0 +1,38 @@
+- include_tasks: setup.yml
+- name: Create virtual machine without public ip address and with boot diagnostics enabled
+ register: create_vm_public_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ public_ip_allocation_method: Disabled
+ storage_account_name: '{{ storage_account }}'
+ availability_set: '{{ availability_set }}'
+ virtual_network: '{{ network_name }}'
+ boot_diagnostics:
+ enabled: true
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Ensure VM was created properly
+ 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
+- name: Delete VM with no public ip
+ async: 5000
+ poll: 0
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ state: absent
+ remove_on_absent: all_autocreated
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml
new file mode 100644
index 00000000..ef89fbf7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/azure_test_public_ip.yml
@@ -0,0 +1,236 @@
+- include_tasks: setup.yml
+- name: Create public ip
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ allocation_method: Static
+ name: '{{ public_ip_name }}'
+- name: Create security group
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ security_group }}'
+ purge_rules: true
+ rules:
+ - name: ALLOW_SSH
+ protocol: Tcp
+ destination_port_range: 22
+ access: Allow
+ priority: 100
+ direction: Inbound
+ - name: ALLOW_HTTP
+ protocol: Tcp
+ destination_port_range: 80
+ access: Allow
+ priority: 110
+ direction: Inbound
+- name: Create network interface
+ azure.azcollection.azure_rm_networkinterface:
+ resource_group: '{{ resource_group }}'
+ name: '{{ interface_name }}'
+ virtual_network: '{{ network_name }}'
+ subnet: '{{ subnet_name }}'
+ public_ip_name: '{{ public_ip_name }}'
+ security_group: '{{ security_group }}'
+- name: Create virtual machine with a single NIC and no boot diagnostics
+ register: output
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+ storage_account: '{{ storage_account }}'
+ storage_container: '{{ vm_name }}'
+ storage_blob: '{{ vm_name }}.vhd'
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ network_interfaces: '{{ interface_name }}'
+ availability_set: '{{ availability_set }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+ custom_data: '#!/bin/sh
+
+ echo "custom_data was executed" > /tmp/custom_data.txt
+
+ '
+- name: Ensure VM was created properly
+ assert:
+ that:
+ - azure_vm.properties.provisioningState == 'Succeeded'
+ - azure_vm.properties.availabilitySet.id
+ - '''diagnosticsProfile'' not in azure_vm.properties or not azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled'
+- name: Get facts for virtual machine without boot diagnostics disabled
+ azure_rm_virtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ register: vm_facts_no_boot_diag_result
+- name: Ensure VM facts are correct
+ assert:
+ that:
+ - vm_facts_no_boot_diag_result.vms != []
+ - not vm_facts_no_boot_diag_result.vms[0].boot_diagnostics.enabled
+ - not vm_facts_no_boot_diag_result.vms[0].boot_diagnostics.storage_uri
+- name: Enable boot diagnostics on an existing VM for the first time without specifying a storage account
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ boot_diagnostics:
+ enabled: true
+- name: Ensure VM properties are correct
+ 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
+- name: Get facts for virtual machine with boot diagnostics enabled
+ azure_rm_virtualmachine_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ register: vm_facts_boot_diag_result
+- name: Ensure VM facts were returned
+ assert:
+ that:
+ - vm_facts_boot_diag_result.vms != []
+ - vm_facts_boot_diag_result.vms[0].boot_diagnostics.enabled
+ - vm_facts_boot_diag_result.vms[0].boot_diagnostics.storage_uri is defined
+ - vm_facts_boot_diag_result.vms[0].boot_diagnostics.console_screenshot_uri is defined
+ - vm_facts_boot_diag_result.vms[0].boot_diagnostics.serial_console_log_uri is defined
+- name: Change the boot diagnostics storage account while enabled
+ ignore_errors: true
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ boot_diagnostics:
+ enabled: true
+ storage_account: '{{ storage_account }}'
+- name: Disable boot diagnostics and change the storage account at the same time
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ boot_diagnostics:
+ enabled: false
+ storage_account: '{{ storage_account }}'
+- name: Ensure boot diagnostics was disabled
+ assert:
+ that:
+ - not azure_vm.properties.diagnosticsProfile.bootDiagnostics.enabled
+- name: Re-enable boot diagnostics on an existing VM where it was previously configured
+ register: reenable_boot_diag_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ boot_diagnostics:
+ enabled: true
+- name: Ensure boot diagnostics was reenabled
+ 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
+- name: Should be idempotent with a single NIC
+ register: single_nic_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A0
+ storage_account: '{{ storage_account }}'
+ storage_container: '{{ vm_name }}'
+ storage_blob: '{{ vm_name }}.vhd'
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ network_interfaces: '{{ interface_name }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Ensure nothing changed
+ assert:
+ that: single_nic_result is not changed
+- name: Resize VM
+ register: resize_result
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ vm_size: Standard_A1
+ storage_account: '{{ storage_account }}'
+ storage_container: '{{ vm_name }}'
+ storage_blob: '{{ vm_name }}.vhd'
+ admin_username: adminuser
+ admin_password: Password123!
+ short_hostname: testvm
+ os_type: Linux
+ network_interfaces: '{{ interface_name }}'
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Esure VM was resized
+ assert:
+ that:
+ - resize_result is changed
+ - resize_result.ansible_facts.azure_vm.properties.hardwareProfile.vmSize == "Standard_A1"
+- name: Delete VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: '{{ vm_name }}'
+ state: absent
+ vm_size: Standard_A0
+- name: NIC should be gone
+ azure_rm_networkinterface_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ interface_name }}'
+- name: Ensure NIC was removed
+ assert:
+ that: azure_networkinterfaces | length == 0
+- name: Public IP should be gone
+ azure_rm_publicipaddress_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ public_ip_name }}'
+- name: Ensure public IP was removed
+ assert:
+ that: azure_publicipaddresses | length == 0
+- name: Destroy NIC
+ azure.azcollection.azure_rm_networkinterface:
+ resource_group: '{{ resource_group }}'
+ name: '{{ interface_name }}'
+ state: absent
+- name: Destroy security group
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: '{{ security_group }}'
+ state: absent
+- name: Destroy subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ virtual_network: '{{ network_name }}'
+ name: '{{ subnet_name }}'
+ state: absent
+- name: Destroy virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: '{{ network_name }}'
+ state: absent
+- name: Destroy public ip
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ name: '{{ public_ip_name }}'
+ state: absent
+- name: Destroy availability set
+ azure.azcollection.azure_rm_availabilityset:
+ resource_group: '{{ resource_group }}'
+ name: '{{ availability_set }}'
+ state: absent
+- name: Destroy storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ force_delete_nonempty: true
+ state: absent
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml
new file mode 100644
index 00000000..2d4f19c0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachine/tasks/setup.yml
@@ -0,0 +1,22 @@
+- debug:
+ msg: UID is {{ uid_short }}
+- name: SETUP | Create storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ account_type: Standard_LRS
+- name: SETUP | Create availability set
+ azure.azcollection.azure_rm_availabilityset:
+ name: '{{ availability_set }}'
+ resource_group: '{{ resource_group }}'
+- name: SETUP | Create virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: '{{ network_name }}'
+ address_prefixes: '{{ network }}'
+- name: SETUP | Create subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ name: '{{ subnet_name }}'
+ address_prefix: '{{ subnet }}'
+ virtual_network: '{{ network_name }}'
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/aliases
new file mode 100644
index 00000000..6c772d71
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/aliases
@@ -0,0 +1,4 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_virtualmachineextension_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml
new file mode 100644
index 00000000..390c0cb6
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachineextension/tasks/main.yml
@@ -0,0 +1,167 @@
+- name: Create Random Storage Account Name
+ set_fact:
+ storage_account: '{{ resource_group | hash(''md5'') | truncate(24, True, '''') }}'
+- name: Create virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: testVnet
+ address_prefixes: 10.0.0.0/16
+- name: Add subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ name: testSubnet
+ address_prefix: 10.0.1.0/24
+ virtual_network: testVnet
+- name: Create public IP address
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ allocation_method: Dynamic
+ name: testPublicIP
+- name: Create Network Security Group that allows SSH
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: testNetworkSecurityGroup
+ rules:
+ - name: SSH
+ protocol: Tcp
+ destination_port_range: 22
+ access: Allow
+ priority: 1001
+ direction: Inbound
+- name: Create virtual network interface card
+ azure.azcollection.azure_rm_networkinterface:
+ resource_group: '{{ resource_group }}'
+ name: testNIC
+ virtual_network: testVnet
+ subnet: testSubnet
+ public_ip_name: testPublicIP
+ security_group_name: testNetworkSecurityGroup
+- name: create a storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ type: Standard_LRS
+- name: Create VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: testVM
+ vm_size: Standard_DS1_v2
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ network_interfaces: testNIC
+ storage_account_name: '{{ storage_account }}'
+ storage_container: osdisk
+ storage_blob: osdisk.vhd
+ os_disk_caching: ReadWrite
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+- name: Create VM Extension
+ register: results
+ azure.azcollection.azure_rm_virtualmachineextension:
+ resource_group: '{{ resource_group }}'
+ name: testVMExtension
+ virtual_machine_name: testVM
+ publisher: Microsoft.Azure.Extensions
+ virtual_machine_extension_type: CustomScript
+ type_handler_version: 2.0
+ auto_upgrade_minor_version: true
+ settings:
+ commandToExecute: hostname
+- name: Assert that VM Extension ran
+ assert:
+ that: results.changed
+- name: Query extension
+ azure_rm_virtualmachineextension_facts:
+ resource_group: '{{ resource_group }}'
+ name: testVMExtension
+ virtual_machine_name: testVM
+ register: results
+- name: Assert that facts are returned
+ assert:
+ that:
+ - results.changed == False
+ - results.extensions[0]['id'] != None
+ - results.extensions[0]['resource_group'] != None
+ - results.extensions[0]['virtual_machine_name'] != None
+ - results.extensions[0]['name'] != None
+ - results.extensions[0]['location'] != None
+ - results.extensions[0]['publisher'] != None
+ - results.extensions[0]['type'] != None
+ - results.extensions[0]['settings'] != None
+ - results.extensions[0]['auto_upgrade_minor_version'] != None
+ - results.extensions[0]['provisioning_state'] != None
+- name: List extensions
+ azure_rm_virtualmachineextension_facts:
+ resource_group: '{{ resource_group }}'
+ virtual_machine_name: testVM
+ register: results
+- name: Assert that facts are returned
+ assert:
+ that:
+ - results.changed == False
+ - results.extensions[0]['id'] != None
+ - results.extensions[0]['resource_group'] != None
+ - results.extensions[0]['virtual_machine_name'] != None
+ - results.extensions[0]['name'] != None
+ - results.extensions[0]['location'] != None
+ - results.extensions[0]['publisher'] != None
+ - results.extensions[0]['type'] != None
+ - results.extensions[0]['settings'] != None
+ - results.extensions[0]['auto_upgrade_minor_version'] != None
+ - results.extensions[0]['provisioning_state'] != None
+- name: Delete VM Extension
+ register: results
+ azure.azcollection.azure_rm_virtualmachineextension:
+ resource_group: '{{ resource_group }}'
+ name: testVMExtension
+ virtual_machine_name: testVM
+ state: absent
+ publisher: Microsoft.Azure.Extensions
+ virtual_machine_extension_type: CustomScript
+ type_handler_version: 2.0
+ auto_upgrade_minor_version: true
+ settings:
+ commandToExecute: hostname
+- name: Assert that VM Extension deleted
+ assert:
+ that: results.changed
+- name: Delete VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: testVM
+ state: absent
+ remove_on_absent:
+ - all
+ vm_size: Standard_DS1_v2
+ admin_username: testuser
+ network_interfaces: testNIC
+ storage_container: osdisk
+ storage_blob: osdisk.vhd
+ os_disk_caching: ReadWrite
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+- name: Delete a storage account
+ azure.azcollection.azure_rm_storageaccount:
+ resource_group: '{{ resource_group }}'
+ name: '{{ storage_account }}'
+ type: Standard_LRS
+ state: absent
+ force_delete_nonempty: true
+- name: Delete Network Security Group that allows SSH
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: testNetworkSecurityGroup
+ state: absent
+- name: Delete virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: testVnet
+ state: absent
+ address_prefixes: 10.0.0.0/16
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/aliases
new file mode 100644
index 00000000..01c44d5e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/aliases
@@ -0,0 +1,7 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_virtualmachinescaleset_facts
+azure_rm_virtualmachinescalesetinstance_facts
+azure_rm_virtualmachinescalesetextension
+azure_rm_virtualmachinescalesetextension_facts
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml
new file mode 100644
index 00000000..434eb2e9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_virtualmachinescaleset/tasks/main.yml
@@ -0,0 +1,547 @@
+- name: Prepare random number
+ set_fact:
+ rpfx: '{{ resource_group | hash(''md5'') | truncate(7, True, '''') }}{{ 1000 | random }}'
+ run_once: true
+- name: Create virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: testVnet
+ address_prefixes: 10.0.0.0/16
+- name: Add subnet
+ azure.azcollection.azure_rm_subnet:
+ resource_group: '{{ resource_group }}'
+ name: testSubnet
+ address_prefix: 10.0.1.0/24
+ virtual_network: testVnet
+- name: Create public IP address
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ allocation_method: Static
+ name: testPublicIP
+- name: Create load balancer
+ azure.azcollection.azure_rm_loadbalancer:
+ resource_group: '{{ resource_group }}'
+ name: testLB
+ public_ip_address_name: testPublicIP
+- name: Create public IP address 1
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ allocation_method: Static
+ name: testPublicIP1
+- name: Create load balancer 1
+ azure.azcollection.azure_rm_loadbalancer:
+ resource_group: '{{ resource_group }}'
+ name: testLB1
+ public_ip_address_name: testPublicIP1
+- name: Create network security group within same resource group of VMSS.
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: testNetworkSecurityGroup
+- name: Create network security group in different resource group of VMSS.
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group_secondary }}'
+ name: testNetworkSecurityGroup2
+- name: Create virtual network inteface cards for VM A and B
+ azure.azcollection.azure_rm_networkinterface:
+ resource_group: '{{ resource_group }}'
+ name: vmforimage{{ rpfx }}nic
+ virtual_network: testVnet
+ subnet: testSubnet
+- name: Create VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: vmforimage{{ rpfx }}
+ admin_username: testuser
+ admin_password: Password1234!
+ vm_size: Standard_B1ms
+ network_interfaces: vmforimage{{ rpfx }}nic
+ image:
+ offer: UbuntuServer
+ publisher: Canonical
+ sku: 16.04-LTS
+ version: latest
+- name: Generalize VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: vmforimage{{ rpfx }}
+ generalized: true
+- name: Create image A
+ azure.azcollection.azure_rm_image:
+ resource_group: '{{ resource_group }}'
+ name: testimagea
+ source: vmforimage{{ rpfx }}
+- name: Create image B
+ azure.azcollection.azure_rm_image:
+ resource_group: '{{ resource_group }}'
+ name: testimageb
+ source: vmforimage{{ rpfx }}
+- name: Delete VM
+ azure.azcollection.azure_rm_virtualmachine:
+ resource_group: '{{ resource_group }}'
+ name: vmforimage{{ rpfx }}
+ state: absent
+- name: Create VMSS (check mode)
+ register: results
+ check_mode: true
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ vm_size: Standard_B1s
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ capacity: 1
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ load_balancer: testLB
+ upgrade_policy: Manual
+ tier: Standard
+ managed_disk_type: Standard_LRS
+ os_disk_caching: ReadWrite
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+ data_disks:
+ - lun: 0
+ disk_size_gb: 64
+ caching: ReadWrite
+ managed_disk_type: Standard_LRS
+- name: Assert that VMSS can be created
+ assert:
+ that: results.changed
+- name: Get VMSS to assert no VMSS is created in check mode
+ azure_rm_virtualmachinescaleset_facts:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ format: curated
+ register: output_scaleset
+- name: Assert no VMSS created in check mode
+ assert:
+ that:
+ - output_scaleset.ansible_facts.azure_vmss | length == 0
+- name: Create VMSS
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ vm_size: Standard_B1s
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ capacity: 1
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ upgrade_policy: Manual
+ load_balancer: testLB
+ tier: Standard
+ managed_disk_type: Standard_LRS
+ os_disk_caching: ReadWrite
+ custom_data: '#cloud-config'
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+ data_disks:
+ - lun: 0
+ disk_size_gb: 64
+ caching: ReadWrite
+ managed_disk_type: Standard_LRS
+ scale_in_policy: NewestVM
+- name: Assert that VMSS was created
+ assert:
+ that: results.changed
+- name: Create VMSS -- test upgrade_policy idempotence and load balancer
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ vm_size: Standard_B1s
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ capacity: 1
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ upgrade_policy: Automatic
+ load_balancer: testLB1
+ tier: Standard
+ managed_disk_type: Standard_LRS
+ os_disk_caching: ReadWrite
+ custom_data: '#cloud-config'
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+ data_disks:
+ - lun: 0
+ disk_size_gb: 64
+ caching: ReadWrite
+ managed_disk_type: Standard_LRS
+- name: Assert that VMSS was created
+ assert:
+ that: results.changed
+- name: Retrieve scaleset facts
+ azure_rm_virtualmachinescaleset_facts:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ format: curated
+ register: output_scaleset
+- assert:
+ that:
+ - output_scaleset.vmss[0].load_balancer == "testLB1"
+- name: Retrieve scaleset VMs facts
+ azure_rm_virtualmachinescalesetinstance_facts:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ register: instances
+- name: Assert that facts returned correctly
+ assert:
+ that:
+ - instances.instances | length == 1
+ - instances.instances[0].id != None
+ - instances.instances[0].name != None
+ - instances.instances[0].instance_id != None
+ - instances.instances[0].provisioning_state != None
+ - instances.instances[0].vm_id != None
+ - instances.instances[0].latest_model != None
+ - instances.instances[0].power_state != None
+- name: Get scaleset body
+ set_fact:
+ body: '{{ output_scaleset.vmss[0] }}'
+- name: Try to update VMSS using output as input
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ body.resource_group }}'
+ name: '{{ body.name }}'
+ vm_size: '{{ body.vm_size }}'
+ admin_username: '{{ body.admin_username }}'
+ ssh_password_enabled: '{{ body.ssh_password_enabled }}'
+ admin_password: Password1234!
+ capacity: '{{ body.capacity }}'
+ virtual_network_name: '{{ body.virtual_network_name }}'
+ subnet_name: '{{ body.subnet_name }}'
+ upgrade_policy: '{{ body.upgrade_policy }}'
+ load_balancer: '{{ body.load_balancer }}'
+ tier: '{{ body.tier }}'
+ managed_disk_type: '{{ body.managed_disk_type }}'
+ os_disk_caching: '{{ body.os_disk_caching }}'
+ image: '{{ body.image }}'
+ data_disks: '{{ body.data_disks }}'
+ overprovision: '{{ body.overprovision }}'
+- name: Assert that nothing was changed
+ assert:
+ that: not results.changed
+- name: Install VMSS Extension
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetextension:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ name: testExtension
+ publisher: Microsoft.Azure.Extensions
+ type: CustomScript
+ type_handler_version: 2.0
+ auto_upgrade_minor_version: true
+ settings:
+ commandToExecute: sudo apt-get -y install apache2
+- name: Assert that something was changed
+ assert:
+ that: results.changed
+- name: Install Again VMSS Extension - again
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetextension:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ name: testExtension
+ publisher: Microsoft.Azure.Extensions
+ type: CustomScript
+ type_handler_version: 2.0
+ auto_upgrade_minor_version: true
+ settings:
+ commandToExecute: sudo apt-get -y install apache2
+- name: Assert that nothing was changed
+ assert:
+ that: not results.changed
+- name: Query extension
+ azure_rm_virtualmachinescalesetextension_facts:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ name: testExtension
+ register: results
+- name: Assert that facts are returned
+ assert:
+ that:
+ - results.changed == False
+ - results.extensions[0]['id'] != None
+ - results.extensions[0]['resource_group'] != None
+ - results.extensions[0]['vmss_name'] != None
+ - results.extensions[0]['name'] != None
+ - results.extensions[0]['publisher'] != None
+ - results.extensions[0]['type'] != None
+ - results.extensions[0]['settings'] != None
+ - results.extensions[0]['auto_upgrade_minor_version'] != None
+ - results.extensions[0]['provisioning_state'] != None
+- name: List extensions
+ azure_rm_virtualmachinescalesetextension_facts:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ register: results
+- name: Assert that facts are returned
+ assert:
+ that:
+ - results.changed == False
+ - results.extensions[0]['id'] != None
+ - results.extensions[0]['resource_group'] != None
+ - results.extensions[0]['vmss_name'] != None
+ - results.extensions[0]['name'] != None
+ - results.extensions[0]['publisher'] != None
+ - results.extensions[0]['type'] != None
+ - results.extensions[0]['settings'] != None
+ - results.extensions[0]['auto_upgrade_minor_version'] != None
+ - results.extensions[0]['provisioning_state'] != None
+- name: Delete VMSS Extension
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetextension:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ name: testExtension
+ state: absent
+- name: Assert that change was reported
+ assert:
+ that: results.changed
+- name: Upgrade instance to the latest image
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetinstance:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ instance_id: '{{ instances.instances[0].instance_id }}'
+ latest_model: true
+- name: Assert that something has changed
+ assert:
+ that: results.changed
+- name: Stop virtual machine
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetinstance:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ instance_id: '{{ instances.instances[0].instance_id }}'
+ power_state: stopped
+- name: Assert that something has changed
+ assert:
+ that: results.changed
+- name: Delete instance
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescalesetinstance:
+ resource_group: '{{ resource_group }}'
+ vmss_name: testVMSS{{ rpfx }}
+ instance_id: '{{ instances.instances[0].instance_id }}'
+ state: absent
+- name: Assert that something has changed
+ assert:
+ that: results.changed
+- name: Delete VMSS
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}
+ state: absent
+- name: Create VMSS with security group in same resource group, with accelerated networking(check mode).
+ register: results
+ check_mode: true
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ vm_size: Standard_D3_v2
+ capacity: 0
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ name: testimagea
+ resource_group: '{{ resource_group }}'
+ upgrade_policy: Manual
+ security_group: testNetworkSecurityGroup
+ enable_accelerated_networking: true
+- name: Assert that VMSS can be created
+ assert:
+ that: results.changed
+- name: Create VMSS with security group in same resource group, with accelerated networking.
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ vm_size: Standard_D3_v2
+ capacity: 0
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ name: testimagea
+ resource_group: '{{ resource_group }}'
+ upgrade_policy: Manual
+ security_group: testNetworkSecurityGroup
+ enable_accelerated_networking: true
+- name: Assert that VMSS ran
+ 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 != {}
+- name: Create VMSS with security group in same resource group, with accelerated networking.
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ vm_size: Standard_D3_v2
+ capacity: 0
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ name: testimagea
+ resource_group: '{{ resource_group }}'
+ upgrade_policy: Manual
+ security_group: testNetworkSecurityGroup
+ enable_accelerated_networking: true
+- name: Assert that nothing has changed
+ assert:
+ that:
+ - not results.changed
+- name: Create VMSS with security group in same resource group, with accelerated networking.
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ vm_size: Standard_D3_v2
+ capacity: 0
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ name: testimageb
+ resource_group: '{{ resource_group }}'
+ upgrade_policy: Manual
+ security_group: testNetworkSecurityGroup
+ enable_accelerated_networking: true
+- name: Assert that something has changed
+ assert:
+ that:
+ - results.changed
+- name: update VMSS with security group in different resource group.
+ register: results
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ vm_size: Standard_B1s
+ capacity: 0
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ name: testimageb
+ resource_group: '{{ resource_group }}'
+ upgrade_policy: Manual
+ security_group:
+ name: testNetworkSecurityGroup2
+ resource_group: '{{ resource_group_secondary }}'
+- name: Delete VMSS
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}2
+ state: absent
+- name: Fail when instance type is not supported to enable accelerated networking
+ register: results
+ ignore_errors: true
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testVMSS{{ rpfx }}4
+ vm_size: Standard_B1s
+ virtual_network_name: testVnet
+ subnet_name: testSubnet
+ admin_username: testuser
+ ssh_password_enabled: true
+ admin_password: Password1234!
+ image:
+ offer: CoreOS
+ publisher: CoreOS
+ sku: Stable
+ version: latest
+ upgrade_policy: Manual
+ enable_accelerated_networking: true
+- name: Assert failure to show that accelerated networking is enabled only with supported instance types.
+ assert:
+ that:
+ - '"VMSizeIsNotPermittedToEnableAcceleratedNetworkingForVmss" in results.msg'
+- name: Delete network security group
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group }}'
+ name: testNetworkSecurityGroup
+ state: absent
+- name: Delete network security group
+ azure.azcollection.azure_rm_securitygroup:
+ resource_group: '{{ resource_group_secondary }}'
+ name: testNetworkSecurityGroup2
+ state: absent
+- name: Delete load balancer
+ azure.azcollection.azure_rm_loadbalancer:
+ resource_group: '{{ resource_group }}'
+ name: testLB
+ state: absent
+- name: Delete public IP address
+ azure.azcollection.azure_rm_publicipaddress:
+ resource_group: '{{ resource_group }}'
+ state: absent
+ name: testPublicIP
+- name: Delete virtual network
+ azure.azcollection.azure_rm_virtualnetwork:
+ resource_group: '{{ resource_group }}'
+ name: testVnet
+ state: absent
+ address_prefixes: 10.0.0.0/16
+- name: assert error thrown with invalid image dict
+ 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]"'
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
+ offer: UbuntuServer
+- name: assert error thrown with invalid image type
+ register: fail_invalid_image_type
+ failed_when: 'fail_invalid_image_type.msg != "parameter error: expecting image to be a string or dict not list"'
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
+ - testing
+- name: assert error finding missing custom image
+ register: fail_missing_custom_image
+ failed_when: fail_missing_custom_image.msg != "Error could not find image with name invalid-image"
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testvm002
+ vm_size: Standard_B1s
+ image: invalid-image
+- name: assert error finding missing custom image (dict style)
+ register: fail_missing_custom_image_dict
+ failed_when: fail_missing_custom_image_dict.msg != "Error could not find image with name invalid-image"
+ azure.azcollection.azure_rm_virtualmachinescaleset:
+ resource_group: '{{ resource_group }}'
+ name: testvm002
+ vm_size: Standard_B1s
+ image:
+ name: invalid-image
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/aliases
new file mode 100644
index 00000000..fc534017
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/aliases
@@ -0,0 +1,5 @@
+cloud/azure
+shippable/azure/group1
+destructive
+azure_rm_webapp_facts
+azure_rm_webappslot
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/meta/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/meta/main.yml
new file mode 100644
index 00000000..95e1952f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/tasks/main.yml b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/tasks/main.yml
new file mode 100644
index 00000000..af995af0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/azure_rm_webapp/tasks/main.yml
@@ -0,0 +1,369 @@
+- name: Fix resource prefix
+ set_fact:
+ linux_app_plan_resource_group: '{{ resource_group_secondary }}'
+ win_app_name: '{{ (resource_prefix | replace(''-'',''x''))[-8:] }}{{ 1000 | random}}winapp'
+ 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
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}1'
+ plan:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_plan_name }}'
+ is_linux: false
+ sku: S1
+- name: Create a windows web app with existing app service plan
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}2'
+ plan: '{{ win_plan_name }}'
+- name: stop the web app
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}2'
+ plan: '{{ win_plan_name }}'
+ app_state: stopped
+- name: assert output changed
+ assert:
+ that: output.changed
+- name: Create a windows web app with existing app service plan, try to update some root level params
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}3'
+ plan: '{{ win_plan_name }}'
+ dns_registration: true
+ https_only: true
+ tags:
+ testwebapptag: test
+- name: get web app with resource group and tag
+ azure_rm_webapp_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}3'
+ tags:
+ - testwebapptag
+ register: output
+- assert:
+ that:
+ - output.webapps | length == 1
+- name: Create a win web app with java run time specific
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ plan: '{{ win_plan_name }}'
+ frameworks:
+ - name: java
+ version: '1.8'
+ settings:
+ java_container: Tomcat
+ java_container_version: '8.0'
+ app_settings:
+ testkey: testvalue
+- name: assert the web app was created
+ assert:
+ that: output.changed
+- name: get web app with name
+ azure_rm_webapp_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ register: output
+- assert:
+ that:
+ - output.webapps | length == 1
+ - output.webapps[0].app_settings | length == 1
+ - output.webapps[0].frameworks | length > 1
+- name: Update app settings and framework
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ plan: '{{ win_plan_name }}'
+ frameworks:
+ - name: java
+ version: '1.7'
+ settings:
+ java_container: Tomcat
+ java_container_version: '8.5'
+ app_settings:
+ testkey2: testvalue2
+- name: Assert the web app was updated
+ assert:
+ that:
+ - output.changed
+- name: get web app with name
+ azure_rm_webapp_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ register: output
+- name: Assert updating
+ assert:
+ that:
+ - 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
+ azure_rm_webapp_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ return_publish_profile: true
+ register: output
+- assert:
+ that:
+ - output.webapps | length == 1
+ - output.webapps[0].publishing_username != ""
+ - output.webapps[0].publishing_password != ""
+- name: Purge all existing app settings
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}4'
+ plan: '{{ win_plan_name }}'
+ purge_app_settings: true
+- name: Assert the web app was updated
+ assert:
+ that: output.changed
+- name: Create a win web app with python run time and php run time
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}5'
+ plan: '{{ win_plan_name }}'
+ frameworks:
+ - name: python
+ version: '2.7'
+ - name: node
+ version: '6.6'
+ - name: php
+ version: '7.0'
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Create a docker web app with some app settings
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}6'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ is_linux: true
+ sku: S1
+ number_of_workers: 1
+ container_settings:
+ name: ansible/ansible:ubuntu1404
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Create a docker web app with private acr registry
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}7'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ container_settings:
+ name: ansible/ansible:ubuntu1404
+ registry_server_url: test.io
+ registry_server_user: user
+ registry_server_password: password
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Create a linux web app with nodejs framework
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}8'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ frameworks:
+ - name: node
+ version: '6.6'
+- name: Should be idempotent with linux web app created
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}8'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ frameworks:
+ - name: node
+ version: '6.6'
+- assert:
+ that: not output.changed
+- name: Update nodejs framework
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}8'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ frameworks:
+ - name: node
+ version: '6.9'
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Create a linux web app with deployment source github
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}10'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ deployment_source:
+ url: https://github.com/test/test
+ branch: master
+ scm_type: GitHub
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Delete web app
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}8'
+ state: absent
+- name: Assert the web app was deleted
+ assert:
+ that: output.changed
+- name: assert error that java is mutually exclusive with frameworks
+ register: fail_win_java_version_mutual_exclusive
+ failed_when: fail_win_java_version_mutual_exclusive.msg != "Java is mutually exclusive with other frameworks."
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}11'
+ plan: '{{ win_plan_name }}'
+ frameworks:
+ - name: python
+ version: '2.7'
+ - name: java
+ version: '1.8'
+- name: assert error when linux web app, only can specify one framework
+ register: fail_linux_one_framework_only
+ failed_when: fail_linux_one_framework_only.msg != "Can specify one framework only for Linux web app."
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ linux_plan_name }}12'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ frameworks:
+ - name: python
+ version: '2.7'
+ - name: node
+ version: '6.6'
+- name: Create a linux web app with java tomcat container
+ register: output
+ azure.azcollection.azure_rm_webapp:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}13'
+ plan:
+ resource_group: '{{ linux_app_plan_resource_group }}'
+ name: '{{ linux_plan_name }}'
+ frameworks:
+ - name: java
+ version: '8'
+ settings:
+ java_container: tomcat
+ java_container_version: '8.5'
+- name: Assert the web app was created
+ assert:
+ that: output.changed
+- name: Get facts with publish profile
+ azure_rm_webapp_facts:
+ resource_group: '{{ resource_group }}'
+ name: '{{ win_app_name }}13'
+ no_log: true
+ register: facts
+- name: Assert publish profile returned
+ assert:
+ that:
+ - facts.webapps[0].ftp_publish_url != ''
+- name: Create a webapp slot (Check mode)
+ check_mode: true
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ configuration_source: '{{ win_app_name }}13'
+ app_settings:
+ testkey: testvalue
+- name: Assert slot check mode creation
+ assert:
+ that:
+ - output.changed
+- name: Create a webapp slot
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ configuration_source: '{{ win_app_name }}13'
+ app_settings:
+ testkey: testvalueslot
+- name: Assert slot creation
+ assert:
+ that:
+ - output.changed
+- name: Update webapp slot (idempotence)
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ app_settings:
+ testkey: testvalueslot
+- name: Assert idempotence
+ assert:
+ that:
+ - not output.changed
+- name: Update webapp slot
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ frameworks:
+ - name: node
+ version: '10.1'
+ app_settings:
+ testkey: testvalue2
+- name: Assert updating
+ assert:
+ that:
+ - output.changed
+- name: Swap webapp slot
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ swap:
+ action: swap
+- name: Assert swap
+ assert:
+ that:
+ - output.changed
+- name: Stop webapp slot
+ register: output
+ azure.azcollection.azure_rm_webappslot:
+ resource_group: '{{ resource_group }}'
+ webapp_name: '{{ win_app_name }}13'
+ name: '{{ slot1_name }}'
+ app_state: stopped
+- name: Assert stopped
+ assert:
+ that:
+ - output.changed
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/setup_azure/aliases b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/setup_azure/aliases
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/integration/targets/setup_azure/aliases
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/requirements.yml b/collections-debian-merged/ansible_collections/community/azure/tests/requirements.yml
new file mode 100644
index 00000000..30c143c3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/requirements.yml
@@ -0,0 +1,3 @@
+integration_tests_dependencies:
+- azure.azcollection
+unit_tests_dependencies: []
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/sanity/ignore-2.10.txt b/collections-debian-merged/ansible_collections/community/azure/tests/sanity/ignore-2.10.txt
new file mode 100644
index 00000000..9393be22
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/sanity/ignore-2.10.txt
@@ -0,0 +1,270 @@
+plugins/modules/azure_rm_aks_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_aks_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_aks_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_aks_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_aksversion_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_aksversion_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_aksversion_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_applicationsecuritygroup_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_appserviceplan_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_appserviceplan_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_appserviceplan_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_automationaccount_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_automationaccount_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_automationaccount_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_autoscale_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_autoscale_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_autoscale_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_availabilityset_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_availabilityset_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_availabilityset_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_availabilityset_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_cdnendpoint_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_cdnprofile_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_cdnprofile_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_cdnprofile_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_containerinstance_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_containerinstance_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_containerinstance_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_containerinstance_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_containerregistry_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_containerregistry_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_containerregistry_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_containerregistry_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_cosmosdbaccount_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_deployment_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_deployment_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_deployment_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_deployment_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlab_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlab_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlab_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlab_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabarmtemplate_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabartifact_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabartifactsource_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:doc-required-mismatch
+plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabcustomimage_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabenvironment_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabpolicy_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabschedule_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_devtestlabvirtualmachine_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_devtestlabvirtualnetwork_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_dnsrecordset_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_dnsrecordset_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_dnsrecordset_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_dnsrecordset_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_dnszone_info.py validate-modules:doc-type-does-not-match-spec
+plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_dnszone_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_dnszone_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_dnszone_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_dnszone_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_functionapp_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_functionapp_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_functionapp_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_hdinsightcluster_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_image_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_image_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_image_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_image_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_image_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_loadbalancer_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_loadbalancer_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_loadbalancer_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_loadbalancer_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_lock_info.py validate-modules:doc-required-mismatch
+plugins/modules/azure_rm_lock_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_lock_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_loganalyticsworkspace_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_manageddisk.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_manageddisk.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_manageddisk.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_manageddisk_info.py validate-modules:doc-type-does-not-match-spec
+plugins/modules/azure_rm_manageddisk_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_manageddisk_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_manageddisk_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mariadbconfiguration_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_mariadbdatabase_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mariadbdatabase_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mariadbfirewallrule_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mariadbfirewallrule_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mariadbserver_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_mariadbserver_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mariadbserver_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mysqlconfiguration_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_mysqldatabase_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mysqldatabase_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mysqlfirewallrule_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mysqlfirewallrule_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_mysqlserver_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_mysqlserver_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_mysqlserver_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_networkinterface_info.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:required_if-requirements-unknown
+plugins/modules/azure_rm_networkinterface_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_networkinterface_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_postgresqlconfiguration_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_postgresqldatabase_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_postgresqldatabase_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_postgresqlfirewallrule_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_postgresqlfirewallrule_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_postgresqlserver_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_postgresqlserver_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_postgresqlserver_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_publicipaddress_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_publicipaddress_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_publicipaddress_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_rediscache_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_rediscache_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_rediscache_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_resource_info.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:required_if-requirements-unknown
+plugins/modules/azure_rm_resource_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_resourcegroup_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_resourcegroup_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_resourcegroup_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_roleassignment_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_roleassignment_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_roleassignment_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_roledefinition_info.py validate-modules:invalid-ansiblemodule-schema
+plugins/modules/azure_rm_roledefinition_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_roledefinition_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_roledefinition_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_roledefinition_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_routetable_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_routetable_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_routetable_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_securitygroup_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_securitygroup_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_securitygroup_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_servicebus_info.py validate-modules:doc-required-mismatch
+plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_servicebus_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_servicebus_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_servicebus_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_sqldatabase_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_sqldatabase_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_sqldatabase_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_sqlfirewallrule_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_sqlserver_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_sqlserver_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_sqlserver_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_storageaccount_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_storageaccount_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_storageaccount_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_storageaccount_info.py validate-modules:return-syntax-error
+plugins/modules/azure_rm_subnet_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_subnet_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_subnet_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_trafficmanagerendpoint_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_trafficmanagerprofile_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachine_info.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_virtualmachine_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachine_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachineextension.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachineextension.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachineextension.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachineextension_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_virtualmachineextension_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachineextension_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachineextension_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachineimage_info.py validate-modules:required_if-unknown-key
+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.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachinescaleset.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachinescaleset_info.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_virtualmachinescaleset_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachinescaleset_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachinescalesetextension_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualmachinescalesetinstance_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualnetwork_info.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_virtualnetwork_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualnetwork_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_virtualnetworkpeering_info.py validate-modules:required_if-unknown-key
+plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-list-no-elements
+plugins/modules/azure_rm_webapp_info.py validate-modules:parameter-type-not-in-doc
+plugins/modules/azure_rm_webapp_info.py validate-modules:required_if-requirements-unknown
+plugins/modules/azure_rm_webapp_info.py validate-modules:required_if-unknown-key
+tests/utils/shippable/check_matrix.py replace-urlopen
+tests/utils/shippable/timing.py shebang
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/sanity/requirements.txt b/collections-debian-merged/ansible_collections/community/azure/tests/sanity/requirements.txt
new file mode 100644
index 00000000..3e3a9669
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/sanity/requirements.txt
@@ -0,0 +1,4 @@
+packaging # needed for update-bundled and changelog
+sphinx ; python_version >= '3.5' # docs build requires python 3+
+sphinx-notfound-page ; python_version >= '3.5' # docs build requires python 3+
+straight.plugin ; python_version >= '3.5' # needed for hacking/build-ansible.py which will host changelog generation and requires python 3+
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/ado/ado.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/ado/ado.sh
new file mode 100755
index 00000000..55d7f66d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/ado/ado.sh
@@ -0,0 +1,124 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eux
+
+declare -a args
+IFS='/:' read -ra args <<< "$1"
+
+group="${args[0]}"
+
+command -v python
+python -V
+
+if [ "$2" = "2.7" ]
+then
+ command -v pip
+ pip --version
+ pip list --disable-pip-version-check
+else
+ command -v pip3
+ pip3 --version
+ pip3 list --disable-pip-version-check
+fi
+
+export PATH="${PWD}/bin:${PATH}"
+export PYTHONIOENCODING="UTF-8"
+export LC_ALL="en_US.utf-8"
+
+if [ "$2" = "2.7" ]
+then
+ pip install virtualenv
+ virtualenv --python /usr/bin/python2.7 ~/ansible-venv
+else
+ pip3 install virtualenv
+ virtualenv --python /usr/bin/python"$2" ~/ansible-venv
+fi
+
+set +ux
+. ~/ansible-venv/bin/activate
+set -ux
+
+if [ "$2" = "2.7" ]
+then
+ if [ "$3" = "devel" ]
+ then
+ pip install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check
+ else
+ git clone https://github.com/ansible/ansible.git
+ cd "ansible"
+ git checkout "stable-$3"
+ source hacking/env-setup
+ pip install paramiko PyYAML Jinja2 httplib2 six
+ fi
+else
+ if [ "$3" = "devel" ]
+ then
+ pip3 install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check
+ else
+ git clone https://github.com/ansible/ansible.git
+ cd "ansible"
+ git checkout "stable-$3"
+ source hacking/env-setup
+ pip3 install paramiko PyYAML Jinja2 httplib2 six
+ fi
+fi
+
+TEST_DIR="${HOME}/.ansible/ansible_collections/azure/azcollection"
+mkdir -p "${TEST_DIR}"
+cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}"
+cd "${TEST_DIR}"
+mkdir -p shippable/testresults
+
+if [ "$2" = "2.7" ]
+then
+ pip install --upgrade pip
+ pip install -I -r "${TEST_DIR}/requirements-azure.txt"
+ pip3 install setuptools
+ pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt"
+ pip3 list
+else
+ pip3 install -I -r "${TEST_DIR}/requirements-azure.txt"
+ pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt"
+ pip3 list
+fi
+
+timeout=60
+
+if [ "$4" = "all" ]
+then
+ echo "All module need test"
+else
+ path_dir="${TEST_DIR}/tests/integration/targets/"
+ for item in "$path_dir"*
+ do
+ if [ "${item}" = "$path_dir""$4" ]
+ then
+ echo "PASS"
+ else
+ echo " " >> "${item}"/aliases
+ echo "disabled" >> "${item}"/aliases
+ fi
+ done
+fi
+echo '--------------------------------------------'
+ansible --version
+echo '--------------------------------------------'
+
+ansible-test env --dump --show --timeout "${timeout}" --color -v
+
+cat <<EOF >> "${TEST_DIR}"/tests/integration/cloud-config-azure.ini
+[default]
+AZURE_CLIENT_ID:${AZURE_CLIENT_ID}
+AZURE_SECRET:${AZURE_SECRET}
+AZURE_SUBSCRIPTION_ID:${AZURE_SUBSCRIPTION_ID}
+AZURE_TENANT:${AZURE_TENANT}
+RESOURCE_GROUP:${RESOURCE_GROUP}
+RESOURCE_GROUP_SECONDARY:${RESOURCE_GROUP_SECONDARY}
+EOF
+
+if [ "sanity" = "${group}" ]
+then
+ ansible-test sanity --color -v --junit
+else
+ ansible-test integration --color -v --retry-on-error "shippable/azure/group${group}/" --allow-destructive
+fi
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/azure.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/azure.sh
new file mode 100755
index 00000000..d76c3228
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/azure.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eux
+
+declare -a args
+IFS='/:' read -ra args <<< "$1"
+
+cloud="${args[0]}"
+python="${args[1]}"
+group="${args[2]}"
+
+target="shippable/${cloud}/group${group}/"
+
+stage="${S:-prod}"
+
+# shellcheck disable=SC2086
+ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
+ --remote-terminate always --remote-stage "${stage}" \
+ --docker --python "${python}"
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/check_matrix.py b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/check_matrix.py
new file mode 100755
index 00000000..fb559466
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/check_matrix.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env python
+"""Verify the currently executing Shippable test matrix matches the one defined in the "shippable.yml" file."""
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import datetime
+import json
+import os
+import re
+import sys
+import time
+
+try:
+ from typing import NoReturn
+except ImportError:
+ NoReturn = None
+
+try:
+ # noinspection PyCompatibility
+ from urllib2 import urlopen # pylint: disable=ansible-bad-import-from
+except ImportError:
+ # noinspection PyCompatibility
+ from urllib.request import urlopen
+
+
+def main(): # type: () -> None
+ """Main entry point."""
+ repo_full_name = os.environ['REPO_FULL_NAME']
+ required_repo_full_name = 'ansible-collections/community.azure'
+
+ if repo_full_name != required_repo_full_name:
+ sys.stderr.write('Skipping matrix check on repo "%s" which is not "%s".\n' % (repo_full_name, required_repo_full_name))
+ return
+
+ with open('shippable.yml', 'rb') as yaml_file:
+ yaml = yaml_file.read().decode('utf-8').splitlines()
+
+ defined_matrix = [match.group(1) for match in [re.search(r'^ *- env: T=(.*)$', line) for line in yaml] if match and match.group(1) != 'none']
+
+ if not defined_matrix:
+ fail('No matrix entries found in the "shippable.yml" file.',
+ 'Did you modify the "shippable.yml" file?')
+
+ run_id = os.environ['SHIPPABLE_BUILD_ID']
+ sleep = 1
+ jobs = []
+
+ for attempts_remaining in range(4, -1, -1):
+ try:
+ jobs = json.loads(urlopen('https://api.shippable.com/jobs?runIds=%s' % run_id).read())
+
+ if not isinstance(jobs, list):
+ raise Exception('Shippable run %s data is not a list.' % run_id)
+
+ break
+ except Exception as ex:
+ if not attempts_remaining:
+ fail('Unable to retrieve Shippable run %s matrix.' % run_id,
+ str(ex))
+
+ sys.stderr.write('Unable to retrieve Shippable run %s matrix: %s\n' % (run_id, ex))
+ sys.stderr.write('Trying again in %d seconds...\n' % sleep)
+ time.sleep(sleep)
+ sleep *= 2
+
+ if len(jobs) != len(defined_matrix):
+ if len(jobs) == 1:
+ hint = '\n\nMake sure you do not use the "Rebuild with SSH" option.'
+ else:
+ hint = ''
+
+ fail('Shippable run %s has %d jobs instead of the expected %d jobs.' % (run_id, len(jobs), len(defined_matrix)),
+ 'Try re-running the entire matrix.%s' % hint)
+
+ actual_matrix = dict((job.get('jobNumber'), dict(tuple(line.split('=', 1)) for line in job.get('env', [])).get('T', '')) for job in jobs)
+ errors = [(job_number, test, actual_matrix.get(job_number)) for job_number, test in enumerate(defined_matrix, 1) if actual_matrix.get(job_number) != test]
+
+ if len(errors):
+ error_summary = '\n'.join('Job %s expected "%s" but found "%s" instead.' % (job_number, expected, actual) for job_number, expected, actual in errors)
+
+ fail('Shippable run %s has a job matrix mismatch.' % run_id,
+ 'Try re-running the entire matrix.\n\n%s' % error_summary)
+
+
+def fail(message, output): # type: (str, str) -> NoReturn
+ # Include a leading newline to improve readability on Shippable "Tests" tab.
+ # Without this, the first line becomes indented.
+ output = '\n' + output.strip()
+
+ timestamp = datetime.datetime.utcnow().replace(microsecond=0).isoformat()
+
+ # hack to avoid requiring junit-xml, which isn't pre-installed on Shippable outside our test containers
+ xml = '''
+<?xml version="1.0" encoding="utf-8"?>
+<testsuites disabled="0" errors="1" failures="0" tests="1" time="0.0">
+\t<testsuite disabled="0" errors="1" failures="0" file="None" log="None" name="ansible-test" skipped="0" tests="1" time="0" timestamp="%s" url="None">
+\t\t<testcase classname="timeout" name="timeout">
+\t\t\t<error message="%s" type="error">%s</error>
+\t\t</testcase>
+\t</testsuite>
+</testsuites>
+''' % (timestamp, message, output)
+
+ path = 'shippable/testresults/check-matrix.xml'
+ dir_path = os.path.dirname(path)
+
+ if not os.path.exists(dir_path):
+ os.makedirs(dir_path)
+
+ with open(path, 'w') as junit_fd:
+ junit_fd.write(xml.lstrip())
+
+ sys.stderr.write(message + '\n')
+ sys.stderr.write(output + '\n')
+
+ sys.exit(1)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/cloud.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/cloud.sh
new file mode 100755
index 00000000..d76c3228
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/cloud.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eux
+
+declare -a args
+IFS='/:' read -ra args <<< "$1"
+
+cloud="${args[0]}"
+python="${args[1]}"
+group="${args[2]}"
+
+target="shippable/${cloud}/group${group}/"
+
+stage="${S:-prod}"
+
+# shellcheck disable=SC2086
+ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
+ --remote-terminate always --remote-stage "${stage}" \
+ --docker --python "${python}"
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/sanity.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/sanity.sh
new file mode 100755
index 00000000..c216220e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/sanity.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eux
+
+declare -a args
+IFS='/:' read -ra args <<< "$1"
+
+group="${args[1]}"
+
+if [ "${BASE_BRANCH:-}" ]; then
+ base_branch="origin/${BASE_BRANCH}"
+else
+ base_branch=""
+fi
+
+if [ "${group}" == "extra" ]; then
+ # ansible-galaxy -vvv collection install community.internal_test_tools
+ git clone --single-branch --depth 1 https://github.com/ansible-collections/community.internal_test_tools.git ../internal_test_tools
+
+ ../internal_test_tools/tools/run.py --color
+ exit
+fi
+
+# shellcheck disable=SC2086
+ansible-test sanity --color -v --junit ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
+ --docker --base-branch "${base_branch}" \
+ --allow-disabled
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/shippable.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/shippable.sh
new file mode 100755
index 00000000..1f9672d4
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/shippable.sh
@@ -0,0 +1,202 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eux
+
+declare -a args
+IFS='/:' read -ra args <<< "$1"
+
+ansible_version="${args[0]}"
+script="${args[1]}"
+
+function join {
+ local IFS="$1";
+ shift;
+ echo "$*";
+}
+
+test="$(join / "${args[@]:1}")"
+
+docker images ansible/ansible
+docker images quay.io/ansible/*
+docker ps
+
+for container in $(docker ps --format '{{.Image}} {{.ID}}' | grep -v '^drydock/' | sed 's/^.* //'); do
+ docker rm -f "${container}" || true # ignore errors
+done
+
+docker ps
+
+if [ -d /home/shippable/cache/ ]; then
+ ls -la /home/shippable/cache/
+fi
+
+command -v python
+python -V
+
+function retry
+{
+ # shellcheck disable=SC2034
+ for repetition in 1 2 3; do
+ set +e
+ "$@"
+ result=$?
+ set -e
+ if [ ${result} == 0 ]; then
+ return ${result}
+ fi
+ echo "@* -> ${result}"
+ done
+ echo "Command '@*' failed 3 times!"
+ exit -1
+}
+
+command -v pip
+pip --version
+pip list --disable-pip-version-check
+if [ "${ansible_version}" == "devel" ]; then
+ retry pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
+else
+ retry pip install "https://github.com/ansible/ansible/archive/stable-${ansible_version}.tar.gz" --disable-pip-version-check
+fi
+
+export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible"
+SHIPPABLE_RESULT_DIR="$(pwd)/shippable"
+TEST_DIR="${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/azure"
+mkdir -p "${TEST_DIR}"
+cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}"
+cd "${TEST_DIR}"
+
+# START: HACK install dependencies
+retry ansible-galaxy -vvv collection install azure.azcollection
+
+# END: HACK
+
+export PYTHONIOENCODING='utf-8'
+
+if [ "${JOB_TRIGGERED_BY_NAME:-}" == "nightly-trigger" ]; then
+ COVERAGE=yes
+ COMPLETE=yes
+fi
+
+if [ -n "${COVERAGE:-}" ]; then
+ # on-demand coverage reporting triggered by setting the COVERAGE environment variable to a non-empty value
+ export COVERAGE="--coverage"
+elif [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]]; then
+ # on-demand coverage reporting triggered by having 'ci_coverage' in the latest commit message
+ export COVERAGE="--coverage"
+else
+ # on-demand coverage reporting disabled (default behavior, always-on coverage reporting remains enabled)
+ export COVERAGE="--coverage-check"
+fi
+
+if [ -n "${COMPLETE:-}" ]; then
+ # disable change detection triggered by setting the COMPLETE environment variable to a non-empty value
+ export CHANGED=""
+elif [[ "${COMMIT_MESSAGE}" =~ ci_complete ]]; then
+ # disable change detection triggered by having 'ci_complete' in the latest commit message
+ export CHANGED=""
+else
+ # enable change detection (default behavior)
+ export CHANGED="--changed"
+fi
+
+if [ "${IS_PULL_REQUEST:-}" == "true" ]; then
+ # run unstable tests which are targeted by focused changes on PRs
+ export UNSTABLE="--allow-unstable-changed"
+else
+ # do not run unstable tests outside PRs
+ export UNSTABLE=""
+fi
+
+# remove empty core/extras module directories from PRs created prior to the repo-merge
+find plugins -type d -empty -print -delete
+
+function cleanup
+{
+ # for complete on-demand coverage generate a report for all files with no coverage on the "sanity/5" job so we only have one copy
+ if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ] && [ "${test}" == "sanity/5" ]; then
+ stub="--stub"
+ # trigger coverage reporting for stubs even if no other coverage data exists
+ mkdir -p tests/output/coverage/
+ else
+ stub=""
+ fi
+
+ if [ -d tests/output/coverage/ ]; then
+ if find tests/output/coverage/ -mindepth 1 -name '.*' -prune -o -print -quit | grep -q .; then
+ process_coverage='yes' # process existing coverage files
+ elif [ "${stub}" ]; then
+ process_coverage='yes' # process coverage when stubs are enabled
+ else
+ process_coverage=''
+ fi
+
+ if [ "${process_coverage}" ]; then
+ # use python 3.7 for coverage to avoid running out of memory during coverage xml processing
+ # only use it for coverage to avoid the additional overhead of setting up a virtual environment for a potential no-op job
+ virtualenv --python /usr/bin/python3.7 ~/ansible-venv
+ set +ux
+ . ~/ansible-venv/bin/activate
+ set -ux
+
+ # shellcheck disable=SC2086
+ ansible-test coverage xml --color -v --requirements --group-by command --group-by version ${stub:+"$stub"}
+ cp -a tests/output/reports/coverage=*.xml "$SHIPPABLE_RESULT_DIR/codecoverage/"
+
+ if [ "${ansible_version}" != "2.9" ]; then
+ # analyze and capture code coverage aggregated by integration test target
+ ansible-test coverage analyze targets generate -v "$SHIPPABLE_RESULT_DIR/testresults/coverage-analyze-targets.json"
+ fi
+
+ # upload coverage report to codecov.io only when using complete on-demand coverage
+ if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ]; then
+ for file in tests/output/reports/coverage=*.xml; do
+ flags="${file##*/coverage=}"
+ flags="${flags%-powershell.xml}"
+ flags="${flags%.xml}"
+ # remove numbered component from stub files when converting to tags
+ flags="${flags//stub-[0-9]*/stub}"
+ flags="${flags//=/,}"
+ flags="${flags//[^a-zA-Z0-9_,]/_}"
+
+ bash <(curl -s https://codecov.io/bash) \
+ -f "${file}" \
+ -F "${flags}" \
+ -n "${test}" \
+ -t 47041dbd-4bef-43b8-8873-4c6a1a8a3711 \
+ -X coveragepy \
+ -X gcov \
+ -X fix \
+ -X search \
+ -X xcode \
+ || echo "Failed to upload code coverage report to codecov.io: ${file}"
+ done
+ fi
+ fi
+ fi
+
+ if [ -d tests/output/junit/ ]; then
+ cp -aT tests/output/junit/ "$SHIPPABLE_RESULT_DIR/testresults/"
+ fi
+
+ if [ -d tests/output/data/ ]; then
+ cp -a tests/output/data/ "$SHIPPABLE_RESULT_DIR/testresults/"
+ fi
+
+ if [ -d tests/output/bot/ ]; then
+ cp -aT tests/output/bot/ "$SHIPPABLE_RESULT_DIR/testresults/"
+ fi
+}
+
+trap cleanup EXIT
+
+if [[ "${COVERAGE:-}" == "--coverage" ]]; then
+ timeout=60
+else
+ timeout=50
+fi
+
+ansible-test env --dump --show --timeout "${timeout}" --color -v
+
+"tests/utils/shippable/check_matrix.py"
+"tests/utils/shippable/${script}.sh" "${test}"
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.py b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.py
new file mode 100755
index 00000000..fb538271
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3.7
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import sys
+import time
+
+start = time.time()
+
+sys.stdin.reconfigure(errors='surrogateescape')
+sys.stdout.reconfigure(errors='surrogateescape')
+
+for line in sys.stdin:
+ seconds = time.time() - start
+ sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line))
+ sys.stdout.flush()
diff --git a/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.sh b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.sh
new file mode 100755
index 00000000..77e25783
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/community/azure/tests/utils/shippable/timing.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -o pipefail -eu
+
+"$@" 2>&1 | "$(dirname "$0")/timing.py"