diff options
Diffstat (limited to 'snaps/config')
-rw-r--r-- | snaps/config/network.py | 37 | ||||
-rw-r--r-- | snaps/config/router.py | 53 |
2 files changed, 53 insertions, 37 deletions
diff --git a/snaps/config/network.py b/snaps/config/network.py index 5f18c6b..8148c61 100644 --- a/snaps/config/network.py +++ b/snaps/config/network.py @@ -98,11 +98,15 @@ class NetworkConfig(object): return self.project_id else: if self.project_name: - keystone = keystone_utils.keystone_client(os_creds) - project = keystone_utils.get_project( - keystone=keystone, project_name=self.project_name) - if project: - return project.id + session = keystone_utils.keystone_session(os_creds) + keystone = keystone_utils.keystone_client(os_creds, session) + try: + project = keystone_utils.get_project( + keystone=keystone, project_name=self.project_name) + if project: + return project.id + finally: + keystone_utils.close_session(session) return None @@ -255,9 +259,13 @@ class SubnetConfig(object): if self.name: out['name'] = self.name if self.project_name: - keystone = keystone_utils.keystone_client(os_creds) - project = keystone_utils.get_project( - keystone=keystone, project_name=self.project_name) + session = keystone_utils.keystone_session(os_creds) + keystone = keystone_utils.keystone_client(os_creds, session) + try: + project = keystone_utils.get_project( + keystone=keystone, project_name=self.project_name) + finally: + keystone_utils.close_session(session) project_id = None if project: project_id = project.id @@ -441,10 +449,15 @@ class PortConfig(object): out = dict() - keystone = keystone_utils.keystone_client(os_creds) - network = neutron_utils.get_network( - neutron, keystone, network_name=self.network_name, - project_name=self.project_name) + session = keystone_utils.keystone_session(os_creds) + keystone = keystone_utils.keystone_client(os_creds, session) + try: + network = neutron_utils.get_network( + neutron, keystone, network_name=self.network_name, + project_name=self.project_name) + finally: + keystone_utils.close_session(session) + if not network: raise PortConfigError( 'Cannot locate network with name - ' + self.network_name 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} |