summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/create_router.py
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2018-02-26 09:51:45 -0700
committerspisarski <s.pisarski@cablelabs.com>2018-02-28 07:42:45 -0700
commit8a7e0ddf0ddc631a1271319cd97f43773012e3ca (patch)
treec57dfa6a18d4a6facd5afacf84578f008adbf2f4 /snaps/openstack/create_router.py
parent65f23fa8e2f0a6a402546229a321a5fea4bc2ffb (diff)
Ensure project for routers are handled properly.
Routers should be able to be created by admin users to other projects. Routers without admin users should only be able to create ones to their default project. JIRA: SNAPS-266 Change-Id: I5ecfbcc2ed94bbab211751da9521f3ec1d4ff66d Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/create_router.py')
-rw-r--r--snaps/openstack/create_router.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/snaps/openstack/create_router.py b/snaps/openstack/create_router.py
index f0ccb5d..50c0b28 100644
--- a/snaps/openstack/create_router.py
+++ b/snaps/openstack/create_router.py
@@ -43,6 +43,8 @@ class OpenStackRouter(OpenStackNetworkObject):
if not router_settings:
raise RouterCreationError('router_settings is required')
+ self.__keystone = None
+
self.router_settings = router_settings
# Attributes instantiated on create()
@@ -61,9 +63,13 @@ class OpenStackRouter(OpenStackNetworkObject):
"""
super(self.__class__, self).initialize()
+ self.__keystone = keystone_utils.keystone_client(self._os_creds)
+
try:
self.__router = neutron_utils.get_router(
- self._neutron, router_settings=self.router_settings)
+ self._neutron, self.__keystone,
+ router_settings=self.router_settings,
+ project_name=self._os_creds.project_name)
except Unauthorized as e:
logger.warn('Unable to lookup router with name %s - %s',
self.router_settings.name, e)
@@ -78,10 +84,9 @@ class OpenStackRouter(OpenStackNetworkObject):
raise RouterCreationError(
'Subnet not found with name ' + internal_subnet_name)
- keystone = keystone_utils.keystone_client(self._os_creds)
for port_setting in self.router_settings.port_settings:
port = neutron_utils.get_port(
- self._neutron, keystone, port_settings=port_setting,
+ self._neutron, self.__keystone, port_settings=port_setting,
project_name=self._os_creds.project_name)
if port:
self.__ports.append(port)
@@ -114,10 +119,9 @@ class OpenStackRouter(OpenStackNetworkObject):
raise RouterCreationError(
'Subnet not found with name ' + internal_subnet_name)
- keystone = keystone_utils.keystone_client(self._os_creds)
for port_setting in self.router_settings.port_settings:
port = neutron_utils.get_port(
- self._neutron, keystone, port_settings=port_setting,
+ self._neutron, self.__keystone, port_settings=port_setting,
project_name=self._os_creds.project_name)
logger.info(
'Retrieved port %s for router - %s', port_setting.name,