Force driver provider configs to define pool attr
There is currently nothing forcing a driver's ProviderConfig to define a 'pools' attribute, yet the code clearly expects it to be defined (e.g., PoolWorker.getPoolConfig() method). Force this by defining an abstract property, which helps define the interface more clearly, too. Change-Id: I2d6a0ee98076540cc722835ab6b5c3a077f83edc
This commit is contained in:
parent
cf920b86b4
commit
2332724205
|
@ -725,6 +725,14 @@ class ProviderConfig(ConfigValue):
|
|||
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
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue