Merge "tests: Remove 'test_servers.ServersTestBase'"
This commit is contained in:
commit
7bcce51066
|
@ -25,10 +25,10 @@ from sqlalchemy import select
|
|||
from nova import context
|
||||
from nova.db import api as db
|
||||
from nova.db.sqlalchemy import api as sqlalchemy_api
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.functional import integrated_helpers
|
||||
|
||||
|
||||
class TestDatabaseArchive(test_servers.ServersTestBase):
|
||||
class TestDatabaseArchive(integrated_helpers._IntegratedTestBase):
|
||||
"""Tests DB API for archiving (soft) deleted records"""
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
@ -60,9 +60,6 @@ class VirtualInterfaceListMigrationTestCase(
|
|||
ADMIN_API = True
|
||||
api_major_version = 'v2.1'
|
||||
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
|
||||
def setUp(self):
|
||||
super(VirtualInterfaceListMigrationTestCase, self).setUp()
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import mock
|
|||
from nova import conf
|
||||
from nova.objects import fields as obj_fields
|
||||
from nova.tests import fixtures as nova_fixtures
|
||||
from nova.tests.functional import test_servers as base
|
||||
from nova.tests.functional import integrated_helpers
|
||||
from nova.tests.unit.virt.libvirt import fake_imagebackend
|
||||
from nova.tests.unit.virt.libvirt import fakelibvirt
|
||||
|
||||
|
@ -30,7 +30,8 @@ from nova.tests.unit.virt.libvirt import fakelibvirt
|
|||
CONF = conf.CONF
|
||||
|
||||
|
||||
class ServersTestBase(base.ServersTestBase):
|
||||
class ServersTestBase(integrated_helpers._IntegratedTestBase):
|
||||
"""A libvirt-specific variant of the integrated test base."""
|
||||
|
||||
ADDITIONAL_FILTERS = []
|
||||
|
||||
|
|
|
@ -40,6 +40,11 @@ _DEFAULT_HOST = 'host1'
|
|||
|
||||
class VGPUTestBase(base.ServersTestBase):
|
||||
|
||||
# We want to target some hosts for some created instances
|
||||
api_major_version = 'v2.1'
|
||||
microversion = 'latest'
|
||||
ADMIN_API = True
|
||||
|
||||
FAKE_LIBVIRT_VERSION = 5000000
|
||||
FAKE_QEMU_VERSION = 3001000
|
||||
|
||||
|
@ -131,11 +136,6 @@ class VGPUTestBase(base.ServersTestBase):
|
|||
|
||||
class VGPUTests(VGPUTestBase):
|
||||
|
||||
# We want to target some hosts for some created instances
|
||||
api_major_version = 'v2.1'
|
||||
ADMIN_API = True
|
||||
microversion = 'latest'
|
||||
|
||||
def setUp(self):
|
||||
super(VGPUTests, self).setUp()
|
||||
extra_spec = {"resources:VGPU": "1"}
|
||||
|
@ -327,8 +327,7 @@ class VGPUMultipleTypesTests(VGPUTestBase):
|
|||
def test_create_servers_with_vgpu(self):
|
||||
self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=self.flavor, host=self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
flavor_id=self.flavor, networks='auto', host=self.compute1.host)
|
||||
mdevs = self.compute1.driver._get_mediated_devices()
|
||||
self.assertEqual(1, len(mdevs))
|
||||
|
||||
|
@ -388,8 +387,7 @@ class VGPUMultipleTypesTests(VGPUTestBase):
|
|||
# Use the new flavor for booting
|
||||
server = self._create_server(
|
||||
image_uuid='155d900f-4e14-4e4c-a73d-069cbf4541e6',
|
||||
flavor_id=flavor, host=self.compute1.host,
|
||||
expected_state='ACTIVE')
|
||||
flavor_id=flavor, networks='auto', host=self.compute1.host)
|
||||
|
||||
# Get the instance we just created
|
||||
inst = objects.Instance.get_by_uuid(self.context, server['id'])
|
||||
|
|
|
@ -30,8 +30,6 @@ class ResizeEvacuateTestCase(integrated_helpers._IntegratedTestBase):
|
|||
# Set variables used in the parent class.
|
||||
REQUIRES_LOCKING = False
|
||||
ADMIN_API = True
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
api_major_version = 'v2.1'
|
||||
microversion = '2.11' # Need at least 2.11 for the force-down API
|
||||
|
||||
|
|
|
@ -30,8 +30,6 @@ class MultiCellEvacuateTestCase(integrated_helpers._IntegratedTestBase):
|
|||
NUMBER_OF_CELLS = 2
|
||||
REQUIRES_LOCKING = False
|
||||
ADMIN_API = True
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
api_major_version = 'v2.1'
|
||||
microversion = '2.11' # Need at least 2.11 for the force-down API
|
||||
|
||||
|
|
|
@ -20,12 +20,11 @@ from nova.tests import fixtures as nova_fixtures
|
|||
from nova.tests.functional.api import client as api_client
|
||||
from nova.tests.functional import fixtures as func_fixtures
|
||||
from nova.tests.functional import integrated_helpers
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.unit.image import fake as fake_image
|
||||
from nova.tests.unit import policy_fixture
|
||||
|
||||
|
||||
class BootFromVolumeTest(test_servers.ServersTestBase):
|
||||
class BootFromVolumeTest(integrated_helpers._IntegratedTestBase):
|
||||
|
||||
def _get_hypervisor_stats(self):
|
||||
response = self.admin_api.api_get('/os-hypervisors/statistics')
|
||||
|
|
|
@ -16,10 +16,10 @@ import six
|
|||
|
||||
from nova.tests import fixtures as nova_fixtures
|
||||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.functional import integrated_helpers
|
||||
|
||||
|
||||
class ConfigurableMaxDiskDevicesTest(test_servers.ServersTestBase):
|
||||
class ConfigurableMaxDiskDevicesTest(integrated_helpers._IntegratedTestBase):
|
||||
def setUp(self):
|
||||
super(ConfigurableMaxDiskDevicesTest, self).setUp()
|
||||
self.cinder = self.useFixture(
|
||||
|
|
|
@ -14,10 +14,10 @@ from oslo_utils.fixture import uuidsentinel as uuids
|
|||
|
||||
from nova.tests import fixtures as nova_fixtures
|
||||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.functional import integrated_helpers
|
||||
|
||||
|
||||
class ImagesTest(test_servers.ServersTestBase):
|
||||
class ImagesTest(integrated_helpers._IntegratedTestBase):
|
||||
|
||||
def test_create_images_negative_invalid_state(self):
|
||||
# Create server
|
||||
|
|
|
@ -22,12 +22,11 @@ from nova.tests import fixtures as nova_fixtures
|
|||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional import fixtures as func_fixtures
|
||||
from nova.tests.functional import integrated_helpers
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.unit.image import fake as fake_image
|
||||
from nova.tests.unit import policy_fixture
|
||||
|
||||
|
||||
class InstanceActionsTestV2(test_servers.ServersTestBase):
|
||||
class InstanceActionsTestV2(integrated_helpers._IntegratedTestBase):
|
||||
"""Tests Instance Actions API"""
|
||||
|
||||
def test_get_instance_actions(self):
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
from nova.api import openstack
|
||||
from nova.api.openstack import wsgi
|
||||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.functional import integrated_helpers
|
||||
|
||||
|
||||
class LegacyV2CompatibleTestBase(test_servers.ServersTestBase):
|
||||
class LegacyV2CompatibleTestBase(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2'
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
@ -25,8 +25,6 @@ class TestMultiattachVolumes(integrated_helpers._IntegratedTestBase):
|
|||
# These are all used in _IntegratedTestBase.
|
||||
api_major_version = 'v2.1'
|
||||
microversion = '2.60'
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
|
||||
def setUp(self):
|
||||
# Everything has been upgraded to the latest code to support
|
||||
|
|
|
@ -1765,8 +1765,6 @@ class TestNovaManagePlacementAudit(
|
|||
class TestDBArchiveDeletedRows(integrated_helpers._IntegratedTestBase):
|
||||
"""Functional tests for the "nova-manage db archive_deleted_rows" CLI."""
|
||||
api_major_version = 'v2.1'
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
|
||||
def setUp(self):
|
||||
super(TestDBArchiveDeletedRows, self).setUp()
|
||||
|
|
|
@ -61,30 +61,8 @@ CONF = cfg.CONF
|
|||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ServersTestBase(integrated_helpers._IntegratedTestBase):
|
||||
class ServersTest(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2'
|
||||
_force_delete_parameter = 'forceDelete'
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
_access_ipv4_parameter = 'accessIPv4'
|
||||
_access_ipv6_parameter = 'accessIPv6'
|
||||
_return_resv_id_parameter = 'return_reservation_id'
|
||||
_min_count_parameter = 'min_count'
|
||||
|
||||
def setUp(self):
|
||||
super(ServersTestBase, self).setUp()
|
||||
|
||||
def _get_access_ips_params(self):
|
||||
return {self._access_ipv4_parameter: "172.19.0.2",
|
||||
self._access_ipv6_parameter: "fe80::2"}
|
||||
|
||||
def _verify_access_ips(self, server):
|
||||
self.assertEqual('172.19.0.2',
|
||||
server[self._access_ipv4_parameter])
|
||||
self.assertEqual('fe80::2', server[self._access_ipv6_parameter])
|
||||
|
||||
|
||||
class ServersTest(ServersTestBase):
|
||||
|
||||
def test_get_servers(self):
|
||||
# Simple check that listing servers works.
|
||||
|
@ -225,22 +203,20 @@ class ServersTest(ServersTestBase):
|
|||
self.api.post_server, post)
|
||||
|
||||
# With an invalid imageRef, this throws 500.
|
||||
server[self._image_ref_parameter] = uuids.fake
|
||||
server['imageRef'] = uuids.fake
|
||||
# TODO(justinsb): Check whatever the spec says should be thrown here
|
||||
self.assertRaises(client.OpenStackApiException,
|
||||
self.api.post_server, post)
|
||||
|
||||
# Add a valid imageRef
|
||||
server[self._image_ref_parameter] = good_server.get(
|
||||
self._image_ref_parameter)
|
||||
server['imageRef'] = good_server.get('imageRef')
|
||||
|
||||
# Without flavorRef, this throws 500
|
||||
# TODO(justinsb): Check whatever the spec says should be thrown here
|
||||
self.assertRaises(client.OpenStackApiException,
|
||||
self.api.post_server, post)
|
||||
|
||||
server[self._flavor_ref_parameter] = good_server.get(
|
||||
self._flavor_ref_parameter)
|
||||
server['flavorRef'] = good_server.get('flavorRef')
|
||||
|
||||
# Without a name, this throws 500
|
||||
# TODO(justinsb): Check whatever the spec says should be thrown here
|
||||
|
@ -407,8 +383,7 @@ class ServersTest(ServersTestBase):
|
|||
'SOFT_DELETED')
|
||||
|
||||
# Force delete server
|
||||
self.api.post_server_action(created_server_id,
|
||||
{self._force_delete_parameter: {}})
|
||||
self.api.post_server_action(created_server_id, {'forceDelete': {}})
|
||||
|
||||
# Wait for real deletion
|
||||
self._wait_until_deleted(found_server)
|
||||
|
@ -516,13 +491,16 @@ class ServersTest(ServersTestBase):
|
|||
# rebuild the server with metadata and other server attributes
|
||||
post = {}
|
||||
post['rebuild'] = {
|
||||
self._image_ref_parameter: "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
|
||||
"name": "blah",
|
||||
self._access_ipv4_parameter: "172.19.0.2",
|
||||
self._access_ipv6_parameter: "fe80::2",
|
||||
"metadata": {'some': 'thing'},
|
||||
'imageRef': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
|
||||
'name': 'blah',
|
||||
'accessIPv4': '172.19.0.2',
|
||||
'accessIPv6': 'fe80::2',
|
||||
'metadata': {'some': 'thing'},
|
||||
}
|
||||
post['rebuild'].update(self._get_access_ips_params())
|
||||
post['rebuild'].update({
|
||||
'accessIPv4': '172.19.0.2',
|
||||
'accessIPv6': 'fe80::2',
|
||||
})
|
||||
|
||||
self.api.post_server_action(created_server_id, post)
|
||||
LOG.debug("rebuilt server: %s", created_server)
|
||||
|
@ -532,14 +510,15 @@ class ServersTest(ServersTestBase):
|
|||
self.assertEqual(created_server_id, found_server['id'])
|
||||
self.assertEqual({'some': 'thing'}, found_server.get('metadata'))
|
||||
self.assertEqual('blah', found_server.get('name'))
|
||||
self.assertEqual(post['rebuild'][self._image_ref_parameter],
|
||||
self.assertEqual(post['rebuild']['imageRef'],
|
||||
found_server.get('image')['id'])
|
||||
self._verify_access_ips(found_server)
|
||||
self.assertEqual('172.19.0.2', found_server['accessIPv4'])
|
||||
self.assertEqual('fe80::2', found_server['accessIPv6'])
|
||||
|
||||
# rebuild the server with empty metadata and nothing else
|
||||
post = {}
|
||||
post['rebuild'] = {
|
||||
self._image_ref_parameter: "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
|
||||
'imageRef': "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
|
||||
"metadata": {},
|
||||
}
|
||||
|
||||
|
@ -551,9 +530,10 @@ class ServersTest(ServersTestBase):
|
|||
self.assertEqual(created_server_id, found_server['id'])
|
||||
self.assertEqual({}, found_server.get('metadata'))
|
||||
self.assertEqual('blah', found_server.get('name'))
|
||||
self.assertEqual(post['rebuild'][self._image_ref_parameter],
|
||||
self.assertEqual(post['rebuild']['imageRef'],
|
||||
found_server.get('image')['id'])
|
||||
self._verify_access_ips(found_server)
|
||||
self.assertEqual('172.19.0.2', found_server['accessIPv4'])
|
||||
self.assertEqual('fe80::2', found_server['accessIPv6'])
|
||||
|
||||
# Cleanup
|
||||
self._delete_server(found_server)
|
||||
|
@ -584,8 +564,8 @@ class ServersTest(ServersTestBase):
|
|||
# Create 2 servers, setting 'return_reservation_id, which should
|
||||
# return a reservation_id
|
||||
server = self._build_server()
|
||||
server[self._min_count_parameter] = 2
|
||||
server[self._return_resv_id_parameter] = True
|
||||
server['min_count'] = 2
|
||||
server['return_reservation_id'] = True
|
||||
post = {'server': server}
|
||||
response = self.api.post_server(post)
|
||||
self.assertIn('reservation_id', response)
|
||||
|
@ -816,7 +796,7 @@ class ServersTestV21(ServersTest):
|
|||
api_major_version = 'v2.1'
|
||||
|
||||
|
||||
class ServersTestV219(ServersTestBase):
|
||||
class ServersTestV219(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2.1'
|
||||
|
||||
def _create_server(self, set_desc = True, desc = None):
|
||||
|
@ -838,13 +818,16 @@ class ServersTestV219(ServersTestBase):
|
|||
new_name = integrated_helpers.generate_random_alphanumeric(8)
|
||||
post = {}
|
||||
post['rebuild'] = {
|
||||
"name": new_name,
|
||||
self._image_ref_parameter: "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6",
|
||||
self._access_ipv4_parameter: "172.19.0.2",
|
||||
self._access_ipv6_parameter: "fe80::2",
|
||||
"metadata": {'some': 'thing'},
|
||||
'name': new_name,
|
||||
'imageRef': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
|
||||
'accessIPv4': '172.19.0.2',
|
||||
'accessIPv6': 'fe80::2',
|
||||
'metadata': {'some': 'thing'},
|
||||
}
|
||||
post['rebuild'].update(self._get_access_ips_params())
|
||||
post['rebuild'].update({
|
||||
'accessIPv4': '172.19.0.2',
|
||||
'accessIPv6': 'fe80::2',
|
||||
})
|
||||
if set_desc:
|
||||
post['rebuild']['description'] = desc
|
||||
self.api.api_post('/servers/%s/action' % server_id, post)
|
||||
|
@ -1021,7 +1004,7 @@ class ServersTestV219(ServersTestBase):
|
|||
self._rebuild_assertRaisesRegex(server_id, 'x' * 256)
|
||||
|
||||
|
||||
class ServerTestV220(ServersTestBase):
|
||||
class ServerTestV220(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2.1'
|
||||
|
||||
def setUp(self):
|
||||
|
@ -1096,7 +1079,7 @@ class ServerTestV220(ServersTestBase):
|
|||
self._delete_server(found_server)
|
||||
|
||||
|
||||
class ServerTestV269(ServersTestBase):
|
||||
class ServerTestV269(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2.1'
|
||||
NUMBER_OF_CELLS = 3
|
||||
|
||||
|
@ -1551,7 +1534,7 @@ class ServerRebuildTestCase(integrated_helpers._IntegratedTestBase):
|
|||
'volume-backed server', six.text_type(resp))
|
||||
|
||||
|
||||
class ServersTestV280(ServersTestBase):
|
||||
class ServersTestV280(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2.1'
|
||||
|
||||
def setUp(self):
|
||||
|
@ -4550,7 +4533,7 @@ class TraitsBasedSchedulingTest(integrated_helpers.ProviderUsageBaseTestCase):
|
|||
server['fault']['message'])
|
||||
|
||||
|
||||
class ServerTestV256Common(ServersTestBase):
|
||||
class ServerTestV256Common(integrated_helpers._IntegratedTestBase):
|
||||
api_major_version = 'v2.1'
|
||||
microversion = '2.56'
|
||||
ADMIN_API = True
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
# under the License.
|
||||
|
||||
from nova.tests.functional.api import client
|
||||
from nova.tests.functional import test_servers
|
||||
from nova.tests.functional import integrated_helpers
|
||||
|
||||
|
||||
class InterfaceFullstack(test_servers.ServersTestBase):
|
||||
class InterfaceFullstack(integrated_helpers._IntegratedTestBase):
|
||||
"""Tests for port interfaces command.
|
||||
|
||||
Functional Test Scope:
|
||||
|
|
|
@ -33,18 +33,14 @@ class SecgroupsFullstack(testscenarios.WithScenarios, test.TestCase):
|
|||
|
||||
"""
|
||||
REQUIRES_LOCKING = True
|
||||
_image_ref_parameter = 'imageRef'
|
||||
_flavor_ref_parameter = 'flavorRef'
|
||||
|
||||
# This test uses ``testscenarios`` which matrix multiplies the
|
||||
# test across the scenarios listed below setting the attributes
|
||||
# in the dictionary on ``self`` for each scenario.
|
||||
scenarios = [
|
||||
('v2', {
|
||||
'api_major_version': 'v2'}),
|
||||
('v2', {'api_major_version': 'v2'}),
|
||||
# test v2.1 base microversion
|
||||
('v2_1', {
|
||||
'api_major_version': 'v2.1'}),
|
||||
('v2_1', {'api_major_version': 'v2.1'}),
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
|
@ -65,19 +61,18 @@ class SecgroupsFullstack(testscenarios.WithScenarios, test.TestCase):
|
|||
image = self.api.get_images()[0]
|
||||
LOG.info("Image: %s", image)
|
||||
|
||||
if self._image_ref_parameter in image:
|
||||
image_href = image[self._image_ref_parameter]
|
||||
if 'imageRef' in image:
|
||||
image_href = image['imageRef']
|
||||
else:
|
||||
image_href = image['id']
|
||||
image_href = 'http://fake.server/%s' % image_href
|
||||
|
||||
# We now have a valid imageId
|
||||
server[self._image_ref_parameter] = image_href
|
||||
server['imageRef'] = image_href
|
||||
|
||||
# Set a valid flavorId
|
||||
flavor = self.api.get_flavors()[1]
|
||||
server[self._flavor_ref_parameter] = ('http://fake.server/%s'
|
||||
% flavor['id'])
|
||||
server['flavorRef'] = 'http://fake.server/%s' % flavor['id']
|
||||
server['name'] = name
|
||||
return server
|
||||
|
||||
|
|
Loading…
Reference in New Issue