Update service plugins for Newton

OpenStack Newton removes lbaas (v1) support; switch to using v2
when deploying newton or later.

Change-Id: Ied28f27247af43896c9babd9143a60d281b8b5a0
This commit is contained in:
James Page 2016-10-12 21:48:25 +01:00
parent f5a375e9bc
commit 0057ad5f4c
2 changed files with 29 additions and 1 deletions

View File

@ -79,9 +79,19 @@ class NeutronAPIODLCharm(charms_openstack.charm.OpenStackCharm):
}
}
}
if self.release >= 'newton':
# NOTE: LBaaS v2 for >= newton
service_plugins = (
'router,firewall,vpnaas,metering,'
'neutron_lbaas.services.loadbalancer.'
'plugin.LoadBalancerPluginv2'
)
else:
service_plugins = 'router,firewall,lbaas,vpnaas,metering'
api_principle.configure_plugin(
neutron_plugin='odl',
core_plugin='neutron.plugins.ml2.plugin.Ml2Plugin',
neutron_plugin_config='/etc/neutron/plugins/ml2/ml2_conf.ini',
service_plugins='router,firewall,lbaas,vpnaas,metering',
service_plugins=service_plugins,
subordinate_configuration=inject_config)

View File

@ -66,3 +66,21 @@ class TestNeutronAPIODLCharm(Helper):
neutron_plugin_config='/etc/neutron/plugins/ml2/ml2_conf.ini',
service_plugins='router,firewall,lbaas,vpnaas,metering',
subordinate_configuration=config_dict)
def test_configure_plugin_newton(self):
principle_interface = mock.MagicMock()
self.patch_object(neutron_api_odl.ch_utils, 'os_release')
self.os_release.return_value = 'newton'
c = neutron_api_odl.NeutronAPIODLCharm()
c.configure_plugin(principle_interface)
config_dict = {
'neutron-api': {
'/etc/neutron/neutron.conf': {'sections': {'DEFAULT': []}}}}
principle_interface.configure_plugin.assert_called_once_with(
neutron_plugin='odl',
core_plugin='neutron.plugins.ml2.plugin.Ml2Plugin',
neutron_plugin_config='/etc/neutron/plugins/ml2/ml2_conf.ini',
service_plugins=('router,firewall,vpnaas,metering,'
'neutron_lbaas.services.loadbalancer.'
'plugin.LoadBalancerPluginv2'),
subordinate_configuration=config_dict)