Use project_id in neutron calls and objects
Update network code to use project_id key and keyword to support the depcrecation of tenant_id in Neutron. Change text accordingly. Blueprint: https://blueprints.launchpad.net/neutron/+spec/keystone-v3 Change-Id: I45d2759c1621a06aca7bd80a9a22a661f4049676 Signed-off-by: Brian Haley <haleyb.dev@gmail.com>
This commit is contained in:
@@ -99,7 +99,7 @@ class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):
|
||||
|
||||
@decorators.idempotent_id('32727cc3-abe2-4485-a16e-48f2d54c14f2')
|
||||
def test_create_list_show_floating_ip_with_tenant_id_by_admin(self):
|
||||
"""Verify if admin can create/list/show floating ip with tenant id"""
|
||||
"""Verify if admin can create/list/show floating ip with project id"""
|
||||
# Creates a floating IP
|
||||
body = self.admin_floating_ips_client.create_floatingip(
|
||||
floating_network_id=self.ext_net_id,
|
||||
|
||||
@@ -126,7 +126,7 @@ class MeteringTestJSON(base.BaseAdminNetworkTest):
|
||||
self.metering_label['id'])
|
||||
metering_label = body['metering_label']
|
||||
self.assertEqual(self.metering_label['id'], metering_label['id'])
|
||||
self.assertEqual(self.metering_label['tenant_id'],
|
||||
self.assertEqual(self.metering_label['project_id'],
|
||||
metering_label['project_id'])
|
||||
self.assertEqual(self.metering_label['name'], metering_label['name'])
|
||||
self.assertEqual(self.metering_label['description'],
|
||||
|
||||
@@ -161,7 +161,7 @@ class CredentialProvider(object, metaclass=abc.ABCMeta):
|
||||
|
||||
def cleanup_default_secgroup(self, security_group_client, tenant):
|
||||
resp_body = security_group_client.list_security_groups(
|
||||
tenant_id=tenant,
|
||||
project_id=tenant,
|
||||
name="default")
|
||||
secgroups_to_delete = resp_body['security_groups']
|
||||
for secgroup in secgroups_to_delete:
|
||||
|
||||
@@ -271,17 +271,17 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
creds = self.creds_client.get_credentials(**cred_params)
|
||||
return cred_provider.TestResources(creds)
|
||||
|
||||
def _create_network_resources(self, tenant_id):
|
||||
"""The function creates network resources in the given tenant.
|
||||
def _create_network_resources(self, project_id):
|
||||
"""The function creates network resources in the given project.
|
||||
|
||||
The function checks if network_resources class member is empty,
|
||||
In case it is, it will create a network, a subnet and a router for
|
||||
the tenant according to the given tenant id parameter.
|
||||
the project according to the given project id parameter.
|
||||
Otherwise it will create a network resource according
|
||||
to the values from network_resources dict.
|
||||
|
||||
:param tenant_id: The tenant id to create resources for.
|
||||
:type tenant_id: str
|
||||
:param project_id: The project id to create resources for.
|
||||
:type project_id: str
|
||||
:raises: InvalidConfiguration, Exception
|
||||
:returns: network resources(network,subnet,router)
|
||||
:rtype: tuple
|
||||
@@ -307,15 +307,15 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
self.name, prefix=self.resource_prefix)
|
||||
if not self.network_resources or self.network_resources['network']:
|
||||
network_name = rand_name_root + "-network"
|
||||
network = self._create_network(network_name, tenant_id)
|
||||
network = self._create_network(network_name, project_id)
|
||||
try:
|
||||
if not self.network_resources or self.network_resources['subnet']:
|
||||
subnet_name = rand_name_root + "-subnet"
|
||||
subnet = self._create_subnet(subnet_name, tenant_id,
|
||||
subnet = self._create_subnet(subnet_name, project_id,
|
||||
network['id'])
|
||||
if not self.network_resources or self.network_resources['router']:
|
||||
router_name = rand_name_root + "-router"
|
||||
router = self._create_router(router_name, tenant_id)
|
||||
router = self._create_router(router_name, project_id)
|
||||
self._add_router_interface(router['id'], subnet['id'])
|
||||
except Exception:
|
||||
try:
|
||||
@@ -328,18 +328,18 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
network['name'])
|
||||
except Exception as cleanup_exception:
|
||||
msg = "There was an exception trying to setup network " \
|
||||
"resources for tenant %s, and this error happened " \
|
||||
"resources for project %s, and this error happened " \
|
||||
"trying to clean them up: %s"
|
||||
LOG.warning(msg, tenant_id, cleanup_exception)
|
||||
LOG.warning(msg, project_id, cleanup_exception)
|
||||
raise
|
||||
return network, subnet, router
|
||||
|
||||
def _create_network(self, name, tenant_id):
|
||||
def _create_network(self, name, project_id):
|
||||
resp_body = self.networks_admin_client.create_network(
|
||||
name=name, tenant_id=tenant_id)
|
||||
name=name, project_id=project_id)
|
||||
return resp_body['network']
|
||||
|
||||
def _create_subnet(self, subnet_name, tenant_id, network_id):
|
||||
def _create_subnet(self, subnet_name, project_id, network_id):
|
||||
base_cidr = netaddr.IPNetwork(self.project_network_cidr)
|
||||
mask_bits = self.project_network_mask_bits
|
||||
for subnet_cidr in base_cidr.subnet(mask_bits):
|
||||
@@ -349,7 +349,7 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
create_subnet(
|
||||
network_id=network_id, cidr=str(subnet_cidr),
|
||||
name=subnet_name,
|
||||
tenant_id=tenant_id,
|
||||
project_id=project_id,
|
||||
enable_dhcp=self.network_resources['dhcp'],
|
||||
ip_version=(ipaddress.ip_network(
|
||||
str(subnet_cidr)).version))
|
||||
@@ -358,7 +358,7 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
create_subnet(network_id=network_id,
|
||||
cidr=str(subnet_cidr),
|
||||
name=subnet_name,
|
||||
tenant_id=tenant_id,
|
||||
project_id=project_id,
|
||||
ip_version=(ipaddress.ip_network(
|
||||
str(subnet_cidr)).version))
|
||||
break
|
||||
@@ -370,9 +370,9 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
raise Exception(message)
|
||||
return resp_body['subnet']
|
||||
|
||||
def _create_router(self, router_name, tenant_id):
|
||||
def _create_router(self, router_name, project_id):
|
||||
kwargs = {'name': router_name,
|
||||
'tenant_id': tenant_id}
|
||||
'project_id': project_id}
|
||||
if self.public_network_id:
|
||||
kwargs['external_gateway_info'] = dict(
|
||||
network_id=self.public_network_id)
|
||||
@@ -613,7 +613,7 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
# enabled, cleanup_default_secgroup will not raise error. But
|
||||
# here cannot use test_utils.is_extension_enabled for it will
|
||||
# cause "circular dependency". So here just use try...except to
|
||||
# ensure tenant deletion without big changes.
|
||||
# ensure project deletion without big changes.
|
||||
LOG.info("Deleting project and security group for project: %s",
|
||||
project_id)
|
||||
|
||||
@@ -622,12 +622,12 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider):
|
||||
self.cleanup_default_secgroup(
|
||||
self.security_groups_admin_client, project_id)
|
||||
except lib_exc.NotFound:
|
||||
LOG.warning("failed to cleanup tenant %s's secgroup",
|
||||
LOG.warning("failed to cleanup project %s's secgroup",
|
||||
project_id)
|
||||
try:
|
||||
self.creds_client.delete_project(project_id)
|
||||
except lib_exc.NotFound:
|
||||
LOG.warning("tenant with id: %s not found for delete",
|
||||
LOG.warning("project with id: %s not found for delete",
|
||||
project_id)
|
||||
|
||||
self._creds = {}
|
||||
|
||||
@@ -688,7 +688,7 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||
sg_rule = sec_group_rules_client.create_security_group_rule(**ruleset)
|
||||
sg_rule = sg_rule['security_group_rule']
|
||||
|
||||
self.assertEqual(secgroup['tenant_id'], sg_rule['tenant_id'])
|
||||
self.assertEqual(secgroup['project_id'], sg_rule['project_id'])
|
||||
self.assertEqual(secgroup['id'], sg_rule['security_group_id'])
|
||||
|
||||
return sg_rule
|
||||
@@ -1170,7 +1170,7 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||
floatingip_kwargs = {
|
||||
'floating_network_id': external_network_id,
|
||||
'port_id': port_id,
|
||||
'tenant_id': server.get('project_id') or server['tenant_id'],
|
||||
'project_id': server.get('project_id') or server['tenant_id'],
|
||||
'fixed_ip_address': ip4,
|
||||
}
|
||||
if CONF.network.subnet_id:
|
||||
|
||||
@@ -735,11 +735,11 @@ class TestDynamicCredentialProvider(base.TestCase):
|
||||
@mock.patch('tempest.lib.common.rest_client.RestClient')
|
||||
def test_network_cleanup(self, MockRestClient):
|
||||
def side_effect(**args):
|
||||
return {"security_groups": [{"tenant_id": args['tenant_id'],
|
||||
return {"security_groups": [{"project_id": args['project_id'],
|
||||
"name": args['name'],
|
||||
"description": args['name'],
|
||||
"security_group_rules": [],
|
||||
"id": "sg-%s" % args['tenant_id']}]}
|
||||
"id": "sg-%s" % args['project_id']}]}
|
||||
creds = dynamic_creds.DynamicCredentialProvider(
|
||||
neutron_available=True,
|
||||
project_network_cidr='10.100.0.0/16', project_network_mask_bits=28,
|
||||
|
||||
Reference in New Issue
Block a user