summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/openstack_creator.py
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2018-03-09 14:42:34 -0700
committerspisarski <s.pisarski@cablelabs.com>2018-03-12 08:28:45 -0600
commit9e9e09590cce321f55996c1a31370ffdf28251b0 (patch)
treea0e031d0365604f4a299ad8f748fe10d09a75a8a /snaps/openstack/openstack_creator.py
parentfb0ab37c323717ca10ac3f3bda24ae390635495e (diff)
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 <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/openstack_creator.py')
-rw-r--r--snaps/openstack/openstack_creator.py42
1 files changed, 19 insertions, 23 deletions
diff --git a/snaps/openstack/openstack_creator.py b/snaps/openstack/openstack_creator.py
index cf741f3..9bd099b 100644
--- a/snaps/openstack/openstack_creator.py
+++ b/snaps/openstack/openstack_creator.py
@@ -30,15 +30,20 @@ class OpenStackCloudObject(CloudObject):
:param os_creds: the OpenStack credentials object
"""
self._os_creds = os_creds
+ self._os_session = None
+ self._keystone = None
def initialize(self):
- raise NotImplementedError('Do not override abstract method')
+ self._os_session = keystone_utils.keystone_session(self._os_creds)
+ self._keystone = keystone_utils.keystone_client(
+ self._os_creds, session=self._os_session)
def create(self):
raise NotImplementedError('Do not override abstract method')
def clean(self):
- raise NotImplementedError('Do not override abstract method')
+ if self._os_session:
+ keystone_utils.close_session(self._os_session)
class OpenStackComputeObject(OpenStackCloudObject):
@@ -55,14 +60,12 @@ class OpenStackComputeObject(OpenStackCloudObject):
self._nova = None
def initialize(self):
- self._nova = nova_utils.nova_client(self._os_creds)
+ super(OpenStackComputeObject, self).initialize()
+ self._nova = nova_utils.nova_client(self._os_creds, self._os_session)
def create(self):
raise NotImplementedError('Do not override abstract method')
- def clean(self):
- raise NotImplementedError('Do not override abstract method')
-
class OpenStackNetworkObject(OpenStackCloudObject):
"""
@@ -78,14 +81,13 @@ class OpenStackNetworkObject(OpenStackCloudObject):
self._neutron = None
def initialize(self):
- self._neutron = neutron_utils.neutron_client(self._os_creds)
+ super(OpenStackNetworkObject, self).initialize()
+ self._neutron = neutron_utils.neutron_client(
+ self._os_creds, self._os_session)
def create(self):
raise NotImplementedError('Do not override abstract method')
- def clean(self):
- raise NotImplementedError('Do not override abstract method')
-
class OpenStackIdentityObject(OpenStackCloudObject):
"""
@@ -98,17 +100,13 @@ class OpenStackIdentityObject(OpenStackCloudObject):
:param os_creds: the OpenStack credentials object
"""
super(OpenStackIdentityObject, self).__init__(os_creds)
- self._keystone = None
def initialize(self):
- self._keystone = keystone_utils.keystone_client(self._os_creds)
+ super(OpenStackIdentityObject, self).initialize()
def create(self):
raise NotImplementedError('Do not override abstract method')
- def clean(self):
- raise NotImplementedError('Do not override abstract method')
-
class OpenStackVolumeObject(OpenStackCloudObject):
"""
@@ -124,14 +122,13 @@ class OpenStackVolumeObject(OpenStackCloudObject):
self._cinder = None
def initialize(self):
- self._cinder = cinder_utils.cinder_client(self._os_creds)
+ super(OpenStackVolumeObject, self).initialize()
+ self._cinder = cinder_utils.cinder_client(
+ self._os_creds, self._os_session)
def create(self):
raise NotImplementedError('Do not override abstract method')
- def clean(self):
- raise NotImplementedError('Do not override abstract method')
-
class OpenStackMagnumObject(OpenStackCloudObject):
"""
@@ -147,10 +144,9 @@ class OpenStackMagnumObject(OpenStackCloudObject):
self._magnum = None
def initialize(self):
- self._magnum = magnum_utils.magnum_client(self._os_creds)
+ super(OpenStackMagnumObject, self).initialize()
+ self._magnum = magnum_utils.magnum_client(
+ self._os_creds, self._os_session)
def create(self):
raise NotImplementedError('Do not override abstract method')
-
- def clean(self):
- raise NotImplementedError('Do not override abstract method')