trunk: Create vxlan network when testing inherit

The inherit segmentation type fails only when parent network has a not
supported network type. In case default is a supported one, e.g. vlan,
then inherit correctly returns vlan as subport segmentation type.

This patch forces to use vxlan as a network type for test validating
inherit option.

Cherry-picked from change Idf6935e4da426ff50457483a8f08a9ae3e403f75
from neutron_tempest_plugin

Change-Id: Idf6935e4da426ff50457483a8f08a9ae3e403f75
Closes-bug: #1739227
This commit is contained in:
Jakub Libosvar 2017-12-19 17:46:42 +00:00
parent adc344c065
commit 3e49cc760c
2 changed files with 23 additions and 6 deletions

View File

@ -54,8 +54,20 @@ class TrunkTestJSONBase(base.BaseAdminNetworkTest):
trunks_cleanup(cls.client, cls.trunks)
super(TrunkTestJSONBase, cls).resource_cleanup()
def _create_trunk_with_network_and_parent(self, subports, **kwargs):
network = self.create_network()
@classmethod
def is_type_driver_enabled(cls, type_driver):
return (type_driver in
config.CONF.neutron_plugin_options.available_type_drivers)
def _create_trunk_with_network_and_parent(
self, subports, parent_network_type=None, **kwargs):
client = None
network_kwargs = {}
if parent_network_type:
client = self.admin_client
network_kwargs = {"provider:network_type": parent_network_type,
"tenant_id": self.client.tenant_id}
network = self.create_network(client=client, **network_kwargs)
parent_port = self.create_port(network)
trunk = self.client.create_trunk(parent_port['id'], subports, **kwargs)
self.trunks.append(trunk['trunk'])
@ -266,9 +278,7 @@ class TrunkTestMtusJSONBase(TrunkTestJSONBase):
@classmethod
def skip_checks(cls):
super(TrunkTestMtusJSONBase, cls).skip_checks()
if any(t
not in config.CONF.neutron_plugin_options.available_type_drivers
for t in ['gre', 'vxlan']):
if not all(cls.is_type_driver_enabled(t) for t in ['gre', 'vxlan']):
msg = "Either vxlan or gre type driver not enabled."
raise cls.skipException(msg)

View File

@ -13,6 +13,7 @@
# under the License.
from oslo_utils import uuidutils
from tempest.common import utils
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
import testtools
@ -103,8 +104,14 @@ class TrunkTestJSON(test_trunk.TrunkTestJSONBase):
@decorators.attr(type='negative')
@decorators.idempotent_id('40aed9be-e976-47d0-dada-bde2c7e74e57')
@utils.requires_ext(extension="provider", service="network")
def test_create_subport_invalid_inherit_network_segmentation_type(self):
trunk = self._create_trunk_with_network_and_parent([])
if not self.is_type_driver_enabled('vxlan'):
msg = "Vxlan type driver must be enabled for this test."
raise self.skipException(msg)
trunk = self._create_trunk_with_network_and_parent(
subports=[], parent_network_type='vxlan')
subport_network = self.create_network()
parent_port = self.create_port(subport_network)
self.assertRaises(lib_exc.BadRequest, self.client.add_subports,