diff options
author | spisarski <s.pisarski@cablelabs.com> | 2018-03-09 14:42:34 -0700 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2018-03-12 08:28:45 -0600 |
commit | 9e9e09590cce321f55996c1a31370ffdf28251b0 (patch) | |
tree | a0e031d0365604f4a299ad8f748fe10d09a75a8a /snaps/openstack/create_stack.py | |
parent | fb0ab37c323717ca10ac3f3bda24ae390635495e (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.py | 72 |
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) |