Cannot Delete loadbalancers due to undeleteable pools

Bug #1603458 reported by Tyler Britten
56
This bug affects 11 people
Affects Status Importance Assigned to Milestone
Neutron LBaaS Dashboard
Confirmed
Undecided
Unassigned
OpenStack Dashboard (Horizon)
Invalid
Undecided
Unassigned
neutron
Invalid
Undecided
Unassigned

Bug Description

To delete an LBaaSv2 loadbalancer, you must remove all the members from the pool, then delete the pool, then delete the listener, then you can delete the loadbalancer. Currently in Horizon you can do all of those except delete the pool. Since you can't delete the pool, you can't delete the listener, and therefore can't delete the loadbalancer.

Either deleting the listener should trigger the pool delete too (since they're 1:1) or the Horizon Wizard for Listener should have a delete pool capability.

Tags: lbaas
Revision history for this message
Brandon Logan (brandon-logan) wrote :

I believe this is an issue with the neutron-lbaas-dashboard, the neutron lbaas API does allow this. I was gonna mark this as Invalid, but the neutron-lbaas-dashboard does not live in horizon, it lives as a separate repo. I guess it does fall under neutron's purview for now.

tags: added: lbaas
Changed in neutron:
status: New → Invalid
status: Invalid → New
Revision history for this message
Tyler Britten (9-me-9) wrote :

Is that the proper fix though? Since listeners and pools are 1:1 when would you want to delete a pool but keep a listener? Shouldn't deleting a listener (that has an empty pool) automatically clean up the pool instead of erroring out?

Revision history for this message
Brandon Logan (brandon-logan) wrote :

listeners and pools are no longer 1:1, at least indirectly. A pool's "real" parent is now the load balancer because with L7 rules, a listener can have a default pool AND indirectly point to other pools via L7 rules.

I personally would prefer to have the API delete everything underneath a particular resource if everything underneath is "empty". However, there are also use cases some have brought up of a listener not pointing at all to a pool. So it's a tough question to answer.

Revision history for this message
Michael Johnson (johnsom) wrote :

I agree with Brandon here, this is an lbaas-dashboard issue, so marking the neutron side invalid.

Changed in neutron:
status: New → Invalid
Revision history for this message
serlex (serlex) wrote :

Hi,

I'm suffering from this and given that a user is able to create an entry in Horizon, the capability should be vice versa

Here is a hack via CLI

https://cloudnull.io/2016/10/how-to-delete-a-neutron-load-balancer/

Regards,
Sercan

Revision history for this message
Michael Johnson (johnsom) wrote :

Marking this invalid as you can delete a pool via horizon. Did you remember to delete the health monitor first?

I agree that in the future we could enable the cascade delete feature in horizon with a warning, but that would be an RFE and not the bug as reported. Closing this as invalid as you can in fact delete pools via the neutron-lbaas-dashboard.

Changed in horizon:
status: New → Invalid
Changed in neutron-lbaas-dashboard:
status: New → Invalid
Revision history for this message
serlex (serlex) wrote :

Hi Michael,

And how do you delete a health monitor in Horizon? I fail to see such option in Horizon plugin. You can edit a listener, including the health monitor but there is no option Horizon for it to be deleted.

Please confirm.

Regards,

Revision history for this message
Jeffrey Zhang (jeffrey4l) wrote :

@Micheal,

I am using Ocata + Octavia + ngloadbalancersv2 dashboard.

I can not delete the loadbalance too. But i can delete them through cli, successfully. But need delete monitor, listener at first.

Could re-confirm this issue?

Changed in neutron-lbaas-dashboard:
status: Invalid → Confirmed
Revision history for this message
Lutz Birkhahn (lutz-birkhahn) wrote :

In Newton (probably valid for Ocata and later, too), here is the trick how to delete a pool or health monitor in Horizon:
* in "Load Balancers" click on the name of the LB (e.g. "lb1")
* go to "Listeners" tab, click on the name of the listener
* click on the link shown next to "Default Pool ID" (this is the trick!)
* click on the link shown next to "Health Monitor ID"
* now you can click on the dropdown in the top right and select "Delete Health Monitor"
* (need to find your way back to get to the pool, worst case go the top Horizon page)
* back on the pool page, click on the dropdown in the top right and select "Delete Pool"
* then delete the listener, then delete the load balancer

Revision history for this message
Jeffrey Zhang (jeffrey4l) wrote :

@lutz,

I tested this in Ocata. it works. But this is too hard to normal user. Is that possible to support delete the whole LB by one button?

Revision history for this message
Shi Yan (yanshi-403) wrote :

Test it with Queens dashboard and meet with the same issue that we cannot delete the lb.

When I followed the above steps:
* in "Load Balancers" click on the name of the LB (e.g. "lb1")
* go to "Listeners" tab, click on the name of the listener
* click on the link shown next to "Default Pool ID" (this is the trick!)
* click on the link shown next to "Health Monitor ID"

At this step, there is no button to delete Health Monitor.:-( Thus the associated listener could not be deleted, which fails the lb deletion.
BTW, CLI deletion works well though.

Revision history for this message
Akihiro Motoki (amotoki) wrote :

neutron-lbaas bugs are now tracked not by launchpad but by storyboard. More bug reports must be reported to the storyboard. https://storyboard.openstack.org/#!/project/907

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.