Make ports_client use common waiter method
wait_for_resource_deletion() of network_client is used only for ports_client and Tempest has a common waiter method in its rest client. So this patch makes ports_client use the method and removes network_client module for the cleanup. Partially implements blueprint consistent-service-method-names Change-Id: I3145163621dbf7c053f040d4c75b1dd16770ba55
This commit is contained in:
parent
eda607cb1c
commit
43e7fcff6f
|
@ -38,7 +38,6 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(ServersTestJSON, cls).setup_clients()
|
super(ServersTestJSON, cls).setup_clients()
|
||||||
cls.client = cls.servers_client
|
cls.client = cls.servers_client
|
||||||
cls.network_client = cls.os.network_client
|
|
||||||
cls.networks_client = cls.os.networks_client
|
cls.networks_client = cls.os.networks_client
|
||||||
cls.subnets_client = cls.os.subnets_client
|
cls.subnets_client = cls.os.subnets_client
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(FloatingIPAdminTestJSON, cls).setup_clients()
|
super(FloatingIPAdminTestJSON, cls).setup_clients()
|
||||||
cls.alt_client = cls.alt_manager.network_client
|
|
||||||
cls.alt_floating_ips_client = cls.alt_manager.floating_ips_client
|
cls.alt_floating_ips_client = cls.alt_manager.floating_ips_client
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -67,7 +67,6 @@ class BaseNetworkTest(tempest.test.BaseTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(BaseNetworkTest, cls).setup_clients()
|
super(BaseNetworkTest, cls).setup_clients()
|
||||||
cls.client = cls.os.network_client
|
|
||||||
cls.agents_client = cls.os.network_agents_client
|
cls.agents_client = cls.os.network_agents_client
|
||||||
cls.network_extensions_client = cls.os.network_extensions_client
|
cls.network_extensions_client = cls.os.network_extensions_client
|
||||||
cls.networks_client = cls.os.networks_client
|
cls.networks_client = cls.os.networks_client
|
||||||
|
@ -276,7 +275,6 @@ class BaseAdminNetworkTest(BaseNetworkTest):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(BaseAdminNetworkTest, cls).setup_clients()
|
super(BaseAdminNetworkTest, cls).setup_clients()
|
||||||
cls.admin_client = cls.os_adm.network_client
|
|
||||||
cls.admin_agents_client = cls.os_adm.network_agents_client
|
cls.admin_agents_client = cls.os_adm.network_agents_client
|
||||||
cls.admin_networks_client = cls.os_adm.networks_client
|
cls.admin_networks_client = cls.os_adm.networks_client
|
||||||
cls.admin_routers_client = cls.os_adm.routers_client
|
cls.admin_routers_client = cls.os_adm.routers_client
|
||||||
|
|
|
@ -46,7 +46,6 @@ class BaseOrchestrationTest(tempest.test.BaseTestCase):
|
||||||
cls.client = cls.orchestration_client
|
cls.client = cls.orchestration_client
|
||||||
cls.servers_client = cls.os.servers_client
|
cls.servers_client = cls.os.servers_client
|
||||||
cls.keypairs_client = cls.os.keypairs_client
|
cls.keypairs_client = cls.os.keypairs_client
|
||||||
cls.network_client = cls.os.network_client
|
|
||||||
cls.networks_client = cls.os.networks_client
|
cls.networks_client = cls.os.networks_client
|
||||||
cls.volumes_client = cls.os.volumes_client
|
cls.volumes_client = cls.os.volumes_client
|
||||||
cls.images_v2_client = cls.os.image_client_v2
|
cls.images_v2_client = cls.os.image_client_v2
|
||||||
|
|
|
@ -44,7 +44,6 @@ class NeutronResourcesTestJSON(base.BaseOrchestrationTest):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(NeutronResourcesTestJSON, cls).setup_clients()
|
super(NeutronResourcesTestJSON, cls).setup_clients()
|
||||||
cls.network_client = cls.os.network_client
|
|
||||||
cls.subnets_client = cls.os.subnets_client
|
cls.subnets_client = cls.os.subnets_client
|
||||||
cls.ports_client = cls.os.ports_client
|
cls.ports_client = cls.os.ports_client
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,6 @@ from tempest.services.identity.v3.json.users_clients import \
|
||||||
UsersClient as UsersV3Client
|
UsersClient as UsersV3Client
|
||||||
from tempest.services.image.v1.json.images_client import ImagesClient
|
from tempest.services.image.v1.json.images_client import ImagesClient
|
||||||
from tempest.services.image.v2.json.images_client import ImagesClientV2
|
from tempest.services.image.v2.json.images_client import ImagesClientV2
|
||||||
from tempest.services.network.json.network_client import NetworkClient
|
|
||||||
from tempest.services.network.json.routers_client import RoutersClient
|
from tempest.services.network.json.routers_client import RoutersClient
|
||||||
from tempest.services.object_storage.account_client import AccountClient
|
from tempest.services.object_storage.account_client import AccountClient
|
||||||
from tempest.services.object_storage.container_client import ContainerClient
|
from tempest.services.object_storage.container_client import ContainerClient
|
||||||
|
@ -237,14 +236,6 @@ class Manager(manager.Manager):
|
||||||
build_interval=CONF.network.build_interval,
|
build_interval=CONF.network.build_interval,
|
||||||
build_timeout=CONF.network.build_timeout,
|
build_timeout=CONF.network.build_timeout,
|
||||||
**self.default_params)
|
**self.default_params)
|
||||||
self.network_client = NetworkClient(
|
|
||||||
self.auth_provider,
|
|
||||||
CONF.network.catalog_type,
|
|
||||||
CONF.network.region or CONF.identity.region,
|
|
||||||
endpoint_type=CONF.network.endpoint_type,
|
|
||||||
build_interval=CONF.network.build_interval,
|
|
||||||
build_timeout=CONF.network.build_timeout,
|
|
||||||
**self.default_params)
|
|
||||||
self.networks_client = NetworksClient(
|
self.networks_client = NetworksClient(
|
||||||
self.auth_provider,
|
self.auth_provider,
|
||||||
CONF.network.catalog_type,
|
CONF.network.catalog_type,
|
||||||
|
|
|
@ -103,7 +103,6 @@ from tempest.services.identity.v2.json import identity_client
|
||||||
from tempest.services.identity.v2.json import roles_client
|
from tempest.services.identity.v2.json import roles_client
|
||||||
from tempest.services.identity.v2.json import tenants_client
|
from tempest.services.identity.v2.json import tenants_client
|
||||||
from tempest.services.identity.v2.json import users_client
|
from tempest.services.identity.v2.json import users_client
|
||||||
from tempest.services.network.json import network_client
|
|
||||||
from tempest.services.network.json import routers_client
|
from tempest.services.network.json import routers_client
|
||||||
|
|
||||||
LOG = None
|
LOG = None
|
||||||
|
@ -170,7 +169,6 @@ def get_admin_clients(opts):
|
||||||
endpoint_type='adminURL',
|
endpoint_type='adminURL',
|
||||||
**params
|
**params
|
||||||
)
|
)
|
||||||
network_admin = None
|
|
||||||
networks_admin = None
|
networks_admin = None
|
||||||
routers_admin = None
|
routers_admin = None
|
||||||
subnets_admin = None
|
subnets_admin = None
|
||||||
|
@ -178,12 +176,6 @@ def get_admin_clients(opts):
|
||||||
if (CONF.service_available.neutron and
|
if (CONF.service_available.neutron and
|
||||||
CONF.auth.create_isolated_networks):
|
CONF.auth.create_isolated_networks):
|
||||||
neutron_iso_networks = True
|
neutron_iso_networks = True
|
||||||
network_admin = network_client.NetworkClient(
|
|
||||||
_auth,
|
|
||||||
CONF.network.catalog_type,
|
|
||||||
CONF.network.region or CONF.identity.region,
|
|
||||||
endpoint_type='adminURL',
|
|
||||||
**params)
|
|
||||||
networks_admin = networks_client.NetworksClient(
|
networks_admin = networks_client.NetworksClient(
|
||||||
_auth,
|
_auth,
|
||||||
CONF.network.catalog_type,
|
CONF.network.catalog_type,
|
||||||
|
@ -203,13 +195,13 @@ def get_admin_clients(opts):
|
||||||
endpoint_type='adminURL',
|
endpoint_type='adminURL',
|
||||||
**params)
|
**params)
|
||||||
return (identity_admin, tenants_admin, roles_admin, users_admin,
|
return (identity_admin, tenants_admin, roles_admin, users_admin,
|
||||||
neutron_iso_networks, network_admin, networks_admin, routers_admin,
|
neutron_iso_networks, networks_admin, routers_admin,
|
||||||
subnets_admin)
|
subnets_admin)
|
||||||
|
|
||||||
|
|
||||||
def create_resources(opts, resources):
|
def create_resources(opts, resources):
|
||||||
(identity_admin, tenants_admin, roles_admin, users_admin,
|
(identity_admin, tenants_admin, roles_admin, users_admin,
|
||||||
neutron_iso_networks, network_admin, networks_admin, routers_admin,
|
neutron_iso_networks, networks_admin, routers_admin,
|
||||||
subnets_admin) = get_admin_clients(opts)
|
subnets_admin) = get_admin_clients(opts)
|
||||||
roles = roles_admin.list_roles()['roles']
|
roles = roles_admin.list_roles()['roles']
|
||||||
for u in resources['users']:
|
for u in resources['users']:
|
||||||
|
@ -255,7 +247,7 @@ def create_resources(opts, resources):
|
||||||
for u in resources['users']:
|
for u in resources['users']:
|
||||||
tenant = identity.get_tenant_by_name(tenants_admin, u['tenant'])
|
tenant = identity.get_tenant_by_name(tenants_admin, u['tenant'])
|
||||||
network_name, router_name = create_network_resources(
|
network_name, router_name = create_network_resources(
|
||||||
network_admin, networks_admin, routers_admin, subnets_admin,
|
networks_admin, routers_admin, subnets_admin,
|
||||||
tenant['id'], u['name'])
|
tenant['id'], u['name'])
|
||||||
u['network'] = network_name
|
u['network'] = network_name
|
||||||
u['router'] = router_name
|
u['router'] = router_name
|
||||||
|
@ -282,7 +274,7 @@ def create_resources(opts, resources):
|
||||||
LOG.info('Resources deployed successfully!')
|
LOG.info('Resources deployed successfully!')
|
||||||
|
|
||||||
|
|
||||||
def create_network_resources(network_admin_client, networks_admin_client,
|
def create_network_resources(networks_admin_client,
|
||||||
routers_admin_client, subnets_admin_client,
|
routers_admin_client, subnets_admin_client,
|
||||||
tenant_id, name):
|
tenant_id, name):
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,6 @@ class NovaQuotaService(BaseService):
|
||||||
class NetworkService(BaseService):
|
class NetworkService(BaseService):
|
||||||
def __init__(self, manager, **kwargs):
|
def __init__(self, manager, **kwargs):
|
||||||
super(NetworkService, self).__init__(kwargs)
|
super(NetworkService, self).__init__(kwargs)
|
||||||
self.client = manager.network_client
|
|
||||||
self.networks_client = manager.networks_client
|
self.networks_client = manager.networks_client
|
||||||
self.subnets_client = manager.subnets_client
|
self.subnets_client = manager.subnets_client
|
||||||
self.ports_client = manager.ports_client
|
self.ports_client = manager.ports_client
|
||||||
|
|
|
@ -127,6 +127,7 @@ from tempest.lib.services.compute import floating_ips_client
|
||||||
from tempest.lib.services.compute import security_group_rules_client
|
from tempest.lib.services.compute import security_group_rules_client
|
||||||
from tempest.lib.services.compute import security_groups_client
|
from tempest.lib.services.compute import security_groups_client
|
||||||
from tempest.lib.services.compute import servers_client
|
from tempest.lib.services.compute import servers_client
|
||||||
|
from tempest.lib.services.network import networks_client
|
||||||
from tempest.lib.services.network import ports_client
|
from tempest.lib.services.network import ports_client
|
||||||
from tempest.lib.services.network import subnets_client
|
from tempest.lib.services.network import subnets_client
|
||||||
from tempest.services.identity.v2.json import identity_client
|
from tempest.services.identity.v2.json import identity_client
|
||||||
|
@ -134,7 +135,6 @@ from tempest.services.identity.v2.json import roles_client
|
||||||
from tempest.services.identity.v2.json import tenants_client
|
from tempest.services.identity.v2.json import tenants_client
|
||||||
from tempest.services.identity.v2.json import users_client
|
from tempest.services.identity.v2.json import users_client
|
||||||
from tempest.services.image.v2.json import images_client
|
from tempest.services.image.v2.json import images_client
|
||||||
from tempest.services.network.json import network_client
|
|
||||||
from tempest.services.network.json import routers_client
|
from tempest.services.network.json import routers_client
|
||||||
from tempest.services.object_storage import container_client
|
from tempest.services.object_storage import container_client
|
||||||
from tempest.services.object_storage import object_client
|
from tempest.services.object_storage import object_client
|
||||||
|
@ -264,7 +264,7 @@ class OSClient(object):
|
||||||
build_interval=CONF.volume.build_interval,
|
build_interval=CONF.volume.build_interval,
|
||||||
build_timeout=CONF.volume.build_timeout,
|
build_timeout=CONF.volume.build_timeout,
|
||||||
**default_params)
|
**default_params)
|
||||||
self.networks = network_client.NetworkClient(
|
self.networks = networks_client.NetworksClient(
|
||||||
_auth,
|
_auth,
|
||||||
CONF.network.catalog_type,
|
CONF.network.catalog_type,
|
||||||
CONF.network.region or CONF.identity.region,
|
CONF.network.region or CONF.identity.region,
|
||||||
|
|
|
@ -62,7 +62,6 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||||
self.users_admin_client,
|
self.users_admin_client,
|
||||||
self.roles_admin_client,
|
self.roles_admin_client,
|
||||||
self.domains_admin_client,
|
self.domains_admin_client,
|
||||||
self.network_admin_client,
|
|
||||||
self.networks_admin_client,
|
self.networks_admin_client,
|
||||||
self.routers_admin_client,
|
self.routers_admin_client,
|
||||||
self.subnets_admin_client,
|
self.subnets_admin_client,
|
||||||
|
@ -93,13 +92,13 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||||
os = clients.Manager(self.default_admin_creds)
|
os = clients.Manager(self.default_admin_creds)
|
||||||
if self.identity_version == 'v2':
|
if self.identity_version == 'v2':
|
||||||
return (os.identity_client, os.tenants_client, os.users_client,
|
return (os.identity_client, os.tenants_client, os.users_client,
|
||||||
os.roles_client, None, os.network_client,
|
os.roles_client, None,
|
||||||
os.networks_client, os.routers_client, os.subnets_client,
|
os.networks_client, os.routers_client, os.subnets_client,
|
||||||
os.ports_client, os.security_groups_client)
|
os.ports_client, os.security_groups_client)
|
||||||
else:
|
else:
|
||||||
return (os.identity_v3_client, os.projects_client,
|
return (os.identity_v3_client, os.projects_client,
|
||||||
os.users_v3_client, os.roles_v3_client, os.domains_client,
|
os.users_v3_client, os.roles_v3_client, os.domains_client,
|
||||||
os.network_client, os.networks_client, os.routers_client,
|
os.networks_client, os.routers_client,
|
||||||
os.subnets_client, os.ports_client,
|
os.subnets_client, os.ports_client,
|
||||||
os.security_groups_client)
|
os.security_groups_client)
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,4 @@
|
||||||
./tempest/services/volume/base/base_qos_client.py
|
./tempest/services/volume/base/base_qos_client.py
|
||||||
./tempest/services/volume/base/base_backups_client.py
|
./tempest/services/volume/base/base_backups_client.py
|
||||||
./tempest/services/baremetal/base.py
|
./tempest/services/baremetal/base.py
|
||||||
./tempest/services/network/json/network_client.py
|
|
||||||
./tempest/services/network/json/routers_client.py
|
./tempest/services/network/json/routers_client.py
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from tempest.lib import exceptions as lib_exc
|
||||||
from tempest.lib.services.network import base
|
from tempest.lib.services.network import base
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,3 +46,10 @@ class PortsClient(base.BaseNetworkClient):
|
||||||
"""
|
"""
|
||||||
uri = '/ports'
|
uri = '/ports'
|
||||||
return self.create_resource(uri, kwargs)
|
return self.create_resource(uri, kwargs)
|
||||||
|
|
||||||
|
def is_resource_deleted(self, id):
|
||||||
|
try:
|
||||||
|
self.show_port(id)
|
||||||
|
except lib_exc.NotFound:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
|
@ -63,7 +63,6 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||||
cls.servers_client = cls.manager.servers_client
|
cls.servers_client = cls.manager.servers_client
|
||||||
cls.interface_client = cls.manager.interfaces_client
|
cls.interface_client = cls.manager.interfaces_client
|
||||||
# Neutron network client
|
# Neutron network client
|
||||||
cls.network_client = cls.manager.network_client
|
|
||||||
cls.networks_client = cls.manager.networks_client
|
cls.networks_client = cls.manager.networks_client
|
||||||
cls.ports_client = cls.manager.ports_client
|
cls.ports_client = cls.manager.ports_client
|
||||||
cls.routers_client = cls.manager.routers_client
|
cls.routers_client = cls.manager.routers_client
|
||||||
|
@ -687,17 +686,15 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
super(NetworkScenarioTest, cls).resource_setup()
|
super(NetworkScenarioTest, cls).resource_setup()
|
||||||
cls.tenant_id = cls.manager.identity_client.tenant_id
|
cls.tenant_id = cls.manager.identity_client.tenant_id
|
||||||
|
|
||||||
def _create_network(self, client=None, networks_client=None,
|
def _create_network(self, networks_client=None,
|
||||||
routers_client=None, tenant_id=None,
|
routers_client=None, tenant_id=None,
|
||||||
namestart='network-smoke-'):
|
namestart='network-smoke-'):
|
||||||
if not client:
|
|
||||||
client = self.network_client
|
|
||||||
if not networks_client:
|
if not networks_client:
|
||||||
networks_client = self.networks_client
|
networks_client = self.networks_client
|
||||||
if not routers_client:
|
if not routers_client:
|
||||||
routers_client = self.routers_client
|
routers_client = self.routers_client
|
||||||
if not tenant_id:
|
if not tenant_id:
|
||||||
tenant_id = client.tenant_id
|
tenant_id = networks_client.tenant_id
|
||||||
name = data_utils.rand_name(namestart)
|
name = data_utils.rand_name(namestart)
|
||||||
result = networks_client.create_network(name=name, tenant_id=tenant_id)
|
result = networks_client.create_network(name=name, tenant_id=tenant_id)
|
||||||
network = net_resources.DeletableNetwork(
|
network = net_resources.DeletableNetwork(
|
||||||
|
@ -737,15 +734,13 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
*args, **kwargs)
|
*args, **kwargs)
|
||||||
return agents_list['agents']
|
return agents_list['agents']
|
||||||
|
|
||||||
def _create_subnet(self, network, client=None, subnets_client=None,
|
def _create_subnet(self, network, subnets_client=None,
|
||||||
routers_client=None, namestart='subnet-smoke',
|
routers_client=None, namestart='subnet-smoke',
|
||||||
**kwargs):
|
**kwargs):
|
||||||
"""Create a subnet for the given network
|
"""Create a subnet for the given network
|
||||||
|
|
||||||
within the cidr block configured for tenant networks.
|
within the cidr block configured for tenant networks.
|
||||||
"""
|
"""
|
||||||
if not client:
|
|
||||||
client = self.network_client
|
|
||||||
if not subnets_client:
|
if not subnets_client:
|
||||||
subnets_client = self.subnets_client
|
subnets_client = self.subnets_client
|
||||||
if not routers_client:
|
if not routers_client:
|
||||||
|
@ -796,7 +791,7 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
raise
|
raise
|
||||||
self.assertIsNotNone(result, 'Unable to allocate tenant network')
|
self.assertIsNotNone(result, 'Unable to allocate tenant network')
|
||||||
subnet = net_resources.DeletableSubnet(
|
subnet = net_resources.DeletableSubnet(
|
||||||
network_client=client, subnets_client=subnets_client,
|
subnets_client=subnets_client,
|
||||||
routers_client=routers_client, **result['subnet'])
|
routers_client=routers_client, **result['subnet'])
|
||||||
self.assertEqual(subnet.cidr, str_cidr)
|
self.assertEqual(subnet.cidr, str_cidr)
|
||||||
self.addCleanup(self.delete_wrapper, subnet.delete)
|
self.addCleanup(self.delete_wrapper, subnet.delete)
|
||||||
|
@ -1169,7 +1164,7 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
router.update(admin_state_up=admin_state_up)
|
router.update(admin_state_up=admin_state_up)
|
||||||
self.assertEqual(admin_state_up, router.admin_state_up)
|
self.assertEqual(admin_state_up, router.admin_state_up)
|
||||||
|
|
||||||
def create_networks(self, client=None, networks_client=None,
|
def create_networks(self, networks_client=None,
|
||||||
routers_client=None, subnets_client=None,
|
routers_client=None, subnets_client=None,
|
||||||
tenant_id=None, dns_nameservers=None):
|
tenant_id=None, dns_nameservers=None):
|
||||||
"""Create a network with a subnet connected to a router.
|
"""Create a network with a subnet connected to a router.
|
||||||
|
@ -1177,7 +1172,6 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
The baremetal driver is a special case since all nodes are
|
The baremetal driver is a special case since all nodes are
|
||||||
on the same shared network.
|
on the same shared network.
|
||||||
|
|
||||||
:param client: network client to create resources with.
|
|
||||||
:param tenant_id: id of tenant to create resources in.
|
:param tenant_id: id of tenant to create resources in.
|
||||||
:param dns_nameservers: list of dns servers to send to subnet.
|
:param dns_nameservers: list of dns servers to send to subnet.
|
||||||
:returns: network, subnet, router
|
:returns: network, subnet, router
|
||||||
|
@ -1197,12 +1191,12 @@ class NetworkScenarioTest(ScenarioTest):
|
||||||
subnet = None
|
subnet = None
|
||||||
else:
|
else:
|
||||||
network = self._create_network(
|
network = self._create_network(
|
||||||
client=client, networks_client=networks_client,
|
networks_client=networks_client,
|
||||||
tenant_id=tenant_id)
|
tenant_id=tenant_id)
|
||||||
router = self._get_router(client=routers_client,
|
router = self._get_router(client=routers_client,
|
||||||
tenant_id=tenant_id)
|
tenant_id=tenant_id)
|
||||||
|
|
||||||
subnet_kwargs = dict(network=network, client=client,
|
subnet_kwargs = dict(network=network,
|
||||||
subnets_client=subnets_client,
|
subnets_client=subnets_client,
|
||||||
routers_client=routers_client)
|
routers_client=routers_client)
|
||||||
# use explicit check because empty list is a valid option
|
# use explicit check because empty list is a valid option
|
||||||
|
|
|
@ -250,9 +250,8 @@ class TestNetworkBasicOps(manager.NetworkScenarioTest):
|
||||||
interface = self.interface_client.create_interface(
|
interface = self.interface_client.create_interface(
|
||||||
server_id=server['id'],
|
server_id=server['id'],
|
||||||
net_id=self.new_net.id)['interfaceAttachment']
|
net_id=self.new_net.id)['interfaceAttachment']
|
||||||
self.addCleanup(self.network_client.wait_for_resource_deletion,
|
self.addCleanup(self.ports_client.wait_for_resource_deletion,
|
||||||
'port',
|
interface['port_id'])
|
||||||
interface['port_id'], client=self.ports_client)
|
|
||||||
self.addCleanup(self.delete_wrapper,
|
self.addCleanup(self.delete_wrapper,
|
||||||
self.interface_client.delete_interface,
|
self.interface_client.delete_interface,
|
||||||
server['id'], interface['port_id'])
|
server['id'], interface['port_id'])
|
||||||
|
|
|
@ -321,7 +321,6 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
||||||
|
|
||||||
def _create_tenant_network(self, tenant):
|
def _create_tenant_network(self, tenant):
|
||||||
network, subnet, router = self.create_networks(
|
network, subnet, router = self.create_networks(
|
||||||
client=tenant.manager.network_client,
|
|
||||||
networks_client=tenant.manager.networks_client,
|
networks_client=tenant.manager.networks_client,
|
||||||
routers_client=tenant.manager.routers_client,
|
routers_client=tenant.manager.routers_client,
|
||||||
subnets_client=tenant.manager.subnets_client)
|
subnets_client=tenant.manager.subnets_client)
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
# 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.
|
|
||||||
|
|
||||||
import time
|
|
||||||
|
|
||||||
from tempest import exceptions
|
|
||||||
from tempest.lib import exceptions as lib_exc
|
|
||||||
from tempest.lib.services.network import base
|
|
||||||
|
|
||||||
|
|
||||||
class NetworkClient(base.BaseNetworkClient):
|
|
||||||
|
|
||||||
"""Tempest REST client for Neutron.
|
|
||||||
|
|
||||||
Uses v2 of the Neutron API, since the V1 API has been removed from the
|
|
||||||
code base.
|
|
||||||
|
|
||||||
Implements create, delete, update, list and show for the basic Neutron
|
|
||||||
abstractions (networks, sub-networks, routers, ports and floating IP):
|
|
||||||
|
|
||||||
Implements add/remove interface to router using subnet ID / port ID
|
|
||||||
|
|
||||||
It also implements list, show, update and reset for OpenStack Networking
|
|
||||||
quotas
|
|
||||||
"""
|
|
||||||
|
|
||||||
def wait_for_resource_deletion(self, resource_type, id, client=None):
|
|
||||||
"""Waits for a resource to be deleted."""
|
|
||||||
start_time = int(time.time())
|
|
||||||
while True:
|
|
||||||
if self.is_resource_deleted(resource_type, id, client=client):
|
|
||||||
return
|
|
||||||
if int(time.time()) - start_time >= self.build_timeout:
|
|
||||||
raise exceptions.TimeoutException
|
|
||||||
time.sleep(self.build_interval)
|
|
||||||
|
|
||||||
def is_resource_deleted(self, resource_type, id, client=None):
|
|
||||||
if client is None:
|
|
||||||
client = self
|
|
||||||
method = 'show_' + resource_type
|
|
||||||
try:
|
|
||||||
getattr(client, method)(id)
|
|
||||||
except AttributeError:
|
|
||||||
raise Exception("Unknown resource type %s " % resource_type)
|
|
||||||
except lib_exc.NotFound:
|
|
||||||
return True
|
|
||||||
return False
|
|
|
@ -41,7 +41,6 @@ class DeletableResource(AttributeDict):
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.client = kwargs.pop('client', None)
|
self.client = kwargs.pop('client', None)
|
||||||
self.network_client = kwargs.pop('network_client', None)
|
|
||||||
self.networks_client = kwargs.pop('networks_client', None)
|
self.networks_client = kwargs.pop('networks_client', None)
|
||||||
self.routers_client = kwargs.pop('routers_client', None)
|
self.routers_client = kwargs.pop('routers_client', None)
|
||||||
self.subnets_client = kwargs.pop('subnets_client', None)
|
self.subnets_client = kwargs.pop('subnets_client', None)
|
||||||
|
|
|
@ -30,7 +30,6 @@ from tempest.services.identity.v2.json import tenants_client as \
|
||||||
json_tenants_client
|
json_tenants_client
|
||||||
from tempest.services.identity.v2.json import users_client as \
|
from tempest.services.identity.v2.json import users_client as \
|
||||||
json_users_client
|
json_users_client
|
||||||
from tempest.services.network.json import network_client as json_network_client
|
|
||||||
from tempest.services.network.json import routers_client
|
from tempest.services.network.json import routers_client
|
||||||
from tempest.tests import base
|
from tempest.tests import base
|
||||||
from tempest.tests import fake_config
|
from tempest.tests import fake_config
|
||||||
|
@ -61,8 +60,6 @@ class TestDynamicCredentialProvider(base.TestCase):
|
||||||
creds = dynamic_creds.DynamicCredentialProvider(**self.fixed_params)
|
creds = dynamic_creds.DynamicCredentialProvider(**self.fixed_params)
|
||||||
self.assertTrue(isinstance(creds.identity_admin_client,
|
self.assertTrue(isinstance(creds.identity_admin_client,
|
||||||
json_iden_client.IdentityClient))
|
json_iden_client.IdentityClient))
|
||||||
self.assertTrue(isinstance(creds.network_admin_client,
|
|
||||||
json_network_client.NetworkClient))
|
|
||||||
|
|
||||||
def _get_fake_admin_creds(self):
|
def _get_fake_admin_creds(self):
|
||||||
return credentials.get_credentials(
|
return credentials.get_credentials(
|
||||||
|
|
Loading…
Reference in New Issue