Description of problem: The way the red hat packaging breaks apart the neutron software prevents ML2 drivers from working that depend on other plugin directories being present. For example, the Big Switch ML2 mechanism driver requires the Big Switch plugin directory to be present for some common code. Steps to Reproduce: 1.Install the neutron ML2 package. 2.Try to use the Big Switch mechanism driver. 3.It will fail since the Big Switch plugin directory is not present.
@Kevin, thanks for reporting the issue. We've already experienced several issues due to python code being split into multiple packages (f.e. see bug 1120146). The original idea to fix it was to merge all plugin packages back to python-neutron. But then we've realised that we don't want to see unrelated agents and their config files unless user explicitly requested them to be installed. Still, python code should not be split from python-neutron package, so plugin packages should not contain any site-packages/ contents. The good thing is that we've already merged all python files back to python-neutron as a fix for bug 1120146. The fix is already present in RHOSP 4 and RHOSP 5 builds (of course, general availability is subject to the next Z-stream release date). It was also fixed in RDO (Icehouse packages already passed CI level1, Havana is in progress; updates to public repos are, again, subject to the next repo update date).
Okay, so if I understand correctly, the python-neutron package will contain the full code base and the individual plugin packages will just contain the plugin configuration files and init scripts for the agents. Is that correct?
@Kevin, basically yes. Plus agent executables, if applicable. Is that solution ok for you?
What do you mean by agent executables in this case? For example, the Big Switch agent resides in the Big Switch plugins directory so it would be included in the python-neutron package.
@Kevin, some plugins have separate agent executables, f.e. for bigswitch it's neutron-restproxy-agent, for hyperv it's neutron-hyperv-agent. Those executables belong to corresponding plugin packages. As for the code in neutron/plugins, it all goes to python-neutron.
@Ihar, the Big Switch agent is in the plugin directory. So the executable you are referring to in the Big Switch case would just be the init script referencing it, right?
@Kevin, the agent code is left in python-neutron. The only thing that is moved to bigswitch plugin package is /usr/bin/neutron-restproxy-agent, which is just an executable to run agent's main().
That's great. Thanks
QA doesn't verify third party plugins, so moving it to CLOSED.