<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 20 June 2017 at 00:09, Kevin Benton <span dir="ltr"><<a href="mailto:kevin@benton.pub" target="_blank">kevin@benton.pub</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail-h5"><div></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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);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.<span style="color:rgb(34,34,34)"> </span></blockquote></div></div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail-h5"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<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></blockquote></div></div></div></div></div></blockquote><div><br></div><div>I think we're missing the the fundamental premise behind the introduction of this map, which is that the addition of plugins to this list is done only on the basis of the fact that the plugin being added introduces functionality that's orthogonal to core plugins, and as such should work with any, and not depend on internals of the core plugin implementation.<br></div><div><br></div><div>If something does break, it should be treated as a bug, rather than allowing overloading this, because that's goes against the main rationale for it being hard-coded.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail-h5"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<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_api<wbr>.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_api<wbr>.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/plu<wbr>gins/opencontrail/networking_<wbr>bgpvpn/contrail.py#L36</a><br>
<br>
Regards,<br>
Édouard.<br>
<div class="gmail-m_1803296845583543456m_-8661411595778283724HOEnZb"><div class="gmail-m_1803296845583543456m_-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></div></div>
<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.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br></div></div>