<div dir="ltr">Hi Sam,<div><br></div><div>Here are my thoughts on this:</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 29, 2014 at 12:32 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">Before solving everything, I would like first to itemize the things we should solve/consider.<u></u><u></u></p>
<p class="MsoNormal">So pleas focus first on what is it that we need to pay attention for and less on how to solve such issues.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Follows the list of items:<u></u><u></u></p>
<p><u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Provisioning status/state<u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Should it only be on the loadblancer?</p></div></div></blockquote><div>That makes sense to me, unless we're also using this field to indicate a pending change from an update as well. Pending changes here should be reflected in the listener state.</div>
<div><br></div><div> </div><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 style="margin-left:1.0in"><u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Do we need a more granular status per logical child object?</p></div></div></blockquote><div><br></div><div>Than what? I'm not sure I understand what you're saying here. Can you give a couple examples?</div>
<div> </div><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 style="margin-left:1.0in"><u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Update process<u></u><u></u></p>
<p style="margin-left:1.5in">
<u></u><span style="font-family:Wingdings"><span>§<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>What happens when a logical child object is modified?</p></div></div></blockquote><div>Any affected parent objects should show a 'PENDING_UPDATE' status or something similar until the change is pushed to them. </div>
<div> </div><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 style="margin-left:1.5in"><u></u><u></u></p>
<p style="margin-left:1.5in">
<u></u><span style="font-family:Wingdings"><span>§<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Where can a user check the success of the update?</p></div></div></blockquote><div><br></div><div>Depending on the object... either the status of the child object itself or all of its affected parent(s). Since we're allowing reusing of the pool object, when getting the status of a pool, maybe it makes sense to produce a list showing the status of all the pool's members, as well as the update status of all the listeners using the pool?</div>
<div> </div><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 style="margin-left:1.5in"><u></u><u></u></p>
<p><u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Operation status/state – this refers to information returning from the load balancing back end / driver<u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>How is member status that failed health monitor reflected, on which LBaaS object and how can a user understand the failure?</p></div></div></blockquote><div>Assuming you're not talking about an alert which would be generated by a back-end load balancer and get routed to some notification system... I think you should be able to get the status of a member by just checking the member status directly (ie. GET /members/[UUID]) or, if people like my suggestion above, by checking the status of the pool to which the member belongs (ie. GET /pools/[UUID]).</div>
<div> <br></div><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 style="margin-left:1.0in"><u></u><u></u></p>
<p><u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Administrator state management
<u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>How is a change in admin_state on member, pool, listener get managed</p></div></div></blockquote><div>I'm thinking that disabling members, pools, and listeners should propagate to all parent objects. (For example, disabling a member should propagate to all affected pools and listeners, which essentially pulls the member out of rotation for all load balancers but otherwise leaves listeners and pools up and running. This is probably what the user is trying to accomplish by disabling the member.)<br>
<br>I do not think it makes sense to propagate to all child objects. For example, disabling a listener should not disable all the pools it references.</div><div><br>And by 'propagate' here I mean that config changes are pushed to all affected listeners and load balancers-- not that we actually update all parents to be 'ADMIN_STATUS_DOWN' or something. Does this make sense to you?<br>
</div><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 style="margin-left:1.0in"><u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Do we expect a change in the operation state to reflect this?</p></div></div></blockquote><div>Yes.</div><div> </div><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 style="margin-left:1.0in"><u></u><u></u></p>
<p><u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Statistics consumption</p></div></div></blockquote><div>I actually started another thread on this to get some operator and user requirements here, but so far nobody has replied. FWIW, I'm leaning toward having a RESTful interface for statistics that's separate from the main configuration interface tree and has implied context depending on how it's used.</div>
<div><br></div><div>For example, if you want to see the stats for a particular member of a particular pool of a particular listener on a particular load balancer, you'd GET something like the following:</div><div><br>
</div><div>GET /stats/loadbalancer/LB_UUID/listener/LB_UUID/pool/POOL_UUID/member/MEMBER_UUID</div><div><br></div><div>...which would give you just the stats for that member in that context.<br><br>I think we might also want to support getting overall stats for a single logical object. So for example:<br>
<br>GET /stats/member/MEMBER_UUID</div><div><br></div><div>...would get you total stats for that member, regardless of which pool, listener, or loadbalancer it happens to reside in.<br><br><br>But... all of this really depends on what users are going to be interested in and operators want to provide. What's the point of going to the trouble of collecting very specific-context stats if the user only cares about aggregate stats?</div>
<div> </div><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><u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>From which object will the user “poll” to get statistics for the different sub objects in the model (ex: load balancer)? </p></div></div></blockquote><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 style="margin-left:1.0in">
<u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>How can statistics from a shared logical object be obtained in context of the load balancer (ex: pool statistics for a specific listener in a specific load balancer)?</p>
</div></div></blockquote><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 style="margin-left:1.0in"><u></u><u></u></p>
<p><u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Deletion of shared objects<u></u><u></u></p>
<p style="margin-left:1.0in">
<u></u><span style="font-family:"Courier New""><span>o<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span dir="LTR"></span>Do we support deletion of shared objects that will cascade delete?
<u></u><u></u></p>
<p class="MsoNormal"><br></p></div></div></blockquote><div><br></div><div>Thanks,</div><div>Stephen </div></div><div><br></div>-- <br><span></span>Stephen Balukoff
<br>Blue Box Group, LLC
<br>(800)613-4305 x807
</div></div>