From 9e9e09590cce321f55996c1a31370ffdf28251b0 Mon Sep 17 00:00:00 2001 From: spisarski Date: Fri, 9 Mar 2018 14:42:34 -0700 Subject: Closing keystone sessions after done with them. By not closing all of the keystone sessions being created when running all of the tests, this may be the root cause to the IOError occasionally being observed: IOError: [Errno 24] Too many open files JIRA: SNAPS-285 Change-Id: I7fc7ab0c6cdd02f1ae32bb3ae4f121cb465d5693 Signed-off-by: spisarski --- snaps/config/router.py | 53 ++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 25 deletions(-) (limited to 'snaps/config/router.py') 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} -- cgit 1.2.3-korg