- name: Setup variables... set_fact: managed_disk1: "{{ resource_group | hash('md5') | truncate(24, True, '') }}" managed_disk2: "{{ resource_group | hash('md5') | truncate(18, True, '') }}" - name: Clearing (if) previous disks were created (1/2) azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk2 }}" state: absent - name: Clearing (if) previous disks were created (2/2) azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" state: absent - name: Create managed disk (Check Mode) azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 1 tags: testing: testing delete: never register: output check_mode: yes - name: Assert status succeeded (Check Mode) assert: that: - output.changed - output.state - name: Test invalid account name (should give error) azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "invalid_char$" disk_size_gb: 1 state: present register: output ignore_errors: yes check_mode: no - name: Assert task failed assert: { that: "output['failed'] == True" } - name: Create new managed disk succesfully azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" storage_account_type: "Standard_LRS" disk_size_gb: 1 tags: testing: testing delete: never register: output - name: Assert status succeeded and results include an Id value assert: that: - output.changed - output.state.id is defined - name: Copy disk to a new managed disk azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk2 }}" create_option: "copy" source_resource_uri: "{{ output.state.id }}" disk_size_gb: 1 register: copy - name: Assert status succeeded and results include an Id value assert: that: - copy.changed - copy.state.id is defined - name: Update a new disk without changes azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" storage_account_type: "Standard_LRS" disk_size_gb: 1 register: output - name: Assert status succeeded and results include an Id value assert: that: - not output.changed - output.state.id is defined - name: Change storage account type to an invalid type azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" storage_account_type: "PremiumL" disk_size_gb: 1 register: output ignore_errors: yes - name: Assert storage account type change failed assert: { that: "output['failed'] == True" } - name: Change disk size to incompatible size azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 30000 register: output ignore_errors: yes - name: Assert disk size change to incompatible size (>4095) failure assert: { that: "output['failed'] == True" } - name: Change disk to bigger size azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 2 register: output - name: Assert status succeeded assert: that: - output.changed - name: Change disk to Premium azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" storage_account_type: "Premium_LRS" disk_size_gb: 2 register: output - name: Assert status succeeded assert: that: - output.changed - name: Update disk tags azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 2 tags: testing: testing delete: never galaxy: 'no' register: output - name: Assert disk incremented tags assert: that: - "output.state.tags | length == 3" - "output.state.tags.galaxy == 'no'" - name: Update disk tags azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 2 tags: testing: testing delete: never register: output - name: Assert disk tags are 2 assert: that: - "output.state.tags | length == 2" - "output.state.tags.testing == 'testing'" - "output.state.tags.delete == 'never'" - name: Gather facts to one specific disk azure_rm_managed_disk_facts: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" - assert: that: - "azure_managed_disk | length == 1" - name: Gather facts azure_rm_managed_disk_facts: resource_group: "{{ resource_group }}" - assert: that: - "azure_managed_disk | length > 0" - name: Delete managed disk (Check Mode) azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" state: absent disk_size_gb: 2 check_mode: yes - name: Assert status succeeded assert: that: - output.changed - output.state - name: Delete managed disk azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk2 }}" disk_size_gb: 1 state: absent check_mode: no - name: Delete copied managed disk azure_rm_managed_disk: resource_group: "{{ resource_group }}" name: "{{ managed_disk1 }}" disk_size_gb: 2 state: absent check_mode: no