1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/azure_rm_managed_disk/tasks/main.yml
Yuwei Zhou 4d6c28f8c3 #30142:Enable attach data disk to existing VM or detach it from VM (#32711)
* disk can be mounted to vm

* add version added

* fix lint

* Fix some mirrors

* fix lint

* remove trailing space

* fix as review comment

* fix yaml

* fix

* fix

* Minor update to doc on unmounting disk from VM
2017-12-21 07:53:14 +10:00

407 lines
10 KiB
YAML

- 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
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{item }}"
state: absent
with_items:
- "{{ managed_disk2 }}"
- "{{ managed_disk1 }}"
- 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: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: testvm001
address_prefixes: "10.10.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: testvm001
address_prefix: "10.10.0.0/24"
virtual_network: testvm001
- name: Create public ip
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: testvm001
- name: Create security group
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: testvm001
- name: Create NIC
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testvm001
virtual_network: testvm001
subnet: testvm001
public_ip_name: testvm001
security_group: testvm001
- name: Create virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm001
admin_username: adminuser
admin_password: Password123!
os_type: Linux
managed_disk_type: Premium_LRS
vm_size: Standard_DS1_v2
network_interfaces: testvm001
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
version: latest
- name: Mount the disk to virtual machine (check mode)
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
managed_by: testvm001
tags:
testing: testing
delete: never
register: mounted
check_mode: yes
- assert:
that:
- not mounted.state.managed_by
- name: Mount the disk to virtual machine
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
managed_by: testvm001
tags:
testing: testing
delete: never
register: mounted
- assert:
that:
- "'testvm001' in mounted.state.managed_by"
- name: Mount the disk to virtual machine (idempotent)
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
managed_by: testvm001
tags:
testing: testing
delete: never
register: mounted
- assert:
that:
- not mounted.changed
- "'testvm001' in mounted.state.managed_by"
- name: Unmount the disk to virtual machine (check mode)
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
tags:
testing: testing
delete: never
check_mode: yes
register: mounted
- assert:
that:
- mounted.changed
- name: Unmount the disk to virtual machine
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
tags:
testing: testing
delete: never
register: mounted
- assert:
that:
- mounted.changed
- not mounted.state.managed_by
- name: Unmount the disk to virtual machine (idempotent)
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 2
tags:
testing: testing
delete: never
register: mounted
- assert:
that:
- not mounted.changed
- not mounted.state.managed_by
- name: Update disk size
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 4
tags:
testing: testing
delete: never
register: output
- assert:
that:
- output.state.disk_size_gb == 4
- name: Attach the disk to virtual machine again
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
disk_size_gb: 4
managed_by: testvm001
tags:
testing: testing
delete: never
register: mounted
- assert:
that:
- mounted.changed
- "'testvm001' in mounted.state.managed_by"
- name: Change disk size to incompatible size
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
state: absent
managed_by: testvm001
register: output
ignore_errors: yes
- name: Assert delete failed since disk is attached to VM
assert: { that: "output['failed'] == True" }
- name: Delete managed disk (Check Mode)
azure_rm_managed_disk:
resource_group: "{{ resource_group }}"
name: "{{ managed_disk1 }}"
state: absent
register: output
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 }}"
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
- name: Delete virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm001
state: absent
vm_size: Standard_DS1_v2