Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azure vm test: async second vm deletion #44887

Merged
merged 7 commits into from
Aug 31, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
- name: Delete virtual machines
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vms }}"
state: absent
vm_size: Standard_A0
loop:
- testvm002
- testvm003
loop_control:
loop_var: vms
register: output

- name: Create storage account name
- name: Create random names
set_fact:
storage_account: "{{ resource_group | hash('md5') | truncate(24, True, '') }}"
vm_name1: "vm1{{ resource_group | hash('md5') | truncate(5, True, '') }}"
vm_name2: "vm2{{ resource_group | hash('md5') | truncate(5, True, '') }}"
abs_name1: "avbs1{{ resource_group | hash('md5') | truncate(3, True, '') }}"
abs_name2: "avbs2{{ resource_group | hash('md5') | truncate(3, True, '') }}"

- name: Create storage account
azure_rm_storageaccount:
Expand All @@ -23,32 +14,32 @@

- name: Create an availability set
azure_rm_availabilityset:
name: "avbs{{ resource_group | hash('md5') | truncate(7, True, '') }}"
name: "{{ abs_name1 }}"
resource_group: "{{ resource_group }}"

- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: testvm001
name: "{{ vm_name1 }}"
address_prefixes: "10.10.0.0/16"

- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: testvm001
name: "{{ vm_name1 }}"
address_prefix: "10.10.0.0/24"
virtual_network: testvm001
virtual_network: "{{ vm_name1 }}"

- name: Create public ip
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: testvm001
name: "{{ vm_name1 }}"

- name: Create security group
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: testvm001
name: "{{ vm_name1 }}"
purge_rules: yes
rules:
- name: ALLOW_SSH
Expand All @@ -67,27 +58,27 @@
- name: Create NIC for single nic VM
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: testvm001
virtual_network: testvm001
subnet: testvm001
public_ip_name: testvm001
security_group: testvm001
name: "{{ vm_name1 }}"
virtual_network: "{{ vm_name1 }}"
subnet: "{{ vm_name1 }}"
public_ip_name: "{{ vm_name1 }}"
security_group: "{{ vm_name1 }}"

- name: Create virtual machine with a single NIC
register: output
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
vm_size: Standard_A0
storage_account: "{{ storage_account }}"
storage_container: testvm001
storage_blob: testvm001.vhd
storage_container: "{{ vm_name1 }}"
storage_blob: "{{ vm_name1 }}.vhd"
admin_username: adminuser
admin_password: Password123!
short_hostname: testvm
os_type: Linux
network_interfaces: testvm001
availability_set: "avbs{{ resource_group | hash('md5') | truncate(7, True, '') }}"
network_interfaces: "{{ vm_name1 }}"
availability_set: "{{ abs_name1 }}"
image:
offer: UbuntuServer
publisher: Canonical
Expand All @@ -101,20 +92,20 @@
that:
- azure_vm.properties.availabilitySet.id

- add_host:
name: new_azure_vm
ansible_host: '{{ output.ansible_facts.azure_vm.properties.networkProfile.networkInterfaces[0].properties.ipConfigurations[0].properties.publicIPAddress.properties.ipAddress }}'
ansible_connection: paramiko # not guaranteed to have sshpass...
ansible_user: adminuser
ansible_password: Password123!
ansible_host_key_checking: false

- name: wait for SSH port to be open
wait_for:
host: '{{ hostvars["new_azure_vm"].ansible_host }}'
port: 22
timeout: 60
state: started
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why commented out?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they're used for below commented out test, after 22 port ready, install something on the vm, but below tests are commented out already, so this waifor is meaningless.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, seems like the commented out test is very unstable.... so just wanted to confirm if you found similar issue :-)

# - add_host:
# name: new_azure_vm
# ansible_host: '{{ output.ansible_facts.azure_vm.properties.networkProfile.networkInterfaces[0].properties.ipConfigurations[0].properties.publicIPAddress.properties.ipAddress }}'
# ansible_connection: paramiko # not guaranteed to have sshpass...
# ansible_user: adminuser
# ansible_password: Password123!
# ansible_host_key_checking: false

# - name: wait for SSH port to be open
# wait_for:
# host: '{{ hostvars["new_azure_vm"].ansible_host }}'
# port: 22
# timeout: 60
# state: started

#- block:
# TODO: figure out how to make this work under ansible-test with the coverage injector
Expand Down Expand Up @@ -143,7 +134,7 @@
- name: Restart the virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
restarted: yes
vm_size: Standard_A0
register: output
Expand All @@ -156,7 +147,7 @@
- name: Deallocate the virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
allocated: no
vm_size: Standard_A0
register: output
Expand All @@ -169,7 +160,7 @@
- name: Start the virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
vm_size: Standard_A0
register: output

