Delete the "self" when call "_set_degraded" function

Which will raise Exception:
TypeError: 'LoadBalancerPluginv2' object does not
support item assignment.

Change-Id: Ic3f653468c7cec8cc0434d3df9b42cc1660f9260
Closes-Bug: #1607585
(cherry picked from commit b09d4d2ee0)
This commit is contained in:
ahdj007 2016-07-29 10:38:41 +08:00 committed by Armando Migliaccio
parent efacaecfba
commit 659bcebc82
2 changed files with 21 additions and 1 deletions

View File

@ -1341,7 +1341,7 @@ class LoadBalancerPluginv2(loadbalancerv2.LoadBalancerPluginBaseV2):
[ps["id"] for ps in lb_status["pools"]]):
lb_status["pools"].append(pool_status)
if self._is_degraded(curr_listener.default_pool):
self._set_degraded(self, listener_status, lb_status)
self._set_degraded(listener_status, lb_status)
members = curr_listener.default_pool.members
for curr_member in members:
if not curr_member.admin_state_up:

View File

@ -3714,6 +3714,26 @@ class LbaasStatusesTest(MemberTestBase):
self._assertNotDegraded(self._traverse_statuses(statuses,
listener='listener_HTTPS'))
def test_degraded_with_pool_error(self):
ctx = context.get_admin_context()
ERROR = constants.ERROR
lb_dict = self._create_new_populated_loadbalancer()
lb_id = lb_dict['id']
statuses = self._get_loadbalancer_statuses_api(lb_id)[1]
stat = self._traverse_statuses(statuses, listener="listener_HTTP",
pool="pool_HTTP")
pool_id = stat['id']
self.plugin.db.update_status(ctx, models.PoolV2, pool_id,
provisioning_status=ERROR)
statuses = self._get_loadbalancer_statuses_api(lb_id)[1]
#Assert the parents of the pool are degraded
self._assertDegraded(self._traverse_statuses(statuses,
listener='listener_HTTP'))
self._assertDegraded(self._traverse_statuses(statuses))
#Verify siblings are not degraded
self._assertNotDegraded(self._traverse_statuses(statuses,
listener='listener_HTTPS'))
def _assertOnline(self, obj):
OS = "operating_status"
if OS in obj: