Merge "builder: do not configure provider that doesn't manage images"

This commit is contained in:
Zuul 2018-07-21 00:03:36 +00:00 committed by Gerrit Code Review
commit 63d49b1881
2 changed files with 10 additions and 3 deletions

View File

@ -537,7 +537,8 @@ class CleanupWorker(BaseWorker):
self._checkForZooKeeperChanges(new_config)
provider_manager.ProviderManager.reconfigure(self._config, new_config,
self._zk,
use_taskmanager=False)
use_taskmanager=False,
only_image_manager=True)
self._config = new_config
self._cleanup()
@ -880,7 +881,8 @@ class UploadWorker(BaseWorker):
self._checkForZooKeeperChanges(new_config)
provider_manager.ProviderManager.reconfigure(self._config, new_config,
self._zk,
use_taskmanager=False)
use_taskmanager=False,
only_image_manager=True)
self._config = new_config
def _uploadImage(self, build_id, upload_id, image_name, images, provider,

View File

@ -30,7 +30,8 @@ class ProviderManager(object):
log = logging.getLogger("nodepool.ProviderManager")
@staticmethod
def reconfigure(old_config, new_config, zk_conn, use_taskmanager=True):
def reconfigure(old_config, new_config, zk_conn, use_taskmanager=True,
only_image_manager=False):
'''
Reconfigure the provider managers on any configuration changes.
@ -41,9 +42,13 @@ class ProviderManager(object):
:param Config new_config: The newly read configuration.
:param ZooKeeper zk_conn: A ZooKeeper connection object.
:param bool use_taskmanager: If True, use a task manager.
:param bool only_image_manager: If True, skip manager that do not
manage images. This is used by the builder process.
'''
stop_managers = []
for p in new_config.providers.values():
if only_image_manager and not p.manage_images:
continue
oldmanager = None
if old_config:
oldmanager = old_config.provider_managers.get(p.name)