Bug 1271389

Summary: neutron-server fails to start when using short name (ml2) for core_plugin
Product: [Community] RDO Reporter: John Trowbridge <jtrowbri>
Component: rdo-managerAssignee: chris alfonso <calfonso>
Status: CLOSED UPSTREAM QA Contact: yeylon <yeylon>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: trunkCC: apevec, chrisw, dmsimard, hbrock, ihrachys, mburns, srevivo, yeylon
Target Milestone: ---   
Target Release: Liberty   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-10-20 13:14:15 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 John Trowbridge 2015-10-13 20:08:34 UTC
Description of problem:
If the driver short name (ml2) is specified for core_plugin in neutron.conf rather than the full driver path (neutron.plugins.ml2.plugin.Ml2Plugin) neutron-server will no start with the following error in the neutron-server.log: 

ERROR neutron ValueError: Empty module name.

Version-Release number of selected component (if applicable):
openstack-neutron-7.0.0.0-rc2.dev26.el7.centos.noarch.rpm

How reproducible:
100% with RDO-Manager where the short name is used for configuring the core_plugin.

Steps to Reproduce:
1. Deploy RDO-Manager following [1] and use the delorean current repo instead of current-passed-ci. 

[1] https://repos.fedorapeople.org/repos/openstack-m/rdo-manager-docs/liberty/ 

Actual results:
Overcloud will fail because neutron-server is unable to start, and neutron-server logs on the overcloud will contain the error:
ERROR neutron ValueError: Empty module name.

Expected results:
Overcloud deploys successfully.

Additional info:

Comment 1 Alan Pevec 2015-10-13 20:23:24 UTC
> openstack-neutron-7.0.0.0-rc2.dev26.el7.centos.noarch.rpm

that build looks ok, /usr/lib/python2.7/site-packages/neutron-7.0.0.0rc2.dev26-py2.7.egg-info/entry_points.txt has ml2 entry

Comment 2 John Trowbridge 2015-10-13 20:33:30 UTC
Some additional info:

This does not seem to reproduce on packstack, even with specifying the short name.

This does not happen on the undercloud, which has the exact same neutron version as the overcloud, and the same exact setting for core_plugin.

I checked `rpm -V python-neutron` on the overcloud to check if maybe the egginfo was messed up by overcloud install, but it returns nothing. Also, the entry_points.txt is there and has ml2 under the neutron.core_plugins.

Comment 3 John Trowbridge 2015-10-13 21:12:51 UTC
Further digging pointed to a kilo version for python-networking-cisco-2015.1.0-1.el7.noarch being installed in the overcloud image, and this package had redefined the ml2 plugin and stevedore choked on the dupe:

[root@overcloud-controller-0 heat-admin]# grep -R 'neutron.plugins.ml2.plugin:Ml2Plugin' /usr/lib/python2.7/site-packages/*
/usr/lib/python2.7/site-packages/networking_cisco-2015.1.0-py2.7.egg-info/entry_points.txt:ml2 = neutron.plugins.ml2.plugin:Ml2Plugin
/usr/lib/python2.7/site-packages/neutron-7.0.0.0rc2.dev24-py2.7.egg-info/entry_points.txt:ml2 = neutron.plugins.ml2.plugin:Ml2Plugin


Moving the bug to rdo-manager as I am not sure the best place to fix this right now.

Comment 4 Ihar Hrachyshka 2015-10-15 10:12:21 UTC
There is no Liberty compatible python-networking-cisco release so far, please remove the rpm.

Comment 5 John Trowbridge 2015-10-16 20:47:12 UTC
The issue is resolved by using the instructions in this docs patch
https://github.com/redhat-openstack/tripleo-docs/commit/26d63c1abf991b3a7938ab93af73ccb9fd7e4b03 to build the images, or by using the hosted images here: https://repos.fedorapeople.org/repos/openstack-m/rdo-images-centos-liberty/

Comment 6 Alan Pevec 2015-10-21 19:59:42 UTC
This was fixed upstream in master and stable/kilo branches https://review.openstack.org/211795 but upstream has not tagged 2015.1.1 yet.