Bug 1272702

Summary: [Docs] [Director] neutron-mechanism-drivers multiple value, deployement fail in 7.1
Product: Red Hat OpenStack Reporter: Cyril Lopez <cylopez>
Component: documentationAssignee: Martin Lopes <mlopes>
Status: CLOSED CURRENTRELEASE QA Contact: Dan Macpherson <dmacpher>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: adahms, cylopez, emacchi, mburns, morazi, rhel-osp-director-maint, yeylon
Target Milestone: gaKeywords: Documentation, Reopened
Target Release: 8.0 (Liberty)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-13 04:40:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Cyril Lopez 2015-10-17 19:31:19 UTC
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.

Comment 2 Mike Burns 2015-10-19 11:19:39 UTC
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?

Comment 3 Emilien Macchi 2015-12-01 17:35:45 UTC
This is not a bug, l2_population does not exist... It's 'l2population'.

Comment 4 Cyril Lopez 2015-12-01 17:47:41 UTC
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'

Comment 5 Andrew Dahms 2016-02-24 13:01:51 UTC
Assigning to Martin for review.

Comment 7 Martin Lopes 2016-03-01 03:27:25 UTC
Successfully tested osp7-kilo build

Comment 10 Dan Macpherson 2016-04-01 15:05:56 UTC
Fixed implemented in OSP 8 and OSD 7. Verifying this BZ.

Comment 11 Andrew Dahms 2016-04-13 04:40:36 UTC
This content is now live on the Customer Portal.

Closing.