<div dir="ltr">Hi, Marios,<div><br></div><div>STF stands for 'service type framework'. It's the current way to dispatch calls to different drivers based on 'provider' attribute of the LBaaS service instance. Firewall and VPN implementations were not upstreamed as we want to move to Flavor Framework.</div>
<div><br></div><div>I think the flavor framework does allow the operator to expose vendor names if the operator chooses to.</div><div><br></div><div>Thanks,</div><div>Gary</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, May 29, 2014 at 5:38 AM, <a href="mailto:marios@redhat.com">marios@redhat.com</a> <span dir="ltr"><<a href="mailto:mandreou@redhat.com" target="_blank">mandreou@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">On 29/05/14 00:48, Eugene Nikanorov wrote:<br>
> Hi,<br>
><br>
> I have two questions that previously were briefly discussed. Both of them<br>
> still cause discussions within advanced services community, so I'd like to<br>
> make final clarification in this email thread.<br>
><br>
> 1. Usage of "Service Type Framework"<br>
> I think right now there is a consensus that letting user to choose a vendor<br>
> is not what neutron should do. To be more specific, having public<br>
> 'provider' attribute on a resource may create certain problems<br>
> for operators because it binds resource and implementation too tightly that<br>
> it can't be maintained without changing user configuration.<br>
> The question that was discussed is if it's ok to remove this public<br>
> attribute and still use the rest of framework?<br>
> I think the answer is yes: the binding between resource and implementing<br>
> driver is ok if it's read-only and visible only to admin. This still serves<br>
> as hint for dispatching requests to driver and also may help operator to<br>
> troubleshoot issues.<br>
> I'd like to hear other opinions on this because there are patches for vpn<br>
> and fwaas that use STF with the difference described above.<br>
<br>
</div>pardon my ignorance, I don't know what STF is. I missed the summit<br>
discussions ('provider attribute' on resources must have come up there).<br>
My take on the 'specific vendor' issue is that there isn't one, given<br>
the current proposal. From the discussion there I think there is a use<br>
case for a user saying 'i want a firewall from foo_vendor' and as you<br>
said it's just a specialised use-case of the flavor framework.<br>
<br>
Furthermore, right now the 'capabilities' for Flavors are very loosely<br>
defined (just key:value tags on Flavor resource). Why can't we just also<br>
define a 'vendor:foo' capability and use it for that purpose. I imagine<br>
I'm oversimplifying somewhere but would that not address the concerns?<br>
<br>
marios<br>
<div><div class="h5"><br>
><br>
> 2. Choosing implementation and backend<br>
> This topic was briefly touched at design session dedicated to flavors.<br>
><br>
> Current proposal that was discussed on advanced services meetings was to<br>
> employ 2-step scheduling as described in the following sample code:<br>
> <a href="https://review.openstack.org/#/c/83055/7/neutron/tests/unit/test_flavors.pyline" target="_blank">https://review.openstack.org/#/c/83055/7/neutron/tests/unit/test_flavors.pyline</a><br>
> 38-56<br>
><br>
> In my opinion the proposed way has the following benefits:<br>
> - it delegates actual backend choosing to a driver.<br>
> This way different vendors may not be required to agree on how to bind<br>
> resource to a backend or any kind of other common implementation stuff that<br>
> usually leads to lots of discussions.<br>
> - allows different configurable vendor-specific algorithms to be used when<br>
> binding resource to a backend<br>
> - some drivers don't have notion of a backend because external entities<br>
> manage backends for them<br>
><br>
> Another proposal is to have single-step scheduling where each driver<br>
> exposes the list of backends<br>
> and then scheduling just chooses the backend based on capabilities in the<br>
> flavor.<br>
><br>
> I'd like to better understand the benefits of the second approach (this is<br>
> all implementation so from user standpoint it doesn't make difference)<br>
><br>
> So please add your opinions on those questions.<br>
><br>
> My suggestion is also to have a short 30 min meeting sometime this or next<br>
> week to finalize those questions. There are several patches and blueprints<br>
> that depend on them.<br>
><br>
> Thanks,<br>
> Eugene.<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div>