Additional DevTest Lab modules (#53091)

* [WIP] Additional DevTest Lab modules

* updates

* try global schedule again

* dtl schedule

* try full dtl schedule test

* fixing schedule

* fixed problem

* another fix

* fixed test

* different time format

* fixed absent state

* test policy idempotence

* more updates

* updated devtestlabpolicy

* fixed syntax

* updated dtl policy test

* updated image id

* fixed test

* fixed bug

* fixed bugs and docs

* fixed bug

* + small cleanup

* reenabled tests but disabled leaking tests

* disabled test
This commit is contained in:
Zim Kalinowski
2019-03-21 07:07:30 +08:00
committed by Matt Davis
parent 0aa472a110
commit c431d18e28
6 changed files with 1788 additions and 67 deletions

View File

@@ -1,6 +1,17 @@
cloud/azure
destructive
shippable/azure/group2
disabled
azure_rm_devtestlabvirtualnetwork
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

View File

@@ -28,7 +28,7 @@
location: eastus
storage_type: standard
premium_data_disks: no
register: output
register: output_lab
- name: Check if the change was correctly reported
assert:
that:
@@ -60,44 +60,168 @@
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
register: output_lab
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.labs[0]['id'] != None
- output.labs[0]['resource_group'] != None
- output.labs[0]['name'] != None
- output.labs[0]['location'] != None
- output.labs[0]['storage_type'] != None
- output.labs[0]['premium_data_disks'] != None
- output.labs[0]['provisioning_state'] != None
- output.labs[0]['artifacts_storage_account'] != None
- output.labs[0]['default_premium_storage_account'] != None
- output.labs[0]['default_storage_account'] != None
- output.labs[0]['premium_data_disk_storage_account'] != None
- output.labs[0]['vault_name'] != None
- 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: List DevTest Lab in a resource group
azure_rm_devtestlab_facts:
# azure_rm_devtestlabpolicy
- name: Create instance of DevTest Lab Policy
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
fact_name: user_owned_lab_vm_count
threshold: 5
register: output
- name: Assert that facts are returned
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed == False
- output.labs[0]['id'] != None
- output.labs[0]['resource_group'] != None
- output.labs[0]['name'] != None
- output.labs[0]['location'] != None
- output.labs[0]['storage_type'] != None
- output.labs[0]['premium_data_disks'] != None
- output.labs[0]['provisioning_state'] != None
- output.labs[0]['vault_name'] != None
- output.changed
- name: Create instance of DevTest Lab Policy -- idempotent
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
fact_name: user_owned_lab_vm_count
threshold: 5
register: output
- 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
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
fact_name: user_owned_lab_vm_count
threshold: 6
register: output
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed
- name: Delete instance of DevTest Lab Policy
azure_rm_devtestlabpolicy:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
policy_set_name: myDtlPolicySet
name: myDtlPolicy
state: absent
register: output
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed
# azure_rm_devtestlabschedule
- name: Create instance of DevTest Lab Schedule
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
time: "1030"
time_zone_id: "UTC+12"
register: output
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed
- name: Update instance of DevTest Lab Schedule -- idempotent
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
time: "1030"
time_zone_id: "UTC+12"
register: output
- 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
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
time: "1130"
time_zone_id: "UTC+12"
register: output
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed
- name: Delete instance of DevTest Lab Schedule
azure_rm_devtestlabschedule:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
name: lab_vms_shutdown
state: absent
register: output
- debug:
var: output
- name: Assert if the change was correctly reported
assert:
that:
- output.changed
- name: Create instance of DevTest Labs virtual network
azure_rm_devtestlabvirtualnetwork:
@@ -261,11 +385,13 @@
allow_claim: no
expiration_date: "2029-02-22T01:49:12.117974Z"
register: output
when: "github_token | length > 0"
- 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
azure_rm_devtestlabvirtualmachine:
@@ -291,11 +417,13 @@
allow_claim: no
expiration_date: "2029-02-22T01:49:12.117974Z"
register: output
when: "github_token | length > 0"
- 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
azure_rm_devtestlabvirtualmachine:
@@ -321,66 +449,70 @@
allow_claim: no
expiration_date: "2029-02-22T01:49:12.117974Z"
register: output
when: "github_token | length > 0"
- 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
register: output_vm
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.virtualmachines[0]['id'] != None
- output.virtualmachines[0]['resource_group'] != None
- output.virtualmachines[0]['lab_name'] != None
- output.virtualmachines[0]['name'] != None
- output.virtualmachines[0]['compute_vm_id'] != None
- output.virtualmachines[0]['compute_vm_resource_group'] != None
- output.virtualmachines[0]['compute_vm_name'] != None
- output.virtualmachines[0]['disallow_public_ip_address'] != None
- output.virtualmachines[0]['expiration_date'] != None
- output.virtualmachines[0]['fqdn'] != None
- output.virtualmachines[0]['id'] != None
- output.virtualmachines[0]['image'] != None
- output.virtualmachines[0]['notes'] != None
- output.virtualmachines[0]['os_type'] != None
- output.virtualmachines[0]['provisioning_state'] != None
- output.virtualmachines[0]['storage_type'] != None
- output.virtualmachines[0]['user_name'] != None
- output.virtualmachines[0]['vm_size'] != None
- 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
register: output_vm
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.virtualmachines[0]['id'] != None
- output.virtualmachines[0]['resource_group'] != None
- output.virtualmachines[0]['lab_name'] != None
- output.virtualmachines[0]['name'] != None
- output.virtualmachines[0]['compute_vm_id'] != None
- output.virtualmachines[0]['disallow_public_ip_address'] != None
- output.virtualmachines[0]['expiration_date'] != None
- output.virtualmachines[0]['fqdn'] != None
- output.virtualmachines[0]['id'] != None
- output.virtualmachines[0]['image'] != None
- output.virtualmachines[0]['notes'] != None
- output.virtualmachines[0]['os_type'] != None
- output.virtualmachines[0]['provisioning_state'] != None
- output.virtualmachines[0]['storage_type'] != None
- output.virtualmachines[0]['user_name'] != None
- output.virtualmachines[0]['vm_size'] != None
- 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
@@ -525,6 +657,80 @@
- output.artifacts[0]['publisher'] != None
- "output.artifacts | length == 1"
- name: Create instance of DevTest Lab Environment
azure_rm_devtestlabenvironment:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
user_name: zim
name: myEnvironment
location: eastus
deployment_template: "{{ output_lab.labs[0].id }}/artifactSources/public environment repo/armTemplates/WebApp"
register: output
- 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
azure_rm_devtestlabenvironment:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
user_name: zim
name: myEnvironment
location: eastus
deployment_template:
artifact_source_name: public environment repo
name: WebApp
register: output
- 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
azure_rm_devtestlabenvironment:
resource_group: "{{ resource_group }}"
lab_name: "{{ lab_name }}"
user_name: zim
name: myEnvironment
state: absent
register: output
- name: Assert that change was detected
assert:
that:
- output.changed
when: "github_token | length > 0"
- name: Create instance of DevTest Lab Image
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
register: output
- name: Assert that change was detected
assert:
that:
- output.changed
when: "github_token | length > 0"
- name: Create instance of DevTest Lab Image -- idempotent
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
register: output
- name: Assert that change was detected
assert:
that:
- not output.changed
when: "github_token | length > 0"
- name: Delete instance of Lab -- check mode
azure_rm_devtestlab:
resource_group: "{{ resource_group }}"