Remove use of custom network setup
Tempest will create a tenant network for us and manage it all so no need to do this within this plugin. Change-Id: Ie87bf09eb96ebc05f874df9cdf5c87e3f0c79f78
This commit is contained in:
parent
2581bc079a
commit
60cea69aa7
|
@ -15,8 +15,6 @@
|
|||
from oslo_log import log as logging
|
||||
from oslo_service import loopingcall
|
||||
from oslo_utils import netutils
|
||||
from oslo_utils import uuidutils
|
||||
import tenacity
|
||||
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
|
@ -25,7 +23,7 @@ from tempest.lib import exceptions
|
|||
from tempest import test
|
||||
|
||||
from trove_tempest_plugin.tests import constants
|
||||
from trove_tempest_plugin.tests import utils
|
||||
|
||||
|
||||
CONF = config.CONF
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
@ -67,135 +65,10 @@ class BaseTroveTest(test.BaseTestCase):
|
|||
cls.admin_server_client = cls.os_admin.servers_client
|
||||
cls.account_client = cls.os_primary.account_client
|
||||
|
||||
@classmethod
|
||||
def setup_credentials(cls):
|
||||
# Do not create network resources automatically.
|
||||
cls.set_network_resources()
|
||||
super(BaseTroveTest, cls).setup_credentials()
|
||||
|
||||
@classmethod
|
||||
@tenacity.retry(
|
||||
retry=tenacity.retry_if_exception_type(exceptions.Conflict),
|
||||
wait=tenacity.wait_incrementing(1, 1, 5),
|
||||
stop=tenacity.stop_after_attempt(15)
|
||||
)
|
||||
def _delete_network(cls, net_id):
|
||||
"""Make sure the network is deleted.
|
||||
|
||||
Neutron can be slow to clean up ports from the subnets/networks.
|
||||
Retry this delete a few times if we get a "Conflict" error to give
|
||||
neutron time to fully cleanup the ports.
|
||||
"""
|
||||
networks_client = cls.os_primary.networks_client
|
||||
try:
|
||||
networks_client.delete_network(net_id)
|
||||
except Exception:
|
||||
LOG.error('Unable to delete network %s', net_id)
|
||||
raise
|
||||
|
||||
@classmethod
|
||||
@tenacity.retry(
|
||||
retry=tenacity.retry_if_exception_type(exceptions.Conflict),
|
||||
wait=tenacity.wait_incrementing(1, 1, 5),
|
||||
stop=tenacity.stop_after_attempt(15)
|
||||
)
|
||||
def _delete_subnet(cls, subnet_id):
|
||||
"""Make sure the subnet is deleted.
|
||||
|
||||
Neutron can be slow to clean up ports from the subnets/networks.
|
||||
Retry this delete a few times if we get a "Conflict" error to give
|
||||
neutron time to fully cleanup the ports.
|
||||
"""
|
||||
subnets_client = cls.os_primary.subnets_client
|
||||
try:
|
||||
subnets_client.delete_subnet(subnet_id)
|
||||
except Exception:
|
||||
LOG.error('Unable to delete subnet %s', subnet_id)
|
||||
raise
|
||||
|
||||
@classmethod
|
||||
def _create_network(cls):
|
||||
"""Create database instance network."""
|
||||
networks_client = cls.os_primary.networks_client
|
||||
subnets_client = cls.os_primary.subnets_client
|
||||
routers_client = cls.os_primary.routers_client
|
||||
|
||||
if CONF.database.shared_network:
|
||||
private_network = CONF.database.shared_network
|
||||
if not uuidutils.is_uuid_like(private_network):
|
||||
networks = networks_client.list_networks()['networks']
|
||||
for net in networks:
|
||||
if net['name'] == private_network:
|
||||
private_network = net['id']
|
||||
break
|
||||
else:
|
||||
raise exceptions.NotFound(
|
||||
'Shared network %s not found' % private_network
|
||||
)
|
||||
|
||||
cls.private_network = private_network
|
||||
return
|
||||
|
||||
network_kwargs = {"name": cls.get_resource_name("network")}
|
||||
result = networks_client.create_network(**network_kwargs)
|
||||
LOG.info('Private network created: %s', result['network'])
|
||||
cls.private_network = result['network']["id"]
|
||||
cls.addClassResourceCleanup(
|
||||
utils.wait_for_removal,
|
||||
cls._delete_network,
|
||||
networks_client.show_network,
|
||||
cls.private_network
|
||||
)
|
||||
|
||||
subnet_kwargs = {
|
||||
'name': cls.get_resource_name("subnet"),
|
||||
'network_id': cls.private_network,
|
||||
'cidr': CONF.database.subnet_cidr,
|
||||
'ip_version': 4
|
||||
}
|
||||
result = subnets_client.create_subnet(**subnet_kwargs)
|
||||
subnet_id = result['subnet']['id']
|
||||
LOG.info('Private subnet created: %s', result['subnet'])
|
||||
cls.addClassResourceCleanup(
|
||||
utils.wait_for_removal,
|
||||
cls._delete_subnet,
|
||||
subnets_client.show_subnet,
|
||||
subnet_id
|
||||
)
|
||||
|
||||
# In dev node, Trove instance needs to connect with control host
|
||||
router_params = {
|
||||
'name': cls.get_resource_name("router"),
|
||||
'external_gateway_info': {
|
||||
"network_id": CONF.network.public_network_id
|
||||
}
|
||||
}
|
||||
result = routers_client.create_router(**router_params)
|
||||
router_id = result['router']['id']
|
||||
LOG.info('Private router created: %s', result['router'])
|
||||
cls.addClassResourceCleanup(
|
||||
utils.wait_for_removal,
|
||||
routers_client.delete_router,
|
||||
routers_client.show_router,
|
||||
router_id
|
||||
)
|
||||
|
||||
routers_client.add_router_interface(router_id, subnet_id=subnet_id)
|
||||
LOG.info('Subnet %s added to the router %s', subnet_id, router_id)
|
||||
cls.addClassResourceCleanup(
|
||||
routers_client.remove_router_interface,
|
||||
router_id,
|
||||
subnet_id=subnet_id
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(BaseTroveTest, cls).resource_setup()
|
||||
|
||||
# Create network for database instance, use cls.private_network as the
|
||||
# network ID.
|
||||
cls._create_network()
|
||||
|
||||
instance = cls.create_instance(create_user=cls.create_user)
|
||||
cls.instance_id = instance['id']
|
||||
cls.wait_for_instance_status(cls.instance_id)
|
||||
|
@ -260,13 +133,14 @@ class BaseTroveTest(test.BaseTestCase):
|
|||
all test methods within a TestCase are assumed to be executed serially.
|
||||
"""
|
||||
name = name or cls.get_resource_name("instance")
|
||||
tenant_network = cls.get_tenant_network()
|
||||
|
||||
# Flavor, volume, datastore are not needed for creating replica.
|
||||
if replica_of:
|
||||
body = {
|
||||
"instance": {
|
||||
"name": name,
|
||||
"nics": [{"net-id": cls.private_network}],
|
||||
"nics": [{"net-id": tenant_network['id']}],
|
||||
"access": {"is_public": True},
|
||||
"replica_of": replica_of,
|
||||
}
|
||||
|
@ -303,7 +177,7 @@ class BaseTroveTest(test.BaseTestCase):
|
|||
"size": 1,
|
||||
"type": CONF.database.volume_type
|
||||
},
|
||||
"nics": [{"net-id": cls.private_network}],
|
||||
"nics": [{"net-id": tenant_network['id']}],
|
||||
"access": {"is_public": True}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue