Merge "Force driver provider configs to define pool attr"

This commit is contained in:
Zuul 2018-05-09 18:09:29 +00:00 committed by Gerrit Code Review
commit 6afa523b82
4 changed files with 32 additions and 3 deletions

View File

@ -720,6 +720,14 @@ class ProviderConfig(ConfigValue, metaclass=abc.ABCMeta):
def __repr__(self):
return "<Provider %s>" % self.name
@property
@abc.abstractmethod
def pools(self):
'''
Return a dict of ConfigPool-based objects, indexed by pool name.
'''
pass
@abc.abstractmethod
def __eq__(self, other):
pass

View File

@ -79,6 +79,10 @@ class ProviderPool(ConfigPool):
class OpenStackProviderConfig(ProviderConfig):
os_client_config = None
def __init__(self, *args, **kwargs):
self.__pools = {}
super().__init__(*args, **kwargs)
def __eq__(self, other):
if (other.cloud_config != self.cloud_config or
other.pools != self.pools or
@ -99,6 +103,10 @@ class OpenStackProviderConfig(ProviderConfig):
cloud_kwargs[arg] = self.provider[arg]
return cloud_kwargs
@property
def pools(self):
return self.__pools
@staticmethod
def reset():
OpenStackProviderConfig.os_client_config = None
@ -174,7 +182,6 @@ class OpenStackProviderConfig(ProviderConfig):
default_port_mapping.get(i.connection_type, 22))
self.cloud_images[i.name] = i
self.pools = {}
for pool in self.provider.get('pools', []):
pp = ProviderPool()
pp.name = pool['name']

View File

@ -33,6 +33,10 @@ class StaticPool(ConfigPool):
class StaticProviderConfig(ProviderConfig):
def __init__(self, *args, **kwargs):
self.__pools = {}
super().__init__(*args, **kwargs)
def __eq__(self, other):
if other.pools != self.pools:
return False
@ -42,8 +46,11 @@ class StaticProviderConfig(ProviderConfig):
def reset():
pass
@property
def pools(self):
return self.__pools
def load(self, config):
self.pools = {}
for pool in self.provider.get('pools', []):
pp = StaticPool()
pp.name = pool['name']

View File

@ -24,6 +24,10 @@ class TestPool(ConfigPool):
class TestConfig(ProviderConfig):
def __init__(self, *args, **kwargs):
self.__pools = {}
super().__init__(*args, **kwargs)
def __eq__(self, other):
return self.name == other.name
@ -31,8 +35,11 @@ class TestConfig(ProviderConfig):
def reset():
pass
@property
def pools(self):
return self.__pools
def load(self, newconfig):
self.pools = {}
self.labels = set()
for pool in self.provider.get('pools', []):
testpool = TestPool()