Merge "Auto Generated INFO.yaml file"
[snaps.git] / docs / how-to-use / IntegrationTests.rst
1 SNAPS OpenStack Integration Testing
2 ===================================
3
4 These tests are ones designed to be run within their own dynamically created project along with a newly generated user
5 account and generally require other OpenStack object creators.
6
7 The Test Classes
8 ================
9
10 create_security_group_tests.py - CreateSecurityGroupTests
11 ---------------------------------------------------------
12
13 +---------------------------------------+---------------+-----------------------------------------------------------+
14 | Test Name                             | API Versions  | Description                                               |
15 +=======================================+===============+===========================================================+
16 | test_create_group_without_rules       | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can create a     |
17 |                                       | Neutron 2     | security group without any rules                          |
18 +---------------------------------------+---------------+-----------------------------------------------------------+
19 | test_create_group_admin_user_to_new   | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can be created   |
20 | _project                              | Neutron 2     | by the admin user and associated with a new project       |
21 +---------------------------------------+---------------+-----------------------------------------------------------+
22 | test_create_group_new_user_to_admin   | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can be created   |
23 | _project                              | Neutron 2     | by the new user and associated with the admin project     |
24 +---------------------------------------+---------------+-----------------------------------------------------------+
25 | test_create_delete_group              | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class clean() method   |
26 |                                       | Neutron 2     | will not raise an exception should the group be deleted by|
27 |                                       |               | some other process                                        |
28 +---------------------------------------+---------------+-----------------------------------------------------------+
29 | test_create_group_with_one_simple_rule| Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can create a     |
30 |                                       | Neutron 2     | security group with a single simple rule                  |
31 +---------------------------------------+---------------+-----------------------------------------------------------+
32 | test_create_group_with_one_complex    | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can create a     |
33 | _rule                                 | Neutron 2     | security group with a single complex rule                 |
34 +---------------------------------------+---------------+-----------------------------------------------------------+
35 | test_create_group_with_several_rules  | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class can create a     |
36 |                                       | Neutron 2     | security group with several rules                         |
37 +---------------------------------------+---------------+-----------------------------------------------------------+
38 | test_add_rule                         | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup#add_rule() method      |
39 |                                       | Neutron 2     | properly creates and associates the new rule              |
40 +---------------------------------------+---------------+-----------------------------------------------------------+
41 | test_remove_rule_by_id                | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup#remove_rule() method   |
42 |                                       | Neutron 2     | properly deletes and disassociates the old rule via its ID|
43 +---------------------------------------+---------------+-----------------------------------------------------------+
44 | test_remove_rule_by_setting           | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup#remove_rule() method   |
45 |                                       | Neutron 2     | properly deletes and disassociates the old rule via its   |
46 |                                       |               | setting object                                            |
47 +---------------------------------------+---------------+-----------------------------------------------------------+
48
49 create_security_group_tests.py - CreateMultipleSecurityGroupTests
50 -----------------------------------------------------------------
51
52 +---------------------------------------+---------------+-----------------------------------------------------------+
53 | Test Name                             | API Versions  | Description                                               |
54 +=======================================+===============+===========================================================+
55 | test_sec_grp_same_name_diff_proj      | Keysone 2 & 3 | Ensures the OpenStackSecurityGroup class does not         |
56 |                                       | Neutron 2     | initialize security groups with the same name from other  |
57 |                                       |               | project/tenants                                           |
58 +---------------------------------------+---------------+-----------------------------------------------------------+
59
60 create_image_tests.py - CreateImageSuccessTests
61 -----------------------------------------------
62
63 +---------------------------------------+---------------+-----------------------------------------------------------+
64 | Test Name                             | Glance API    | Description                                               |
65 +=======================================+===============+===========================================================+
66 | test_create_image_clean_url           | 1 & 2         | Ensures the OpenStackImage class can create an image from |
67 |                                       |               | a download URL location                                   |
68 +---------------------------------------+---------------+-----------------------------------------------------------+
69 | test_create_image_clean_url_properties| 1 & 2         | Ensures the OpenStackImage class can create an image from |
70 |                                       |               | a download URL location with custom properties            |
71 +---------------------------------------+---------------+-----------------------------------------------------------+
72 | test_create_image_clean_file          | 1 & 2         | Ensures the OpenStackImage class can create an image from |
73 |                                       |               | a locally sourced image file                              |
74 +---------------------------------------+---------------+-----------------------------------------------------------+
75 | test_create_delete_image              | 1 & 2         | Ensures the OpenStackImage.clean() method deletes an image|
76 |                                       |               | and does not raise an exception on subsequent calls to the|
77 |                                       |               | clean() method                                            |
78 +---------------------------------------+---------------+-----------------------------------------------------------+
79 | test_create_same_image                | 1 & 2         | Ensures the OpenStackImage.create() method does not create|
80 |                                       |               | another image when one already exists with the same name  |
81 +---------------------------------------+---------------+-----------------------------------------------------------+
82 | test_create_same_image_new_settings   | 1 & 2         | Tests the creation of an OpenStack image when the image   |
83 |                                       |               | already exists and the configuration only contains the    |
84 |                                       |               | the name.                                                 |
85 +---------------------------------------+---------------+-----------------------------------------------------------+
86
87 create_image_tests.py - CreateImageNegativeTests
88 ------------------------------------------------
89
90 +---------------------------------------+---------------+-----------------------------------------------------------+
91 | Test Name                             | Glance API    | Description                                               |
92 +=======================================+===============+===========================================================+
93 | test_bad_image_name                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
94 |                                       |               | being raised when the ImageConfig.name attribute has    |
95 |                                       |               | not been set                                              |
96 +---------------------------------------+---------------+-----------------------------------------------------------+
97 | test_bad_image_url                    | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
98 |                                       |               | being raised when the download URL is invalid             |
99 +---------------------------------------+---------------+-----------------------------------------------------------+
100 | test_bad_image_type                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
101 |                                       |               | being raised when the image format is 'foo'               |
102 +---------------------------------------+---------------+-----------------------------------------------------------+
103 | test_bad_image_file                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
104 |                                       |               | being raised when the image file does not exist           |
105 +---------------------------------------+---------------+-----------------------------------------------------------+
106
107 create_image_tests.py - CreateMultiPartImageTests
108 -------------------------------------------------
109
110 +----------------------------------------+---------------+-----------------------------------------------------------+
111 | Test Name                              | Glance API    | Description                                               |
112 +========================================+===============+===========================================================+
113 | test_create_three_part_image_from_url  | 1 & 2         | Ensures that a 3-part image can be created when each part |
114 |                                        |               | is being sourced from URLs                                |
115 +----------------------------------------+---------------+-----------------------------------------------------------+
116 | test_create_three_part_image_from_file | 1 & 2         | Ensures that a 3-part image can be created when each part |
117 | _3_creators                            |               | is being sourced from local files and 3 creators are used |
118 +----------------------------------------+---------------+-----------------------------------------------------------+
119 | test_create_three_part_image_from_url  | 1 & 2         | Ensures that a 3-part image can be created when each part |
120 | _3_creators                            |               | is being sourced from a URL and 3 creators are used       |
121 +----------------------------------------+---------------+-----------------------------------------------------------+
122
123 create_keypairs_tests.py - CreateKeypairsTests
124 ----------------------------------------------
125
126 +---------------------------------------+---------------+-----------------------------------------------------------+
127 | Test Name                             | Nova API      | Description                                               |
128 +=======================================+===============+===========================================================+
129 | test_create_keypair_only              | 2             | Ensures that a keypair object can be created simply by    |
130 |                                       |               | only configuring a name                                   |
131 +---------------------------------------+---------------+-----------------------------------------------------------+
132 | test_create_keypair_large_key         | 2             | Ensures that a keypair object can be created with a large |
133 |                                       |               | key of 10000 bytes                                        |
134 +---------------------------------------+---------------+-----------------------------------------------------------+
135 | test_create_delete_keypair            | 2             | Ensures that a keypair object is deleted via              |
136 |                                       |               | OpenStackKeypair.clean() and subsequent calls do not      |
137 |                                       |               | result in exceptions                                      |
138 +---------------------------------------+---------------+-----------------------------------------------------------+
139 | test_create_keypair_save_pub_only     | 2             | Ensures that a keypair object can be created when the only|
140 |                                       |               | the public key is cached to disk                          |
141 +---------------------------------------+---------------+-----------------------------------------------------------+
142 | test_create_keypair_save_both         | 2             | Ensures that a keypair object can be created when both the|
143 |                                       |               | public and private keys are cached to disk                |
144 +---------------------------------------+---------------+-----------------------------------------------------------+
145 | test_create_keypair_from_file         | 2             | Ensures that a keypair object can be created with an      |
146 |                                       |               | existing public key file                                  |
147 +---------------------------------------+---------------+-----------------------------------------------------------+
148
149 create_keypairs_tests.py - CreateKeypairsCleanupTests
150 -----------------------------------------------------
151
152 +---------------------------------------+---------------+-----------------------------------------------------------+
153 | Test Name                             | Nova API      | Description                                               |
154 +=======================================+===============+===========================================================+
155 | test_create_keypair_gen_files_delete_1| 2             | Ensures that new keypair files are deleted by default     |
156 |                                       |               | by OpenStackKeypair#clean()                               |
157 +---------------------------------------+---------------+-----------------------------------------------------------+
158 | test_create_keypair_gen_files_delete_2| 2             | Ensures that new keypair files are deleted by             |
159 |                                       |               | OpenStackKeypair#clean() when the settings delete_on_clean|
160 |                                       |               | attribute is set to True                                  |
161 +---------------------------------------+---------------+-----------------------------------------------------------+
162 | test_create_keypair_gen_files_keep    | 2             | Ensures that new keypair files are not deleted by         |
163 |                                       |               | OpenStackKeypair#clean()                                  |
164 +---------------------------------------+---------------+-----------------------------------------------------------+
165 | test_create_keypair_exist_files_keep  | 2             | Ensures that existing keypair files are not deleted by    |
166 |                                       |               | OpenStackKeypair#clean()                                  |
167 +---------------------------------------+---------------+-----------------------------------------------------------+
168 | test_create_keypair_exist_files_delete| 2             | Ensures that existing keypair files are deleted by        |
169 |                                       |               | OpenStackKeypair#clean()                                  |
170 +---------------------------------------+---------------+-----------------------------------------------------------+
171
172 create_network_tests.py - CreateNetworkSuccessTests
173 ---------------------------------------------------
174
175 +---------------------------------------+---------------+-----------------------------------------------------------+
176 | Test Name                             | Neutron API   | Description                                               |
177 +=======================================+===============+===========================================================+
178 | test_create_network_without_router    | 2             | Ensures that a network can be created via the             |
179 |                                       |               | OpenStackNetwork class without any routers                |
180 +---------------------------------------+---------------+-----------------------------------------------------------+
181 | test_create_delete_network            | 2             | Ensures that a router can be deleted via the              |
182 |                                       |               | OpenStackNetwork.clean() method                           |
183 +---------------------------------------+---------------+-----------------------------------------------------------+
184 | test_create_network_with_router       | 2             | Ensures that a network can be created via the             |
185 |                                       |               | OpenStackNetwork class with a router                      |
186 +---------------------------------------+---------------+-----------------------------------------------------------+
187 | test_create_networks_same_name        | 2             | Ensures that the OpenStackNetwork.create() method will not|
188 |                                       |               | create a network with the same name                       |
189 +---------------------------------------+---------------+-----------------------------------------------------------+
190 | test_create_networks_router_admin_user| 2             | Ensures that the networks, subnets, and routers can be    |
191 | _to_new_project                       |               | create created by an admin user and assigned to a new     |
192 |                                       |               | project ID                                                |
193 +---------------------------------------+---------------+-----------------------------------------------------------+
194 | test_create_networks_router_new_user  | 2             | Ensures that the networks, subnets, and routers can be    |
195 | _to_admin_project                     |               | create created by a new admin user and assigned to the    |
196 |                                       |               | 'admin' project ID                                        |
197 +---------------------------------------+---------------+-----------------------------------------------------------+
198
199 create_network_tests.py - CreateNetworkGatewayTests
200 ---------------------------------------------------
201
202 +---------------------------------------+---------------+-----------------------------------------------------------+
203 | Test Name                             | Neutron API   | Description                                               |
204 +=======================================+===============+===========================================================+
205 | test_create_subnet_default_gateway_ip | 2             | Ensures that a network can be created with a Subnet that  |
206 |                                       |               | has the gateway_ip automatically assigned                 |
207 +---------------------------------------+---------------+-----------------------------------------------------------+
208 | test_create_subnet_valid_gateway_ip   | 2             | Ensures that a network can be created with a Subnet that  |
209 |                                       |               | has the gateway_ip statically assigned with a valid IP    |
210 +---------------------------------------+---------------+-----------------------------------------------------------+
211 | test_create_subnet_no_gateway         | 2             | Ensures that a network can be created where no gateway_ip |
212 |                                       |               | is assigned                                               |
213 +---------------------------------------+---------------+-----------------------------------------------------------+
214 | test_create_subnet_invalid_gateway_ip | 2             | Ensures that a network cannot be created with a Subnet    |
215 |                                       |               | has an invalid gateway_ip value such as 'foo'             |
216 +---------------------------------------+---------------+-----------------------------------------------------------+
217
218 create_network_tests.py - CreateNetworkIPv6Tests
219 ------------------------------------------------
220
221 +---------------------------------------+---------------+-----------------------------------------------------------+
222 | Test Name                             | Neutron API   | Description                                               |
223 +=======================================+===============+===========================================================+
224 | test_create_network_one_ipv6_subnet   | 2             | Ensures that a network can be created with an IPv6 subnet |
225 +---------------------------------------+---------------+-----------------------------------------------------------+
226 | test_create_network_ipv4_ipv6_subnet  | 2             | Ensures that a network can be created with an IPv4 and    |
227 |                                       |               | IPv6 subnet                                               |
228 +---------------------------------------+---------------+-----------------------------------------------------------+
229
230 create_network_tests.py - CreateMultipleNetworkTests
231 ----------------------------------------------------
232
233 +---------------------------------------+---------------+-----------------------------------------------------------+
234 | Test Name                             | Neutron API   | Description                                               |
235 +=======================================+===============+===========================================================+
236 | test_network_same_name_diff_proj      | 2             | Ensures that a network with the same name can be created  |
237 |                                       |               | against different projects                                |
238 +---------------------------------------+---------------+-----------------------------------------------------------+
239 | test_network_create_by_admin_to       | 2             | Ensures that a network can be created by the admin user   |
240 | _different_project                    |               | to another project and that a creator with the credentials|
241 |                                       |               | to the other project will not create a new network with   |
242 |                                       |               | the same name                                             |
243 +---------------------------------------+---------------+-----------------------------------------------------------+
244
245 create_router_tests.py - CreateRouterSuccessTests
246 -------------------------------------------------
247
248 +---------------------------------------+---------------+-----------------------------------------------------------+
249 | Test Name                             | Neutron API   | Description                                               |
250 +=======================================+===============+===========================================================+
251 | test_create_router_vanilla            | 2             | Ensures that a router can be created via the              |
252 |                                       |               | OpenStackRouter class with minimal settings               |
253 +---------------------------------------+---------------+-----------------------------------------------------------+
254 | test_create_router_admin_user_to_new  | 2             | Ensures that a router can be created by an admin user and |
255 | _project                              |               | assigned to a new project                                 |
256 +---------------------------------------+---------------+-----------------------------------------------------------+
257 | test_create_router_new_user_to_admin  | 2             | Ensures that a router can be created by a new user and    |
258 | _project                              |               | assigned to the admin project                             |
259 +---------------------------------------+---------------+-----------------------------------------------------------+
260 | test_create_delete_router             | 2             | Ensures that a router can be deleted via the              |
261 |                                       |               | OpenStackRouter.clean() method                            |
262 +---------------------------------------+---------------+-----------------------------------------------------------+
263 | test_create_with_internal_sub         | 2             | Ensures that a router can be joined to a subnet created by|
264 |                                       |               | the same user who created the subnet                      |
265 +---------------------------------------+---------------+-----------------------------------------------------------+
266 | test_create_with_invalid_internal_sub | 2             | Ensures that a router cannot be created when attempting to|
267 |                                       |               | join a subnet created by the admin user                   |
268 +---------------------------------------+---------------+-----------------------------------------------------------+
269 | test_create_router_admin_state_false  | 2             | Ensures that a router can created with                    |
270 |                                       |               | admin_state_up = False                                    |
271 +---------------------------------------+---------------+-----------------------------------------------------------+
272 | test_create_router_admin_state_True   | 2             | Ensures that a router can created with                    |
273 |                                       |               | admin_state_up = True                                     |
274 +---------------------------------------+---------------+-----------------------------------------------------------+
275 | test_create_router_private_network    | 2             | Ensures that a router port can be created against a       |
276 |                                       |               | private network                                           |
277 +---------------------------------------+---------------+-----------------------------------------------------------+
278 | test_create_router_external_network   | 2             | Ensures that a router can be created that is connected to |
279 |                                       |               | both external and private internal networks               |
280 +---------------------------------------+---------------+-----------------------------------------------------------+
281 | test_create_router_with_ext_port      | 2             | Ensures that a router can be created by an 'admin' user   |
282 |                                       |               | with a port to an external network                        |
283 +---------------------------------------+---------------+-----------------------------------------------------------+
284
285 create_router_tests.py - CreateRouterNegativeTests
286 --------------------------------------------------
287
288 +----------------------------------------+---------------+-----------------------------------------------------------+
289 | Test Name                              | Neutron API   | Description                                               |
290 +========================================+===============+===========================================================+
291 | test_create_router_noname              | 2             | Ensures that an exception is raised when attempting to    |
292 |                                        |               | create a router without a name                            |
293 +----------------------------------------+---------------+-----------------------------------------------------------+
294 | test_create_router_invalid_gateway_name| 2             | Ensures that an exception is raised when attempting to    |
295 |                                        |               | create a router to an external network that does not exist|
296 +----------------------------------------+---------------+-----------------------------------------------------------+
297 | test_create_router_admin_ports         | 2             | Ensures that an exception is raised when attempting to    |
298 |                                        |               | create a router with ports to networks owned by another   |
299 |                                        |               | project                                                   |
300 +----------------------------------------+---------------+-----------------------------------------------------------+
301
302 create_router_tests.py - CreateMultipleRouterTests
303 --------------------------------------------------
304
305 +---------------------------------------+---------------+-----------------------------------------------------------+
306 | Test Name                             | Neutron API   | Description                                               |
307 +=======================================+===============+===========================================================+
308 | test_router_same_name_diff_proj       | 2             | Ensures that a router with the same name can be created   |
309 |                                       |               | against different projects                                |
310 +---------------------------------------+---------------+-----------------------------------------------------------+
311 | test_router_create_by_admin_to        | 2             | Ensures that a router can be created by the admin user    |
312 | _different_project                    |               | to another project and that a creator with the credentials|
313 |                                       |               | to the other project will not create a new router with    |
314 |                                       |               | the same name                                             |
315 +---------------------------------------+---------------+-----------------------------------------------------------+
316
317 create_router_tests.py - CreateRouterSecurityGroupTests
318 -------------------------------------------------------
319
320 +---------------------------------------+---------------+-----------------------------------------------------------+
321 | Test Name                             | Neutron API   | Description                                               |
322 +=======================================+===============+===========================================================+
323 | test_create_router_secure_port        | 2             | Ensures that a router's port can have a security group    |
324 |                                       |               | applied to it                                             |
325 +---------------------------------------+---------------+-----------------------------------------------------------+
326
327 create_router_tests.py - CreateRouterSharedNetworksTests
328 --------------------------------------------------------
329
330 +---------------------------------------+---------------+-----------------------------------------------------------+
331 | Test Name                             | Neutron API   | Description                                               |
332 +=======================================+===============+===========================================================+
333 | test_create_router_external           | 2             | Ensures that a router can be joined to an external network|
334 |                                       |               | that was created by an admin user                         |
335 +---------------------------------------+---------------+-----------------------------------------------------------+
336 | test_create_router_port_external      | 2             | Ensures that a router can have a port created to an       |
337 |                                       |               | external network that was created by an admin user        |
338 +---------------------------------------+---------------+-----------------------------------------------------------+
339 | test_create_router_port_shared        | 2             | Ensures that a router can have a port created to an       |
340 |                                       |               | shared network that was created by an admin user          |
341 +---------------------------------------+---------------+-----------------------------------------------------------+
342
343 create_qos_tests.py - CreateQoSTests
344 ------------------------------------
345
346 +----------------------------------------+---------------+-----------------------------------------------------------+
347 | Test Name                              |  Cinder API   | Description                                               |
348 +========================================+===============+===========================================================+
349 | test_create_qos                        | 2 & 3         | Tests the creation of a QoS Spec with the class           |
350 |                                        |               | OpenStackQoS                                              |
351 +----------------------------------------+---------------+-----------------------------------------------------------+
352 | test_create_delete_qos                 | 2 & 3         | Tests the creation of a QoS Spec with the class           |
353 |                                        |               | OpenStackQoS, its deletion with cinder_utils.py the       |
354 |                                        |               | the attempts to use the clean() method to ensure an       |
355 |                                        |               | exception is not called                                   |
356 +----------------------------------------+---------------+-----------------------------------------------------------+
357 | test_create_same_qos                   | 2 & 3         | Tests the creation of a QoS Spec with the class           |
358 |                                        |               | OpenStackQoS then instantiates another OpenStackQoS       |
359 |                                        |               | object with the same configuration to ensure the second   |
360 |                                        |               | instance returns the ID of the original                   |
361 +----------------------------------------+---------------+-----------------------------------------------------------+
362
363 create_volume_type_tests.py - CreateSimpleVolumeTypeSuccessTests
364 ----------------------------------------------------------------
365
366 +----------------------------------------+---------------+-----------------------------------------------------------+
367 | Test Name                              |  Cinder API   | Description                                               |
368 +========================================+===============+===========================================================+
369 | test_create_volume_type                | 2 & 3         | Tests the creation of a Volume Type with the class        |
370 |                                        |               | OpenStackVolumeType                                       |
371 +----------------------------------------+---------------+-----------------------------------------------------------+
372 | test_create_delete_volume_type         | 2 & 3         | Tests the creation of a Volume Type with the class        |
373 |                                        |               | OpenStackVolumeType, its deletion with cinder_utils.py,   |
374 |                                        |               | then attempts to use the clean() method to ensure an      |
375 |                                        |               | exception is not raised                                   |
376 +----------------------------------------+---------------+-----------------------------------------------------------+
377 | test_create_same_volume_type           | 2 & 3         | Tests the creation of a Volume Type with the class        |
378 |                                        |               | OpenStackVolumeType then instantiates another             |
379 |                                        |               | OpenStackVolumeType object with the same configuration to |
380 |                                        |               | ensure the second instance returns the ID of the original |
381 +----------------------------------------+---------------+-----------------------------------------------------------+
382
383 create_volume_type_tests.py - CreateSimpleVolumeTypeComplexTests
384 ----------------------------------------------------------------
385
386 +-----------------------------------------+---------------+-----------------------------------------------------------+
387 | Test Name                               |  Cinder API   | Description                                               |
388 +=========================================+===============+===========================================================+
389 | test_volume_type_with_qos               | 2 & 3         | Tests the creation of a Volume Type with the class        |
390 |                                         |               | OpenStackVolumeType with a QoSSpec                        |
391 +-----------------------------------------+---------------+-----------------------------------------------------------+
392 | test_volume_type_with_encryption        | 2 & 3         | Tests the creation of a Volume Type with the class        |
393 |                                         |               | OpenStackVolumeType with encryption                       |
394 +-----------------------------------------+---------------+-----------------------------------------------------------+
395 | test_volume_type_with_qos_and_encryption| 2 & 3         | Tests the creation of a Volume Type with the class        |
396 |                                         |               | OpenStackVolumeType with encryption and QoS Spec          |
397 +-----------------------------------------+---------------+-----------------------------------------------------------+
398
399 create_volume_tests.py - CreateSimpleVolumeSuccessTests
400 -------------------------------------------------------
401
402 +----------------------------------------+---------------+-----------------------------------------------------------+
403 | Test Name                              |  Cinder API   | Description                                               |
404 +========================================+===============+===========================================================+
405 | test_create_volume_simple              | 2 & 3         | Tests the creation of a Volume Type with the class        |
406 |                                        |               | OpenStackVolume                                           |
407 +----------------------------------------+---------------+-----------------------------------------------------------+
408 | test_create_delete_volume              | 2 & 3         | Tests the creation of a Volume with the class             |
409 |                                        |               | OpenStackVolume, its deletion with cinder_utils.py, then  |
410 |                                        |               | attempts to use the clean() method to ensure an           |
411 |                                        |               | exception is not raised                                   |
412 +----------------------------------------+---------------+-----------------------------------------------------------+
413 | test_create_same_volume                | 2 & 3         | Tests the creation of a Volume with the class             |
414 |                                        |               | OpenStackVolume then instantiates another                 |
415 |                                        |               | OpenStackVolume object with the same configuration to     |
416 |                                        |               | ensure the second instance returns the ID of the original |
417 +----------------------------------------+---------------+-----------------------------------------------------------+
418
419 create_volume_tests.py - CreateSimpleVolumeFailureTests
420 -------------------------------------------------------
421
422 +----------------------------------------+---------------+-----------------------------------------------------------+
423 | Test Name                              |  Cinder API   | Description                                               |
424 +========================================+===============+===========================================================+
425 | test_create_volume_bad_size            | 2 & 3         | Tests to ensure that attempting to create a volume with a |
426 |                                        |               | size of -1 raises a BadRequest exception                  |
427 +----------------------------------------+---------------+-----------------------------------------------------------+
428 | test_create_volume_bad_type            | 2 & 3         | Tests to ensure that attempting to create a volume with a |
429 |                                        |               | type that does not exist raises a NotFound exception      |
430 +----------------------------------------+---------------+-----------------------------------------------------------+
431 | test_create_volume_bad_image           | 2 & 3         | Tests to ensure that attempting to create a volume with an|
432 |                                        |               | image that does not exist raises a BadRequest exception   |
433 +----------------------------------------+---------------+-----------------------------------------------------------+
434
435 create_volume_tests.py - CreateVolumeWithTypeTests
436 --------------------------------------------------
437
438 +----------------------------------------+---------------+-----------------------------------------------------------+
439 | Test Name                              |  Cinder API   | Description                                               |
440 +========================================+===============+===========================================================+
441 | test_bad_volume_type                   | 2 & 3         | Tests to ensure the creation of a Volume with the         |
442 |                                        |               | OpenStackVolume#create() method raises a NotFound         |
443 |                                        |               | exception when attempting to apply a VolumeType that does |
444 |                                        |               | not exist                                                 |
445 +----------------------------------------+---------------+-----------------------------------------------------------+
446 | test_valid_volume_type                 | 2 & 3         | Tests to ensure the creation of a Volume with the         |
447 |                                        |               | OpenStackVolume#create() method properly creates the      |
448 |                                        |               | volume when associating with a valid VolumeType           |
449 +----------------------------------------+---------------+-----------------------------------------------------------+
450
451 create_volume_tests.py - CreateVolumeWithImageTests
452 ---------------------------------------------------
453
454 +----------------------------------------+---------------+-----------------------------------------------------------+
455 | Test Name                              |  Cinder API   | Description                                               |
456 +========================================+===============+===========================================================+
457 | test_bad_image_name                    | 2 & 3         | Tests to ensure the creation of a Volume with the         |
458 |                                        |               | OpenStackVolume#create() method raises a BadRequest       |
459 |                                        |               | exception when attempting to apply an image that does not |
460 |                                        |               | exist                                                     |
461 +----------------------------------------+---------------+-----------------------------------------------------------+
462 | test_valid_volume_image                | 2 & 3         | Tests to ensure the creation of a Volume with the         |
463 |                                        |               | OpenStackVolume#create() method properly creates the      |
464 |                                        |               | volume when associating with a valid image                |
465 +----------------------------------------+---------------+-----------------------------------------------------------+
466
467 create_volume_tests.py - CreateVolMultipleCredsTests
468 ----------------------------------------------------
469
470 +----------------------------------------+---------------+-----------------------------------------------------------+
471 | Test Name                              |  Cinder API   | Description                                               |
472 +========================================+===============+===========================================================+
473 | test_create_by_admin_to_other_proj     | 2 & 3         | Tests to ensure the creation of a Volume as a user with   |
474 |                                        |               | an 'admin' role can create a volume to another project    |
475 |                                        |               | and a creator with the credentails to that project will   |
476 |                                        |               | not create another with the same name                     |
477 |                                        |               | Currently inactive due to                                 |
478 |                                        |               | https://bugs.launchpad.net/cinder/+bug/1641982            |
479 +----------------------------------------+---------------+-----------------------------------------------------------+
480 | test_create_two_vol_same_name_diff_proj| 2 & 3         | Tests to ensure the creation of a Volume with the same    |
481 |                                        |               | name by two different creators with different credentials |
482 |                                        |               | will create two different volumes with the same name      |
483 |                                        |               | that are applied to each project in question              |
484 +----------------------------------------+---------------+-----------------------------------------------------------+
485
486 create_stack_tests.py - CreateStackSuccessTests
487 -----------------------------------------------
488
489 +---------------------------------------+---------------+-----------------------------------------------------------+
490 | Test Name                             |   Heat API    | Description                                               |
491 +=======================================+===============+===========================================================+
492 | test_create_stack_template_file       | 1-3           | Ensures that a Heat stack can be created with a file-based|
493 |                                       |               | Heat template file                                        |
494 +---------------------------------------+---------------+-----------------------------------------------------------+
495 | test_create_stack_template_dict       | 1-3           | Ensures that a Heat stack can be created with a dictionary|
496 |                                       |               | Heat template                                             |
497 +---------------------------------------+---------------+-----------------------------------------------------------+
498 | test_create_delete_stack              | 1-3           | Ensures that a Heat stack can be created and deleted      |
499 |                                       |               | while having clean() called 2x without an exception       |
500 +---------------------------------------+---------------+-----------------------------------------------------------+
501 | test_create_same_stack                | 1-3           | Ensures that a Heat stack with the same name cannot be    |
502 |                                       |               | created 2x                                                |
503 +---------------------------------------+---------------+-----------------------------------------------------------+
504 | test_retrieve_network_creators        | 1-3           | Ensures that an OpenStackHeatStack instance can return an |
505 |                                       |               | OpenStackNetwork instance configured as deployed          |
506 +---------------------------------------+---------------+-----------------------------------------------------------+
507 | test_retrieve_vm_inst_creators        | 1-3           | Ensures that an OpenStackHeatStack instance can return an |
508 |                                       |               | OpenStackVmInstance instance configured as deployed       |
509 +---------------------------------------+---------------+-----------------------------------------------------------+
510
511 create_stack_tests.py - CreateStackVolumeTests
512 ----------------------------------------------
513
514 +---------------------------------------+---------------+-----------------------------------------------------------+
515 | Test Name                             |   Heat API    | Description                                               |
516 +=======================================+===============+===========================================================+
517 | test_retrieve_volume_creator          | 1-3           | Ensures that an OpenStackHeatStack instance can return a  |
518 |                                       |               | OpenStackVolume instance that it was responsible for      |
519 |                                       |               | deploying                                                 |
520 +---------------------------------------+---------------+-----------------------------------------------------------+
521 | test_retrieve_volume_type_creator     | 1-3           | Ensures that an OpenStackHeatStack instance can return a  |
522 |                                       |               | OpenStackVolumeType instance that it was responsible for  |
523 |                                       |               | deploying                                                 |
524 +---------------------------------------+---------------+-----------------------------------------------------------+
525
526 create_stack_tests.py - CreateStackFloatingIpTests
527 --------------------------------------------------
528
529 +---------------------------------------+---------------+-----------------------------------------------------------+
530 | Test Name                             |   Heat API    | Description                                               |
531 +=======================================+===============+===========================================================+
532 | test_connect_via_ssh_heat_vm          | 1             | Ensures that an OpenStackHeatStack instance can create a  |
533 |                                       |               | VM with a floating IP that can be accessed via            |
534 |                                       |               | OpenStackVmInstance                                       |
535 +---------------------------------------+---------------+-----------------------------------------------------------+
536 | test_connect_via_ssh_heat_vm_derived  | 1             | Ensures that an OpenStackHeatStack instance can create a  |
537 |                                       |               | VM with a floating IP where a generated initialized       |
538 |                                       |               | OpenStackHeatStack can return an initialized              |
539 |                                       |               | OpenStackVmInstance object that will be used to access the|
540 |                                       |               | VM via SSH                                                |
541 +---------------------------------------+---------------+-----------------------------------------------------------+
542
543 create_stack_tests.py - CreateStackNestedResourceTests
544 ------------------------------------------------------
545
546 +---------------------------------------+---------------+-----------------------------------------------------------+
547 | Test Name                             |   Heat API    | Description                                               |
548 +=======================================+===============+===========================================================+
549 | test_nested                           | 1             | Ensures that an OpenStackHeatStack with an external       |
550 |                                       |               | resource file with VMs with floating IPs can be accessed  |
551 |                                       |               | in the class OpenStackVmInstance and return the associated|
552 |                                       |               | initialized OpenStackVmInstance objects                   |
553 +---------------------------------------+---------------+-----------------------------------------------------------+
554
555 create_stack_tests.py - CreateStackUpdateTests
556 ----------------------------------------------
557
558 +---------------------------------------+---------------+-----------------------------------------------------------+
559 | Test Name                             |   Heat API    | Description                                               |
560 +=======================================+===============+===========================================================+
561 | test_update                           | 1             | Ensures that an OpenStackHeatStack can have the number of |
562 |                                       |               | VMs updated and they are spawned and access can be        |
563 |                                       |               | obtained with SSH over floating IPs                       |
564 +---------------------------------------+---------------+-----------------------------------------------------------+
565
566 create_stack_tests.py - CreateStackRouterTests
567 ----------------------------------------------
568
569 +---------------------------------------+---------------+-----------------------------------------------------------+
570 | Test Name                             |   Heat API    | Description                                               |
571 +=======================================+===============+===========================================================+
572 | test_retrieve_router_creator          | 1             | Ensures that an OpenStackHeatStack instance can return a  |
573 |                                       |               | OpenStackRouter instance that it was responsible for      |
574 |                                       |               | deploying                                                 |
575 +---------------------------------------+---------------+-----------------------------------------------------------+
576
577 create_stack_tests.py - CreateStackFlavorTests
578 ----------------------------------------------
579
580 +---------------------------------------+---------------+-----------------------------------------------------------+
581 | Test Name                             |   Heat API    | Description                                               |
582 +=======================================+===============+===========================================================+
583 | test_retrieve_flavor_creator          | 1-3           | Ensures that an OpenStackHeatStack instance can return a  |
584 |                                       |               | OpenStackFlavor instance that it was responsible for      |
585 |                                       |               | deploying                                                 |
586 +---------------------------------------+---------------+-----------------------------------------------------------+
587
588 create_stack_tests.py - CreateStackKeypairTests
589 -----------------------------------------------
590
591 +---------------------------------------+---------------+-----------------------------------------------------------+
592 | Test Name                             |   Heat API    | Description                                               |
593 +=======================================+===============+===========================================================+
594 | test_retrieve_keypair_creator         | 1-3           | Ensures that an OpenStackHeatStack instance can return a  |
595 |                                       |               | OpenStackKeypair instance that it was responsible for     |
596 |                                       |               | deploying                                                 |
597 +---------------------------------------+---------------+-----------------------------------------------------------+
598
599 create_stack_tests.py - CreateStackSecurityGroupTests
600 -----------------------------------------------------
601
602 +---------------------------------------+---------------+-----------------------------------------------------------+
603 | Test Name                             |   Heat API    | Description                                               |
604 +=======================================+===============+===========================================================+
605 | test_retrieve_security_group_creator  | 1-3           | Ensures that an OpenStackHeatStack instance can return a  |
606 |                                       |               | OpenStackSecurityGroup instance that it was responsible   |
607 |                                       |               | for deploying                                             |
608 +---------------------------------------+---------------+-----------------------------------------------------------+
609
610 create_stack_tests.py - CreateComplexStackTests
611 -----------------------------------------------
612
613 +---------------------------------------+---------------+-----------------------------------------------------------+
614 | Test Name                             |   Heat API    | Description                                               |
615 +=======================================+===============+===========================================================+
616 | test_connect_via_ssh_heat_vm          | 1-3           | Ensures that two OpenStackHeatStack instances can return  |
617 |                                       |               | OpenStackVmInstance instances one configured with a       |
618 |                                       |               | floating IP and keypair and can be access via SSH         |
619 +---------------------------------------+---------------+-----------------------------------------------------------+
620
621 create_stack_tests.py - CreateStackNegativeTests
622 ------------------------------------------------
623
624 +----------------------------------------+---------------+-----------------------------------------------------------+
625 | Test Name                              |   Heat API    | Description                                               |
626 +========================================+===============+===========================================================+
627 | test_missing_dependencies              | 1-3           | Ensures that a Heat template fails to deploy when expected|
628 |                                        |               | dependencies are missing                                  |
629 +----------------------------------------+---------------+-----------------------------------------------------------+
630 | test_bad_stack_file                    | 1-3           | Ensures that a Heat template fails to deploy when the Heat|
631 |                                        |               | template file does not exist                              |
632 +----------------------------------------+---------------+-----------------------------------------------------------+
633
634 create_stack_tests.py - CreateStackFailureTests
635 -----------------------------------------------
636
637 +----------------------------------------+---------------+-----------------------------------------------------------+
638 | Test Name                              |   Heat API    | Description                                               |
639 +========================================+===============+===========================================================+
640 | test_stack_failure                     | 1-3           | Ensures that a Heat template fails to deploy when expected|
641 |                                        |               | dependencies are missing                                  |
642 +----------------------------------------+---------------+-----------------------------------------------------------+
643
644 create_instance_tests.py - CreateInstanceSimpleTests
645 ----------------------------------------------------
646
647 +---------------------------------------+---------------+-----------------------------------------------------------+
648 | Test Name                             | API Versions  | Description                                               |
649 +=======================================+===============+===========================================================+
650 | test_create_delete_instance           | Nova 2        | Ensures that the OpenStackVmInstance.clean() method       |
651 |                                       | Neutron 2     | deletes the instance as well as ensuring the VmInst       |
652 |                                       |               | availability_zone is populated and compute_host is None   |
653 +---------------------------------------+---------------+-----------------------------------------------------------+
654 | test_create_admin_instance            | Nova 2        | Ensures that the VmInst object members availability_zone  |
655 |                                       | Neutron 2     | and compute_host return a value                           |
656 +---------------------------------------+---------------+-----------------------------------------------------------+
657
658 create_instance_tests.py - CreateInstanceExternalNetTests
659 ---------------------------------------------------------
660
661 +---------------------------------------+---------------+-----------------------------------------------------------+
662 | Test Name                             | API Versions  | Description                                               |
663 +=======================================+===============+===========================================================+
664 | test_create_instance_public_net       | Nova 2        | Ensures that an OpenStackVmInstance initialized as a user |
665 |                                       | Neutron 2     | of type 'admin' can create a VM against an external net   |
666 +---------------------------------------+---------------+-----------------------------------------------------------+
667
668 create_instance_tests.py - SimpleHealthCheck
669 --------------------------------------------
670
671 +---------------------------------------+---------------+-----------------------------------------------------------+
672 | Test Name                             | API Versions  | Description                                               |
673 +=======================================+===============+===========================================================+
674 | test_check_vm_ip_dhcp                 | Nova 2        | Tests the creation of an OpenStack instance with a single |
675 |                                       | Neutron 2     | port and it's assigned IP address                         |
676 +---------------------------------------+---------------+-----------------------------------------------------------+
677
678 create_instance_tests.py - CreateInstanceTwoNetTests
679 ----------------------------------------------------
680
681 +---------------------------------------+---------------+-----------------------------------------------------------+
682 | Test Name                             | API Versions  | Description                                               |
683 +=======================================+===============+===========================================================+
684 | test_ping_via_router                  | Nova 2        | Tests the ability of two VMs on different private overlay |
685 |                                       | Neutron 2     | networks tied together with a router to ping each other   |
686 +---------------------------------------+---------------+-----------------------------------------------------------+
687
688 create_instance_tests.py - CreateInstanceSingleNetworkTests
689 -----------------------------------------------------------
690
691 +---------------------------------------+---------------+-----------------------------------------------------------+
692 | Test Name                             | API Versions  | Description                                               |
693 +=======================================+===============+===========================================================+
694 | test_single_port_static               | Nova 2        | Ensures that an instance with a single port/NIC with a    |
695 |                                       | Neutron 2     | static IP can be created                                  |
696 +---------------------------------------+---------------+-----------------------------------------------------------+
697 | test_ssh_client_fip_before_active     | Nova 2        | Ensures that an instance can be reached over SSH when the |
698 |                                       | Neutron 2     | floating IP is assigned prior to the VM becoming ACTIVE   |
699 +---------------------------------------+---------------+-----------------------------------------------------------+
700 | test_ssh_client_fip_after_active      | Nova 2        | Ensures that an instance can be reached over SSH when the |
701 |                                       | Neutron 2     | floating IP is assigned after to the VM becoming ACTIVE   |
702 +---------------------------------------+---------------+-----------------------------------------------------------+
703 | test_ssh_client_fip_after_init        | Nova 2        | Ensures that an instance can have a floating IP assigned  |
704 |                                       | Neutron 2     | added after initialization                                |
705 +---------------------------------------+---------------+-----------------------------------------------------------+
706 | test_ssh_client_fip_reverse_engineer  | Nova 2        | Ensures that an instance can be reverse engineered and    |
707 |                                       | Neutron 2     | allows for a floating IP to be added after initialization |
708 +---------------------------------------+---------------+-----------------------------------------------------------+
709 | test_ssh_client_fip_after_reboot      | Nova 2        | Ensures that an instance can be reached over SSH after    |
710 |                                       | Neutron 2     | a reboot call has been issued                             |
711 +---------------------------------------+---------------+-----------------------------------------------------------+
712 | test_ssh_client_fip_second_creator    | Nova 2        | Ensures that an instance can be reached over SSH via a    |
713 |                                       | Neutron 2     | second identical creator object                           |
714 +---------------------------------------+---------------+-----------------------------------------------------------+
715
716 create_instance_tests.py - CreateInstancePortManipulationTests
717 --------------------------------------------------------------
718
719 +---------------------------------------+---------------+-----------------------------------------------------------+
720 | Test Name                             | API Versions  | Description                                               |
721 +=======================================+===============+===========================================================+
722 | test_set_custom_valid_ip_one_subnet   | Nova 2        | Ensures that an instance's can have a valid static IP is  |
723 |                                       | Neutron 2     | properly assigned                                         |
724 +---------------------------------------+---------------+-----------------------------------------------------------+
725 | test_set_one_port_two_ip_one_subnet   | Nova 2        | Ensures that an instance can have two static IPs on a     |
726 |                                       | Neutron 2     | single port from a single subnet                          |
727 +---------------------------------------+---------------+-----------------------------------------------------------+
728 | test_set_one_port_two_ip_two_subnets  | Nova 2        | Ensures that an instance can have two static IPs on a     |
729 |                                       | Neutron 2     | single port from different subnets on a network           |
730 +---------------------------------------+---------------+-----------------------------------------------------------+
731 | test_set_custom_invalid_ip_one_subnet | Nova 2        | Ensures that an instance's port with an invalid static IP |
732 |                                       | Neutron 2     | raises an exception                                       |
733 +---------------------------------------+---------------+-----------------------------------------------------------+
734 | test_set_custom_valid_mac             | Nova 2        | Ensures that an instance's port can have a valid MAC      |
735 |                                       | Neutron 2     | address properly assigned                                 |
736 +---------------------------------------+---------------+-----------------------------------------------------------+
737 | test_set_custom_invalid_mac           | Nova 2        | Ensures that an instance's port with an invalid MAC       |
738 |                                       | Neutron 2     | address raises and exception                              |
739 +---------------------------------------+---------------+-----------------------------------------------------------+
740 | test_set_custom_mac_and_ip            | Nova 2        | Ensures that an instance's port with a valid static IP and|
741 |                                       | Neutron 2     | MAC are properly assigned                                 |
742 +---------------------------------------+---------------+-----------------------------------------------------------+
743 | test_set_allowed_address_pairs        | Nova 2        | Ensures the configured allowed_address_pairs is properly  |
744 |                                       | Neutron 2     | set on a VMs port                                         |
745 +---------------------------------------+---------------+-----------------------------------------------------------+
746 | test_set_allowed_address_pairs_bad_mac| Nova 2        | Ensures the port cannot be created when a bad MAC address |
747 |                                       | Neutron 2     | format is used in the allowed_address_pairs port attribute|
748 +---------------------------------------+---------------+-----------------------------------------------------------+
749 | test_set_allowed_address_pairs_bad_ip | Nova 2        | Ensures the port cannot be created when a bad IP address  |
750 |                                       | Neutron 2     | format is used in the allowed_address_pairs port attribute|
751 +---------------------------------------+---------------+-----------------------------------------------------------+
752
753 create_instance_tests.py - CreateInstanceOnComputeHost
754 ------------------------------------------------------
755
756 +---------------------------------------+---------------+-----------------------------------------------------------+
757 | Test Name                             | API Versions  | Description                                               |
758 +=======================================+===============+===========================================================+
759 | test_deploy_vm_to_each_compute_node   | Nova 2        | Tests to ensure that one can fire up an instance on each  |
760 |                                       | Neutron 2     | active compute node                                       |
761 +---------------------------------------+---------------+-----------------------------------------------------------+
762
763 create_instance_tests.py - CreateInstanceFromThreePartImage
764 -----------------------------------------------------------
765
766 +-----------------------------------------------------+---------------+-----------------------------------------------------------+
767 | Test Name                                           | API Versions  | Description                                               |
768 +=====================================================+===============+===========================================================+
769 | test_create_delete_instance_from_three_part_image   | Nova 2        | Tests to ensure that one can fire up an instance then     |
770 |                                                     | Neutron 2     | delete it when using a 3-part image                       |
771 +-----------------------------------------------------+---------------+-----------------------------------------------------------+
772
773 create_instance_tests.py - CreateInstanceIPv6NetworkTests (Staging)
774 -------------------------------------------------------------------
775
776 +---------------------------------------+---------------+-----------------------------------------------------------+
777 | Test Name                             | API Versions  | Description                                               |
778 +=======================================+===============+===========================================================+
779 | test_v4fip_v6overlay                  | Nova 2        | Expects a BadRequest exception to be raised when          |
780 |                                       | Neutron 2     | attempting to add an IPv4 floating IP to a VM with an IPv6|
781 |                                       |               | port                                                      |
782 +---------------------------------------+---------------+-----------------------------------------------------------+
783 | test_fip_v4and6_overlay               | Nova 2        | Connects to a VM via a floating IP joined to a port that  |
784 |                                       | Neutron 2     | has been confiured with both IPv4 and IPv6 addresses      |
785 +---------------------------------------+---------------+-----------------------------------------------------------+
786
787 create_instance_tests.py - InstanceSecurityGroupTests
788 -----------------------------------------------------
789
790 +---------------------------------------+---------------+-----------------------------------------------------------+
791 | Test Name                             | API Versions  | Description                                               |
792 +=======================================+===============+===========================================================+
793 | test_add_security_group               | Nova 2        | Ensures that a VM instance can have security group added  |
794 |                                       | Neutron 2     | to it while its running                                   |
795 +---------------------------------------+---------------+-----------------------------------------------------------+
796 | test_add_invalid_security_group       | Nova 2        | Ensures that a VM instance does not accept the addition of|
797 |                                       | Neutron 2     | a security group that no longer exists                    |
798 +---------------------------------------+---------------+-----------------------------------------------------------+
799 | test_remove_security_group            | Nova 2        | Ensures that a VM instance accepts the removal of a       |
800 |                                       | Neutron 2     | security group                                            |
801 +---------------------------------------+---------------+-----------------------------------------------------------+
802 | test_remove_security_group_never_added| Nova 2        | Ensures that a VM instance does not accept the removal of |
803 |                                       | Neutron 2     | a security group that was never added in the first place  |
804 +---------------------------------------+---------------+-----------------------------------------------------------+
805 | test_add_same_security_group          | Nova 2        | Ensures that a VM instance does not add a security group  |
806 |                                       | Neutron 2     | that has already been added to the instance               |
807 +---------------------------------------+---------------+-----------------------------------------------------------+
808
809 create_instance_tests.py - CreateInstanceVolumeTests
810 ----------------------------------------------------
811
812 +---------------------------------------+---------------+-----------------------------------------------------------+
813 | Test Name                             | API Versions  | Description                                               |
814 +=======================================+===============+===========================================================+
815 | test_create_instance_with_one_volume  | Nova 2        | Ensures that a VM instance can have one volume attached   |
816 |                                       | Cinder 2 & 3  | to it                                                     |
817 +---------------------------------------+---------------+-----------------------------------------------------------+
818 | test_create_instance_with_two_volumes | Nova 2        | Ensures that a VM instance can have two volumes attached  |
819 |                                       | Cinder 2 & 3  | to it                                                     |
820 +---------------------------------------+---------------+-----------------------------------------------------------+
821
822 ansible_utils_tests.py - AnsibleProvisioningTests
823 -------------------------------------------------
824
825 +---------------------------------------+---------------+-----------------------------------------------------------+
826 | Test Name                             | API Versions  | Description                                               |
827 +=======================================+===============+===========================================================+
828 | test_apply_simple_playbook            | Nova 2        | Ensures that an instance assigned with a floating IP will |
829 |                                       | Neutron 2     | apply a simple Ansible playbook                           |
830 +---------------------------------------+---------------+-----------------------------------------------------------+
831 | test_apply_template_playbook          | Nova 2        | Ensures that an instance assigned with a floating IP will |
832 |                                       | Neutron 2     | apply a Ansible playbook containing Jinga2 substitution   |
833 |                                       |               | values                                                    |
834 +---------------------------------------+---------------+-----------------------------------------------------------+
835
836 cluster_template_tests.py - CreateClusterTemplateTests
837 ------------------------------------------------------
838
839 +----------------------------------------+---------------+-----------------------------------------------------------+
840 | Test Name                              |  Magnum API   | Description                                               |
841 +========================================+===============+===========================================================+
842 | test_create_cluster_template           | 1             | Tests the creation of a Cluster template with the class   |
843 |                                        |               | OpenStackClusterTemplate                                  |
844 +----------------------------------------+---------------+-----------------------------------------------------------+
845 | test_create_delete_cluster_template    | 1             | Tests the creation and deletiong of a Cluster template    |
846 |                                        |               | with the class OpenStackClusterTemplate                   |
847 +----------------------------------------+---------------+-----------------------------------------------------------+
848 | test_create_same_cluster_template      | 1             | Tests the creation of a Cluster template 2x using the same|
849 |                                        |               | config object to ensure it was only created once          |
850 +----------------------------------------+---------------+-----------------------------------------------------------+
851 | test_create_cluster_template_bad_flavor| 1             | Tests to ensure OpenStackClusterTemplate#create() will    |
852 |                                        |               | raise an exception when the flavor is invalid             |
853 +----------------------------------------+---------------+-----------------------------------------------------------+
854 | test_create_cluster_template_bad_master| 1             | Tests to ensure OpenStackClusterTemplate#create() will    |
855 | _flavor                                |               | raise an exception when the master flavor is invalid      |
856 +----------------------------------------+---------------+-----------------------------------------------------------+
857 | test_create_cluster_template_bad_image | 1             | Tests to ensure OpenStackClusterTemplate#create() will    |
858 |                                        |               | raise an exception when the image is invalid              |
859 +----------------------------------------+---------------+-----------------------------------------------------------+
860 | test_create_cluster_template_bad       | 1             | Tests to ensure OpenStackClusterTemplate#create() will    |
861 | _network_driver                        |               | raise an exception when the network driver is invalid     |
862 +----------------------------------------+---------------+-----------------------------------------------------------+
863 | test_create_cluster_template_bad       | 1             | Tests to ensure OpenStackClusterTemplate#create() will    |
864 | _volume_driver                         |               | raise an exception when the volume driver is invalid      |
865 +----------------------------------------+---------------+-----------------------------------------------------------+
866