Merge "nova-net: Remove 'USE_NEUTRON' from functional tests"

This commit is contained in:
Zuul 2019-11-22 20:57:36 +00:00 committed by Gerrit Code Review
commit da62409b1f
3 changed files with 3 additions and 149 deletions

View File

@ -17,11 +17,9 @@ import os
import testscenarios
import nova.conf
from nova import test
from nova.tests import fixtures
from nova.tests.functional import api_paste_fixture
from nova.tests.functional import api_samples_test_base
from nova.tests.unit import fake_network
CONF = nova.conf.CONF
@ -102,13 +100,6 @@ class ApiSampleTestBaseV21(testscenarios.WithScenarios,
self.USES_DB = False
self.USES_DB_SELF = True
if not self.USE_NEUTRON:
# This is to enable the network quota which is being registered
# based on CONF.enable_network_quota. Need this to test the
# network quota in quota sample tests.
self.flags(enable_network_quota=True)
self.useFixture(fixtures.RegisterNetworkQuota())
# super class call is delayed here so that we have the right
# paste and conf before loading all the services, as we can't
# change these later.
@ -122,50 +113,10 @@ class ApiSampleTestBaseV21(testscenarios.WithScenarios,
super(ApiSampleTestBaseV21, self)._setup_services()
# TODO(stephenfin): Remove once we remove the few remaining
# nova-network-only APIs
if not self.USE_NEUTRON:
# self.network is only setup if USE_NEUTRON=False
self.useFixture(test.SampleNetworks(host=self.network.host))
fake_network.stub_compute_with_ips(self)
self.useFixture(fixtures.SpawnIsSynchronousFixture())
# this is used to generate sample docs
self.generate_samples = os.getenv('GENERATE_SAMPLES') is not None
# TODO(stephenfin): Remove once we remove the few remaining
# nova-network-only APIs
if not self.USE_NEUTRON:
# NOTE(mikal): this is used to stub away privsep helpers
def fake_noop(*args, **kwargs):
return '', ''
def fake_true(*args, **kwargs):
return True
self.stub_out('nova.privsep.linux_net.add_bridge', fake_noop)
self.stub_out('nova.privsep.linux_net.set_device_mtu', fake_noop)
self.stub_out('nova.privsep.linux_net.set_device_enabled',
fake_noop)
self.stub_out('nova.privsep.linux_net.set_device_macaddr',
fake_noop)
self.stub_out('nova.privsep.linux_net.routes_show', fake_noop)
self.stub_out('nova.privsep.linux_net.lookup_ip', fake_noop)
self.stub_out('nova.privsep.linux_net.change_ip', fake_noop)
self.stub_out('nova.privsep.linux_net.address_command_deprecated',
fake_noop)
self.stub_out('nova.privsep.linux_net.ipv4_forwarding_check',
fake_true)
self.stub_out('nova.privsep.linux_net.'
'_enable_ipv4_forwarding_inner',
fake_noop)
self.stub_out('nova.privsep.linux_net.add_vlan', fake_noop)
self.stub_out('nova.privsep.linux_net.bridge_setfd', fake_noop)
self.stub_out('nova.privsep.linux_net.bridge_disable_stp',
fake_noop)
self.stub_out('nova.privsep.linux_net.bridge_add_interface',
fake_noop)
if self.availability_zones:
self.useFixture(
fixtures.AvailabilityZoneFixture(self.availability_zones))

View File

@ -220,12 +220,6 @@ class InstanceHelperMixin(object):
class _IntegratedTestBase(test.TestCase):
REQUIRES_LOCKING = True
ADMIN_API = False
# Override this in subclasses which use the legacy nova-network service.
# New tests should rely on Neutron and old ones migrated to use this since
# nova-network is deprecated.
# TODO(stephenfin): Remove once we remove the few remaining
# nova-network-only APIs
USE_NEUTRON = True
# This indicates whether to include the project ID in the URL for API
# requests through OSAPIFixture. Overridden by subclasses.
_use_project_id = False
@ -233,8 +227,6 @@ class _IntegratedTestBase(test.TestCase):
def setUp(self):
super(_IntegratedTestBase, self).setUp()
self.flags(use_neutron=self.USE_NEUTRON)
# NOTE(mikal): this is used to stub away privsep helpers
def fake_noop(*args, **kwargs):
return None
@ -245,9 +237,7 @@ class _IntegratedTestBase(test.TestCase):
self.useFixture(cast_as_call.CastAsCall(self))
placement = self.useFixture(func_fixtures.PlacementFixture())
self.placement_api = placement.api
if self.USE_NEUTRON:
self.neutron = self.useFixture(nova_fixtures.NeutronFixture(self))
self.neutron = self.useFixture(nova_fixtures.NeutronFixture(self))
self._setup_services()
@ -265,13 +255,9 @@ class _IntegratedTestBase(test.TestCase):
# which will result in us not doing the right thing.
if 'cell1' in self.cell_mappings:
self.flags(transport_url=self.cell_mappings['cell1'].transport_url)
self.conductor = self.start_service('conductor')
if not self.USE_NEUTRON:
self.network = self.start_service('network',
manager=CONF.network_manager)
self.scheduler = self._setup_scheduler_service()
self.compute = self._setup_compute_service()
self.api_fixture = self.useFixture(

View File

@ -13,100 +13,17 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
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 integrated_helpers
from nova.tests.functional import test_servers
from nova.tests.unit import policy_fixture
def create_request_body():
return {
"interfaceAttachment": {
"port_id": uuids.port,
"net_id": uuids.net,
"fixed_ips": [
{
"ip_address": "192.168.1.3",
"subnet_id": uuids.subnet
}
]
}
}
# TODO(stephenfin): Remove this test since it's nova-network only
class InterfaceFullstack(integrated_helpers._IntegratedTestBase):
"""Tests for port interfaces command.
Extension: os-interface
os-interface adds a set of functions to the port interfaces
for the creation and deletion of port interfaces.
POST /v2.1/{tenant_id}/servers/{server_id}/os-interface
DELETE /v2.1/{tenant_id}/servers/{server_id}/os-interface/{attachment_id}
Functional Test Scope:
This test starts the wsgi stack for the nova api services, uses an
in memory database to ensure the path through the wsgi layer to
the database.
"""
api_major_version = 'v2.1'
USE_NEUTRON = False # nova-net only
_image_ref_parameter = 'imageRef'
_flavor_ref_parameter = 'flavorRef'
def setUp(self):
super(InterfaceFullstack, self).setUp()
self.useFixture(policy_fixture.RealPolicyFixture())
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture())
self.api = api_fixture.api
def test_interface_func_negative(self):
"""Test port interface edge conditions.
- Bogus body is a 400
"""
# Create a server
server = self._build_minimal_create_server_request()
created_server = self.api.post_server({"server": server})
created_server_id = created_server['id']
# Test for API failure conditions
# bad body is 400
os_interface_url = '/servers/%s/os-interface' % created_server_id
# Check in the case that both net_id and port_id are specified.
body = create_request_body()
del body['interfaceAttachment']['fixed_ips']
resp = self.api.api_post(os_interface_url, body,
check_response_status=False)
self.assertEqual(400, resp.status)
# Check in the case that fixed_ips is specified,
# but net_id is not specifed.
body = create_request_body()
del body['interfaceAttachment']['port_id']
del body['interfaceAttachment']['net_id']
resp = self.api.api_post(os_interface_url, body,
check_response_status=False)
self.assertEqual(400, resp.status)
class InterfaceFullstackWithNeutron(test_servers.ServersTestBase):
class InterfaceFullstack(test_servers.ServersTestBase):
"""Tests for port interfaces command.
Functional Test Scope:
This test uses Neutron.
os-interface API specifies a port ID created by Neutron.
"""
api_major_version = 'v2.1'