Initalize pool_executor so close works

The close method, called by the context manager, blows up if
the Connection hasn't been used to upload any large swift objects,
because the pool executor object hasn't been created. Initialize
the variable so that the context manager works again.

Change-Id: I2647b211a02e4fbc8f4850c420249398eaee9e74
This commit is contained in:
Monty Taylor
2019-08-07 09:16:12 -04:00
parent e75113b593
commit 28d3134583
2 changed files with 10 additions and 0 deletions

View File

@@ -356,6 +356,7 @@ class Connection(six.with_metaclass(_meta.ConnectionMeta,
self._session = None
self._proxies = {}
self.__pool_executor = None
self.use_direct_get = use_direct_get
self.strict_mode = strict
# Call the _*CloudMixin constructors while we work on

View File

@@ -62,6 +62,15 @@ class TestShade(base.TestCase):
# keystoneauth1.loading.base.BaseLoader.load_from_options
self.cloud.connect_as(project_name='test_project')
def test_connect_as_context(self):
# Do initial auth/catalog steps
# TODO(mordred) This only tests the constructor steps. Discovery
# cache sharing is broken. We need to get discovery_cache option
# plumbed through
# keystoneauth1.loading.base.BaseLoader.load_from_options
with self.cloud.connect_as(project_name='test_project'):
pass
@mock.patch.object(connection.Connection, 'search_images')
def test_get_images(self, mock_search):
image1 = dict(id='123', name='mickey')