fully-populated load balancer create API can leak vip ports
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
octavia |
Confirmed
|
Low
|
Unassigned |
Bug Description
Originally reported in https:/
When creating a fully populated load balancer, if a validation step fails for one of its resources (listener, pool, etc...), an exception is raised, the LB is not created in the DB, but a VIP port is created in neutron, and not deleted.
Can be reproduced with this script:
import openstack
conn = openstack.connect()
subnet = conn.network.
tree = {
"vip_
"listeners": [{
"protocol": "TERMINATED_HTTPS",
}]
}
conn.load_
# Before
$ openstack loadbalancer list -f value | wc -l
0
$ openstack port list -f value -c Name | grep octavia
octavia-
# Creating the LB
$ python test_lb_create.py
Traceback (most recent call last):
File "/home/
conn.
File "/opt/stack/
return self._create(
File "/opt/stack/
return res.create(self, base_path=
File "/opt/stack/
self.
File "/opt/stack/
exceptions.
File "/opt/stack/
raise cls(
openstack.
# After
$ openstack loadbalancer list -f value | wc -l
0
$ openstack port list -f value -c Name | grep octavia
octavia-
octavia-
The port octavia-
Changed in octavia: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
importance: | Medium → Low |