<div dir="ltr">The issue is mainly developer resources. Everyone currently working upstream doesn't have the bandwidth to keep adding/reviewing the layers of interfaces to make the DB optional that go untested. (None of the projects that would use them run a CI system that reports results on Neutron patches.)<div><br></div><div>I think we can certainly accept patches to do the things you are proposing, but there is no guarantee that it won't regress to being DB-dependent until there is something reporting results back telling us when it breaks. </div><div><br></div><div>So it's not that the community is against non-DB core plugins, it's just that the people developing those plugins don't participate in the community to ensure they work.</div><div><br></div><div>Cheers</div><div><br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Mon, Jun 19, 2017 at 2:15 AM, Édouard Thuleau <span dir="ltr"><<a href="mailto:edouard.thuleau@gmail.com" target="_blank">edouard.thuleau@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Oops, sent too fast, sorry. I try again.<br>
<br>
Hi,<br>
<br>
Since Mitaka release, a default service plugins list is loaded when Neutron<br>
server starts [1]. That list is not editable and was extended with few services<br>
[2]. But all of them rely on the Neutron DB model.<br>
<br>
If a core driver is not based on the ML2 core plugin framework or not based on<br>
the 'neutron.db.models_v2' class, all that service plugins will not work.<br>
<br>
So my first question is Does Neutron still support core plugin not based on ML2<br>
or 'neutron.db.models_v2' class?<br>
<br>
If yes, I would like to propose two solutions:<br>
- permits core plugin to overload the service plugin class by it's own<br>
implementation and continuing to use the actual Neutron db based services as<br>
default.<br>
- modifying all default plugin service to use service plugin driver<br>
framework [3], and set the actual Neutron db based implementation as<br>
default driver for services. That permits to core drivers not based on the<br>
Neutron DB to specify a driver. We can see that solution was adopted in the<br>
networking-bgpvpn project, where can find two abstract driver classes, one for<br>
core driver based on Neutron DB model [4] and one used by core driver not based<br>
on the DB [5] as the Contrail driver [6].<br>
<span><br>
[1] <a href="https://github.com/openstack/neutron/commit/aadf2f30f84dff3d85f380a7ff4e16dbbb0c6bb0#diff-9169a6595980d19b2649d5bedfff05ce" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>eutron/commit/aadf2f30f84dff3d<wbr>85f380a7ff4e16dbbb0c6bb0#diff-<wbr>9169a6595980d19b2649d5bedfff05<wbr>ce</a><br>
[2] <a href="https://github.com/openstack/neutron/blob/master/neutron/plugins/common/constants.py#L43" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>eutron/blob/master/neutron/plu<wbr>gins/common/constants.py#L43</a><br>
</span>[3] <a href="https://github.com/openstack/neutron/blob/master/neutron/services/service_base.py#L27" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>eutron/blob/master/neutron/ser<wbr>vices/service_base.py#L27</a><br>
[4] <a href="https://github.com/openstack/networking-bgpvpn/blob/master/networking_bgpvpn/neutron/services/service_drivers/driver_api.py#L226" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>etworking-bgpvpn/blob/master/n<wbr>etworking_bgpvpn/neutron/servi<wbr>ces/service_drivers/driver_<wbr>api.py#L226</a><br>
[5] <a href="https://github.com/openstack/networking-bgpvpn/blob/master/networking_bgpvpn/neutron/services/service_drivers/driver_api.py#L23" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>etworking-bgpvpn/blob/master/n<wbr>etworking_bgpvpn/neutron/servi<wbr>ces/service_drivers/driver_<wbr>api.py#L23</a><br>
[6] <a href="https://github.com/Juniper/contrail-neutron-plugin/blob/master/neutron_plugin_contrail/plugins/opencontrail/networking_bgpvpn/contrail.py#L36" rel="noreferrer" target="_blank">https://github.com/Juniper/con<wbr>trail-neutron-plugin/blob/mast<wbr>er/neutron_plugin_contrail/<wbr>plugins/opencontrail/networkin<wbr>g_bgpvpn/contrail.py#L36</a><br>
<br>
Regards,<br>
Édouard.<br>
<div class="m_-8661411595778283724HOEnZb"><div class="m_-8661411595778283724h5"><br>
On Mon, Jun 19, 2017 at 10:47 AM, Édouard Thuleau<br>
<<a href="mailto:edouard.thuleau@gmail.com" target="_blank">edouard.thuleau@gmail.com</a>> wrote:<br>
> Hi,<br>
> Since Mitaka release [1], a default service plugins list is loaded<br>
> when Neutron server starts. That list is not editable and was extended<br>
> with few services [2]. But none of th<br>
><br>
> [1] <a href="https://github.com/openstack/neutron/commit/aadf2f30f84dff3d85f380a7ff4e16dbbb0c6bb0#diff-9169a6595980d19b2649d5bedfff05ce" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>eutron/commit/aadf2f30f84dff3d<wbr>85f380a7ff4e16dbbb0c6bb0#diff-<wbr>9169a6595980d19b2649d5bedfff05<wbr>ce</a><br>
> [2] <a href="https://github.com/openstack/neutron/blob/master/neutron/plugins/common/constants.py#L43" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>eutron/blob/master/neutron/plu<wbr>gins/common/constants.py#L43</a><br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</div></div></blockquote></div><br></div></div>