Fixes to get all functional tests working on py35

tests-functional-py3.txt:
* Remove all tests except snowman from blacklist
* snowman seems to be a gabbi problem under py35

nova/objects/resource_provider.py:
* Cannot compare None and integer under py35
* wrap keys() in a list before comparing to a list as
  keys() is an iterator

nova/virt/fake.py:
* list_instance_uuids should return a list, keys() returns
    an iterator.

nova/tests/functional/api_sample_tests/*.py:
* use response.text to compare with a string as response.context
  contains bytes under python3
* user_data should be strings not bytes, so convert them
  as necessary

nova/tests/functional/regressions/test_bug_1554631.py:
* cinder exceptions need the http code as the first parameter
  (not a string)
* use response.text to compare with a string as response.context
  contains bytes under python3

nova/tests/functional/test_servers.py:
* zlib.compress needs bytes

Change-Id: I73be94afbb02dac46467555a8469f222a69025da
This commit is contained in:
Davanum Srinivas 2017-01-13 13:12:21 -05:00
parent db203ffe62
commit c78a86c558
26 changed files with 59 additions and 245 deletions

View File

@ -155,7 +155,9 @@ def _update_inventory_for_provider(conn, rp, inv_list, to_update):
_ALLOC_TBL.c.resource_provider_id == rp.id,
_ALLOC_TBL.c.resource_class_id == rc_id))
allocations = conn.execute(allocation_query).first()
if allocations and allocations['usage'] > inv_record.capacity:
if (allocations
and allocations['usage'] is not None
and allocations['usage'] > inv_record.capacity):
exceeded.append((rp.uuid, rc_str))
upd_stmt = _INV_TBL.update().where(sa.and_(
_INV_TBL.c.resource_provider_id == rp.id,
@ -342,7 +344,7 @@ class ResourceProvider(base.NovaObject):
def save(self):
updates = self.obj_get_changes()
if updates and updates.keys() != ['name']:
if updates and list(updates.keys()) != ['name']:
raise exception.ObjectActionError(
action='save',
reason='Immutable fields changed')

View File

@ -29,4 +29,4 @@ class AdminPasswordJsonTest(test_servers.ServersSampleBase):
'admin-password-change-password',
subs)
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -47,4 +47,4 @@ class AssistedVolumeSnapshotsJsonTests(test_servers.ServersSampleBase):
'{"volume_id":"521752a6-acf6-4b2d-bc7a-119f9148cd8c"}'
% snapshot_id)
self.assertEqual(204, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -179,4 +179,4 @@ class AttachInterfacesSampleJsonTest(test_servers.ServersSampleBase):
response = self._do_delete('servers/%s/os-interface/%s' %
(instance_uuid, port_id))
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -71,4 +71,4 @@ class CloudPipeSampleTest(api_sample_base.ApiSampleTestBaseV21):
'cloud-pipe-update-req',
subs)
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -30,7 +30,7 @@ class DeferredDeleteSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'restore-post-req', {})
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_force_delete(self):
uuid = self._post_server()
@ -39,4 +39,4 @@ class DeferredDeleteSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'force-delete-post-req', {})
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -62,7 +62,7 @@ class EvacuateJsonTest(test_servers.ServersSampleBase):
# NOTE(gibi): no server_resp means we expect empty body as
# a response
self.assertEqual(expected_resp_code, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
@mock.patch('nova.conductor.manager.ComputeTaskManager.rebuild_instance')
def test_server_evacuate(self, rebuild_mock):

View File

@ -84,7 +84,7 @@ class FixedIpTest(test_servers.ServersSampleBase):
response = self._do_post('os-fixed-ips/192.168.1.1/action',
'fixedip-post-req', {})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def _test_get_fixed_ip(self, **kwargs):
# Return data about the given fixed ip.

View File

@ -60,4 +60,4 @@ class FlavorExtraSpecsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
self._flavor_extra_specs_create()
response = self._do_delete('flavors/1/os-extra_specs/key1')
self.assertEqual(200, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -36,4 +36,4 @@ class FlavorManageSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
self._create_flavor()
response = self._do_delete("flavors/10")
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -95,4 +95,4 @@ class FloatingIpsTest(api_sample_base.ApiSampleTestBaseV21):
self.test_floating_ips_create()
response = self._do_delete('os-floating-ips/%d' % 1)
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -89,9 +89,9 @@ class NetworksJsonTests(api_sample_base.ApiSampleTestBaseV21):
response = self._do_post("os-networks/add",
'network-add-req', {})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_network_delete(self):
response = self._do_delete('os-networks/always_delete')
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -37,25 +37,25 @@ class NetworksAssociateJsonTests(api_sample_base.ApiSampleTestBaseV21):
'network-disassociate-req',
{})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_disassociate_host(self):
response = self._do_post('os-networks/1/action',
'network-disassociate-host-req',
{})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_disassociate_project(self):
response = self._do_post('os-networks/1/action',
'network-disassociate-project-req',
{})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_associate_host(self):
response = self._do_post('os-networks/1/action',
'network-associate-host-req',
{"host": "testHost"})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -48,7 +48,7 @@ class QuotaSetsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
# Get api sample to delete quota.
response = self._do_delete('os-quota-sets/fake_tenant')
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_update_quotas_force(self):
# Get api sample to update quotas.
@ -66,7 +66,7 @@ class QuotaSetsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_delete_quotas_for_user(self):
response = self._do_delete('os-quota-sets/fake_tenant?user_id=1')
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_update_quotas_for_user(self):
# Get api sample to update quotas for user.

View File

@ -126,7 +126,7 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server()
response = self._add_group(uuid)
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_security_groups_remove(self):
self._create_security_group()
@ -138,4 +138,4 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'security-group-remove-post-req', subs)
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -79,4 +79,4 @@ class ServersMetadataJsonTest(test_servers.ServersSampleBase):
uuid = self._create_and_set(subs)
response = self._do_delete('servers/%s/metadata/foo' % uuid)
self.assertEqual(204, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -10,6 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import six
from nova.db.sqlalchemy import models
from nova.tests.functional.api_sample_tests import test_servers
@ -37,7 +39,8 @@ class ServerTagsJsonTest(test_servers.ServersSampleBase):
subs['instance_name'] = 'instance-\d{8}'
subs['hypervisor_hostname'] = r'[\w\.\-]+'
subs['cdrive'] = '.*'
subs['user_data'] = self.user_data
subs['user_data'] = (self.user_data if six.PY2
else self.user_data.decode('utf-8'))
return subs
def _put_server_tags(self):
@ -90,16 +93,16 @@ class ServerTagsJsonTest(test_servers.ServersSampleBase):
expected_location = "%s/servers/%s/tags/%s" % (
self._get_vers_compute_endpoint(), uuid, tag.tag)
self.assertEqual(expected_location, response.headers['Location'])
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_server_tags_delete(self):
uuid = self._put_server_tags()
response = self._do_delete('servers/%s/tags/%s' % (uuid, TAG1))
self.assertEqual(204, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_server_tags_delete_all(self):
uuid = self._put_server_tags()
response = self._do_delete('servers/%s/tags' % uuid)
self.assertEqual(204, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -60,7 +60,8 @@ class ServersSampleBase(api_sample_base.ApiSampleTestBaseV21):
'glance_host': self._get_glance_host(),
'access_ip_v4': '1.2.3.4',
'access_ip_v6': '80fe::',
'user_data': self.user_data,
'user_data': (self.user_data if six.PY2
else self.user_data.decode('utf-8')),
'uuid': '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
'-[0-9a-f]{4}-[0-9a-f]{12}',
'name': 'new-server-test' if name is None else name,
@ -103,7 +104,8 @@ class ServersSampleJsonTest(ServersSampleBase):
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
subs['user_data'] = self.user_data
subs['user_data'] = (self.user_data if six.PY2
else self.user_data.decode('utf-8'))
# config drive can be a string for True or empty value for False
subs['cdrive'] = '.*'
self._verify_response('server-get-resp', subs, response, 200)
@ -128,7 +130,8 @@ class ServersSampleJsonTest(ServersSampleBase):
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
subs['user_data'] = self.user_data
subs['user_data'] = (self.user_data if six.PY2
else self.user_data.decode('utf-8'))
# config drive can be a string for True or empty value for False
subs['cdrive'] = '.*'
self._verify_response('servers-details-resp', subs, response, 200)
@ -227,7 +230,7 @@ class ServersActionsJsonTest(ServersSampleBase):
self._verify_response(resp_tpl, subs, response, code)
else:
self.assertEqual(code, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_server_reboot_hard(self):
uuid = self._post_server()
@ -365,7 +368,7 @@ class ServerStartStopJsonTest(ServersSampleBase):
req_tpl,
{'action': action})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_server_start(self):
uuid = self._post_server()
@ -397,4 +400,4 @@ class ServerTriggerCrashDumpJsonTest(ServersSampleBase):
'server-action-trigger-crash-dump',
{})
self.assertEqual(response.status_code, 202)
self.assertEqual(response.content, "")
self.assertEqual(response.text, "")

View File

@ -75,7 +75,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
"""Delete an existing service."""
response = self._do_delete('os-services/1')
self.assertEqual(204, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
class ServicesV211JsonTest(ServicesJsonTest):

View File

@ -32,7 +32,7 @@ class ShelveJsonTest(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
template, {'action': action})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)
def test_shelve(self):
uuid = self._post_server()

View File

@ -54,4 +54,4 @@ class TenantNetworksJsonTests(api_sample_base.ApiSampleTestBaseV21):
response = self._do_delete('os-tenant-networks/%s' %
net["network"]["id"])
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
self.assertEqual("", response.text)

View File

@ -60,7 +60,7 @@ class SnapshotsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
self._create_snapshot()
response = self._do_delete('os-snapshots/100')
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_snapshots_detail(self):
response = self._do_get('os-snapshots/detail')
@ -189,7 +189,7 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
vol_id = _get_volume_id()
response = self._do_delete('os-volumes/%s' % vol_id)
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
class VolumeAttachmentsSample(test_servers.ServersSampleBase):
@ -286,7 +286,7 @@ class VolumeAttachmentsSample(test_servers.ServersSampleBase):
response = self._do_delete('servers/%s/os-volume_attachments/%s'
% (server_id, attach_id))
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)
def test_volume_attachment_update(self):
self.stub_out('nova.volume.cinder.API.get', fakes.stub_volume_get)
@ -305,4 +305,4 @@ class VolumeAttachmentsSample(test_servers.ServersSampleBase):
'update-volume-req',
subs)
self.assertEqual(202, response.status_code)
self.assertEqual('', response.content)
self.assertEqual('', response.text)

View File

@ -38,7 +38,7 @@ class TestCinderForbidden(test.TestCase):
"""
cinder_client = mock.Mock()
mock_cinder.return_value = cinder_client
exc = cinder_exceptions.Forbidden('')
exc = cinder_exceptions.Forbidden(403)
cinder_client.volumes.create.side_effect = exc
volume = {'display_name': 'vol1', 'size': 3}
@ -66,7 +66,7 @@ class TestCinderOverLimit(test.TestCase):
"""
cinder_client = mock.Mock()
mock_cinder.return_value = cinder_client
exc = cinder_exceptions.OverLimit('')
exc = cinder_exceptions.OverLimit(413)
cinder_client.volumes.create.side_effect = exc
volume = {'display_name': 'vol1', 'size': 3}
@ -74,7 +74,7 @@ class TestCinderOverLimit(test.TestCase):
self.api.post_volume, {'volume': volume})
self.assertEqual(403, e.response.status_code)
# Make sure we went over on volumes
self.assertIn('volumes', e.response.content)
self.assertIn('volumes', e.response.text)
@mock.patch('nova.volume.cinder.cinderclient')
def test_over_limit_snapshots(self, mock_cinder):
@ -99,7 +99,7 @@ class TestCinderOverLimit(test.TestCase):
def _do_snapshot_over_test(self, mock_cinder, force=False):
cinder_client = mock.Mock()
mock_cinder.return_value = cinder_client
exc = cinder_exceptions.OverLimit('')
exc = cinder_exceptions.OverLimit(413)
cinder_client.volume_snapshots.create.side_effect = exc
snap = {'display_name': 'snap1',
@ -109,4 +109,4 @@ class TestCinderOverLimit(test.TestCase):
self.api.post_snapshot, {'snapshot': snap})
self.assertEqual(403, e.response.status_code)
# Make sure we went over on snapshots
self.assertIn('snapshots', e.response.content)
self.assertIn('snapshots', e.response.text)

View File

@ -521,7 +521,7 @@ class ServersTest(ServersTestBase):
})
# Inject a binary file
data = zlib.compress('Hello, World!')
data = zlib.compress(b'Hello, World!')
personality.append({
'path': '/helloworld.zip',
'contents': base64.encode_as_bytes(data),

View File

@ -164,7 +164,7 @@ class FakeDriver(driver.ComputeDriver):
return [self.instances[uuid].name for uuid in self.instances.keys()]
def list_instance_uuids(self):
return self.instances.keys()
return list(self.instances.keys())
def plug_vifs(self, instance, network_info):
"""Plug VIFs into networks."""

View File

@ -1,198 +1,4 @@
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_confirm_inventory_change.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_get_list_of_inventories.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_get_now_empty_inventories.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_list_both_those_inventories.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_modify_inventory_invalid_data.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_modify_inventory_no_such_resource_class_in_inventory.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_modify_the_inventory.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_put_all_inventory_bad_capacity.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.inventory_put_all_inventory_unknown_resource_class.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.resource-provider_check_the_name_from_that_update.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.resource-provider_try_to_rename_that_provider_to_existing_name.test_request
nova.tests.functional.api.openstack.placement.test_placement_api.resource-provider_update_a_resource_provider.test_request
##############################################################################
# NOTE(dims): The following test looks like a gabbi failure under python 3.5
##############################################################################
nova.tests.functional.api.openstack.placement.test_placement_api.unicode_get_a_raw_snowman_unicode.test_request
nova.tests.functional.api_sample_tests.test_admin_actions.AdminActionsSamplesJsonTest.test_post_inject_network_info
nova.tests.functional.api_sample_tests.test_admin_actions.AdminActionsSamplesJsonTest.test_post_reset_network
nova.tests.functional.api_sample_tests.test_admin_actions.AdminActionsSamplesJsonTest.test_post_reset_state
nova.tests.functional.api_sample_tests.test_admin_password.AdminPasswordJsonTest.test_server_password
nova.tests.functional.api_sample_tests.test_assisted_volume_snapshots.AssistedVolumeSnapshotsJsonTests.test_snapshots_delete_assisted
nova.tests.functional.api_sample_tests.test_attach_interfaces.AttachInterfacesSampleJsonTest.test_create_interfaces
nova.tests.functional.api_sample_tests.test_attach_interfaces.AttachInterfacesSampleJsonTest.test_create_interfaces_with_net_id_and_fixed_ips
nova.tests.functional.api_sample_tests.test_attach_interfaces.AttachInterfacesSampleJsonTest.test_delete_interfaces
nova.tests.functional.api_sample_tests.test_attach_interfaces.AttachInterfacesSampleJsonTest.test_list_interfaces
nova.tests.functional.api_sample_tests.test_attach_interfaces.AttachInterfacesSampleJsonTest.test_show_interfaces
nova.tests.functional.api_sample_tests.test_block_device_mapping_boot.BlockDeviceMappingV1BootJsonTest.test_servers_post_with_bdm
nova.tests.functional.api_sample_tests.test_block_device_mapping_boot.BlockDeviceMappingV2BootJsonTest.test_servers_post_with_bdm
nova.tests.functional.api_sample_tests.test_cloudpipe.CloudPipeSampleTest.test_cloud_pipe_update
nova.tests.functional.api_sample_tests.test_console_auth_tokens.ConsoleAuthTokensSampleJsonTests.test_get_console_connect_info
nova.tests.functional.api_sample_tests.test_console_output.ConsoleOutputSampleJsonTest.test_get_console_output
nova.tests.functional.api_sample_tests.test_consoles.ConsolesSamplesJsonTest.test_console_delete
nova.tests.functional.api_sample_tests.test_consoles.ConsolesSamplesJsonTest.test_console_get
nova.tests.functional.api_sample_tests.test_consoles.ConsolesSamplesJsonTest.test_create_consoles
nova.tests.functional.api_sample_tests.test_consoles.ConsolesSamplesJsonTest.test_list_consoles
nova.tests.functional.api_sample_tests.test_create_backup.CreateBackupSamplesJsonTest.test_post_backup_server
nova.tests.functional.api_sample_tests.test_deferred_delete.DeferredDeleteSampleJsonTests.test_force_delete
nova.tests.functional.api_sample_tests.test_deferred_delete.DeferredDeleteSampleJsonTests.test_restore
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTest.test_server_evacuate
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTest.test_server_evacuate_find_host
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTestV214.test_server_evacuate
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTestV214.test_server_evacuate_find_host
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTestV229.test_server_evacuate
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTestV229.test_server_evacuate_find_host
nova.tests.functional.api_sample_tests.test_evacuate.EvacuateJsonTestV229.test_server_evacuate_with_force
nova.tests.functional.api_sample_tests.test_fixed_ips.FixedIpTest.test_fixed_ip_reserve
nova.tests.functional.api_sample_tests.test_fixed_ips.FixedIpV24Test.test_fixed_ip_reserve
nova.tests.functional.api_sample_tests.test_flavor_extraspecs.FlavorExtraSpecsSampleJsonTests.test_flavor_extra_specs_delete
nova.tests.functional.api_sample_tests.test_flavor_manage.FlavorManageSampleJsonTests.test_create_delete_flavor
nova.tests.functional.api_sample_tests.test_floating_ips.FloatingIpsTest.test_floating_ips_delete
nova.tests.functional.api_sample_tests.test_fping.FpingSampleJsonTests.test_get_fping
nova.tests.functional.api_sample_tests.test_fping.FpingSampleJsonTests.test_get_fping_details
nova.tests.functional.api_sample_tests.test_hide_server_addresses.ServersSampleHideAddressesJsonTest.test_servers_details
nova.tests.functional.api_sample_tests.test_hide_server_addresses.ServersSampleHideAddressesJsonTest.test_servers_get
nova.tests.functional.api_sample_tests.test_hide_server_addresses.ServersSampleHideAddressesJsonTest.test_servers_list
nova.tests.functional.api_sample_tests.test_hide_server_addresses.ServersSampleHideAddressesJsonTest.test_servers_post
nova.tests.functional.api_sample_tests.test_lock_server.LockServerSamplesJsonTest.test_post_lock_server
nova.tests.functional.api_sample_tests.test_lock_server.LockServerSamplesJsonTest.test_post_unlock_server
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTest.test_live_migrate_compute_host_not_found
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTest.test_post_live_migrate_server
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTest.test_post_migrate
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV225.test_live_migrate_compute_host_not_found
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV225.test_post_live_migrate_server
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV225.test_post_migrate
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV230.test_live_migrate_compute_host_not_found
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV230.test_post_live_migrate_server
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV230.test_post_live_migrate_server_with_force
nova.tests.functional.api_sample_tests.test_migrate_server.MigrateServerSamplesJsonTestV230.test_post_migrate
nova.tests.functional.api_sample_tests.test_multinic.MultinicSampleJsonTest.test_add_fixed_ip
nova.tests.functional.api_sample_tests.test_multinic.MultinicSampleJsonTest.test_remove_fixed_ip
nova.tests.functional.api_sample_tests.test_networks.NetworksJsonTests.test_network_add
nova.tests.functional.api_sample_tests.test_networks.NetworksJsonTests.test_network_delete
nova.tests.functional.api_sample_tests.test_networks_associate.NetworksAssociateJsonTests.test_associate_host
nova.tests.functional.api_sample_tests.test_networks_associate.NetworksAssociateJsonTests.test_disassociate
nova.tests.functional.api_sample_tests.test_networks_associate.NetworksAssociateJsonTests.test_disassociate_host
nova.tests.functional.api_sample_tests.test_networks_associate.NetworksAssociateJsonTests.test_disassociate_project
nova.tests.functional.api_sample_tests.test_pause_server.PauseServerSamplesJsonTest.test_post_pause
nova.tests.functional.api_sample_tests.test_pause_server.PauseServerSamplesJsonTest.test_post_unpause
nova.tests.functional.api_sample_tests.test_preserve_ephemeral_rebuild.PreserveEphemeralOnRebuildJsonTest.test_server_rebuild_preserve_ephemeral_false
nova.tests.functional.api_sample_tests.test_preserve_ephemeral_rebuild.PreserveEphemeralOnRebuildJsonTest.test_server_rebuild_preserve_ephemeral_true
nova.tests.functional.api_sample_tests.test_quota_sets.QuotaSetsSampleJsonTests.test_delete_quotas
nova.tests.functional.api_sample_tests.test_quota_sets.QuotaSetsSampleJsonTests.test_delete_quotas_for_user
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesSampleJsonTests.test_get_rdp_console
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesSampleJsonTests.test_get_serial_console
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesSampleJsonTests.test_get_spice_console
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesSampleJsonTests.test_get_vnc_console
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesV26SampleJsonTests.test_create_console
nova.tests.functional.api_sample_tests.test_remote_consoles.ConsolesV28SampleJsonTests.test_create_mks_console
nova.tests.functional.api_sample_tests.test_rescue.RescueJsonTest.test_server_rescue
nova.tests.functional.api_sample_tests.test_rescue.RescueJsonTest.test_server_rescue_with_image_ref_specified
nova.tests.functional.api_sample_tests.test_rescue.RescueJsonTest.test_server_unrescue
nova.tests.functional.api_sample_tests.test_security_groups.SecurityGroupsJsonTest.test_security_groups_add
nova.tests.functional.api_sample_tests.test_security_groups.SecurityGroupsJsonTest.test_security_groups_list_server
nova.tests.functional.api_sample_tests.test_security_groups.SecurityGroupsJsonTest.test_security_groups_remove
nova.tests.functional.api_sample_tests.test_server_diagnostics.ServerDiagnosticsSamplesJsonTest.test_server_diagnostics_get
nova.tests.functional.api_sample_tests.test_server_external_events.ServerExternalEventsSamplesJsonTest.test_create_event
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_delete
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_get
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_get_all
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_post_all
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_put
nova.tests.functional.api_sample_tests.test_server_metadata.ServersMetadataJsonTest.test_metadata_put_all
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTest.test_get_migration
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTest.test_list_migrations
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTest.test_live_migrate_force_complete
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTestV2_24.test_live_migrate_abort
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTestV2_24.test_live_migrate_abort_migration_not_found
nova.tests.functional.api_sample_tests.test_server_migrations.ServerMigrationsSampleJsonTestV2_24.test_live_migrate_abort_migration_not_running
nova.tests.functional.api_sample_tests.test_server_password.ServerPasswordSampleJsonTests.test_get_password
nova.tests.functional.api_sample_tests.test_server_password.ServerPasswordSampleJsonTests.test_reset_password
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_delete
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_delete_all
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_index
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_list_with_details_information
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_show
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_show_with_details_information
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_update
nova.tests.functional.api_sample_tests.test_server_tags.ServerTagsJsonTest.test_server_tags_update_all
nova.tests.functional.api_sample_tests.test_servers.ServerSortKeysJsonTests.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServerStartStopJsonTest.test_server_start
nova.tests.functional.api_sample_tests.test_servers.ServerStartStopJsonTest.test_server_stop
nova.tests.functional.api_sample_tests.test_servers.ServerTriggerCrashDumpJsonTest.test_trigger_crash_dump
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJson219Test.test_server_rebuild
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_add_floating_ip
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_confirm_resize
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_create_image
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_reboot_hard
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_reboot_soft
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_rebuild
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_resize
nova.tests.functional.api_sample_tests.test_servers.ServersActionsJsonTest.test_server_revert_resize
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson216Test.test_servers_details
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson216Test.test_servers_get
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson216Test.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson216Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson219Test.test_servers_details
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson219Test.test_servers_get
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson219Test.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson219Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson219Test.test_servers_put
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson232Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson237Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson23Test.test_servers_details
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson23Test.test_servers_get
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson23Test.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson23Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson29Test.test_servers_details
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson29Test.test_servers_get
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson29Test.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJson29Test.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJsonTest.test_servers_details
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJsonTest.test_servers_get
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJsonTest.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersSampleJsonTest.test_servers_post
nova.tests.functional.api_sample_tests.test_servers.ServersSampleMultiStatusJsonTest.test_servers_list
nova.tests.functional.api_sample_tests.test_servers.ServersUpdateSampleJsonTest.test_update_server
nova.tests.functional.api_sample_tests.test_servers_ips.ServersIpsJsonTest.test_get
nova.tests.functional.api_sample_tests.test_servers_ips.ServersIpsJsonTest.test_get_by_network
nova.tests.functional.api_sample_tests.test_services.ServicesJsonTest.test_service_delete
nova.tests.functional.api_sample_tests.test_services.ServicesV211JsonTest.test_service_delete
nova.tests.functional.api_sample_tests.test_shelve.ShelveJsonTest.test_shelve
nova.tests.functional.api_sample_tests.test_shelve.ShelveJsonTest.test_shelve_offload
nova.tests.functional.api_sample_tests.test_shelve.ShelveJsonTest.test_unshelve
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageSampleJsonTest.test_get_tenant_usage_details
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageSampleJsonTest.test_get_tenants_usage
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageSampleJsonTest.test_get_tenants_usage_with_detail
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageV240Test.test_get_tenant_usage_details
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageV240Test.test_get_tenants_usage
nova.tests.functional.api_sample_tests.test_simple_tenant_usage.SimpleTenantUsageV240Test.test_get_tenants_usage_with_detail
nova.tests.functional.api_sample_tests.test_suspend_server.SuspendServerSamplesJsonTest.test_post_resume
nova.tests.functional.api_sample_tests.test_suspend_server.SuspendServerSamplesJsonTest.test_post_suspend
nova.tests.functional.api_sample_tests.test_tenant_networks.TenantNetworksJsonTests.test_delete_network
nova.tests.functional.api_sample_tests.test_virtual_interfaces.VirtualInterfacesJsonTest.test_vifs_list
nova.tests.functional.api_sample_tests.test_virtual_interfaces.VirtualInterfacesJsonV212Test.test_vifs_list
nova.tests.functional.api_sample_tests.test_volumes.SnapshotsSampleJsonTests.test_snapshots_delete
nova.tests.functional.api_sample_tests.test_volumes.VolumeAttachmentsSample.test_attach_volume_to_server
nova.tests.functional.api_sample_tests.test_volumes.VolumeAttachmentsSample.test_list_volume_attachments
nova.tests.functional.api_sample_tests.test_volumes.VolumeAttachmentsSample.test_volume_attachment_delete
nova.tests.functional.api_sample_tests.test_volumes.VolumeAttachmentsSample.test_volume_attachment_detail
nova.tests.functional.api_sample_tests.test_volumes.VolumeAttachmentsSample.test_volume_attachment_update
nova.tests.functional.api_sample_tests.test_volumes.VolumesSampleJsonTest.test_volumes_delete
nova.tests.functional.db.test_instance_group.InstanceGroupObjectTestCase.test_add_members_main
nova.tests.functional.db.test_resource_provider.ResourceProviderTestCase.test_provider_modify_inventory
nova.tests.functional.db.test_resource_provider.ResourceProviderTestCase.test_save_resource_provider
nova.tests.functional.db.test_resource_provider.ResourceProviderTestCase.test_set_inventory_over_capacity
nova.tests.functional.db.test_resource_provider.ResourceProviderTestCase.test_update_inventory_not_found
nova.tests.functional.db.test_resource_provider.TestAllocationListCreateDelete.test_allocation_list_create
nova.tests.functional.regressions.test_bug_1554631.TestCinderForbidden.test_forbidden_cinder_operation_returns_403
nova.tests.functional.regressions.test_bug_1554631.TestCinderOverLimit.test_over_limit_snapshots
nova.tests.functional.regressions.test_bug_1554631.TestCinderOverLimit.test_over_limit_snapshots_force
nova.tests.functional.regressions.test_bug_1554631.TestCinderOverLimit.test_over_limit_volumes
nova.tests.functional.test_server_group.ServerGroupTestV21.test_evacuate_with_affinity_no_valid_host
nova.tests.functional.test_server_group.ServerGroupTestV21.test_evacuate_with_anti_affinity
nova.tests.functional.test_server_group.ServerGroupTestV21.test_evacuate_with_anti_affinity_no_valid_host
nova.tests.functional.test_server_group.ServerGroupTestV215.test_evacuate_with_affinity_no_valid_host
nova.tests.functional.test_server_group.ServerGroupTestV215.test_evacuate_with_anti_affinity
nova.tests.functional.test_server_group.ServerGroupTestV215.test_evacuate_with_anti_affinity_no_valid_host
nova.tests.functional.test_server_group.ServerGroupTestV215.test_evacuate_with_soft_affinity
nova.tests.functional.test_server_group.ServerGroupTestV215.test_evacuate_with_soft_anti_affinity
nova.tests.functional.test_servers.ServersTest.test_create_server_with_injected_files
nova.tests.functional.test_servers.ServersTestV21.test_create_server_with_injected_files