diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:03:01 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:03:01 +0000 |
commit | a453ac31f3428614cceb99027f8efbdb9258a40b (patch) | |
tree | f61f87408f32a8511cbd91799f9cececb53e0374 /collections-debian-merged/ansible_collections/community/azure/tests | |
parent | Initial commit. (diff) | |
download | ansible-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')
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" |