Added method to OpenStackHeatStack to return OpenStackRouter objects.
[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_image_tests.py - CreateImageSuccessTests
50 -----------------------------------------------
51
52 +---------------------------------------+---------------+-----------------------------------------------------------+
53 | Test Name                             | Glance API    | Description                                               |
54 +=======================================+===============+===========================================================+
55 | test_create_image_clean_url           | 1 & 2         | Ensures the OpenStackImage class can create an image from |
56 |                                       |               | a download URL location                                   |
57 +---------------------------------------+---------------+-----------------------------------------------------------+
58 | test_create_image_clean_url_properties| 1 & 2         | Ensures the OpenStackImage class can create an image from |
59 |                                       |               | a download URL location with custom properties            |
60 +---------------------------------------+---------------+-----------------------------------------------------------+
61 | test_create_image_clean_file          | 1 & 2         | Ensures the OpenStackImage class can create an image from |
62 |                                       |               | a locally sourced image file                              |
63 +---------------------------------------+---------------+-----------------------------------------------------------+
64 | test_create_delete_image              | 1 & 2         | Ensures the OpenStackImage.clean() method deletes an image|
65 |                                       |               | and does not raise an exception on subsequent calls to the|
66 |                                       |               | clean() method                                            |
67 +---------------------------------------+---------------+-----------------------------------------------------------+
68 | test_create_same_image                | 1 & 2         | Ensures the OpenStackImage.create() method does not create|
69 |                                       |               | another image when one already exists with the same name  |
70 +---------------------------------------+---------------+-----------------------------------------------------------+
71 | test_create_same_image_new_settings   | 1 & 2         | Tests the creation of an OpenStack image when the image   |
72 |                                       |               | already exists and the configuration only contains the    |
73 |                                       |               | the name.                                                 |
74 +---------------------------------------+---------------+-----------------------------------------------------------+
75
76 create_image_tests.py - CreateImageNegativeTests
77 ------------------------------------------------
78
79 +---------------------------------------+---------------+-----------------------------------------------------------+
80 | Test Name                             | Glance API    | Description                                               |
81 +=======================================+===============+===========================================================+
82 | test_bad_image_name                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
83 |                                       |               | being raised when the ImageSettings.name attribute has    |
84 |                                       |               | not been set                                              |
85 +---------------------------------------+---------------+-----------------------------------------------------------+
86 | test_bad_image_url                    | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
87 |                                       |               | being raised when the download URL is invalid             |
88 +---------------------------------------+---------------+-----------------------------------------------------------+
89 | test_bad_image_type                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
90 |                                       |               | being raised when the image format is 'foo'               |
91 +---------------------------------------+---------------+-----------------------------------------------------------+
92 | test_bad_image_file                   | 1 & 2         | Ensures OpenStackImage.create() results in an Exception   |
93 |                                       |               | being raised when the image file does not exist           |
94 +---------------------------------------+---------------+-----------------------------------------------------------+
95
96 create_image_tests.py - CreateMultiPartImageTests
97 -------------------------------------------------
98
99 +----------------------------------------+---------------+-----------------------------------------------------------+
100 | Test Name                              | Glance API    | Description                                               |
101 +========================================+===============+===========================================================+
102 | test_create_three_part_image_from_url  | 1 & 2         | Ensures that a 3-part image can be created when each part |
103 |                                        |               | is being sourced from URLs                                |
104 +----------------------------------------+---------------+-----------------------------------------------------------+
105 | test_create_three_part_image_from_file | 1 & 2         | Ensures that a 3-part image can be created when each part |
106 | _3_creators                            |               | is being sourced from local files and 3 creators are used |
107 +----------------------------------------+---------------+-----------------------------------------------------------+
108 | test_create_three_part_image_from_url  | 1 & 2         | Ensures that a 3-part image can be created when each part |
109 | _3_creators                            |               | is being sourced from a URL and 3 creators are used       |
110 +----------------------------------------+---------------+-----------------------------------------------------------+
111
112 create_keypairs_tests.py - CreateKeypairsTests
113 ----------------------------------------------
114
115 +---------------------------------------+---------------+-----------------------------------------------------------+
116 | Test Name                             | Nova API      | Description                                               |
117 +=======================================+===============+===========================================================+
118 | test_create_keypair_only              | 2             | Ensures that a keypair object can be created simply by    |
119 |                                       |               | only configuring a name                                   |
120 +---------------------------------------+---------------+-----------------------------------------------------------+
121 | test_create_keypair_large_key         | 2             | Ensures that a keypair object can be created with a large |
122 |                                       |               | key of 10000 bytes                                        |
123 +---------------------------------------+---------------+-----------------------------------------------------------+
124 | test_create_delete_keypair            | 2             | Ensures that a keypair object is deleted via              |
125 |                                       |               | OpenStackKeypair.clean() and subsequent calls do not      |
126 |                                       |               | result in exceptions                                      |
127 +---------------------------------------+---------------+-----------------------------------------------------------+
128 | test_create_keypair_save_pub_only     | 2             | Ensures that a keypair object can be created when the only|
129 |                                       |               | the public key is cached to disk                          |
130 +---------------------------------------+---------------+-----------------------------------------------------------+
131 | test_create_keypair_save_both         | 2             | Ensures that a keypair object can be created when both the|
132 |                                       |               | public and private keys are cached to disk                |
133 +---------------------------------------+---------------+-----------------------------------------------------------+
134 | test_create_keypair_from_file         | 2             | Ensures that a keypair object can be created with an      |
135 |                                       |               | existing public key file                                  |
136 +---------------------------------------+---------------+-----------------------------------------------------------+
137
138 create_keypairs_tests.py - CreateKeypairsCleanupTests
139 -----------------------------------------------------
140
141 +---------------------------------------+---------------+-----------------------------------------------------------+
142 | Test Name                             | Nova API      | Description                                               |
143 +=======================================+===============+===========================================================+
144 | test_create_keypair_gen_files_delete_1| 2             | Ensures that new keypair files are deleted by default     |
145 |                                       |               | by OpenStackKeypair#clean()                               |
146 +---------------------------------------+---------------+-----------------------------------------------------------+
147 | test_create_keypair_gen_files_delete_2| 2             | Ensures that new keypair files are deleted by         |
148 |                                       |               | OpenStackKeypair#clean() when the settings delete_on_clean|
149 |                                       |               | attribute is set to True                                  |
150 +---------------------------------------+---------------+-----------------------------------------------------------+
151 | test_create_keypair_gen_files_keep    | 2             | Ensures that new keypair files are not deleted by         |
152 |                                       |               | OpenStackKeypair#clean()                                  |
153 +---------------------------------------+---------------+-----------------------------------------------------------+
154 | test_create_keypair_exist_files_keep  | 2             | Ensures that existing keypair files are not deleted by    |
155 |                                       |               | OpenStackKeypair#clean()                                  |
156 +---------------------------------------+---------------+-----------------------------------------------------------+
157 | test_create_keypair_exist_files_delete| 2             | Ensures that existing keypair files are deleted by        |
158 |                                       |               | OpenStackKeypair#clean()                                  |
159 +---------------------------------------+---------------+-----------------------------------------------------------+
160
161 create_network_tests.py - CreateNetworkSuccessTests
162 ---------------------------------------------------
163
164 +---------------------------------------+---------------+-----------------------------------------------------------+
165 | Test Name                             | Neutron API   | Description                                               |
166 +=======================================+===============+===========================================================+
167 | test_create_network_without_router    | 2             | Ensures that a network can be created via the             |
168 |                                       |               | OpenStackNetwork class without any routers                |
169 +---------------------------------------+---------------+-----------------------------------------------------------+
170 | test_create_delete_network            | 2             | Ensures that a router can be deleted via the              |
171 |                                       |               | OpenStackNetwork.clean() method                           |
172 +---------------------------------------+---------------+-----------------------------------------------------------+
173 | test_create_network_with_router       | 2             | Ensures that a network can be created via the             |
174 |                                       |               | OpenStackNetwork class with a router                      |
175 +---------------------------------------+---------------+-----------------------------------------------------------+
176 | test_create_networks_same_name        | 2             | Ensures that the OpenStackNetwork.create() method will not|
177 |                                       |               | create a network with the same name                       |
178 +---------------------------------------+---------------+-----------------------------------------------------------+
179 | test_create_networks_router_admin_user| 2             | Ensures that the networks, subnets, and routers can be    |
180 | _to_new_project                       |               | create created by an admin user and assigned to a new     |
181 |                                       |               | project ID                                                |
182 +---------------------------------------+---------------+-----------------------------------------------------------+
183 | test_create_networks_router_new_user  | 2             | Ensures that the networks, subnets, and routers can be    |
184 | _to_admin_project                     |               | create created by a new admin user and assigned to the    |
185 |                                       |               | 'admin' project ID                                        |
186 +---------------------------------------+---------------+-----------------------------------------------------------+
187
188 create_router_tests.py - CreateRouterSuccessTests
189 -------------------------------------------------
190
191 +---------------------------------------+---------------+-----------------------------------------------------------+
192 | Test Name                             | Neutron API   | Description                                               |
193 +=======================================+===============+===========================================================+
194 | test_create_router_vanilla            | 2             | Ensures that a router can be created via the              |
195 |                                       |               | OpenStackRouter class with minimal settings               |
196 +---------------------------------------+---------------+-----------------------------------------------------------+
197 | test_create_router_admin_user_to_new  | 2             | Ensures that a router can be created by an admin user and |
198 | _project                              |               | assigned to a new project                                 |
199 +---------------------------------------+---------------+-----------------------------------------------------------+
200 | test_create_router_new_user_to_admin  | 2             | Ensures that a router can be created by a new user and    |
201 | _project                              |               | assigned to the admin project                             |
202 +---------------------------------------+---------------+-----------------------------------------------------------+
203 | test_create_delete_router             | 2             | Ensures that a router can be deleted via the              |
204 |                                       |               | OpenStackRouter.clean() method                            |
205 +---------------------------------------+---------------+-----------------------------------------------------------+
206 | test_create_router_admin_state_false  | 2             | Ensures that a router can created with                    |
207 |                                       |               | admin_state_up = False                                    |
208 +---------------------------------------+---------------+-----------------------------------------------------------+
209 | test_create_router_admin_state_True   | 2             | Ensures that a router can created with                    |
210 |                                       |               | admin_state_up = True                                     |
211 +---------------------------------------+---------------+-----------------------------------------------------------+
212 | test_create_router_private_network    | 2             | Ensures that a router port can be created against a       |
213 |                                       |               | private network                                           |
214 +---------------------------------------+---------------+-----------------------------------------------------------+
215 | test_create_router_external_network   | 2             | Ensures that a router can be created that is connected to |
216 |                                       |               | both external and private internal networks               |
217 +---------------------------------------+---------------+-----------------------------------------------------------+
218
219 create_router_tests.py - CreateRouterNegativeTests
220 --------------------------------------------------
221
222 +----------------------------------------+---------------+-----------------------------------------------------------+
223 | Test Name                              | Neutron API   | Description                                               |
224 +========================================+===============+===========================================================+
225 | test_create_router_noname              | 2             | Ensures that an exception is raised when attempting to    |
226 |                                        |               | create a router without a name                            |
227 +----------------------------------------+---------------+-----------------------------------------------------------+
228 | test_create_router_invalid_gateway_name| 2             | Ensures that an exception is raised when attempting to    |
229 |                                        |               | create a router to an external network that does not exist|
230 +----------------------------------------+---------------+-----------------------------------------------------------+
231
232 create_qos_tests.py - CreateQoSTests
233 ------------------------------------
234
235 +----------------------------------------+---------------+-----------------------------------------------------------+
236 | Test Name                              |  Cinder API   | Description                                               |
237 +========================================+===============+===========================================================+
238 | test_create_qos                        | 2 & 3         | Tests the creation of a QoS Spec with the class           |
239 |                                        |               | OpenStackQoS                                              |
240 +----------------------------------------+---------------+-----------------------------------------------------------+
241 | test_create_delete_qos                 | 2 & 3         | Tests the creation of a QoS Spec with the class           |
242 |                                        |               | OpenStackQoS, its deletion with cinder_utils.py the       |
243 |                                        |               | the attempts to use the clean() method to ensure an       |
244 |                                        |               | exception is not called                                   |
245 +----------------------------------------+---------------+-----------------------------------------------------------+
246 | test_create_same_qos                   | 2 & 3         | Tests the creation of a QoS Spec with the class           |
247 |                                        |               | OpenStackQoS then instantiates another OpenStackQoS       |
248 |                                        |               | object with the same configuration to ensure the second   |
249 |                                        |               | instance returns the ID of the original                   |
250 +----------------------------------------+---------------+-----------------------------------------------------------+
251
252 create_volume_type_tests.py - CreateSimpleVolumeTypeSuccessTests
253 ----------------------------------------------------------------
254
255 +----------------------------------------+---------------+-----------------------------------------------------------+
256 | Test Name                              |  Cinder API   | Description                                               |
257 +========================================+===============+===========================================================+
258 | test_create_volume_type                | 2 & 3         | Tests the creation of a Volume Type with the class        |
259 |                                        |               | OpenStackVolumeType                                       |
260 +----------------------------------------+---------------+-----------------------------------------------------------+
261 | test_create_delete_volume_type         | 2 & 3         | Tests the creation of a Volume Type with the class        |
262 |                                        |               | OpenStackVolumeType, its deletion with cinder_utils.py,   |
263 |                                        |               | then attempts to use the clean() method to ensure an      |
264 |                                        |               | exception is not raised                                   |
265 +----------------------------------------+---------------+-----------------------------------------------------------+
266 | test_create_same_volume_type           | 2 & 3         | Tests the creation of a Volume Type with the class        |
267 |                                        |               | OpenStackVolumeType then instantiates another             |
268 |                                        |               | OpenStackVolumeType object with the same configuration to |
269 |                                        |               | ensure the second instance returns the ID of the original |
270 +----------------------------------------+---------------+-----------------------------------------------------------+
271
272 create_volume_type_tests.py - CreateSimpleVolumeTypeComplexTests
273 ----------------------------------------------------------------
274
275 +-----------------------------------------+---------------+-----------------------------------------------------------+
276 | Test Name                               |  Cinder API   | Description                                               |
277 +=========================================+===============+===========================================================+
278 | test_volume_type_with_qos               | 2 & 3         | Tests the creation of a Volume Type with the class        |
279 |                                         |               | OpenStackVolumeType with a QoSSpec                        |
280 +-----------------------------------------+---------------+-----------------------------------------------------------+
281 | test_volume_type_with_encryption        | 2 & 3         | Tests the creation of a Volume Type with the class        |
282 |                                         |               | OpenStackVolumeType with encryption                       |
283 +-----------------------------------------+---------------+-----------------------------------------------------------+
284 | test_volume_type_with_qos_and_encryption| 2 & 3         | Tests the creation of a Volume Type with the class        |
285 |                                         |               | OpenStackVolumeType with encryption and QoS Spec          |
286 +-----------------------------------------+---------------+-----------------------------------------------------------+
287
288 create_volume_tests.py - CreateSimpleVolumeSuccessTests
289 -------------------------------------------------------
290
291 +----------------------------------------+---------------+-----------------------------------------------------------+
292 | Test Name                              |  Cinder API   | Description                                               |
293 +========================================+===============+===========================================================+
294 | test_create_volume_simple              | 2 & 3         | Tests the creation of a Volume Type with the class        |
295 |                                        |               | OpenStackVolume                                           |
296 +----------------------------------------+---------------+-----------------------------------------------------------+
297 | test_create_delete_volume              | 2 & 3         | Tests the creation of a Volume with the class             |
298 |                                        |               | OpenStackVolume, its deletion with cinder_utils.py, then  |
299 |                                        |               | attempts to use the clean() method to ensure an           |
300 |                                        |               | exception is not raised                                   |
301 +----------------------------------------+---------------+-----------------------------------------------------------+
302 | test_create_same_volume                | 2 & 3         | Tests the creation of a Volume with the class             |
303 |                                        |               | OpenStackVolume then instantiates another                 |
304 |                                        |               | OpenStackVolume object with the same configuration to     |
305 |                                        |               | ensure the second instance returns the ID of the original |
306 +----------------------------------------+---------------+-----------------------------------------------------------+
307
308 create_volume_tests.py - CreateSimpleVolumeFailureTests
309 -------------------------------------------------------
310
311 +----------------------------------------+---------------+-----------------------------------------------------------+
312 | Test Name                              |  Cinder API   | Description                                               |
313 +========================================+===============+===========================================================+
314 | test_create_volume_bad_size            | 2 & 3         | Tests to ensure that attempting to create a volume with a |
315 |                                        |               | size of -1 raises a BadRequest exception                  |
316 +----------------------------------------+---------------+-----------------------------------------------------------+
317 | test_create_volume_bad_type            | 2 & 3         | Tests to ensure that attempting to create a volume with a |
318 |                                        |               | type that does not exist raises a NotFound exception      |
319 +----------------------------------------+---------------+-----------------------------------------------------------+
320 | test_create_volume_bad_image           | 2 & 3         | Tests to ensure that attempting to create a volume with an|
321 |                                        |               | image that does not exist raises a BadRequest exception   |
322 +----------------------------------------+---------------+-----------------------------------------------------------+
323 | test_create_volume_bad_zone            | 2 & 3         | Tests to ensure that attempting to create a volume with an|
324 |                                        |               | invalid availability zone raises a BadRequest exception   |
325 +----------------------------------------+---------------+-----------------------------------------------------------+
326
327 create_volume_tests.py - CreateVolumeWithTypeTests
328 --------------------------------------------------
329
330 +----------------------------------------+---------------+-----------------------------------------------------------+
331 | Test Name                              |  Cinder API   | Description                                               |
332 +========================================+===============+===========================================================+
333 | test_bad_volume_type                   | 2 & 3         | Tests to ensure the creation of a Volume with the         |
334 |                                        |               | OpenStackVolume#create() method raises a NotFound         |
335 |                                        |               | exception when attempting to apply a VolumeType that does |
336 |                                        |               | not exist                                                 |
337 +----------------------------------------+---------------+-----------------------------------------------------------+
338 | test_valid_volume_type                 | 2 & 3         | Tests to ensure the creation of a Volume with the         |
339 |                                        |               | OpenStackVolume#create() method properly creates the      |
340 |                                        |               | volume when associating with a valid VolumeType           |
341 +----------------------------------------+---------------+-----------------------------------------------------------+
342
343 create_volume_tests.py - CreateVolumeWithImageTests
344 ---------------------------------------------------
345
346 +----------------------------------------+---------------+-----------------------------------------------------------+
347 | Test Name                              |  Cinder API   | Description                                               |
348 +========================================+===============+===========================================================+
349 | test_bad_image_name                    | 2 & 3         | Tests to ensure the creation of a Volume with the         |
350 |                                        |               | OpenStackVolume#create() method raises a BadRequest       |
351 |                                        |               | exception when attempting to apply an image that does not |
352 |                                        |               | exist                                                     |
353 +----------------------------------------+---------------+-----------------------------------------------------------+
354 | test_valid_volume_image                | 2 & 3         | Tests to ensure the creation of a Volume with the         |
355 |                                        |               | OpenStackVolume#create() method properly creates the      |
356 |                                        |               | volume when associating with a valid image                |
357 +----------------------------------------+---------------+-----------------------------------------------------------+
358
359 create_stack_tests.py - CreateStackSuccessTests
360 -----------------------------------------------
361
362 +---------------------------------------+---------------+-----------------------------------------------------------+
363 | Test Name                             |   Heat API    | Description                                               |
364 +=======================================+===============+===========================================================+
365 | test_create_stack_template_file       | 1             | Ensures that a Heat stack can be created with a file-based|
366 |                                       |               | Heat template file                                        |
367 +---------------------------------------+---------------+-----------------------------------------------------------+
368 | test_create_stack_template_dict       | 1             | Ensures that a Heat stack can be created with a dictionary|
369 |                                       |               | Heat template                                             |
370 +---------------------------------------+---------------+-----------------------------------------------------------+
371 | test_create_delete_stack              | 1             | Ensures that a Heat stack can be created and deleted      |
372 |                                       |               | while having clean() called 2x without an exception       |
373 +---------------------------------------+---------------+-----------------------------------------------------------+
374 | test_create_same_stack                | 1             | Ensures that a Heat stack with the same name cannot be    |
375 |                                       |               | created 2x                                                |
376 +---------------------------------------+---------------+-----------------------------------------------------------+
377 | test_retrieve_network_creators        | 1             | Ensures that an OpenStackHeatStack instance can return an |
378 |                                       |               | OpenStackNetwork instance configured as deployed          |
379 +---------------------------------------+---------------+-----------------------------------------------------------+
380 | test_retrieve_vm_inst_creators        | 1             | Ensures that an OpenStackHeatStack instance can return an |
381 |                                       |               | OpenStackVmInstance instance configured as deployed       |
382 +---------------------------------------+---------------+-----------------------------------------------------------+
383
384 create_stack_tests.py - CreateStackVolumeTests
385 ----------------------------------------------
386
387 +---------------------------------------+---------------+-----------------------------------------------------------+
388 | Test Name                             |   Heat API    | Description                                               |
389 +=======================================+===============+===========================================================+
390 | test_retrieve_volume_creator          | 1             | Ensures that an OpenStackHeatStack instance can return a  |
391 |                                       |               | OpenStackVolume instance that it was responsible for      |
392 |                                       |               | deploying                                                 |
393 +---------------------------------------+---------------+-----------------------------------------------------------+
394 | test_retrieve_volume_type_creator     | 1             | Ensures that an OpenStackHeatStack instance can return a  |
395 |                                       |               | OpenStackVolumeType instance that it was responsible for  |
396 |                                       |               | deploying                                                 |
397 +---------------------------------------+---------------+-----------------------------------------------------------+
398
399 create_stack_tests.py - CreateStackFloatingIpTests
400 --------------------------------------------------
401
402 +---------------------------------------+---------------+-----------------------------------------------------------+
403 | Test Name                             |   Heat API    | Description                                               |
404 +=======================================+===============+===========================================================+
405 | test_connect_via_ssh_heat_vm          | 1             | Ensures that an OpenStackHeatStack instance can create a  |
406 |                                       |               | VM with a floating IP that can be accessed via            |
407 |                                       |               | OpenStackVmInstance                                       |
408 +---------------------------------------+---------------+-----------------------------------------------------------+
409
410 create_stack_tests.py - CreateStackRouterTests
411 ----------------------------------------------
412
413 +---------------------------------------+---------------+-----------------------------------------------------------+
414 | Test Name                             |   Heat API    | Description                                               |
415 +=======================================+===============+===========================================================+
416 | test_retrieve_router_creator          | 1             | Ensures that an OpenStackHeatStack instance can return a  |
417 |                                       |               | OpenStackRouter instance that it was responsible for      |
418 |                                       |               | deploying                                                 |
419 +---------------------------------------+---------------+-----------------------------------------------------------+
420
421 create_stack_tests.py - CreateStackFlavorTests
422 ----------------------------------------------
423
424 +---------------------------------------+---------------+-----------------------------------------------------------+
425 | Test Name                             |   Heat API    | Description                                               |
426 +=======================================+===============+===========================================================+
427 | test_retrieve_flavor_creator          | 1             | Ensures that an OpenStackHeatStack instance can return a  |
428 |                                       |               | OpenStackFlavor instance that it was responsible for      |
429 |                                       |               | deploying                                                 |
430 +---------------------------------------+---------------+-----------------------------------------------------------+
431
432 create_stack_tests.py - CreateStackKeypairTests
433 -----------------------------------------------
434
435 +---------------------------------------+---------------+-----------------------------------------------------------+
436 | Test Name                             |   Heat API    | Description                                               |
437 +=======================================+===============+===========================================================+
438 | test_retrieve_keypair_creator         | 1             | Ensures that an OpenStackHeatStack instance can return a  |
439 |                                       |               | OpenStackKeypair instance that it was responsible for     |
440 |                                       |               | deploying                                                 |
441 +---------------------------------------+---------------+-----------------------------------------------------------+
442
443 create_stack_tests.py - CreateComplexStackTests
444 -----------------------------------------------
445
446 +---------------------------------------+---------------+-----------------------------------------------------------+
447 | Test Name                             |   Heat API    | Description                                               |
448 +=======================================+===============+===========================================================+
449 | test_connect_via_ssh_heat_vm          | 1             | Ensures that two OpenStackHeatStack instances can return  |
450 |                                       |               | OpenStackVmInstance instances one configured with a       |
451 |                                       |               | floating IP and keypair and can be access via SSH         |
452 +---------------------------------------+---------------+-----------------------------------------------------------+
453
454 create_stack_tests.py - CreateStackNegativeTests
455 ------------------------------------------------
456
457 +----------------------------------------+---------------+-----------------------------------------------------------+
458 | Test Name                              |   Heat API    | Description                                               |
459 +========================================+===============+===========================================================+
460 | test_missing_dependencies              | 1             | Ensures that a Heat template fails to deploy when expected|
461 |                                        |               | dependencies are missing                                  |
462 +----------------------------------------+---------------+-----------------------------------------------------------+
463 | test_bad_stack_file                    | 1             | Ensures that a Heat template fails to deploy when the Heat|
464 |                                        |               | template file does not exist                              |
465 +----------------------------------------+---------------+-----------------------------------------------------------+
466
467 create_instance_tests.py - CreateInstanceSimpleTests
468 ----------------------------------------------------
469
470 +---------------------------------------+---------------+-----------------------------------------------------------+
471 | Test Name                             | API Versions  | Description                                               |
472 +=======================================+===============+===========================================================+
473 | test_create_delete_instance           | Nova 2        | Ensures that the OpenStackVmInstance.clean() method       |
474 |                                       | Neutron 2     | deletes the instance                                      |
475 +---------------------------------------+---------------+-----------------------------------------------------------+
476
477 create_instance_tests.py - SimpleHealthCheck
478 --------------------------------------------
479
480 +---------------------------------------+---------------+-----------------------------------------------------------+
481 | Test Name                             | API Versions  | Description                                               |
482 +=======================================+===============+===========================================================+
483 | test_check_vm_ip_dhcp                 | Nova 2        | Tests the creation of an OpenStack instance with a single |
484 |                                       | Neutron 2     | port and it's assigned IP address                         |
485 +---------------------------------------+---------------+-----------------------------------------------------------+
486
487 create_instance_tests.py - CreateInstanceTwoNetTests
488 ----------------------------------------------------
489
490 +---------------------------------------+---------------+-----------------------------------------------------------+
491 | Test Name                             | API Versions  | Description                                               |
492 +=======================================+===============+===========================================================+
493 | test_ping_via_router                  | Nova 2        | Tests the ability of two VMs on different private overlay |
494 |                                       | Neutron 2     | networks tied together with a router to ping each other   |
495 +---------------------------------------+---------------+-----------------------------------------------------------+
496
497 create_instance_tests.py - CreateInstanceSingleNetworkTests
498 -----------------------------------------------------------
499
500 +---------------------------------------+---------------+-----------------------------------------------------------+
501 | Test Name                             | API Versions  | Description                                               |
502 +=======================================+===============+===========================================================+
503 | test_single_port_static               | Nova 2        | Ensures that an instance with a single port/NIC with a    |
504 |                                       | Neutron 2     | static IP can be created                                  |
505 +---------------------------------------+---------------+-----------------------------------------------------------+
506 | test_ssh_client_fip_before_active     | Nova 2        | Ensures that an instance can be reached over SSH when the |
507 |                                       | Neutron 2     | floating IP is assigned prior to the VM becoming ACTIVE   |
508 +---------------------------------------+---------------+-----------------------------------------------------------+
509 | test_ssh_client_fip_after_active      | Nova 2        | Ensures that an instance can be reached over SSH when the |
510 |                                       | Neutron 2     | floating IP is assigned after to the VM becoming ACTIVE   |
511 +---------------------------------------+---------------+-----------------------------------------------------------+
512 | test_ssh_client_fip_second_creator    | Nova 2        | Ensures that an instance can be reached over SSH via a    |
513 |                                       | Neutron 2     | second identical creator object                           |
514 +---------------------------------------+---------------+-----------------------------------------------------------+
515
516 create_instance_tests.py - CreateInstancePortManipulationTests
517 --------------------------------------------------------------
518
519 +---------------------------------------+---------------+-----------------------------------------------------------+
520 | Test Name                             | API Versions  | Description                                               |
521 +=======================================+===============+===========================================================+
522 | test_set_custom_valid_ip_one_subnet   | Nova 2        | Ensures that an instance's can have a valid static IP is  |
523 |                                       | Neutron 2     | properly assigned                                         |
524 +---------------------------------------+---------------+-----------------------------------------------------------+
525 | test_set_custom_invalid_ip_one_subnet | Nova 2        | Ensures that an instance's port with an invalid static IP |
526 |                                       | Neutron 2     | raises an exception                                       |
527 +---------------------------------------+---------------+-----------------------------------------------------------+
528 | test_set_custom_valid_mac             | Nova 2        | Ensures that an instance's port can have a valid MAC      |
529 |                                       | Neutron 2     | address properly assigned                                 |
530 +---------------------------------------+---------------+-----------------------------------------------------------+
531 | test_set_custom_invalid_mac           | Nova 2        | Ensures that an instance's port with an invalid MAC       |
532 |                                       | Neutron 2     | address raises and exception                              |
533 +---------------------------------------+---------------+-----------------------------------------------------------+
534 | test_set_custom_mac_and_ip            | Nova 2        | Ensures that an instance's port with a valid static IP and|
535 |                                       | Neutron 2     | MAC are properly assigned                                 |
536 +---------------------------------------+---------------+-----------------------------------------------------------+
537 | test_set_allowed_address_pairs        | Nova 2        | Ensures the configured allowed_address_pairs is properly  |
538 |                                       | Neutron 2     | set on a VMs port                                         |
539 +---------------------------------------+---------------+-----------------------------------------------------------+
540 | test_set_allowed_address_pairs_bad_mac| Nova 2        | Ensures the port cannot be created when a bad MAC address |
541 |                                       | Neutron 2     | format is used in the allowed_address_pairs port attribute|
542 +---------------------------------------+---------------+-----------------------------------------------------------+
543 | test_set_allowed_address_pairs_bad_ip | Nova 2        | Ensures the port cannot be created when a bad IP address  |
544 |                                       | Neutron 2     | format is used in the allowed_address_pairs port attribute|
545 +---------------------------------------+---------------+-----------------------------------------------------------+
546
547 create_instance_tests.py - CreateInstanceOnComputeHost
548 ------------------------------------------------------
549
550 +---------------------------------------+---------------+-----------------------------------------------------------+
551 | Test Name                             | API Versions  | Description                                               |
552 +=======================================+===============+===========================================================+
553 | test_deploy_vm_to_each_compute_node   | Nova 2        | Tests to ensure that one can fire up an instance on each  |
554 |                                       | Neutron 2     | active compute node                                       |
555 +---------------------------------------+---------------+-----------------------------------------------------------+
556
557 create_instance_tests.py - CreateInstanceFromThreePartImage
558 -----------------------------------------------------------
559
560 +-----------------------------------------------------+---------------+-----------------------------------------------------------+
561 | Test Name                                           | API Versions  | Description                                               |
562 +=====================================================+===============+===========================================================+
563 | test_create_delete_instance_from_three_part_image   | Nova 2        | Tests to ensure that one can fire up an instance then     |
564 |                                                     | Neutron 2     | delete it when using a 3-part image                       |
565 +-----------------------------------------------------+---------------+-----------------------------------------------------------+
566
567 create_instance_tests.py - CreateInstancePubPrivNetTests
568 --------------------------------------------------------
569
570 +---------------------------------------+---------------+-----------------------------------------------------------+
571 | Test Name                             | API Versions  | Description                                               |
572 +=======================================+===============+===========================================================+
573 | test_dual_ports_dhcp                  | Nova 2        | Ensures that a VM with two ports/NICs can have its second |
574 |                                       | Neutron 2     | NIC configured via SSH/Ansible after startup              |
575 +---------------------------------------+---------------+-----------------------------------------------------------+
576
577 create_instance_tests.py - InstanceSecurityGroupTests
578 -----------------------------------------------------
579
580 +---------------------------------------+---------------+-----------------------------------------------------------+
581 | Test Name                             | API Versions  | Description                                               |
582 +=======================================+===============+===========================================================+
583 | test_add_security_group               | Nova 2        | Ensures that a VM instance can have security group added  |
584 |                                       | Neutron 2     | to it while its running                                   |
585 +---------------------------------------+---------------+-----------------------------------------------------------+
586 | test_add_invalid_security_group       | Nova 2        | Ensures that a VM instance does not accept the addition of|
587 |                                       | Neutron 2     | a security group that no longer exists                    |
588 +---------------------------------------+---------------+-----------------------------------------------------------+
589 | test_remove_security_group            | Nova 2        | Ensures that a VM instance accepts the removal of a       |
590 |                                       | Neutron 2     | security group                                            |
591 +---------------------------------------+---------------+-----------------------------------------------------------+
592 | test_remove_security_group_never_added| Nova 2        | Ensures that a VM instance does not accept the removal of |
593 |                                       | Neutron 2     | a security group that was never added in the first place  |
594 +---------------------------------------+---------------+-----------------------------------------------------------+
595 | test_add_same_security_group          | Nova 2        | Ensures that a VM instance does not add a security group  |
596 |                                       | Neutron 2     | that has already been added to the instance               |
597 +---------------------------------------+---------------+-----------------------------------------------------------+
598
599 create_instance_tests.py - CreateInstanceVolumeTests
600 ----------------------------------------------------
601
602 +---------------------------------------+---------------+-----------------------------------------------------------+
603 | Test Name                             | API Versions  | Description                                               |
604 +=======================================+===============+===========================================================+
605 | test_create_instance_with_one_volume  | Nova 2        | Ensures that a VM instance can have one volume attached   |
606 |                                       | Cinder 2 & 3  | to it                                                     |
607 +---------------------------------------+---------------+-----------------------------------------------------------+
608 | test_create_instance_with_two_volumes | Nova 2        | Ensures that a VM instance can have two volumes attached  |
609 |                                       | Cinder 2 & 3  | to it                                                     |
610 +---------------------------------------+---------------+-----------------------------------------------------------+
611
612 ansible_utils_tests.py - AnsibleProvisioningTests
613 -------------------------------------------------
614
615 +---------------------------------------+---------------+-----------------------------------------------------------+
616 | Test Name                             | API Versions  | Description                                               |
617 +=======================================+===============+===========================================================+
618 | test_apply_simple_playbook            | Nova 2        | Ensures that an instance assigned with a floating IP will |
619 |                                       | Neutron 2     | apply a simple Ansible playbook                           |
620 +---------------------------------------+---------------+-----------------------------------------------------------+
621 | test_apply_template_playbook          | Nova 2        | Ensures that an instance assigned with a floating IP will |
622 |                                       | Neutron 2     | apply a Ansible playbook containing Jinga2 substitution   |
623 |                                       |               | values                                                    |
624 +---------------------------------------+---------------+-----------------------------------------------------------+