Merge "Make manage_images a property of ProviderConfig"

This commit is contained in:
Zuul 2018-05-09 18:09:53 +00:00 committed by Gerrit Code Review
commit a45492c7a5
6 changed files with 25 additions and 7 deletions

View File

@ -440,7 +440,7 @@ class CleanupWorker(BaseWorker):
# (since this should be done regardless of the build
# state).
for provider in known_providers:
if not provider.driver.manage_images:
if not provider.manage_images:
# This provider doesn't manage images
continue
try:
@ -469,7 +469,7 @@ class CleanupWorker(BaseWorker):
continue
for provider in known_providers:
if not provider.driver.manage_images:
if not provider.manage_images:
# This provider doesn't manage images
continue
try:
@ -975,7 +975,7 @@ class UploadWorker(BaseWorker):
to providers, do the upload if they are available on the local disk.
'''
for provider in self._config.providers.values():
if not provider.driver.manage_images:
if not provider.manage_images:
continue
for image in provider.diskimages.values():
uploaded = False

View File

@ -207,7 +207,7 @@ class NodeRequestHandler(object, metaclass=abc.ABCMeta):
:returns: True if it is available, False otherwise.
'''
if self.provider.driver.manage_images:
if self.provider.manage_images:
for label in self.request.node_types:
if self.pool.labels[label].cloud_image:
if not self.manager.labelReady(self.pool.labels[label]):
@ -715,7 +715,6 @@ class ProviderConfig(ConfigValue, metaclass=abc.ABCMeta):
self.driver = Driver()
self.driver.name = provider.get('driver', 'openstack')
self.max_concurrency = provider.get('max-concurrency', -1)
self.driver.manage_images = False
def __repr__(self):
return "<Provider %s>" % self.name
@ -728,6 +727,14 @@ class ProviderConfig(ConfigValue, metaclass=abc.ABCMeta):
'''
pass
@property
@abc.abstractmethod
def manage_images(self):
'''
Return True if provider manages external images, False otherwise.
'''
pass
@abc.abstractmethod
def __eq__(self, other):
pass

View File

@ -107,6 +107,10 @@ class OpenStackProviderConfig(ProviderConfig):
def pools(self):
return self.__pools
@property
def manage_images(self):
return True
@staticmethod
def reset():
OpenStackProviderConfig.os_client_config = None
@ -119,7 +123,6 @@ class OpenStackProviderConfig(ProviderConfig):
self.cloud_config = self.os_client_config.get_one_cloud(**cloud_kwargs)
self.image_type = self.cloud_config.config['image_format']
self.driver.manage_images = True
self.region_name = self.provider.get('region-name')
self.rate = float(self.provider.get('rate', 1.0))
self.boot_timeout = self.provider.get('boot-timeout', 60)

View File

@ -50,6 +50,10 @@ class StaticProviderConfig(ProviderConfig):
def pools(self):
return self.__pools
@property
def manage_images(self):
return False
def load(self, config):
for pool in self.provider.get('pools', []):
pp = StaticPool()

View File

@ -882,7 +882,7 @@ class NodePool(threading.Thread):
ready in at least one provider. False otherwise.
'''
for pool in label.pools:
if not pool.provider.driver.manage_images:
if not pool.provider.manage_images:
# Provider doesn't manage images, assuming label is ready
return True
for pool_label in pool.labels.values():

View File

@ -39,6 +39,10 @@ class TestConfig(ProviderConfig):
def pools(self):
return self.__pools
@property
def manage_images(self):
return False
def load(self, newconfig):
self.labels = set()
for pool in self.provider.get('pools', []):