[openstack-dev] [Neutron][LBaaS] Which entities need status
brandon.logan at RACKSPACE.COM
Tue Jun 24 19:16:04 UTC 2014
On Tue, 2014-06-24 at 18:53 +0000, Doug Wiegley wrote:
> Hi Brandon,
> I think just one status is overloading too much onto the LB object (which
> is perhaps something that a UI should do for a user, but not something an
> API should be doing.)
That is a good point and perhaps its another discussion to just have
some way to show the status an entity has for each load balancer, which
is what mark suggested for the member status at the meet-up.
> > 1) If an entity exists without a link to a load balancer it is purely
> > just a database entry, so it would always be ACTIVE, but not really
> > active in a technical sense.
> Depends on the driver. I don¹t think this is a decision for lbaas proper.
Driver is linked to the flavor or provider. Flavor or provider will/is
linked to load balancer. We won't be able get a driver to send anything
to if there isn't a load balancer. Without a driver it is a decision
for lbaas proper. I'd be fine with setting the status of these
"orphaned" entities to just ACTIVE but I'm just worried about the status
management in the future.
> > 2) If some of these entities become shareable then how does the status
> > reflect that the entity failed to create on one load balancer but was
> > successfully created on another. That logic could get overly complex.
> That¹s a status on the join link, not the object, and I could argue
> multiple ways in which that should be one way or another based on the
> backend, which to me, again implies driver question (backend could queue
> for later, or error immediately, or let things run degraded, orŠ)
Yeah that is definitely an argument. I'm just trying to keep in mind
the complexities that could arise from decisions made now. Perhaps it
is the wrong way to look at it to some, but I don't think thinking about
the future is a bad thing and should never be done.
> On 6/24/14, 11:23 AM, "Brandon Logan" <brandon.logan at RACKSPACE.COM> wrote:
> >I think we missed this discussion at the meet-up but I'd like to bring
> >it up here. To me having a status on all entities doesn't make much
> >sense, and justing having a status on a load balancer (which would be a
> >provisioning status) and a status on a member (which would be an
> >operational status) are what makes sense because:
> >1) If an entity exists without a link to a load balancer it is purely
> >just a database entry, so it would always be ACTIVE, but not really
> >active in a technical sense.
> >2) If some of these entities become shareable then how does the status
> >reflect that the entity failed to create on one load balancer but was
> >successfully created on another. That logic could get overly complex.
> >I think the best thing to do is to have the load balancer status reflect
> >the provisioning status of all of its children. So if a health monitor
> >is updated then the load balancer that health monitor is linked to would
> >have its status changed to PENDING_UPDATE. Conversely, if a load
> >balancer or any entities linked to it are changed and the load
> >balancer's status is in a non-ACTIVE state then that update should not
> >be allowed.
> >OpenStack-dev mailing list
> >OpenStack-dev at lists.openstack.org
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
More information about the OpenStack-dev