summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/create_stack.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/create_stack.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/create_stack.py')
-rw-r--r--snaps/openstack/create_stack.py72
1 files changed, 39 insertions, 33 deletions
diff --git a/snaps/openstack/create_stack.py b/snaps/openstack/create_stack.py
index aff10b7..12ce602 100644
--- a/snaps/openstack/create_stack.py
+++ b/snaps/openstack/create_stack.py
@@ -29,7 +29,7 @@ from snaps.openstack.create_volume import OpenStackVolume
from snaps.openstack.create_volume_type import OpenStackVolumeType
from snaps.openstack.openstack_creator import OpenStackCloudObject
from snaps.openstack.utils import (
- nova_utils, settings_utils, glance_utils, cinder_utils, keystone_utils)
+ nova_utils, settings_utils, glance_utils, cinder_utils)
from snaps.openstack.create_network import OpenStackNetwork
from snaps.openstack.utils import heat_utils, neutron_utils
@@ -73,12 +73,28 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
self.__stack = None
self.__heat_cli = None
+ self.__neutron = None
+ self.__nova = None
+ self.__glance = None
+ self.__cinder = None
+
def initialize(self):
"""
Loads the existing heat stack
:return: The Stack domain object or None
"""
- self.__heat_cli = heat_utils.heat_client(self._os_creds)
+ super(self.__class__, self).initialize()
+
+ self.__neutron = neutron_utils.neutron_client(
+ self._os_creds, self._os_session)
+ self.__nova = nova_utils.nova_client(self._os_creds, self._os_session)
+ self.__glance = glance_utils.glance_client(
+ self._os_creds, self._os_session)
+ self.__cinder = cinder_utils.cinder_client(
+ self._os_creds, self._os_session)
+
+ self.__heat_cli = heat_utils.heat_client(
+ self._os_creds, self._os_session)
self.__stack = heat_utils.get_stack(
self.__heat_cli, stack_settings=self.stack_settings)
if self.__stack:
@@ -152,6 +168,13 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
self.__stack = None
+ self.__neutron.httpclient.session.session.close()
+ self.__nova.client.session.session.close()
+ self.__glance.http_client.session.session.close()
+ self.__cinder.client.session.session.close()
+
+ super(self.__class__, self).clean()
+
def get_stack(self):
"""
Returns the domain Stack object as it was populated when create() was
@@ -219,15 +242,13 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
:return: list() of OpenStackNetwork objects
"""
- neutron = neutron_utils.neutron_client(self._os_creds)
-
out = list()
stack_networks = heat_utils.get_stack_networks(
- self.__heat_cli, neutron, self.__stack)
+ self.__heat_cli, self.__neutron, self.__stack)
for stack_network in stack_networks:
net_settings = settings_utils.create_network_config(
- neutron, stack_network)
+ self.__neutron, stack_network)
net_creator = OpenStackNetwork(self._os_creds, net_settings)
out.append(net_creator)
net_creator.initialize()
@@ -241,15 +262,13 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
:return: list() of OpenStackNetwork objects
"""
- neutron = neutron_utils.neutron_client(self._os_creds)
-
out = list()
stack_security_groups = heat_utils.get_stack_security_groups(
- self.__heat_cli, neutron, self.__stack)
+ self.__heat_cli, self.__neutron, self.__stack)
for stack_security_group in stack_security_groups:
settings = settings_utils.create_security_group_config(
- neutron, stack_security_group)
+ self.__neutron, stack_security_group)
creator = OpenStackSecurityGroup(self._os_creds, settings)
out.append(creator)
creator.initialize()
@@ -263,15 +282,13 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
:return: list() of OpenStackRouter objects
"""
- neutron = neutron_utils.neutron_client(self._os_creds)
-
out = list()
stack_routers = heat_utils.get_stack_routers(
- self.__heat_cli, neutron, self.__stack)
+ self.__heat_cli, self.__neutron, self.__stack)
for routers in stack_routers:
settings = settings_utils.create_router_config(
- neutron, routers)
+ self.__neutron, routers)
creator = OpenStackRouter(self._os_creds, settings)
out.append(creator)
creator.initialize()
@@ -287,21 +304,16 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
out = list()
- nova = nova_utils.nova_client(self._os_creds)
- keystone = keystone_utils.keystone_client(self._os_creds)
- neutron = neutron_utils.neutron_client(self._os_creds)
stack_servers = heat_utils.get_stack_servers(
- self.__heat_cli, nova, neutron, keystone, self.__stack,
- self._os_creds.project_name)
-
- glance = glance_utils.glance_client(self._os_creds)
+ self.__heat_cli, self.__nova, self.__neutron, self._keystone,
+ self.__stack, self._os_creds.project_name)
for stack_server in stack_servers:
vm_inst_settings = settings_utils.create_vm_inst_config(
- nova, keystone, neutron, stack_server,
+ self.__nova, self._keystone, self.__neutron, stack_server,
self._os_creds.project_name)
image_settings = settings_utils.determine_image_config(
- glance, stack_server, self.image_settings)
+ self.__glance, stack_server, self.image_settings)
keypair_settings = settings_utils.determine_keypair_config(
self.__heat_cli, self.__stack, stack_server,
keypair_settings=self.keypair_settings,
@@ -322,10 +334,8 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
"""
out = list()
- cinder = cinder_utils.cinder_client(self._os_creds)
-
volumes = heat_utils.get_stack_volumes(
- self.__heat_cli, cinder, self.__stack)
+ self.__heat_cli, self.__cinder, self.__stack)
for volume in volumes:
settings = settings_utils.create_volume_config(volume)
@@ -348,10 +358,8 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
"""
out = list()
- cinder = cinder_utils.cinder_client(self._os_creds)
-
vol_types = heat_utils.get_stack_volume_types(
- self.__heat_cli, cinder, self.__stack)
+ self.__heat_cli, self.__cinder, self.__stack)
for volume in vol_types:
settings = settings_utils.create_volume_type_config(volume)
@@ -375,10 +383,9 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
"""
out = list()
- nova = nova_utils.nova_client(self._os_creds)
keypairs = heat_utils.get_stack_keypairs(
- self.__heat_cli, nova, self.__stack)
+ self.__heat_cli, self.__nova, self.__stack)
for keypair in keypairs:
settings = settings_utils.create_keypair_config(
@@ -403,10 +410,9 @@ class OpenStackHeatStack(OpenStackCloudObject, object):
"""
out = list()
- nova = nova_utils.nova_client(self._os_creds)
flavors = heat_utils.get_stack_flavors(
- self.__heat_cli, nova, self.__stack)
+ self.__heat_cli, self.__nova, self.__stack)
for flavor in flavors:
settings = settings_utils.create_flavor_config(flavor)