Rehome api tests for propagate_uplink_status

Since [0] was merged propagate_uplink_status value is True,
tempest (and neutron-tempest-plugin) is branchless, so
test_create_port_without_propagate_uplink_status and
test_create_port_with_propagate_uplink_status can be moved to
fullstack tests to keep the coverage.

Issues:
- On ussuri the default value for propagate_uplink_status was False, so
the test_create_port_without_propagate_uplink_status test asserts False.
see [1]
- On train there is no dhcp_scheduler_class attribute for
EnvironmentDescription
- On stein EnvironmentDescription has no has_placement & placement_port
attributes, and the related logic.
- On rocky EnvironmentDescription has no report_bandwidths and related
logic.

[0]: https://review.opendev.org/744208
[1]: https://review.opendev.org/744210

Change-Id: I8dfe76e75aa932e587d91f475317b7bac1f02ed9
Related-Bug: #1890842
(cherry picked from commit d2f8a2bea8)
(cherry picked from commit 5ac50b220e)
(cherry picked from commit 86f81a5503)
This commit is contained in:
elajkat 2020-08-10 12:05:37 +02:00
parent 4bd90a00ce
commit 8d3155410f
3 changed files with 66 additions and 3 deletions

View File

@ -147,9 +147,11 @@ class ML2ConfigFixture(ConfigFixture):
},
})
extension_drivers = ['port_security']
extension_drivers = {'port_security'}
if env_desc.qos:
extension_drivers.append(qos_ext.QOS_EXT_DRIVER_ALIAS)
extension_drivers.add(qos_ext.QOS_EXT_DRIVER_ALIAS)
if env_desc.ml2_extension_drivers:
extension_drivers.update(env_desc.ml2_extension_drivers)
self.config['ml2']['extension_drivers'] = ','.join(extension_drivers)

View File

@ -38,7 +38,8 @@ class EnvironmentDescription(object):
mech_drivers='openvswitch,linuxbridge',
service_plugins='router', arp_responder=False,
agent_down_time=75, router_scheduler=None,
global_mtu=common_const.DEFAULT_NETWORK_MTU):
global_mtu=common_const.DEFAULT_NETWORK_MTU,
ml2_extension_drivers=None):
self.network_type = network_type
self.l2_pop = l2_pop
self.qos = qos
@ -51,6 +52,7 @@ class EnvironmentDescription(object):
self.service_plugins = service_plugins
if self.qos:
self.service_plugins += ',qos'
self.ml2_extension_drivers = ml2_extension_drivers
@property
def tunneling_enabled(self):

View File

@ -0,0 +1,59 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# 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 neutron_lib import constants
from oslo_utils import uuidutils
from neutron.tests.fullstack import base
from neutron.tests.fullstack.resources import environment
from neutron.tests.unit import testlib_api
load_tests = testlib_api.module_load_tests
class TestPortsApi(base.BaseFullStackTestCase):
scenarios = [
('Sriov Agent', {'l2_agent_type': constants.AGENT_TYPE_NIC_SWITCH})]
def setUp(self):
host_descriptions = [
environment.HostDescription(
l2_agent_type=self.l2_agent_type)]
env = environment.Environment(
environment.EnvironmentDescription(
agent_down_time=10,
ml2_extension_drivers=['uplink_status_propagation']),
host_descriptions)
super(TestPortsApi, self).setUp(env)
self.tenant_id = uuidutils.generate_uuid()
self.network = self.safe_client.create_network(self.tenant_id)
self.safe_client.create_subnet(
self.tenant_id, self.network['id'], '20.0.0.0/24')
def test_create_port_with_propagate_uplink_status(self):
body = self.safe_client.create_port(
self.tenant_id, self.network['id'], propagate_uplink_status=False)
self.assertFalse(body['propagate_uplink_status'])
body = self.safe_client.client.list_ports(id=body['id'])['ports'][0]
self.assertFalse(body['propagate_uplink_status'])
body = self.safe_client.client.show_port(body['id'])['port']
self.assertFalse(body['propagate_uplink_status'])
def test_create_port_without_propagate_uplink_status(self):
body = self.safe_client.create_port(self.tenant_id, self.network['id'])
self.assertFalse(body['propagate_uplink_status'])
body = self.safe_client.client.list_ports(id=body['id'])['ports'][0]
self.assertFalse(body['propagate_uplink_status'])
body = self.safe_client.client.show_port(body['id'])['port']
self.assertFalse(body['propagate_uplink_status'])