Fix lb and delete policy not support 1.0 version

Change-Id: I8710d84736d384254619cfeedec3612161df81c7
Signed-off-by: Yuanbin.Chen <cybing4@gmail.com>
This commit is contained in:
Yuanbin.Chen 2018-02-08 15:56:52 +08:00
parent f143759f0f
commit a4de2b19eb
4 changed files with 26 additions and 23 deletions

View File

@ -132,11 +132,12 @@ class Registry(object):
def get_types(self):
"""Return a list of valid plugin types."""
return [
{
'name': name.split('-')[0] if '-' in name else name,
'version': name.split('-')[1] if '-' in name else '',
'support_status': pi.plugin.VERSIONS
}
for name, pi in self._registry.items()
]
types_support = []
for tn, ts in self._registry.items():
name = tn.split('-')[0] if '-' in tn else tn
version = tn.split('-')[1] if '-' in tn else ''
support = ts.plugin.VERSIONS[version] if version != '' else ''
pi = {version: support}
types_support.append({'name': name, 'version': version,
'support_status': pi})
return types_support

View File

@ -184,17 +184,17 @@ class TestEnvironment(base.SenlinTestCase):
def test_get_profile_types(self):
env = environment.Environment()
plugin1 = mock.Mock(VERSIONS={'k': 'v'})
plugin1 = mock.Mock(VERSIONS={'1.0': 'v'})
env.register_profile('foo-1.0', plugin1)
plugin2 = mock.Mock(VERSIONS={'k': 'v1'})
plugin2 = mock.Mock(VERSIONS={'1.2': 'v1'})
env.register_profile('bar-1.2', plugin2)
actual = env.get_profile_types()
self.assertIn(
{'name': 'foo', 'version': '1.0', 'support_status': {'k': 'v'}},
{'name': 'foo', 'version': '1.0', 'support_status': {'1.0': 'v'}},
actual)
self.assertIn(
{'name': 'bar', 'version': '1.2', 'support_status': {'k': 'v1'}},
{'name': 'bar', 'version': '1.2', 'support_status': {'1.2': 'v1'}},
actual)
def test_register_and_get_policy(self):
@ -211,17 +211,17 @@ class TestEnvironment(base.SenlinTestCase):
def test_get_policy_types(self):
env = environment.Environment()
plugin1 = mock.Mock(VERSIONS={'k': 'v'})
plugin1 = mock.Mock(VERSIONS={'0.1': 'v'})
env.register_policy('foo-0.1', plugin1)
plugin2 = mock.Mock(VERSIONS={'k': 'v1'})
env.register_policy('bar-0.2', plugin2)
plugin2 = mock.Mock(VERSIONS={'0.1': 'v1'})
env.register_policy('bar-0.1', plugin2)
actual = env.get_policy_types()
self.assertIn(
{'name': 'foo', 'version': '0.1', 'support_status': {'k': 'v'}},
{'name': 'foo', 'version': '0.1', 'support_status': {'0.1': 'v'}},
actual)
self.assertIn(
{'name': 'bar', 'version': '0.2', 'support_status': {'k': 'v1'}},
{'name': 'bar', 'version': '0.1', 'support_status': {'0.1': 'v1'}},
actual)
def test_register_and_get_driver_types(self):
@ -245,10 +245,10 @@ class TestEnvironment(base.SenlinTestCase):
actual = env.get_driver_types()
self.assertIn(
{'name': 'foo', 'version': '', 'support_status': {}},
{'name': 'foo', 'version': '', 'support_status': {'': ''}},
actual)
self.assertIn(
{'name': 'bar', 'version': '', 'support_status': {}},
{'name': 'bar', 'version': '', 'support_status': {'': ''}},
actual)
def test_register_and_get_endpoints(self):

View File

@ -200,22 +200,22 @@ class RegistryTest(base.SenlinTestCase):
def test_get_types(self):
reg = registry.Registry('GLOBAL', None)
plugin1 = mock.Mock(VERSIONS={'foo': 'bar'})
plugin1 = mock.Mock(VERSIONS={'1.0': 'bar'})
reg.register_plugin('FOO-1.0', plugin1)
plugin2 = mock.Mock(VERSIONS={'zoo': 'car'})
plugin2 = mock.Mock(VERSIONS={'1.1': 'car'})
reg.register_plugin('BAR-1.1', plugin2)
self.assertIn(
{
'name': 'FOO',
'version': '1.0',
'support_status': {'foo': 'bar'}
'support_status': {'1.0': 'bar'}
},
reg.get_types())
self.assertIn(
{
'name': 'BAR',
'version': '1.1',
'support_status': {'zoo': 'car'}
'support_status': {'1.1': 'car'}
},
reg.get_types())

View File

@ -50,9 +50,11 @@ senlin.profiles =
container.dockerinc.docker-1.0 = senlin.profiles.container.docker:DockerProfile
senlin.policies =
senlin.policy.deletion-1.0 = senlin.policies.deletion_policy:DeletionPolicy
senlin.policy.deletion-1.1 = senlin.policies.deletion_policy:DeletionPolicy
senlin.policy.scaling-1.0 = senlin.policies.scaling_policy:ScalingPolicy
senlin.policy.health-1.0 = senlin.policies.health_policy:HealthPolicy
senlin.policy.loadbalance-1.0 = senlin.policies.lb_policy:LoadBalancingPolicy
senlin.policy.loadbalance-1.1 = senlin.policies.lb_policy:LoadBalancingPolicy
senlin.policy.region_placement-1.0 = senlin.policies.region_placement:RegionPlacementPolicy
senlin.policy.zone_placement-1.0 = senlin.policies.zone_placement:ZonePlacementPolicy