<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Also please note that the interface still allows for adding shared support. It’s not just in the first implementation.<div class=""><br class=""></div><div class="">Thanks,</div><div class="">doug</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 4, 2015, at 5:15 PM, Phillip Toohill <<a href="mailto:phillip.toohill@RACKSPACE.COM" class="">phillip.toohill@RACKSPACE.COM</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">Sharing/reusing pools is a planned future feature. We are currently trying to work towards getting something released and having shared pools would extend that timeline to not meet our expectations. </div>
<div class=""><br class="">
</div>
<span id="OLK_SRC_BODY_SECTION" class="">
<div style="font-family: Calibri; font-size: 11pt; text-align: left; border-width: 1pt medium medium; border-style: solid none none; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223);" class="">
<span style="font-weight:bold" class="">From: </span>Vijay Venkatachalam <<a href="mailto:Vijay.Venkatachalam@citrix.com" class="">Vijay.Venkatachalam@citrix.com</a>><br class="">
<span style="font-weight:bold" class="">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" class="">openstack-dev@lists.openstack.org</a>><br class="">
<span style="font-weight:bold" class="">Date: </span>Wednesday, February 4, 2015 12:19 PM<br class="">
<span style="font-weight:bold" class="">To: </span>"<a href="mailto:dougwig@parkside.io" class="">dougwig@parkside.io</a>" <<a href="mailto:dougwig@parkside.io" class="">dougwig@parkside.io</a>>, "OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" class="">openstack-dev@lists.openstack.org</a>><br class="">
<span style="font-weight:bold" class="">Subject: </span>Re: [openstack-dev] [neutron][lbaas] Can entity calls be made to driver when entities get associated/disassociated with root entity?<br class="">
</div>
<div class=""><br class="">
</div>
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40" class="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)" class="">
<style class=""><!--
/* Font Definitions */
@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div lang="EN-US" link="blue" vlink="purple" class="">
<div class="WordSection1"><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">Thanks Doug.
<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">My apologies for the delayed reply.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">The change is merged, so replying here.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">It is a welcome change in one way, there is always a root entity now in perspective while creating any entity.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">Listener is created with loadbalancer and pool is created with listener.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">The problem itself is eliminated because there is no DEFERRED stage.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">But, this restricts pool in one listener. Basically reusing of a pools across listeners and loadbalancers is not possible now.
<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">The use case of creating both a HTTPS vip and HTTP vip for the same pool is lost.
<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">Basically, a user who will need that, should create 2 pools with the same members and manage them. Is that right?<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">Thanks,<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class="">Vijay V.<o:p class=""></o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div><div class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); " class=""><o:p class=""> </o:p></span></div>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt" class="">
<div class="">
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in" class=""><div class="MsoNormal"><b class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif; " class="">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif; " class=""> Doug Wiegley [<a href="mailto:dougwig@parksidesoftware.com" class="">mailto:dougwig@parksidesoftware.com</a>]
<br class="">
<b class="">Sent:</b> Tuesday, February 3, 2015 10:03 PM<br class="">
<b class="">To:</b> OpenStack Development Mailing List (not for usage questions)<br class="">
<b class="">Subject:</b> Re: [openstack-dev] [neutron][lbaas] Can entity calls be made to driver when entities get associated/disassociated with root entity?<o:p class=""></o:p></span></div>
</div>
</div><div class="MsoNormal"><o:p class=""> </o:p></div>
<div class=""><div class="MsoNormal"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class="">I’d recommend taking a look at Brandon’s review: </span><a href="https://review.openstack.org/#/c/144834/" target="_blank" class=""><span style="font-size: 10pt; font-family: Helvetica, sans-serif; " class="">https://review.openstack.org/#/c/144834/</span></a><o:p class=""></o:p></div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class=""><o:p class=""> </o:p></span></p>
</div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class="">which aims to simplify exactly what you’re describing. Please leave feedback there.<o:p class=""></o:p></span></p>
</div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class=""><o:p class=""> </o:p></span></p>
</div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class="">Thanks,<o:p class=""></o:p></span></p>
</div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class="">doug<o:p class=""></o:p></span></p>
</div>
<div class=""><p class="MsoNormal" style="line-height:14.65pt"><span style="font-size: 10pt; font-family: Helvetica, sans-serif; color: rgb(80, 0, 80); " class=""><o:p class=""> </o:p></span></p>
</div>
</div>
<div class=""><div class="MsoNormal"><o:p class=""> </o:p></div>
<div class=""><div class="MsoNormal">On Tue, Feb 3, 2015 at 7:13 AM, Vijay Venkatachalam <<a href="mailto:Vijay.Venkatachalam@citrix.com" target="_blank" class="">Vijay.Venkatachalam@citrix.com</a>> wrote:<o:p class=""></o:p></div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt" class="" type="cite">
<div class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Hi:</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">In OpenStack neutron lbaas implementation, when entities are created/updated by the user, they might not be associated with the root entity, which is
loadbalancer. </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Since root entity has the driver information, the driver cannot be called by lbaas plugin during these operations by user.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Such entities are set in DEFFERED status until the entity is associated with root entity.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">During this association operation (listener created with pool), the driver api is called for the current operation (listener create); and the driver
is expected to perform the original operation (pool create) along with the current operation (listener create).
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">This leads to complex handling at the driver, I think it will be better for the lbaas plugin to call the original operation (pool create) driver API
in addition to the current operation (listener create) API during the association operation.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">That is the summary, please read on to understand the situation in detail.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Let’s take the example of pool create in driver.</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><div class=""><span style="color:#2E75B6" class="">a. A pool create operation will not translate to a pool create api in the driver. There is a pool create in the driver API but that is never called today.
</span><o:p class=""></o:p></div><div class=""><span style="color:#2E75B6" class="">b. When a listener is created with loadbalancer and pool, the driver’s listener create api is called and the driver is expected to create both pool and listener.
</span><o:p class=""></o:p></div><div class=""><span style="color:#2E75B6" class="">c. When a listener is first created without loadbalancer but with a pool, the call does not reach driver. Later when the listener is updated with loadbalancer id, the drivers listener update API is called and the driver
is expected to create both pool and listener.</span><o:p class=""></o:p></div><div class=""><span style="color:#2E75B6" class="">d. When a listener configured with pool and loadbalancer is updated with new pool id, the driver’s listener update api is called. The driver is expected to delete the original pool that was associated, create the new pool and
also update the listener</span><o:p class=""></o:p></div><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">As you can see this is leading to a quite a bit of handling in the driver code. This makes driver code complex.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">How about handling this logic in lbaas plugin and it can call the “natural” functions that were deferred.
</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Whenever an entity is going from a DEFERRED to ACTIVE/CREATE status (through whichever workflow) the plugin can call the CREATE pool function of the
driver.</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Whenever an entity is going from an ACTIVE/CREATED to DEFERRED status (through whichever workflow) the plugin can call the DELETE pool function of the
driver.</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class=""> </span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Thanks,</span><o:p class=""></o:p></p><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#2E75B6" class="">Vijay V.</span><o:p class=""></o:p></p>
</div>
</div><p class="MsoNormal" style="margin-bottom:12.0pt"><br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" target="_blank" class="">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p class=""></o:p></p>
</blockquote>
</div><div class="MsoNormal"><o:p class=""> </o:p></div>
</div>
</div>
</div>
</div>
</div>
</span>
</div>
__________________________________________________________________________<br class="">OpenStack Development Mailing List (not for usage questions)<br class="">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class=""></div></blockquote></div><br class=""></div></body></html>