<div dir="ltr">Hi Sam,<div><br></div><div>I've looked over the document, couple of notes:</div><div><br></div><div>1) In order to allow real multiple 'vips' per pool feature, we need the listener concept.</div>
<div>It's not just a different tcp port, but also a protocol, so session persistence and all ssl-related parameters should move to listener.</div><div><br></div><div>2)<font face="arial, helvetica, sans-serif"> <span style="background-color:transparent;color:rgb(0,0,0);white-space:pre-wrap">ProviderResourceAssociation - remains on the instance object (our instance object is VIP) as a relation attribute. </span></font></div>
<div><font face="arial, helvetica, sans-serif"><span style="background-color:transparent;color:rgb(0,0,0);white-space:pre-wrap">Though it is removed from public API, so it could not be specified on creation. </span></font></div>
<div><font face="arial, helvetica, sans-serif"><span style="background-color:transparent;color:rgb(0,0,0);white-space:pre-wrap">Remember provider is needed for REST call dispatching. The value of provider attribute (e.g. </span></font><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">ProviderResourceAssociation) is result of scheduling.</span></div>
<div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">3) As we discussed before, pool->vip relation will be removed, but pool reuse by different vips (e.g. different backends) will be forbidden for implementation simplicity, because this is definitely not a priority right now. </span></div>
<div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">I think it's a fair limitation that can be removed later.</span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap"><br>
</span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">On workflows:</span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">WFs #2 and #3 are problematic. First off, sharing the same IP is not possible for other vip for the following reason:</span></div>
<div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">vip is created (with new model) with flavor (or provider) and scheduled to a provider (and then to a particular backend), doing so for 2 vips makes address reuse impossible if we want to maintain logical API, or otherwise we would need to expose implementation details that will allow us to connect two vips to the same backend.</span></div>
<div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">On the open discussion questions:</span></div>
<div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">I think most of them are resolved by following existing API expectations about status fields, etc.</span></div><div><font color="#000000" face="arial, helvetica, sans-serif"><span style="white-space:pre-wrap">Main thing that allows to go with existing API expectations is the notion of 'root object'.</span></font></div>
<div><font color="#000000" face="arial, helvetica, sans-serif"><span style="white-space:pre-wrap">Root object is the object which status and admin_state show real operability of the configuration. While from implementation perspective it is a mounting point between logical config and the backend.</span></font></div>
<div><font face="arial, helvetica, sans-serif"><span style="background-color:transparent;color:rgb(0,0,0);white-space:pre-wrap"><br></span></font></div><div class="gmail_extra">The real challenge of model #3 is ability to share pools between different VIPs, e.g. between different flavors/providers/backends. </div>
<div class="gmail_extra">User may be unaware of it, but it requires really complex logic to handle statistics, healthchecks, etc. </div><div class="gmail_extra">I think while me may leave this ability at object model and API level, we will limit it, as I said previously.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">Eugene.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 9:06 PM, Samuel Bercovici <span dir="ltr"><<a href="mailto:SamuelB@radware.com" target="_blank">SamuelB@radware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I have added to the wiki page:
<a href="https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion#1.1_Turning_existing_model_to_logical_model" target="_blank">
https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion#1.1_Turning_existing_model_to_logical_model</a> that points to a document that includes the current model + L7 + SSL.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Please review.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">                -Sam.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Samuel Bercovici
<br>
<b>Sent:</b> Monday, February 24, 2014 7:36 PM</span></p><div class=""><br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
</div><b>Cc:</b> Samuel Bercovici<br>
<b>Subject:</b> RE: [openstack-dev] [Neutron][LBaaS] Object Model discussion<u></u><u></u><p></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I also agree that the model should be pure logical.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I think that the existing model is almost correct but the pool should be made pure logical. This means that the vip
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1f497d">пр</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">pool relationships needs also to become any to any.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Eugene, has rightfully pointed that the current “state” management will not handle such relationship well.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">To me this means that the “state” management is broken and not the model.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I will propose an update to the state management in the next few days.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">                -Sam.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Mark McClain [<a href="mailto:mmcclain@yahoo-inc.com" target="_blank">mailto:mmcclain@yahoo-inc.com</a>]
<br>
<b>Sent:</b> Monday, February 24, 2014 6:32 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Subject:</b> Re: [openstack-dev] [Neutron][LBaaS] Object Model discussion<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Feb 21, 2014, at 1:29 PM, Jay Pipes <<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica","sans-serif"">I disagree on this point. I believe that the more implementation details<br>
bleed into the API, the harder the API is to evolve and improve, and the<br>
less flexible the API becomes.<br>
<br>
I'd personally love to see the next version of the LBaaS API be a<br>
complete breakaway from any implementation specifics and refocus itself<br>
to be a control plane API that is written from the perspective of the<br>
*user* of a load balancing service, not the perspective of developers of<br>
load balancer products.</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">I agree with Jay.  We the API needs to be user centric and free of implementation details.  One of my concerns I’ve voiced in some of the IRC discussions is that too many implementation details are exposed to the user.<u></u><u></u></p>

</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">mark<u></u><u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div><br></div></div>