Merge "Make manage_images a property of ProviderConfig"
This commit is contained in:
@@ -440,7 +440,7 @@ class CleanupWorker(BaseWorker):
|
|||||||
# (since this should be done regardless of the build
|
# (since this should be done regardless of the build
|
||||||
# state).
|
# state).
|
||||||
for provider in known_providers:
|
for provider in known_providers:
|
||||||
if not provider.driver.manage_images:
|
if not provider.manage_images:
|
||||||
# This provider doesn't manage images
|
# This provider doesn't manage images
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
@@ -469,7 +469,7 @@ class CleanupWorker(BaseWorker):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
for provider in known_providers:
|
for provider in known_providers:
|
||||||
if not provider.driver.manage_images:
|
if not provider.manage_images:
|
||||||
# This provider doesn't manage images
|
# This provider doesn't manage images
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
@@ -975,7 +975,7 @@ class UploadWorker(BaseWorker):
|
|||||||
to providers, do the upload if they are available on the local disk.
|
to providers, do the upload if they are available on the local disk.
|
||||||
'''
|
'''
|
||||||
for provider in self._config.providers.values():
|
for provider in self._config.providers.values():
|
||||||
if not provider.driver.manage_images:
|
if not provider.manage_images:
|
||||||
continue
|
continue
|
||||||
for image in provider.diskimages.values():
|
for image in provider.diskimages.values():
|
||||||
uploaded = False
|
uploaded = False
|
||||||
|
@@ -207,7 +207,7 @@ class NodeRequestHandler(object, metaclass=abc.ABCMeta):
|
|||||||
|
|
||||||
:returns: True if it is available, False otherwise.
|
: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:
|
for label in self.request.node_types:
|
||||||
if self.pool.labels[label].cloud_image:
|
if self.pool.labels[label].cloud_image:
|
||||||
if not self.manager.labelReady(self.pool.labels[label]):
|
if not self.manager.labelReady(self.pool.labels[label]):
|
||||||
@@ -715,7 +715,6 @@ class ProviderConfig(ConfigValue, metaclass=abc.ABCMeta):
|
|||||||
self.driver = Driver()
|
self.driver = Driver()
|
||||||
self.driver.name = provider.get('driver', 'openstack')
|
self.driver.name = provider.get('driver', 'openstack')
|
||||||
self.max_concurrency = provider.get('max-concurrency', -1)
|
self.max_concurrency = provider.get('max-concurrency', -1)
|
||||||
self.driver.manage_images = False
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<Provider %s>" % self.name
|
return "<Provider %s>" % self.name
|
||||||
@@ -728,6 +727,14 @@ class ProviderConfig(ConfigValue, metaclass=abc.ABCMeta):
|
|||||||
'''
|
'''
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
@abc.abstractmethod
|
||||||
|
def manage_images(self):
|
||||||
|
'''
|
||||||
|
Return True if provider manages external images, False otherwise.
|
||||||
|
'''
|
||||||
|
pass
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
pass
|
pass
|
||||||
|
@@ -107,6 +107,10 @@ class OpenStackProviderConfig(ProviderConfig):
|
|||||||
def pools(self):
|
def pools(self):
|
||||||
return self.__pools
|
return self.__pools
|
||||||
|
|
||||||
|
@property
|
||||||
|
def manage_images(self):
|
||||||
|
return True
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def reset():
|
def reset():
|
||||||
OpenStackProviderConfig.os_client_config = None
|
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.cloud_config = self.os_client_config.get_one_cloud(**cloud_kwargs)
|
||||||
|
|
||||||
self.image_type = self.cloud_config.config['image_format']
|
self.image_type = self.cloud_config.config['image_format']
|
||||||
self.driver.manage_images = True
|
|
||||||
self.region_name = self.provider.get('region-name')
|
self.region_name = self.provider.get('region-name')
|
||||||
self.rate = float(self.provider.get('rate', 1.0))
|
self.rate = float(self.provider.get('rate', 1.0))
|
||||||
self.boot_timeout = self.provider.get('boot-timeout', 60)
|
self.boot_timeout = self.provider.get('boot-timeout', 60)
|
||||||
|
@@ -50,6 +50,10 @@ class StaticProviderConfig(ProviderConfig):
|
|||||||
def pools(self):
|
def pools(self):
|
||||||
return self.__pools
|
return self.__pools
|
||||||
|
|
||||||
|
@property
|
||||||
|
def manage_images(self):
|
||||||
|
return False
|
||||||
|
|
||||||
def load(self, config):
|
def load(self, config):
|
||||||
for pool in self.provider.get('pools', []):
|
for pool in self.provider.get('pools', []):
|
||||||
pp = StaticPool()
|
pp = StaticPool()
|
||||||
|
@@ -882,7 +882,7 @@ class NodePool(threading.Thread):
|
|||||||
ready in at least one provider. False otherwise.
|
ready in at least one provider. False otherwise.
|
||||||
'''
|
'''
|
||||||
for pool in label.pools:
|
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
|
# Provider doesn't manage images, assuming label is ready
|
||||||
return True
|
return True
|
||||||
for pool_label in pool.labels.values():
|
for pool_label in pool.labels.values():
|
||||||
|
@@ -39,6 +39,10 @@ class TestConfig(ProviderConfig):
|
|||||||
def pools(self):
|
def pools(self):
|
||||||
return self.__pools
|
return self.__pools
|
||||||
|
|
||||||
|
@property
|
||||||
|
def manage_images(self):
|
||||||
|
return False
|
||||||
|
|
||||||
def load(self, newconfig):
|
def load(self, newconfig):
|
||||||
self.labels = set()
|
self.labels = set()
|
||||||
for pool in self.provider.get('pools', []):
|
for pool in self.provider.get('pools', []):
|
||||||
|
Reference in New Issue
Block a user