Description of problem: Is written in Appendix H. Deployment Parameters : The mechanism drivers for the Neutron tenant network. Defaults to "openvswitch". To specify multiple values, use a comma separated string 'openvswitch,l2_population' But if i use openvswitch,l2_population, in 7.1 neutron can't start. This value work in 7.0 Version-Release number of selected component (if applicable): openstack-neutron-common-2015.1.1-6.el7ost.noarch openstack-neutron-ml2-2015.1.1-6.el7ost.noarch openstack-neutron-2015.1.1-6.el7ost.noarch openstack-neutron-openvswitch-2015.1.1-6.el7ost.noarch How reproducible: Install a overcloud in 7.1 with --neutron-mechanism-drivers 'openvswitch,l2_population' Steps to Reproduce: 1. Install undercloud 7.1 2. Deploy overcloud 7.1 with --neutron-mechanism-drivers 'openvswitch,l2_population' Actual results: Stack failed with status: Resource CREATE failed: Error: resources.ControllerNodesPostDeployment.resources.ControllerOvercloudServicesDeployment_Step5.resources[0]: Deployment to server failed: deploy_status_code: Deployment exited with non-zero status code: 6 heat deployment-output-show a1afd94d-d4e7-441b-89c4-7e89110e49a8 deploy_stderr Warning: Scope(Class[Keystone]): Execution of db_sync does not depend on $enabled anymore. Please use sync_db instead. Warning: Scope(Class[Glance::Registry]): Execution of db_sync does not depend on $manage_service or $enabled anymore. Please use sync_db instead. Warning: Scope(Class[Nova::Api]): The conductor_workers parameter is deprecated and has no effect. Use workers parameter of nova::conductor class instead. Warning: Scope(Class[Nova::Vncproxy::Common]): Could not look up qualified variable '::nova::compute::vncproxy_host'; class ::nova::compute has not been evaluated Warning: Scope(Class[Nova::Vncproxy::Common]): Could not look up qualified variable '::nova::compute::vncproxy_protocol'; class ::nova::compute has not been evaluated Warning: Scope(Class[Nova::Vncproxy::Common]): Could not look up qualified variable '::nova::compute::vncproxy_port'; class ::nova::compute has not been evaluated Warning: Scope(Class[Nova::Vncproxy::Common]): Could not look up qualified variable '::nova::compute::vncproxy_path'; class ::nova::compute has not been evaluated Warning: Scope(Class[Concat::Setup]): concat::setup is deprecated as a public API of the concat module and should no longer be directly included in the manifest. Error: systemctl start neutron-server && sleep 5s && systemctl stop neutron-server returned 1 instead of one of [0] Error: /Stage[main]/Main/Exec[neutron-server-start-wait-stop]/returns: change from notrun to 0 failed: systemctl start neutron-server && sleep 5s && systemctl stop neutron-server returned 1 instead of one of [0] Warning: /Stage[main]/Main/Pacemaker::Resource::Service[neutron-server]/Pacemaker::Resource::Systemd[neutron-server]/Pcmk_resource[neutron-server]: Skipping because of failed dependencies Warning: /Stage[main]/Main/Pacemaker::Constraint::Base[keystone-to-neutron-server-constraint]/Exec[Creating order constraint keystone-to-neutron-server-constraint]: Skipping because of failed dependencies Warning: /Stage[main]/Main/Pacemaker::Constraint::Base[neutron-server-to-neutron-ovs-cleanup-constraint]/Exec[Creating order constraint neutron-server-to-neutron-ovs-cleanup-constraint]: Skipping because of failed dependencies Neutron log on controller 0 in debug mode : 2015-10-17 15:10:43.126 25646 ERROR neutron.common.config [-] Unable to load neutron from configuration file /usr/share/neutron/api-paste.ini. 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config Traceback (most recent call last): 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/common/config.py", line 227, in load_paste_app 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config app = deploy.loadapp("config:%s" % config_path, name=app_name) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return loadobj(APP, uri, name=name, **kw) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return context.create() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return self.object_type.invoke(self) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config **context.local_conf) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config val = callable(*args, **kw) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/urlmap.py", line 25, in urlmap_factory 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config app = loader.get_app(app_name, global_conf=global_conf) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config name=name, global_conf=global_conf).create() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return self.object_type.invoke(self) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config **context.local_conf) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config val = callable(*args, **kw) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/auth.py", line 71, in pipeline_factory 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config app = loader.get_app(pipeline[-1]) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config name=name, global_conf=global_conf).create() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return self.object_type.invoke(self) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return fix_call(context.object, context.global_conf, **context.local_conf) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config val = callable(*args, **kw) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 71, in factory 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return cls(**local_config) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 75, in __init__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config plugin = manager.NeutronManager.get_plugin() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 222, in get_plugin 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return weakref.proxy(cls.get_instance().plugin) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 216, in get_instance 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config cls._create_instance() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 445, in inner 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return f(*args, **kwargs) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 202, in _create_instance 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config cls._instance = cls() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 117, in __init__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config plugin_provider) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 143, in _get_plugin_instance 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return plugin_class() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py", line 137, in __init__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config self.mechanism_manager = managers.MechanismManager() 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py", line 276, in __init__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config name_order=True) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 56, in __init__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config self._init_plugins(extensions) 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 112, in _init_plugins 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config self.extensions = [self[n] for n in self._names] 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 283, in __getitem__ 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config return self._extensions_by_name[name] 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config KeyError: 'l2_population' 2015-10-17 15:10:43.126 25646 TRACE neutron.common.config 2015-10-17 15:10:43.131 25646 ERROR neutron.service [-] Unrecoverable error: please check log for details. 2015-10-17 15:10:43.131 25646 TRACE neutron.service Traceback (most recent call last): 2015-10-17 15:10:43.131 25646 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 103, in serve_wsgi 2015-10-17 15:10:43.131 25646 TRACE neutron.service service.start() 2015-10-17 15:10:43.131 25646 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 74, in start 2015-10-17 15:10:43.131 25646 TRACE neutron.service self.wsgi_app = _run_wsgi(self.app_name) 2015-10-17 15:10:43.131 25646 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 169, in _run_wsgi 2015-10-17 15:10:43.131 25646 TRACE neutron.service app = config.load_paste_app(app_name) 2015-10-17 15:10:43.131 25646 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/common/config.py", line 234, in load_paste_app 2015-10-17 15:10:43.131 25646 TRACE neutron.service raise RuntimeError(msg) 2015-10-17 15:10:43.131 25646 TRACE neutron.service RuntimeError: Unable to load neutron from configuration file /usr/share/neutron/api-paste.ini. 2015-10-17 15:10:43.131 25646 TRACE neutron.service If i change in /etc/neutron/plugins/ml2/ml2_conf.ini: from mechanism_drivers =openvswitch,l2_population to mechanism_drivers =openvswitch neutron start.
Not sure why this was tagged docs in the summary, it sounds like functional bug to me. I think you said this, but to be perfectly clear: Does the same config file work in 7.0 bug fail in 7.1? Do the values get set the same in the config file in both versions?
This is not a bug, l2_population does not exist... It's 'l2population'.
So we have still a bug in the documentation : Appendix I. Deployment Parameters [...] --neutron-mechanism-drivers [NEUTRON_MECHANISM_DRIVERS] The mechanism drivers for the Neutron tenant network. Defaults to "openvswitch". To specify multiple values, use a comma separated string 'openvswitch,l2_population'
Assigning to Martin for review.
Successfully tested osp7-kilo build
Fixed implemented in OSP 8 and OSD 7. Verifying this BZ.
This content is now live on the Customer Portal. Closing.