1---
2- name: setup
3  cs_volume:
4    zone: "{{ cs_common_zone_adv }}"
5    name: "{{ cs_resource_prefix }}_upload"
6    state: absent
7  register: uploaded_vol
8- name: verify setup
9  assert:
10    that:
11    - uploaded_vol is successful
12
13- name: setup network
14  cs_network:
15    name: "cs_volume_network"
16    zone: "{{ cs_common_zone_adv }}"
17    network_offering: DefaultSharedNetworkOffering
18    vlan: 2435
19    start_ip: 10.100.129.11
20    end_ip: 10.100.129.250
21    gateway: 10.100.129.1
22    netmask: 255.255.255.0
23  register: net
24- name: verify setup network
25  assert:
26    that:
27    - net is successful
28    - net.name == "cs_volume_network"
29
30- name: setup instance
31  cs_instance:
32    zone: "{{ cs_common_zone_adv }}"
33    name: "{{ test_cs_instance_3 }}"
34    template: "{{ test_cs_instance_template }}"
35    service_offering: "{{ test_cs_instance_offering_1 }}"
36    network: cs_volume_network
37  register: instance
38- name: verify setup instance
39  assert:
40    that:
41    - instance is successful
42
43- name: setup stop instance
44  cs_instance:
45    zone: "{{ cs_common_zone_adv }}"
46    name: "{{ test_cs_instance_3 }}"
47    state: stopped
48  register: instance
49- name: verify stop instance
50  assert:
51    that:
52    - instance is successful
53    - instance.state == 'Stopped'
54
55- name: setup get instance info
56  cs_instance_info:
57    name: "{{ test_cs_instance_3 }}"
58  register: instance
59- name: verify setup get instance info
60  assert:
61    that:
62    - instance is successful
63
64- name: test extract volume in check mode
65  cs_volume:
66    zone: "{{ cs_common_zone_adv }}"
67    state: extracted
68    name: "{{ instance.instances[0].volumes[0].name }}"
69  check_mode: yes
70  register: extracted_vol
71- name: verify test extract volume in check mode
72  assert:
73    that:
74    - extracted_vol is successful
75    - extracted_vol is changed
76    - extracted_vol.state == "Ready"
77    - extracted_vol.name == "{{ instance.instances[0].volumes[0].name }}"
78    - extracted_vol.url is not defined
79
80- name: test extract volume
81  cs_volume:
82    zone: "{{ cs_common_zone_adv }}"
83    state: extracted
84    name: "{{ instance.instances[0].volumes[0].name }}"
85  register: extracted_vol
86- name: verify test extract volume
87  assert:
88    that:
89    - extracted_vol is successful
90    - extracted_vol is changed
91    - extracted_vol.state == "DOWNLOAD_URL_CREATED"
92    - extracted_vol.name == "{{ instance.instances[0].volumes[0].name }}"
93    - extracted_vol.url is defined
94
95- name: test upload volume with missing param
96  cs_volume:
97    zone: "{{ cs_common_zone_adv }}"
98    state: uploaded
99    name: "{{ cs_resource_prefix }}_upload"
100    url: "{{ test_cs_volume_to_upload }}"
101  ignore_errors: yes
102  register: uploaded_vol
103- name: verify upload volume with missing param
104  assert:
105    that:
106    - uploaded_vol is failed
107    - uploaded_vol is not changed
108    - 'uploaded_vol.msg == "state is uploaded but all of the following are missing: format"'
109
110- name: test upload volume in check mode
111  cs_volume:
112    zone: "{{ cs_common_zone_adv }}"
113    state: uploaded
114    name: "{{ cs_resource_prefix }}_upload"
115    format: VHD
116    url: "{{ test_cs_volume_to_upload }}"
117  check_mode: yes
118  register: uploaded_vol
119- name: verify upload volume in check mode
120  assert:
121    that:
122    - uploaded_vol is successful
123    - uploaded_vol is changed
124    - uploaded_vol.name is not defined
125
126- name: test upload volume
127  cs_volume:
128    zone: "{{ cs_common_zone_adv }}"
129    state: uploaded
130    name: "{{ cs_resource_prefix }}_upload"
131    format: VHD
132    url: "{{ test_cs_volume_to_upload }}"
133  register: uploaded_vol
134- name: verify upload volume
135  assert:
136    that:
137    - uploaded_vol is successful
138    - uploaded_vol is changed
139    - uploaded_vol.name == "{{ cs_resource_prefix }}_upload"
140    - uploaded_vol.state == "Uploaded"
141
142- name: test upload volume idempotence
143  cs_volume:
144    zone: "{{ cs_common_zone_adv }}"
145    state: uploaded
146    name: "{{ cs_resource_prefix }}_upload"
147    format: VHD
148    url: "{{ test_cs_volume_to_upload }}"
149  register: uploaded_vol
150- name: verify upload volume idempotence
151  assert:
152    that:
153    - uploaded_vol is successful
154    - uploaded_vol is not changed
155    - uploaded_vol.name == "{{ cs_resource_prefix }}_upload"
156    - uploaded_vol.state == "Uploaded"
157
158- name: delete volume
159  cs_volume:
160    zone: "{{ cs_common_zone_adv }}"
161    state: absent
162    name: "{{ cs_resource_prefix }}_upload"
163  register: uploaded_vol
164- name: verify delete volume
165  assert:
166    that:
167    - uploaded_vol is successful
168    - uploaded_vol is changed
169
170- name: destroy instance
171  cs_instance:
172    zone: "{{ cs_common_zone_adv }}"
173    name: "{{ test_cs_instance_3 }}"
174    state: expunged
175  register: instance
176- name: verify destroy instance
177  assert:
178    that:
179    - instance is successful
180
181- name: delete network
182  cs_network:
183    name: "cs_volume_network"
184    zone: "{{ cs_common_zone_adv }}"
185    state: absent
186  register: net
187- name: verify delete network
188  assert:
189    that:
190    - net is successful
191