From 97aa69617f64d40ac35ebf26eec432f8a0b7d296 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 23 Jun 2018 08:31:47 -0500 Subject: [PATCH] Add task manager parameter to Connection TaskManager can be overridden but Connection doesn't currently expose this in the constructor. Change-Id: Iaa17fb40fd2e56eb60d3c3ed227ad82089ce8506 --- openstack/connection.py | 15 +++++++++++++-- .../task-manager-parameter-c6606653532248f2.yaml | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/task-manager-parameter-c6606653532248f2.yaml diff --git a/openstack/connection.py b/openstack/connection.py index ffbebfafc..86cc33c54 100644 --- a/openstack/connection.py +++ b/openstack/connection.py @@ -168,7 +168,7 @@ from openstack import config as _config from openstack.config import cloud_region from openstack import exceptions from openstack import service_description -from openstack import task_manager +from openstack import task_manager as _task_manager __all__ = [ 'from_config', @@ -222,6 +222,7 @@ class Connection(six.with_metaclass(_meta.ConnectionMeta, extra_services=None, strict=False, use_direct_get=False, + task_manager=None, **kwargs): """Create a connection to a cloud. @@ -263,6 +264,15 @@ class Connection(six.with_metaclass(_meta.ConnectionMeta, :class:`~openstack.service_description.ServiceDescription` objects describing services that openstacksdk otherwise does not know about. + :param bool use_direct_get: + For get methods, make specific REST calls for server-side + filtering instead of making list calls and filtering client-side. + Default false. + :param task_manager: + Task Manager to handle the execution of remote REST calls. + Defaults to None which causes a direct-action Task Manager to be + used. + :type manager: :class:`~openstack.task_manager.TaskManager` :param kwargs: If a config is not provided, the rest of the parameters provided are assumed to be arguments to be passed to the CloudRegion contructor. @@ -295,7 +305,8 @@ class Connection(six.with_metaclass(_meta.ConnectionMeta, load_envvars=cloud is not None, **kwargs) - self.task_manager = task_manager.TaskManager(self.config.full_name) + self.task_manager = task_manager or _task_manager.TaskManager( + self.config.full_name) self._session = None self._proxies = {} diff --git a/releasenotes/notes/task-manager-parameter-c6606653532248f2.yaml b/releasenotes/notes/task-manager-parameter-c6606653532248f2.yaml new file mode 100644 index 000000000..e1e2c4b5b --- /dev/null +++ b/releasenotes/notes/task-manager-parameter-c6606653532248f2.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + A new ``task_manager`` parameter to ``Connection`` has been added for + passing a TaskManager object. This was present in shade and is used by + nodepool, but was missing from the Connection constructor.