yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #32507
[Bug 1450375] [NEW] cannot delete v2 healthmonitor if the hm-associated-pool was deleted first
Public bug reported:
Steps:
1. create lb
2. create listener
3. create pool (pool-1)
4. add a healthmonitor (healthmonitor-1) to pool-1
5. delete the pool-1
Then, you cannot delete healthmonitor-1 if the pool-1 was deleted first.
Log:
2015-04-30 16:51:23.422 6369 INFO neutron.wsgi [req-2876374c-03c3-49b6-825c-83116108cbed cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] 172.16.2.10 - - [30/Apr/2015 16:51:23] "GET /v2.0/lbaas/healthmonitors.json?tenant_id=356b4d225c7e44de961d888086948f7c HTTP/1.1" 200 754 0.280336
2015-04-30 16:51:23.430 6369 INFO neutron.wsgi [-] (6369) accepted ('172.16.2.10', 17115)
2015-04-30 16:51:23.532 6369 ERROR neutron.api.v2.resource [req-88a2316d-805a-4bad-a52b-b270325008e7 cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] delete failed
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource Traceback (most recent call last):
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/resource.py", line 83, in resource
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource result = method(request=request, **args)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/base.py", line 490, in delete
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource obj_deleter(request.context, id, **kwargs)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 887, in delete_healthmonitor
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource constants.PENDING_DELETE)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 159, in test_and_set_status
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource db_lb_child.root_loadbalancer.id)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/models.py", line 115, in root_loadbalancer
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource return self.pool.listener.loadbalancer
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource AttributeError: 'NoneType' object has no attribute 'listener'
Code:
class HealthMonitorV2(model_base.BASEV2, models_v2.HasId,
models_v2.HasTenant):
...
@property
def root_loadbalancer(self):
return self.pool.listener.loadbalancer
Potential Solution:
1. Check pool whether binding a healthmonitor before delete
2. Add loadbalancer attr to HealthMonitorV2
** Affects: neutron
Importance: Undecided
Status: New
** Summary changed:
- cannot delete healthmonitor if the hm-associated-pool was deleted first
+ cannot delete v2 healthmonitor if the hm-associated-pool was deleted first
** Description changed:
Steps:
1. create lb
2. create listener
- 3. create pool
- 4. add a healthmonitor (healthmonitor-1) to a pool ( pool-1)
- 5. delete the pool
+ 3. create pool (pool-1)
+ 4. add a healthmonitor (healthmonitor-1) to pool-1
+ 5. delete the pool-1
Then, you cannot delete healthmonitor-1 if the pool-1 was deleted first.
+
+
+ Log:
+
+ 2015-04-30 16:51:23.422 6369 INFO neutron.wsgi [req-2876374c-03c3-49b6-825c-83116108cbed cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] 172.16.2.10 - - [30/Apr/2015 16:51:23] "GET /v2.0/lbaas/healthmonitors.json?tenant_id=356b4d225c7e44de961d888086948f7c HTTP/1.1" 200 754 0.280336
+ 2015-04-30 16:51:23.430 6369 INFO neutron.wsgi [-] (6369) accepted ('172.16.2.10', 17115)
+ 2015-04-30 16:51:23.532 6369 ERROR neutron.api.v2.resource [req-88a2316d-805a-4bad-a52b-b270325008e7 cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] delete failed
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource Traceback (most recent call last):
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/resource.py", line 83, in resource
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource result = method(request=request, **args)
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/base.py", line 490, in delete
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource obj_deleter(request.context, id, **kwargs)
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 887, in delete_healthmonitor
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource constants.PENDING_DELETE)
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 159, in test_and_set_status
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource db_lb_child.root_loadbalancer.id)
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/models.py", line 115, in root_loadbalancer
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource return self.pool.listener.loadbalancer
+ 2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource AttributeError: 'NoneType' object has no attribute 'listener'
+
+
+ Code:
+
+ class HealthMonitorV2(model_base.BASEV2, models_v2.HasId,
+ models_v2.HasTenant):
+
+ ...
+
+ @property
+ def root_loadbalancer(self):
+ return self.pool.listener.loadbalancer
+
+
+ Potential Solution:
+ 1. Check pool whether binding a healthmonitor before delete
+ 2. Add loadbalancer attr to HealthMonitorV2
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1450375
Title:
cannot delete v2 healthmonitor if the hm-associated-pool was deleted
first
Status in OpenStack Neutron (virtual network service):
New
Bug description:
Steps:
1. create lb
2. create listener
3. create pool (pool-1)
4. add a healthmonitor (healthmonitor-1) to pool-1
5. delete the pool-1
Then, you cannot delete healthmonitor-1 if the pool-1 was deleted
first.
Log:
2015-04-30 16:51:23.422 6369 INFO neutron.wsgi [req-2876374c-03c3-49b6-825c-83116108cbed cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] 172.16.2.10 - - [30/Apr/2015 16:51:23] "GET /v2.0/lbaas/healthmonitors.json?tenant_id=356b4d225c7e44de961d888086948f7c HTTP/1.1" 200 754 0.280336
2015-04-30 16:51:23.430 6369 INFO neutron.wsgi [-] (6369) accepted ('172.16.2.10', 17115)
2015-04-30 16:51:23.532 6369 ERROR neutron.api.v2.resource [req-88a2316d-805a-4bad-a52b-b270325008e7 cf6a52a3be734e4cad457d5283148882 356b4d225c7e44de961d888086948f7c - - -] delete failed
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource Traceback (most recent call last):
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/resource.py", line 83, in resource
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource result = method(request=request, **args)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron/api/v2/base.py", line 490, in delete
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource obj_deleter(request.context, id, **kwargs)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 887, in delete_healthmonitor
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource constants.PENDING_DELETE)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", line 159, in test_and_set_status
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource db_lb_child.root_loadbalancer.id)
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource File "/usr/lib/python2.6/site-packages/neutron_lbaas/db/loadbalancer/models.py", line 115, in root_loadbalancer
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource return self.pool.listener.loadbalancer
2015-04-30 16:51:23.532 6369 TRACE neutron.api.v2.resource AttributeError: 'NoneType' object has no attribute 'listener'
Code:
class HealthMonitorV2(model_base.BASEV2, models_v2.HasId,
models_v2.HasTenant):
...
@property
def root_loadbalancer(self):
return self.pool.listener.loadbalancer
Potential Solution:
1. Check pool whether binding a healthmonitor before delete
2. Add loadbalancer attr to HealthMonitorV2
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1450375/+subscriptions
Follow ups
References