<div dir="ltr"><div>Hi lbaas folks,</div><div><br></div><div>IMO a status is really an important part of the API.</div><div>In some old email threads Sam has proposed the solution for lbaas objects: we need to have several attributes that independently represent different types of statuses:</div>
<div>- admin_state_up</div><div>- operational status</div><div>- provisioning state</div><div><br></div><div>Not every status need to be on every object. </div><div>Pure-DB objects (like pool) should not have provisioning state and operational status, instead, an association object should have them. I think that resolves both questions (1) and (2).</div>
<div>If some object is shareable, then we'll have association object anyway, and that's where provisioning status and operationl status can reside. For sure it's not very simple, but this is the right way to do it.</div>
<div><br></div><div>Also I'd like to emphasize that statuses are really an API thing, not a driver thing, so they must be used similarly across all drivers.</div><div><br></div><div>Thanks,</div><div>Eugene.</div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 24, 2014 at 10:53 PM, Doug Wiegley <span dir="ltr"><<a href="mailto:dougw@a10networks.com" target="_blank">dougw@a10networks.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Brandon,<br>
<br>
I think just one status is overloading too much onto the LB object (which<br>
is perhaps something that a UI should do for a user, but not something an<br>
API should be doing.)<br>
<div class=""><br>
> 1) If an entity exists without a link to a load balancer it is purely<br>
> just a database entry, so it would always be ACTIVE, but not really<br>
> active in a technical sense.<br>
<br>
</div>Depends on the driver.  I don¹t think this is a decision for lbaas proper.<br>
<div class=""><br>
<br>
> 2) If some of these entities become shareable then how does the status<br>
> reflect that the entity failed to create on one load balancer but was<br>
> successfully created on another.  That logic could get overly complex.<br>
<br>
</div>That¹s a status on the join link, not the object, and I could argue<br>
multiple ways in which that should be one way or another based on the<br>
backend, which to me, again implies driver question (backend could queue<br>
for later, or error immediately, or let things run degraded, orŠ)<br>
<br>
Thanks,<br>
Doug<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
On 6/24/14, 11:23 AM, "Brandon Logan" <<a href="mailto:brandon.logan@RACKSPACE.COM">brandon.logan@RACKSPACE.COM</a>> wrote:<br>
<br>
>I think we missed this discussion at the meet-up but I'd like to bring<br>
>it up here.  To me having a status on all entities doesn't make much<br>
>sense, and justing having a status on a load balancer (which would be a<br>
>provisioning status) and a status on a member (which would be an<br>
>operational status) are what makes sense because:<br>
><br>
>1) If an entity exists without a link to a load balancer it is purely<br>
>just a database entry, so it would always be ACTIVE, but not really<br>
>active in a technical sense.<br>
><br>
>2) If some of these entities become shareable then how does the status<br>
>reflect that the entity failed to create on one load balancer but was<br>
>successfully created on another.  That logic could get overly complex.<br>
><br>
>I think the best thing to do is to have the load balancer status reflect<br>
>the provisioning status of all of its children.  So if a health monitor<br>
>is updated then the load balancer that health monitor is linked to would<br>
>have its status changed to PENDING_UPDATE.  Conversely, if a load<br>
>balancer or any entities linked to it are changed and the load<br>
>balancer's status is in a non-ACTIVE state then that update should not<br>
>be allowed.<br>
><br>
>Thoughts?<br>
><br>
>Thanks,<br>
>Brandon<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>
<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>
</div></div></blockquote></div><br></div>