<div dir="ltr">Hi Pattabi,<div><br></div><div style>Y<font face="arial, helvetica, sans-serif">es, option 4 is about the architecture proposed in that patch on review.</font></div><div style><font face="arial, helvetica, sans-serif">Device inventory is also</font> planned. I've already filed corresponding blueprint. In fact, there was already a bp about that ("device management"), but I decided to file the new one with more appropriate name.</div>
<div style><br></div><div style>> <span style="color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:15px">Also, can the vendor driver implement the logic of device selection as against the Plugin Driver/Device Scheduler choosing the device ?</span></div>
<div style><font face="arial, helvetica, sans-serif" color="#000000">Sure. I think that could be done in plugin driver the first option (plugin driver is vendor-specific just like device driver).</font></div><div style><font face="arial, helvetica, sans-serif" color="#000000"><br>
</font></div><div style><font face="arial, helvetica, sans-serif" color="#000000">> </font><span style="color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:15px">Also, to get the end to end vendor driver integration, need support for exception handling on the Agent side so that if there are any exceptions/errors happen while configuring the device, the device driver can propagate it to the Agent and Plugin.</span></div>
<div style><font face="arial, helvetica, sans-serif" color="#000000">That will be done in two ways: first of all PENDING_ statuses will be implemented so each object receives PENDING_ status and then final status after driver/agent acknowledges the operation. Need to think about how to store possible errors.</font></div>
<div style><font face="arial, helvetica, sans-serif" color="#000000"><br></font></div><div style><font face="arial, helvetica, sans-serif" color="#000000">Thanks,</font></div><div style><font face="arial, helvetica, sans-serif" color="#000000">Eugene.</font></div>
<div style><font face="arial, helvetica, sans-serif" color="#000000"><br></font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 29, 2013 at 10:25 PM, Pattabi Ayyasami <span dir="ltr"><<a href="mailto:pattabi@brocade.com" target="_blank">pattabi@brocade.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">Thanks Eugene for putting together the various options.  Option 4 (and to a certain extent, Option 3) should work us for integrating the Device driver.  Is Option 4 is similar/same as per the <a href="https://review.openstack.org/" target="_blank">https://review.openstack.org/#/c/20579</a> with the Plugin Driver added?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Also, we talked about the Device Inventory Plugin Module to explicitly add devices to the system (with a separate DB Schema). Will this be supported? Also, can the vendor driver implement the logic of device selection as against the Plugin Driver/Device Scheduler choosing the device ?<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">Also, to get the end to end vendor driver integration, need support for exception handling on the Agent side so that if there are any exceptions/errors happen while configuring the device, the device driver can propagate it to the Agent and Plugin.<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">Pattabi<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"><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""> Eugene Nikanorov [mailto:<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>] <br>
<b>Sent:</b> Sunday, April 28, 2013 11:37 PM</span></p><div class="im"><br><b>To:</b> OpenStack Development Mailing List<br></div><b>Cc:</b> Youcef Laribi<br><b>Subject:</b> [openstack-dev] Fwd: [Quantum][LBaaS] LBaaS development plan for Havana<u></u><u></u><p>
</p><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Folks, <u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Sorry, I forgot to 'reply all'. <u></u><u></u></p>
</div><div><p class="MsoNormal">Wiki page (<a href="https://wiki.openstack.org/wiki/Quantum/LBaaS/PluginDrivers" target="_blank"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">https://wiki.openstack.org/wiki/Quantum/LBaaS/PluginDrivers</span></a> ) contains some possible ways of interacting between various components of lbaas.<u></u><u></u></p>
</div><div><p class="MsoNormal">Youcef, your model #5 is also possible, feel free to add it to the page. (Btw, I used <a href="http://websequencediagrams.com" target="_blank">websequencediagrams.com</a> to make pictures) <u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">As for asynchronocity: I implied that 1st, 2nd, and 4th approach would use rpc 'cast' method, which is non-blocking. Agent then will call some plugin-side callback to acknowledge status of the object being CRUDed. <u></u><u></u></p>
</div><div><p class="MsoNormal">As for rest-proxy case (I hope I've chosen the right name for what Radware wants) - I think that it could be implemented just in the same way. If not then it would be responsibility of the driver or agent to provide that async behavior.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">In fact, I've been thinking a while about async drivers and came to conclusion that it's an overhead, because once we start talking to some in-quantum component via rpc it becomes in-quantum agent. <u></u><u></u></p>
</div><div><p class="MsoNormal">That has 2 consequences:<u></u><u></u></p></div><div><p class="MsoNormal">1) if you have such async driver, you should not use separate agent (or it would be plugin->(rpc) driver->(rpc) agent, which is an overhead)<u></u><u></u></p>
</div><div><p class="MsoNormal">2) you can't use main advantage of agents: load distribution across different hosts.<u></u><u></u></p></div><div><p class="MsoNormal">So currently I think we could be ok with 'sync' drivers until they do not wait for corresponding agent.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Thanks,<u></u><u></u></p></div><div><p class="MsoNormal">Eugene.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p><div>
<p class="MsoNormal" style="margin-bottom:12.0pt">---------- Forwarded message ----------<br>From: <b>Eugene Nikanorov</b> <<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>><br>Date: Fri, Apr 26, 2013 at 4:15 PM<br>
Subject: Re: [Quantum][LBaaS] LBaaS development plan for Havana<br>To: Youcef Laribi <<a href="mailto:Youcef.Laribi@eu.citrix.com" target="_blank">Youcef.Laribi@eu.citrix.com</a>><br><br><u></u><u></u></p><div><p class="MsoNormal">
Hi Youcef,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I've added a page with workflows for cases that were described in the plan: <a href="https://wiki.openstack.org/wiki/Quantum/LBaaS/PluginDrivers" target="_blank">https://wiki.openstack.org/wiki/Quantum/LBaaS/PluginDrivers</a><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regarding the box descriptions - I was hoping their meaning didn't change :) It's only that we now may have drivers at both plugin and agent side.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Thanks,<u></u><u></u></p></div><div><p class="MsoNormal">Eugene.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div>
</div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">On Thu, Apr 25, 2013 at 11:22 PM, Youcef Laribi <<a href="mailto:Youcef.Laribi@eu.citrix.com" target="_blank">Youcef.Laribi@eu.citrix.com</a>> wrote:<u></u><u></u></p>
<div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks Eugene. Could you for clarity add to the document a brief description of what each box in the diagram does, and what is the workflow of a user request for each of the 4 drivers you have in the picture?</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Youcef</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
<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""> Eugene Nikanorov [mailto:<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>] </span><u></u><u></u></p>
<div><p class="MsoNormal"><b>Sent:</b> Thursday, April 25, 2013 9:24 AM<br><b>To:</b> Sumit Naiksatam<u></u><u></u></p></div><p class="MsoNormal"><b>Cc:</b> OpenStack Development Mailing List; Ilya Shakhat; Avishay Balderman; Mark McClain; Youcef Laribi; Salvatore Orlando<br>
<b>Subject:</b> Re: [Quantum][LBaaS] LBaaS development plan for Havana<u></u><u></u></p><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">Sumit,<u></u><u></u></p><div><p class="MsoNormal">No, thanks for reminding! need to think how it will fit into the plan (at which step it would be easier to implement)<u></u><u></u></p>
</div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Youcef, drivers are only vendor-specific in my diagram (both plugin-side drivers or agent-side drivers).<u></u><u></u></p></div><div><p class="MsoNormal">
Device Inventory or scehduling don't belong to drivers, but drivers could rely on them.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Thanks,<u></u><u></u></p></div>
<div><p class="MsoNormal">Eugene.<u></u><u></u></p></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> <u></u><u></u></p><div><p class="MsoNormal">On Thu, Apr 25, 2013 at 8:09 PM, Sumit Naiksatam <<a href="mailto:sumitnaiksatam@gmail.com" target="_blank">sumitnaiksatam@gmail.com</a>> wrote:<u></u><u></u></p>
<p class="MsoNormal">Hi Eugene,<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Thanks. During the summit we discussed the notion of a logical loadbalancer/device which we later moved to calling a loadbalancer service instance (one or more tenant, as desired). Is this capture somewhere in the scheme of things?<u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="color:#888888"> </span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="color:#888888">~Sumit.</span><u></u><u></u></p><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">
 <u></u><u></u></p><div><p class="MsoNormal">On Thu, Apr 25, 2013 at 8:38 AM, Eugene Nikanorov <<a href="mailto:enikanorov@mirantis.com" target="_blank">enikanorov@mirantis.com</a>> wrote:<u></u><u></u></p><div><p class="MsoNormal">
Hi folks,<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I've prepared a list of a major action items needed for futher development of multivendor and production-ready LBaaS: <a href="https://wiki.openstack.org/wiki/Quantum/LBaaS/HavanaPlan" target="_blank">https://wiki.openstack.org/wiki/Quantum/LBaaS/HavanaPlan</a><u></u><u></u></p>
</div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I'd be glad to here your feedback about it. <u></u><u></u></p></div><div><p class="MsoNormal">I think we need to start discussing these items in more details.<u></u><u></u></p>
</div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Aside from this list I imply that vendors will create their drivers choosing whatever architecture is reasonable for their solution, while quantum provides convenient way of integrating them.<u></u><u></u></p>
</div><div><p class="MsoNormal">Also, as you can see, some of action items (like service insertion or device inventory) have scope beyond LBaaS so I expect folks who are interested in other services to participate in corresponding discussions.<u></u><u></u></p>
</div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Thanks,<u></u><u></u></p></div><div><p class="MsoNormal">Eugene.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div>
</div></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div><p class="MsoNormal">
<u></u> <u></u></p></div></div></div></div></div></div></blockquote></div><br></div>