1 SNAPS OpenStack API Testing
2 ===========================
4 Tests designated as component tests extend the snaps.openstack.tests.OSComponentTestCase class and must be exercised
5 with OpenStack credentials for all as well as an external network for many. When leveraging the unit\_test\_suite.py
6 application, the -e argument and -n arguments will suffice. When attempting to execute these tests within your IDE
7 of choice (tested on IntelliJ), you will need to edit the [repo\_dir]/snaps/openstack/tests/conf/os\_env.yaml file as well
8 as ensuring that your run configuration's working directory is set to [repo\_dir]/snaps.
13 glance_utils_tests.py - GlanceSmokeTests
14 ----------------------------------------
16 Ensures that a Glance client can be obtained as well as the proper
17 exceptions thrown with the wrong credentials.
19 keystone_utils_tests.py - KeystoneSmokeTests
20 --------------------------------------------
22 Ensures that a Keystone client can be obtained as well as the proper
23 exceptions thrown with the wrong credentials.
25 neutron_utils_tests.py - NeutronSmokeTests
26 ------------------------------------------
28 Ensures that a Neutron client can be obtained as well as the proper
29 exceptions thrown with the wrong credentials.
31 nova_utils_tests.py - NovaSmokeTests
32 ------------------------------------
34 Ensures that a Nova client can be obtained as well as the proper
35 exceptions thrown with the wrong credentials.
37 cinder_utils_tests.py - CinderSmokeTests
38 ----------------------------------------
40 Ensures that a Cinder client can be obtained as well as the proper
41 exceptions thrown with the wrong credentials.
43 heat_utils_tests.py - HeatSmokeTests
44 ------------------------------------
46 Ensures that a Heat client can be obtained as well as the proper
47 exceptions thrown with the wrong credentials.
49 keystone_utils_tests.py - KeystoneUtilsTests
50 --------------------------------------------
52 +----------------------------------+---------------+-----------------------------------------------------------+
53 | Test Name | Keystone API | Description |
54 +==================================+===============+===========================================================+
55 | test_create_user_minimal | 2 & 3 | Tests the creation of a user with minimal configuration |
56 | | | settings via the utility functions |
57 +----------------------------------+---------------+-----------------------------------------------------------+
58 | test_create_project_minimal | 2 & 3 | Tests the creation of a project with minimal configuration|
59 | | | settings via the utility functions |
60 +----------------------------------+---------------+-----------------------------------------------------------+
61 | test_get_endpoint_success | 2 & 3 | Tests to ensure that proper credentials and proper service|
62 | | | type can succeed |
63 +----------------------------------+---------------+-----------------------------------------------------------+
64 | test_get_endpoint_fail_without | 2 & 3 | Tests to ensure that proper credentials and improper |
65 | _proper_service | | service type cannot succeed |
66 +----------------------------------+---------------+-----------------------------------------------------------+
67 | test_get_endpoint_fail_without | 2 & 3 | Tests to ensure that improper credentials and proper |
68 | _proper_credentials | | service type cannot succeed |
69 +----------------------------------+---------------+-----------------------------------------------------------+
70 | test_get_endpoint_with_each | 2 & 3 | Tests to ensure that an interface URL is returned for each|
71 | _interface | | supported interface type (i.e. public, internal, & admin) |
72 +----------------------------------+---------------+-----------------------------------------------------------+
73 | test_grant_user_role_to_project | 2 & 3 | Tests to ensure that one can grant a new user's role to a |
75 +----------------------------------+---------------+-----------------------------------------------------------+
77 create_user_tests.py - CreateUserSuccessTests
78 ---------------------------------------------
79 +----------------------------------+---------------+-----------------------------------------------------------+
80 | Test Name | Keystone API | Description |
81 +==================================+===============+===========================================================+
82 | test_create_user | 2 & 3 | Tests the creation of a user with minimal configuration |
83 | | | settings via the utility functions |
84 +----------------------------------+---------------+-----------------------------------------------------------+
85 | test_create_user_2x | 2 & 3 | Tests the creation of a user 2x and ensure it has been |
86 | | | done only once |
87 +----------------------------------+---------------+-----------------------------------------------------------+
88 | test_create_delete_user | 2 & 3 | Tests the creation of a user and ensure clean can be |
89 | | | called 2x without exceptions being raised |
90 +----------------------------------+---------------+-----------------------------------------------------------+
91 | test_create_admin_user | 2 & 3 | Tests the creation of a user with an 'admin' role |
92 +----------------------------------+---------------+-----------------------------------------------------------+
94 create_project_tests.py - CreateProjectSuccessTests
95 ---------------------------------------------------
97 +----------------------------------+---------------+-----------------------------------------------------------+
98 | Test Name | Keystone API | Description |
99 +==================================+===============+===========================================================+
100 | test_create_project_bad_domain | 3 | Ensures that keystone v3 clients using the domain ID |
101 | | | project setting project creation will fail with an invalid|
102 | | | domain id/name |
103 +----------------------------------+---------------+-----------------------------------------------------------+
104 | test_create_project | 2 & 3 | Tests the creation of a project via the OpenStackProject |
106 +----------------------------------+---------------+-----------------------------------------------------------+
107 | test_create_project_2x | 2 & 3 | Tests the creation of a project a second time via the |
108 | | | OpenStackProject class to ensure it is only created once |
109 +----------------------------------+---------------+-----------------------------------------------------------+
110 | test_create_delete_project | 2 & 3 | Tests the creation and deletion of a project via the |
111 | | | OpenStackProject class to ensure that clean will not raise|
113 +----------------------------------+---------------+-----------------------------------------------------------+
114 | test_update_quotas | 2 & 3 | Tests the ability to update quota values |
115 | | nova & neutron| |
116 +----------------------------------+---------------+-----------------------------------------------------------+
118 create_project_tests.py - CreateProjectUserTests
119 ------------------------------------------------
121 +---------------------------------------+---------------+-----------------------------------------------------------+
122 | Test Name | Keystone API | Description |
123 +=======================================+===============+===========================================================+
124 | test_create_project_sec_grp_one_user | 2 & 3 | Tests the creation of an OpenStack object to a project |
125 | | | with a new users and to create a security group |
127 +---------------------------------------+---------------+-----------------------------------------------------------+
128 | test_create_project_sec_grp_two_users | 2 & 3 | Tests the creation of an OpenStack object to a project |
129 | | | with two new users and to create a security group under |
131 +---------------------------------------+---------------+-----------------------------------------------------------+
133 glance_utils_tests.py - GlanceUtilsTests
134 ----------------------------------------
136 +---------------------------------------+---------------+-----------------------------------------------------------+
137 | Test Name | Glance API | Description |
138 +=======================================+===============+===========================================================+
139 | test_create_image_minimal_url | 1 | Tests the glance_utils.create_image() function with a URL |
140 +---------------------------------------+---------------+-----------------------------------------------------------+
141 | test_create_image_minimal_file | 1 | Tests the glance_utils.create_image() function with a file|
142 +---------------------------------------+---------------+-----------------------------------------------------------+
144 neutron_utils_tests.py - NeutronUtilsNetworkTests
145 -------------------------------------------------
147 +---------------------------------------+---------------+-----------------------------------------------------------+
148 | Test Name | Neutron API | Description |
149 +=======================================+===============+===========================================================+
150 | test_create_network | 2 | Ensures neutron_utils.create_network() properly creates a |
152 +---------------------------------------+---------------+-----------------------------------------------------------+
153 | test_create_network_empty_name | 2 | Ensures neutron_utils.create_network() raises an exception|
154 | | | when the network name is an empty string |
155 +---------------------------------------+---------------+-----------------------------------------------------------+
156 | test_create_network_null_name | 2 | Ensures neutron_utils.create_network() raises an exception|
157 | | | when the network name is None |
158 +---------------------------------------+---------------+-----------------------------------------------------------+
160 neutron_utils_tests.py - NeutronUtilsSubnetTests
161 ------------------------------------------------
163 +---------------------------------------+---------------+-----------------------------------------------------------+
164 | Test Name | Neutron API | Description |
165 +=======================================+===============+===========================================================+
166 | test_create_subnet | 2 | Ensures neutron_utils.create_subnet() can properly create |
167 | | | an OpenStack subnet object |
168 +---------------------------------------+---------------+-----------------------------------------------------------+
169 | test_create_subnet_null_name | 2 | Ensures neutron_utils.create_subnet() raises an exception |
170 | | | when the subnet name is None |
171 +---------------------------------------+---------------+-----------------------------------------------------------+
172 | test_create_subnet_empty_name | 2 | Ensures neutron_utils.create_subnet() raises an exception |
173 | | | when the subnet name is an empty string |
174 +---------------------------------------+---------------+-----------------------------------------------------------+
175 | test_create_subnet_null_cidr | 2 | Ensures neutron_utils.create_subnet() raises an exception |
176 | | | when the subnet CIDR is None |
177 +---------------------------------------+---------------+-----------------------------------------------------------+
178 | test_create_subnet_empty_cidr | 2 | Ensures neutron_utils.create_subnet() raises an exception |
179 | | | when the subnet CIDR is an empty string |
180 +---------------------------------------+---------------+-----------------------------------------------------------+
182 neutron_utils_tests.py - NeutronUtilsRouterTests
183 ------------------------------------------------
185 +---------------------------------------+---------------+-----------------------------------------------------------+
186 | Test Name | Neutron API | Description |
187 +=======================================+===============+===========================================================+
188 | test_create_router_simple | 2 | Ensures neutron_utils.create_router() can properly create |
189 | | | a simple OpenStack router object |
190 +---------------------------------------+---------------+-----------------------------------------------------------+
191 | test_create_router_with_public_inter | 2 | Ensures neutron_utils.create_router() can properly create |
192 | face | | an OpenStack router object with an interface to the |
193 | | | external network |
194 +---------------------------------------+---------------+-----------------------------------------------------------+
195 | test_create_router_empty_name | 2 | Ensures neutron_utils.create_router() raises an exception |
196 | | | when the name is an empty string |
197 +---------------------------------------+---------------+-----------------------------------------------------------+
198 | test_create_router_null_name | 2 | Ensures neutron_utils.create_router() raises an exception |
199 | | | when the name is None |
200 +---------------------------------------+---------------+-----------------------------------------------------------+
201 | test_add_interface_router | 2 | Ensures neutron_utils.add_interface_router() properly adds|
202 | | | an interface to another subnet |
203 +---------------------------------------+---------------+-----------------------------------------------------------+
204 | test_add_interface_router_null_router | 2 | Ensures neutron_utils.add_interface_router() raises an |
205 | | | exception when the router object is None |
206 +---------------------------------------+---------------+-----------------------------------------------------------+
207 | test_add_interface_router_null_subnet | 2 | Ensures neutron_utils.add_interface_router() raises an |
208 | | | exception when the subnet object is None |
209 +---------------------------------------+---------------+-----------------------------------------------------------+
210 | test_create_port | 2 | Ensures neutron_utils.create_port() can properly create an|
211 | | | OpenStack port object |
212 +---------------------------------------+---------------+-----------------------------------------------------------+
213 | test_create_port_empty_name | 2 | Ensures neutron_utils.create_port() raises an exception |
214 | | | when the port name is an empty string |
215 +---------------------------------------+---------------+-----------------------------------------------------------+
216 | test_create_port_null_name | 2 | Ensures neutron_utils.create_port() raises an exception |
217 | | | when the port name is None |
218 +---------------------------------------+---------------+-----------------------------------------------------------+
219 | test_create_port_null_network_object | 2 | Ensures neutron_utils.create_port() raises an exception |
220 | | | when the network object is None |
221 +---------------------------------------+---------------+-----------------------------------------------------------+
222 | test_create_port_null_ip | 2 | Ensures neutron_utils.create_port() raises an exception |
223 | | | when the assigned IP value is None |
224 +---------------------------------------+---------------+-----------------------------------------------------------+
225 | test_create_port_invalid_ip | 2 | Ensures neutron_utils.create_port() raises an exception |
226 | | | when the assigned IP value is invalid |
227 +---------------------------------------+---------------+-----------------------------------------------------------+
228 | test_create_port_invalid_ip_to_subnet | 2 | Ensures neutron_utils.create_port() raises an exception |
229 | | | when the assigned IP value is not part of CIDR |
230 +---------------------------------------+---------------+-----------------------------------------------------------+
232 neutron_utils_tests.py - NeutronUtilsSecurityGroupTests
233 -------------------------------------------------------
235 +---------------------------------------+---------------+-----------------------------------------------------------+
236 | Test Name | Neutron API | Description |
237 +=======================================+===============+===========================================================+
238 | test_create_delete_simple_sec_grp | 2 | Ensures that a security group can be created |
239 | | | (neutron_utils.create_security_group() and deleted via |
240 | | | neutron_utils.delete_security_group() |
241 +---------------------------------------+---------------+-----------------------------------------------------------+
242 | test_create_sec_grp_no_name | 2 | Ensures that neutron_utils.create_security_group() raises |
243 | | | an exception when attempting to create a security group |
244 | | | without a name |
245 +---------------------------------------+---------------+-----------------------------------------------------------+
246 | test_create_sec_grp_no_rules | 2 | Ensures that neutron_utils.create_security_group() can |
247 | | | create a security group without any rules |
248 +---------------------------------------+---------------+-----------------------------------------------------------+
249 | test_create_sec_grp_one_rule | 2 | Ensures that neutron_utils.create_security_group_rule() |
250 | | | can add a rule to a security group |
251 +---------------------------------------+---------------+-----------------------------------------------------------+
252 | test_get_sec_grp_by_id | 2 | Ensures that neutron_utils.get_security_group_by_id() |
253 | | | returns the expected security group |
254 +---------------------------------------+---------------+-----------------------------------------------------------+
256 neutron_utils_tests.py - NeutronUtilsFloatingIpTests
257 ----------------------------------------------------
259 +---------------------------------------+---------------+-----------------------------------------------------------+
260 | Test Name | Neutron API | Description |
261 +=======================================+===============+===========================================================+
262 | test_floating_ips | 2 | Ensures that a floating IP can be created |
263 +---------------------------------------+---------------+-----------------------------------------------------------+
265 cinder_utils_tests.py - CinderUtilsQoSTests
266 -------------------------------------------
268 +---------------------------------------+---------------+-----------------------------------------------------------+
269 | Test Name | Cinder API | Description |
270 +=======================================+===============+===========================================================+
271 | test_create_qos_both | 2 & 3 | Ensures that a QoS Spec can be created with a Consumer |
272 | | | value of 'both' |
273 +---------------------------------------+---------------+-----------------------------------------------------------+
274 | test_create_qos_front | 2 & 3 | Ensures that a QoS Spec can be created with a Consumer |
275 | | | value of 'front-end' |
276 +---------------------------------------+---------------+-----------------------------------------------------------+
277 | test_create_qos_back | 2 & 3 | Ensures that a QoS Spec can be created with a Consumer |
278 | | | value of 'back-end' |
279 +---------------------------------------+---------------+-----------------------------------------------------------+
280 | test_create_delete_qos | 2 & 3 | Ensures that a QoS Spec can be created and deleted |
281 +---------------------------------------+---------------+-----------------------------------------------------------+
283 cinder_utils_tests.py - CinderUtilsSimpleVolumeTypeTests
284 --------------------------------------------------------
286 +---------------------------------------+---------------+-----------------------------------------------------------+
287 | Test Name | Cinder API | Description |
288 +=======================================+===============+===========================================================+
289 | test_create_simple_volume_type | 2 & 3 | Tests the creation of a simple volume type with the |
290 | | | function cinder_utils#create_volume_type() |
291 +---------------------------------------+---------------+-----------------------------------------------------------+
292 | test_create_delete_volume_type | 2 & 3 | Tests the creation of a simple volume type with the |
293 | | | function cinder_utils#create_volume_type() then deletes |
294 | | | with the function cinder_utils#delete_volume_type() |
295 +---------------------------------------+---------------+-----------------------------------------------------------+
297 cinder_utils_tests.py - CinderUtilsAddEncryptionTests
298 -----------------------------------------------------
300 +---------------------------------------+---------------+-----------------------------------------------------------+
301 | Test Name | Cinder API | Description |
302 +=======================================+===============+===========================================================+
303 | test_create_simple_encryption | 2 & 3 | Tests the creation of a simple volume type encryption |
304 | | | with the function cinder_utils#create_volume_encryption() |
305 +---------------------------------------+---------------+-----------------------------------------------------------+
306 | test_create_delete_encryption | 2 & 3 | Tests the creation of a simple volume type encryption |
307 | | | with the function cinder_utils#create_volume_encryption() |
308 | | | then deletes with the function |
309 | | | cinder_utils#delete_volume_type_encryption() |
310 +---------------------------------------+---------------+-----------------------------------------------------------+
311 | test_create_with_all_attrs | 2 & 3 | Tests the creation of a simple volume type encryption |
312 | | | with the function cinder_utils#create_volume_encryption() |
313 | | | where all configuration attributes have been set |
314 +---------------------------------------+---------------+-----------------------------------------------------------+
315 | test_create_bad_key_size | 2 & 3 | Tests to ensure that the function |
316 | | | cinder_utils#create_volume_encryption() raises a |
317 | | | BadRequest exception when the key_size attribute is -1 |
318 +---------------------------------------+---------------+-----------------------------------------------------------+
320 cinder_utils_tests.py - CinderUtilsVolumeTypeCompleteTests
321 ----------------------------------------------------------
323 +---------------------------------------+---------------+-----------------------------------------------------------+
324 | Test Name | Cinder API | Description |
325 +=======================================+===============+===========================================================+
326 | test_create_with_encryption | 2 & 3 | Tests the creation of a volume type with encryption |
327 | | | with the function cinder_utils#create_volume_type() |
328 +---------------------------------------+---------------+-----------------------------------------------------------+
329 | test_create_with_qos | 2 & 3 | Tests the creation of a volume type with a QoS Spec |
330 | | | with the function cinder_utils#create_volume_type() |
331 +---------------------------------------+---------------+-----------------------------------------------------------+
332 | test_create_with_invalid_qos | 2 & 3 | Tests the creation of a volume type with an invalid QoS |
333 | | | Spec with the function cinder_utils#create_volume_type() |
334 +---------------------------------------+---------------+-----------------------------------------------------------+
335 | test_create_with_qos_and_encryption | 2 & 3 | Tests the creation of a volume type with a QoS Spec and |
336 | | | encryption with the function |
337 | | | cinder_utils#create_volume_type() |
338 +---------------------------------------+---------------+-----------------------------------------------------------+
340 cinder_utils_tests.py - CinderUtilsVolumeTests
341 ----------------------------------------------
343 +---------------------------------------+---------------+-----------------------------------------------------------+
344 | Test Name | Cinder API | Description |
345 +=======================================+===============+===========================================================+
346 | test_create_simple_volume | 2 & 3 | Tests the creation of a simple volume with the function |
347 | | | cinder_utils#create_volume() |
348 +---------------------------------------+---------------+-----------------------------------------------------------+
349 | test_create_delete_volume | 2 & 3 | Tests the creation of a volume with the function |
350 | | | cinder_utils#create_volume() then deletion with the |
351 | | | function cinder_utils#delete_volume() |
352 +---------------------------------------+---------------+-----------------------------------------------------------+
354 nova_utils_tests.py - NovaUtilsKeypairTests
355 -------------------------------------------
357 +---------------------------------------+---------------+-----------------------------------------------------------+
358 | Test Name | Nova API | Description |
359 +=======================================+===============+===========================================================+
360 | test_create_keypair | 2 | Ensures that a keypair can be properly created via |
361 | | | nova_utils.upload_keypair() with a public_key object |
362 +---------------------------------------+---------------+-----------------------------------------------------------+
363 | test_create_delete_keypair | 2 | Ensures that a keypair can be properly deleted via |
364 | | | nova_utils.delete_keypair() |
365 +---------------------------------------+---------------+-----------------------------------------------------------+
366 | test_create_key_from_file | 2 | Ensures that a keypair can be properly created via |
367 | | | nova_utils.upload_keypair_file() |
368 +---------------------------------------+---------------+-----------------------------------------------------------+
370 nova_utils_tests.py - NovaUtilsFlavorTests
371 ------------------------------------------
373 +---------------------------------------+---------------+-----------------------------------------------------------+
374 | Test Name | Nova API | Description |
375 +=======================================+===============+===========================================================+
376 | test_create_flavor | 2 | Ensures that a flavor can be properly created via |
377 | | | nova_utils.create_flavor() |
378 +---------------------------------------+---------------+-----------------------------------------------------------+
379 | test_create_delete_flavor | 2 | Ensures that a flavor can be properly deleted via |
380 | | | nova_utils.delete_flavor() |
381 +---------------------------------------+---------------+-----------------------------------------------------------+
383 nova_utils_tests.py - NovaUtilsInstanceTests
384 --------------------------------------------
386 +---------------------------------------+---------------+-----------------------------------------------------------+
387 | Test Name | Nova API | Description |
388 +=======================================+===============+===========================================================+
389 | test_create_instance | 2 | Ensures that a VM instance can be properly created via |
390 | | | nova_utils.create_server() |
391 +---------------------------------------+---------------+-----------------------------------------------------------+
393 nova_utils_tests.py - NovaUtilsInstanceVolumeTests
394 --------------------------------------------------
396 +---------------------------------------+---------------+-----------------------------------------------------------+
397 | Test Name | Nova API | Description |
398 +=======================================+===============+===========================================================+
399 | test_add_remove_volume | 2 | Ensures that a VM instance can properly attach and detach |
400 | | | a volume using the nova interface |
401 +---------------------------------------+---------------+-----------------------------------------------------------+
403 create_flavor_tests.py - CreateFlavorTests
404 ------------------------------------------
406 +---------------------------------------+---------------+-----------------------------------------------------------+
407 | Test Name | Nova API | Description |
408 +=======================================+===============+===========================================================+
409 | test_create_flavor | 2 | Ensures that the OpenStackFlavor class's create() method |
410 | | | creates an OpenStack flavor object |
411 +---------------------------------------+---------------+-----------------------------------------------------------+
412 | test_create_flavor_existing | 2 | Ensures that the OpenStackFlavor class's create() will not|
413 | | | create a flavor with the same name more than once |
414 +---------------------------------------+---------------+-----------------------------------------------------------+
415 | test_create_clean_flavor | 2 | Ensures that the OpenStackFlavor class's clean() method |
416 | | | will delete the flavor object |
417 +---------------------------------------+---------------+-----------------------------------------------------------+
418 | test_create_delete_flavor | 2 | Ensures that the OpenStackFlavor class's clean() method |
419 | | | will not raise an exception when called and the object no |
420 | | | longer exists |
421 +---------------------------------------+---------------+-----------------------------------------------------------+
422 | test_create_delete_flavor_all_settings| 2 | Ensures that the OpenStackFlavor class will create a |
423 | | | a flavor properly with all supported settings |
424 +---------------------------------------+---------------+-----------------------------------------------------------+
426 heat_utils_tests.py - HeatUtilsCreateSimpleStackTests
427 -----------------------------------------------------
429 +---------------------------------------+---------------+-----------------------------------------------------------+
430 | Test Name | Heat API | Description |
431 +=======================================+===============+===========================================================+
432 | test_create_stack | 1 | Tests the heat_utils.create_stack() with a test template |
433 +---------------------------------------+---------------+-----------------------------------------------------------+
434 | test_create_stack_x2 | 1 | Tests the heat_utils.create_stack() with a test template |
435 | | | and attempts to deploy a second time w/o actually |
436 | | | deploying any objects |
437 +---------------------------------------+---------------+-----------------------------------------------------------+
439 heat_utils_tests.py - HeatUtilsCreateComplexStackTests
440 ------------------------------------------------------
442 +---------------------------------------+---------------+-----------------------------------------------------------+
443 | Test Name | Heat API | Description |
444 +=======================================+===============+===========================================================+
445 | test_get_settings_from_stack | 1 | Tests the heat_utils functions that are responsible for |
446 | | | reverse engineering settings objects of the types deployed|
448 +---------------------------------------+---------------+-----------------------------------------------------------+
450 settings_utils_tests.py - SettingsUtilsNetworkingTests
451 ------------------------------------------------------
453 +---------------------------------------+---------------+-----------------------------------------------------------+
454 | Test Name | API | Description |
455 +=======================================+===============+===========================================================+
456 | test_derive_net_settings_no_subnet | Neutron 2 | Tests to ensure that derived NetworkSettings from an |
457 | | | OpenStack network are correct without a subnet |
458 +---------------------------------------+---------------+-----------------------------------------------------------+
459 | test_derive_net_settings_two_subnets | Neutron 2 | Tests to ensure that derived NetworkSettings from an |
460 | | | OpenStack network are correct with two subnets |
461 +---------------------------------------+---------------+-----------------------------------------------------------+
464 settings_utils_tests.py - SettingsUtilsVmInstTests
465 --------------------------------------------------
466 +---------------------------------------+---------------+-----------------------------------------------------------+
467 | Test Name | API | Description |
468 +=======================================+===============+===========================================================+
469 | test_derive_vm_inst_settings | Neutron 2 | Tests to ensure that derived VmInstanceSettings from an |
470 | | | OpenStack VM instance is correct |
471 +---------------------------------------+---------------+-----------------------------------------------------------+
472 | test_derive_image_settings | Neutron 2 | Tests to ensure that derived ImageSettings from an |
473 | | | OpenStack VM instance is correct |
474 +---------------------------------------+---------------+-----------------------------------------------------------+