cloudstack: add more integration tests
This commit is contained in:
parent
3ccfebc9f7
commit
15a7f818e1
10 changed files with 404 additions and 1 deletions
|
@ -5,8 +5,12 @@
|
||||||
tags:
|
tags:
|
||||||
- cloudstack
|
- cloudstack
|
||||||
vars:
|
vars:
|
||||||
cs_resource_prefix: "cs{{ resource_prefix | default('') }}"
|
cs_resource_prefix: "{{ resource_prefix | default('cs-') }}"
|
||||||
roles:
|
roles:
|
||||||
|
- { role: test_cs_project, tags: test_cs_project }
|
||||||
|
- { role: test_cs_iso, tags: test_cs_iso }
|
||||||
|
- { role: test_cs_domain, tags: test_cs_domain }
|
||||||
|
- { role: test_cs_vmsnapshot, tags: test_cs_vmsnapshot }
|
||||||
- { role: test_cs_sshkeypair, tags: test_cs_sshkeypair }
|
- { role: test_cs_sshkeypair, tags: test_cs_sshkeypair }
|
||||||
- { role: test_cs_affinitygroup, tags: test_cs_affinitygroup }
|
- { role: test_cs_affinitygroup, tags: test_cs_affinitygroup }
|
||||||
- { role: test_cs_securitygroup, tags: test_cs_securitygroup }
|
- { role: test_cs_securitygroup, tags: test_cs_securitygroup }
|
||||||
|
|
3
test/integration/roles/test_cs_domain/meta/main.yml
Normal file
3
test/integration/roles/test_cs_domain/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- test_cs_common
|
112
test/integration/roles/test_cs_domain/tasks/main.yml
Normal file
112
test/integration/roles/test_cs_domain/tasks/main.yml
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
---
|
||||||
|
- name: setup
|
||||||
|
cs_domain: path={{ cs_resource_prefix }}_domain state=absent
|
||||||
|
register: dom
|
||||||
|
- name: verify setup
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|success
|
||||||
|
|
||||||
|
- name: test fail if missing name
|
||||||
|
action: cs_domain
|
||||||
|
register: dom
|
||||||
|
ignore_errors: true
|
||||||
|
- name: verify results of fail if missing params
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|failed
|
||||||
|
- 'dom.msg == "missing required arguments: path"'
|
||||||
|
|
||||||
|
- name: test fail if ends with /
|
||||||
|
cs_domain: path={{ cs_resource_prefix }}_domain/
|
||||||
|
register: dom
|
||||||
|
ignore_errors: true
|
||||||
|
- name: verify results of fail if ends with /
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|failed
|
||||||
|
- dom.msg == "Path '{{ cs_resource_prefix }}_domain/' must not end with /"
|
||||||
|
|
||||||
|
- name: test create a domain
|
||||||
|
cs_domain: path={{ cs_resource_prefix }}_domain
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test create a domain
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_domain"
|
||||||
|
|
||||||
|
- name: test create a domain idempotence
|
||||||
|
cs_domain: path={{ cs_resource_prefix }}_domain
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test create a domain idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_domain"
|
||||||
|
|
||||||
|
- name: test create a subdomain
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test create a domain
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_subdomain"
|
||||||
|
|
||||||
|
- name: test create a subdomain idempotence
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test create a subdomain idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not dom|changed
|
||||||
|
|
||||||
|
- name: test delete a subdomain
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain state=absent
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test delete a subdomain idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_subdomain"
|
||||||
|
|
||||||
|
- name: test delete a subdomain idempotence
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain state=absent
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test delete a subdomain idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not dom|changed
|
||||||
|
|
||||||
|
- name: test create a subdomain 2
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test create a subdomain 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain/{{ cs_resource_prefix }}_subdomain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_subdomain"
|
||||||
|
|
||||||
|
- name: test delete a domain with clean up
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain state=absent clean_up=true
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test delete a domain with clean up
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- dom|changed
|
||||||
|
- dom.path == "ROOT/{{ cs_resource_prefix }}_domain"
|
||||||
|
- dom.name == "{{ cs_resource_prefix }}_domain"
|
||||||
|
|
||||||
|
- name: test delete a domain with clean up idempotence
|
||||||
|
cs_domain: path=ROOT/{{ cs_resource_prefix }}_domain state=absent clean_up=true
|
||||||
|
register: dom
|
||||||
|
- name: verify results of test delete a domain with clean up idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not dom|changed
|
3
test/integration/roles/test_cs_iso/meta/main.yml
Normal file
3
test/integration/roles/test_cs_iso/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- test_cs_common
|
71
test/integration/roles/test_cs_iso/tasks/main.yml
Normal file
71
test/integration/roles/test_cs_iso/tasks/main.yml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
---
|
||||||
|
- name: ensure iso is deleted
|
||||||
|
cs_iso:
|
||||||
|
name: "{{ cs_resource_prefix }}-iso"
|
||||||
|
state: absent
|
||||||
|
register: iso
|
||||||
|
- name: verify ensure iso is deleted
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- iso|success
|
||||||
|
|
||||||
|
- name: test download iso
|
||||||
|
cs_iso:
|
||||||
|
name: "{{ cs_resource_prefix }}-iso"
|
||||||
|
url: http://mirror.switch.ch/ftp/mirror/debian-cd/current/amd64/iso-cd/debian-7.7.0-amd64-netinst.iso
|
||||||
|
os_type: Debian GNU/Linux 7(64-bit)
|
||||||
|
register: iso
|
||||||
|
- name: verify test download iso
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- iso|changed
|
||||||
|
- iso.name == "{{ cs_resource_prefix }}-iso"
|
||||||
|
|
||||||
|
- name: test download iso idempotence
|
||||||
|
cs_iso:
|
||||||
|
name: "{{ cs_resource_prefix }}-iso"
|
||||||
|
url: http://mirror.switch.ch/ftp/mirror/debian-cd/current/amd64/iso-cd/debian-7.7.0-amd64-netinst.iso
|
||||||
|
os_type: Debian GNU/Linux 7(64-bit)
|
||||||
|
register: iso
|
||||||
|
- name: verify test download iso idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not iso|changed
|
||||||
|
- iso.name == "{{ cs_resource_prefix }}-iso"
|
||||||
|
|
||||||
|
# TODO: on 4.6 simulator no checksum was returned
|
||||||
|
# TODO: check if this is a bug in 4.6
|
||||||
|
#- name: test download iso idempotence by checksum
|
||||||
|
# cs_iso:
|
||||||
|
# name: "{{ cs_resource_prefix }}-iso2"
|
||||||
|
# checksum: "{{ iso.checksum }}"
|
||||||
|
# url: http://mirror.switch.ch/ftp/mirror/debian-cd/current/amd64/iso-cd/debian-7.7.0-amd64-netinst.iso
|
||||||
|
# os_type: Debian GNU/Linux 7(64-bit)
|
||||||
|
# register: iso2
|
||||||
|
#- name: verify test download iso idempotence by checksum
|
||||||
|
# assert:
|
||||||
|
# that:
|
||||||
|
# - not iso2|changed
|
||||||
|
# - iso2.name == "{{ cs_resource_prefix }}-iso"
|
||||||
|
# - iso2.checksum == iso.checksum
|
||||||
|
|
||||||
|
- name: test remove iso
|
||||||
|
cs_iso:
|
||||||
|
name: "{{ cs_resource_prefix }}-iso"
|
||||||
|
state: absent
|
||||||
|
register: iso
|
||||||
|
- name: verify test remove iso
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- iso|changed
|
||||||
|
- iso.name == "{{ cs_resource_prefix }}-iso"
|
||||||
|
|
||||||
|
- name: test remove iso idempotence
|
||||||
|
cs_iso:
|
||||||
|
name: "{{ cs_resource_prefix }}-iso"
|
||||||
|
state: absent
|
||||||
|
register: iso
|
||||||
|
- name: verify test remove iso idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not iso|changed
|
3
test/integration/roles/test_cs_project/meta/main.yml
Normal file
3
test/integration/roles/test_cs_project/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- test_cs_common
|
100
test/integration/roles/test_cs_project/tasks/main.yml
Normal file
100
test/integration/roles/test_cs_project/tasks/main.yml
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
---
|
||||||
|
- name: ensure project does not exist
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: absent
|
||||||
|
register: prj
|
||||||
|
- name: verify project did not exist
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- prj|success
|
||||||
|
|
||||||
|
- name: test create project
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
register: prj
|
||||||
|
- name: verify test create project
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
|
||||||
|
- name: test create project idempotence
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
register: prj
|
||||||
|
- name: verify test create project idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
|
||||||
|
- name: test suspend project
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: suspended
|
||||||
|
register: prj
|
||||||
|
- name: verify test suspend project
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
- prj.state == "Suspended"
|
||||||
|
|
||||||
|
- name: test suspend project idempotence
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: suspended
|
||||||
|
register: prj
|
||||||
|
- name: verify test suspend project idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
- prj.state == "Suspended"
|
||||||
|
|
||||||
|
- name: test activate project
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: active
|
||||||
|
register: prj
|
||||||
|
- name: verify test activate project
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
- prj.state == "Active"
|
||||||
|
|
||||||
|
- name: test activate project idempotence
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: active
|
||||||
|
register: prj
|
||||||
|
- name: verify test activate project idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
- prj.state == "Active"
|
||||||
|
|
||||||
|
- name: test delete project
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: absent
|
||||||
|
register: prj
|
||||||
|
- name: verify test delete project
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- prj|changed
|
||||||
|
- prj.name == "{{ cs_resource_prefix }}-prj"
|
||||||
|
- prj.state == "Active"
|
||||||
|
|
||||||
|
- name: test delete project idempotence
|
||||||
|
cs_project:
|
||||||
|
name: "{{ cs_resource_prefix }}-prj"
|
||||||
|
state: absent
|
||||||
|
register: prj
|
||||||
|
- name: verify test delete project idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not prj|changed
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
test_cs_instance_template: CentOS 5.3(64-bit) no GUI (Simulator)
|
||||||
|
test_cs_instance_offering_1: Small Instance
|
3
test/integration/roles/test_cs_vmsnapshot/meta/main.yml
Normal file
3
test/integration/roles/test_cs_vmsnapshot/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- test_cs_common
|
101
test/integration/roles/test_cs_vmsnapshot/tasks/main.yml
Normal file
101
test/integration/roles/test_cs_vmsnapshot/tasks/main.yml
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
---
|
||||||
|
- name: setup instance
|
||||||
|
cs_instance:
|
||||||
|
name: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
template: "{{ test_cs_instance_template }}"
|
||||||
|
service_offering: "{{ test_cs_instance_offering_1 }}"
|
||||||
|
register: instance
|
||||||
|
- name: verify create instance
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- instance|success
|
||||||
|
|
||||||
|
- name: ensure no snapshot exists
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
state: absent
|
||||||
|
register: snap
|
||||||
|
- name: verify setup
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- snap|success
|
||||||
|
|
||||||
|
- name: test fail if missing name
|
||||||
|
action: cs_vmsnapshot
|
||||||
|
register: snap
|
||||||
|
ignore_errors: true
|
||||||
|
- name: verify results of fail if missing params
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- snap|failed
|
||||||
|
- 'snap.msg == "missing required arguments: vm,name"'
|
||||||
|
|
||||||
|
- name: test create snapshot
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
snapshot_memory: yes
|
||||||
|
register: snap
|
||||||
|
- name: verify test create snapshot
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- snap|changed
|
||||||
|
- snap.display_name == "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
|
||||||
|
- name: test create snapshot idempotence
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
snapshot_memory: yes
|
||||||
|
register: snap
|
||||||
|
- name: verify test create snapshot idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not snap|changed
|
||||||
|
- snap.display_name == "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
|
||||||
|
- name: test revert snapshot
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
state: revert
|
||||||
|
register: snap
|
||||||
|
- name: verify test revert snapshot
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- snap|changed
|
||||||
|
- snap.display_name == "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
|
||||||
|
- name: test remove snapshot
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
state: absent
|
||||||
|
register: snap
|
||||||
|
- name: verify test remove snapshot
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- snap|changed
|
||||||
|
- snap.display_name == "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
|
||||||
|
- name: test remove snapshot idempotence
|
||||||
|
cs_vmsnapshot:
|
||||||
|
name: "{{ cs_resource_prefix }}_snapshot"
|
||||||
|
vm: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
state: absent
|
||||||
|
register: snap
|
||||||
|
- name: verify test remove snapshot idempotence
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- not snap|changed
|
||||||
|
|
||||||
|
- name: cleanup instance
|
||||||
|
cs_instance:
|
||||||
|
name: "{{ cs_resource_prefix }}-vm-snapshot"
|
||||||
|
state: expunged
|
||||||
|
register: instance
|
||||||
|
- name: verify destroy instance
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- instance|success
|
Loading…
Reference in a new issue