Expand All @@ -181,16 +172,16 @@
- name: Should be idempotent with a single NIC
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
vm_size: Standard_A0
storage_account: "{{ storage_account }}"
storage_container: testvm001
storage_blob: testvm001.vhd
storage_container: "{{ vm_name1 }}"
storage_blob: "{{ vm_name1 }}.vhd"
admin_username: adminuser
admin_password: Password123!
short_hostname: testvm
os_type: Linux
network_interfaces: testvm001
network_interfaces: "{{ vm_name1 }}"
image:
offer: UbuntuServer
publisher: Canonical
Expand All @@ -204,15 +195,15 @@
- name: Delete VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm002
name: "{{ vm_name1 }}"
state: absent
vm_size: Standard_A0
register: output

- name: NIC should be gone
azure_rm_networkinterface_facts:
resource_group: "{{ resource_group }}"
name: testvm001
name: "{{ vm_name1 }}"
register: output

- assert:
Expand All @@ -221,7 +212,7 @@
- name: PIP should be gone
azure_rm_publicipaddress_facts:
resource_group: "{{ resource_group }}"
name: testvm001
name: "{{ vm_name1 }}"
register: output

- assert:
Expand All @@ -238,7 +229,7 @@
short_hostname: testvm
os_type: Linux
public_ip_allocation_method: Disabled
availability_set: "avbs{{ resource_group | hash('md5') | truncate(7, True, '') }}"
availability_set: "{{ abs_name1 }}"
image:
offer: UbuntuServer
publisher: Canonical
Expand All @@ -255,53 +246,60 @@
name: testvmnoip
state: absent
vm_size: Standard_A0
async: 5000
poll: 0

- set_fact:
niclist:
- name: testvm011
- name: testnic011
resource_group: "{{ resource_group_secondary }}"
- name: testvm012
- name: testnic012
resource_group: "{{ resource_group_secondary }}"

- name: Create an availability set
azure_rm_availabilityset:
name: "{{ abs_name2 }}"
resource_group: "{{ resource_group }}"

- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group_secondary }}"
name: testvm001
name: "{{ vm_name2 }}"
address_prefixes: "10.10.0.0/16"
register: vn

- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group_secondary }}"
name: testvm001
name: "{{ vm_name2 }}"
address_prefix: "10.10.0.0/24"
virtual_network: testvm001
virtual_network: "{{ vm_name2 }}"

- name: Create NICs for dual nic VM
azure_rm_networkinterface:
resource_group: "{{ item.resource_group }}"
name: "{{ item.name }}"
virtual_network: "{{ vn.state.id }}"
subnet: testvm001
security_group: testvm001
subnet: "{{ vm_name2 }}"
security_group: "{{ vm_name1 }}"
loop: "{{ niclist }}"

- name: Create virtual machine with two NICs
register: output
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm003
name: "{{ vm_name2 }}"
vm_size: Standard_A0
storage_account: "{{ storage_account }}"
storage_container: testvm001
storage_blob: testvm003.vhd
storage_container: "{{ vm_name2 }}"
storage_blob: "{{ vm_name2 }}.vhd"
admin_username: adminuser
admin_password: Password123!
short_hostname: testvm
os_type: Linux
os_disk_size_gb: 64
network_interfaces: "{{ niclist }}"
availability_set: "avbs{{ resource_group | hash('md5') | truncate(7, True, '') }}"
availability_set: "{{ abs_name2 }}"
image:
offer: UbuntuServer
publisher: Canonical
Expand All @@ -315,7 +313,7 @@
- name: Retrieve vms facts (filtering by name)
azure_rm_virtualmachine_facts:
resource_group: "{{ resource_group }}"
name: testvm003
name: "{{ vm_name2 }}"
register: results

- name: Just dump output
Expand All @@ -326,25 +324,25 @@
assert:
that:
- results.vms | length == 1
- results.vms[0].name == 'testvm003'
- results.vms[0].name == "{{ vm_name2 }}"
- results.vms[0].location == 'eastus'
- results.vms[0].admin_username == 'adminuser'

- name: Should be idempotent with a dual NICs
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm003
name: "{{ vm_name2 }}"
vm_size: Standard_A0
storage_account: "{{ storage_account }}"
storage_container: testvm001
storage_blob: testvm003.vhd
storage_container: "{{ vm_name2 }}"
storage_blob: "{{ vm_name2 }}.vhd"
admin_username: adminuser
admin_password: Password123!
short_hostname: testvm
os_type: Linux
os_disk_size_gb: 64
network_interfaces: "{{ niclist }}"
availability_set: "avbs{{ resource_group | hash('md5') | truncate(7, True, '') }}"
availability_set: "{{ abs_name2 }}"
image:
offer: UbuntuServer
publisher: Canonical
Expand All @@ -358,10 +356,11 @@
- name: Delete dual NIC VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: testvm003
name: "{{ vm_name2 }}"
state: absent
vm_size: Standard_A0
register: output
async: 5000
poll: 0

# TODO: Until we have a module to create/delete images this is the best tests
# I can do
Expand Down