diff options
Diffstat (limited to 'snaps/config/router.py')
-rw-r--r-- | snaps/config/router.py | 53 |
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} |