summaryrefslogtreecommitdiffstats
path: root/snaps/config/router.py
diff options
context:
space:
mode:
Diffstat (limited to 'snaps/config/router.py')
-rw-r--r--snaps/config/router.py53
1 files changed, 28 insertions, 25 deletions
diff --git a/snaps/config/router.py b/snaps/config/router.py
index f5bbbf0..6b03ad2 100644
--- a/snaps/config/router.py
+++ b/snaps/config/router.py
@@ -78,31 +78,34 @@ class RouterConfig(object):
out = dict()
ext_gw = dict()
- keystone = keystone_utils.keystone_client(os_creds)
-
- if self.name:
- out['name'] = self.name
- if self.project_name:
- project = keystone_utils.get_project(
- keystone=keystone, project_name=self.project_name)
- if project:
- out['tenant_id'] = project.id
- else:
- raise RouterConfigError(
- 'Could not find project ID for project named - ' +
- self.project_name)
- if self.admin_state_up is not None:
- out['admin_state_up'] = self.admin_state_up
- if self.external_gateway:
- ext_net = neutron_utils.get_network(
- neutron, keystone, network_name=self.external_gateway)
- if ext_net:
- ext_gw['network_id'] = ext_net.id
- out['external_gateway_info'] = ext_gw
- else:
- raise RouterConfigError(
- 'Could not find the external network named - ' +
- self.external_gateway)
+ session = keystone_utils.keystone_session(os_creds)
+ keystone = keystone_utils.keystone_client(os_creds, session)
+ try:
+ if self.name:
+ out['name'] = self.name
+ if self.project_name:
+ project = keystone_utils.get_project(
+ keystone=keystone, project_name=self.project_name)
+ if project:
+ out['tenant_id'] = project.id
+ else:
+ raise RouterConfigError(
+ 'Could not find project ID for project named - ' +
+ self.project_name)
+ if self.admin_state_up is not None:
+ out['admin_state_up'] = self.admin_state_up
+ if self.external_gateway:
+ ext_net = neutron_utils.get_network(
+ neutron, keystone, network_name=self.external_gateway)
+ if ext_net:
+ ext_gw['network_id'] = ext_net.id
+ out['external_gateway_info'] = ext_gw
+ else:
+ raise RouterConfigError(
+ 'Could not find the external network named - ' +
+ self.external_gateway)
+ finally:
+ keystone_utils.close_session(session)
return {'router': out}