today I found the unit test case VPNPluginDbTestCase doesn't work as below error log shows.
I debug the code and find the reason, that's because the upstream submit I16b5e5b2 ( https://review.openstack.org/#/c/151375/7/neutron/services/provider_configuration.py ), it trys to read services_provider configrations items in neutron-{service}.conf file.
on the other hand, VPNPluginDbTestCase still try to override service_provider, so error 'Invalid: Driver neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver is not unique across providers' is throwed.
if not vpnaas_provider:
vpnaas_provider = (
constants.VPN +
':vpnaas:neutron_vpnaas.services.vpn.'
'service_drivers.ipsec.IPsecVPNDriver:default')
cfg.CONF.set_override('service_provider',
[vpnaas_provider],
'service_providers')
Traceback (most recent call last):
File "/bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/services/vpn/test_vpnaas_driver_plugin.py", line 47, in setUp
vpnaas_plugin=VPN_DRIVER_CLASS)
File "/bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/unit/db/vpn/test_db_vpnaas.py", line 437, in setUp
service_plugins=service_plugins
File "/bak/openstack/neutron-vpnaas/neutron_vpnaas/tests/base.py", line 53, in setUp
plugin, service_plugins, ext_mgr)
File "/bak/openstack/neutron/neutron/tests/unit/test_db_plugin.py", line 120, in setUp
self.api = router.APIRouter()
File "/bak/openstack/neutron/neutron/api/v2/router.py", line 74, in __init__
plugin = manager.NeutronManager.get_plugin()
File "/bak/openstack/neutron/neutron/manager.py", line 222, in get_plugin
return weakref.proxy(cls.get_instance().plugin)
File "/bak/openstack/neutron/neutron/manager.py", line 216, in get_instance
cls._create_instance()
File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 431, in inner
return f(*args, **kwargs)
File "/bak/openstack/neutron/neutron/manager.py", line 202, in _create_instance
cls._instance = cls()
File "/bak/openstack/neutron/neutron/manager.py", line 128, in __init__
self._load_service_plugins()
File "/bak/openstack/neutron/neutron/manager.py", line 175, in _load_service_plugins
provider)
File "/bak/openstack/neutron/neutron/manager.py", line 143, in _get_plugin_instance
return plugin_class()
File "/bak/openstack/neutron-vpnaas/neutron_vpnaas/services/vpn/plugin.py", line 44, in __init__
constants.VPN, self)
File "/bak/openstack/neutron/neutron/services/service_base.py", line 64, in load_drivers
service_type_manager = sdb.ServiceTypeManager.get_instance()
File "/bak/openstack/neutron/neutron/db/servicetype_db.py", line 41, in get_instance
cls._instance = cls()
File "/bak/openstack/neutron/neutron/db/servicetype_db.py", line 45, in __init__
self._load_conf()
File "/bak/openstack/neutron/neutron/db/servicetype_db.py", line 49, in _load_conf
pconf.parse_service_provider_opt())
File "/bak/openstack/neutron/neutron/services/provider_configuration.py", line 139, in __init__
self.add_provider(prov)
File "/bak/openstack/neutron/neutron/services/provider_configuration.py", line 160, in add_provider
self._ensure_driver_unique(provider['driver'])
File "/bak/openstack/neutron/neutron/services/provider_configuration.py", line 147, in _ensure_driver_unique
raise n_exc.Invalid(msg)
Invalid: Driver neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver is not unique across providers
Fix proposed to branch: master /review. openstack. org/154375
Review: https:/