LBaas v1 Associate Monitor to Pool Fails
The associate monitor fails to show monitors to choose from
within horizon. The monitor list code has changed where
you can no longer list monitors with a filter criteria.
This change switches to grab needed monitors one at a time.
Change-Id: Ibc5233028507c66de459e84e91f65c9557940ea5
Closes-bug: #1398754
(cherry picked from commit 0dde489a81
)
This commit is contained in:
parent
bb0523722f
commit
baf55ce43c
|
@ -210,13 +210,18 @@ def _pool_get(request, pool_id, expand_resource=False):
|
|||
except Exception:
|
||||
messages.warning(request, _("Unable to get members for pool "
|
||||
"%(pool)s.") % {"pool": pool_id})
|
||||
try:
|
||||
pool['health_monitors'] = pool_health_monitor_list(
|
||||
request, id=pool['health_monitors'])
|
||||
except Exception:
|
||||
messages.warning(request,
|
||||
_("Unable to get health monitors "
|
||||
"for pool %(pool)s.") % {"pool": pool_id})
|
||||
monitors = []
|
||||
for monitor_id in pool['health_monitors']:
|
||||
try:
|
||||
monitors.append(_pool_health_monitor_get(request, monitor_id,
|
||||
False))
|
||||
except Exception:
|
||||
messages.warning(request,
|
||||
_("Unable to get health monitor "
|
||||
"%(monitor_id)s for pool %(pool)s.")
|
||||
% {"pool": pool_id,
|
||||
"monitor_id": monitor_id})
|
||||
pool['health_monitors'] = monitors
|
||||
return Pool(pool)
|
||||
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ class LbaasApiTests(test.APITestCase):
|
|||
|
||||
@test.create_stubs({neutronclient: ('show_pool', 'show_vip',
|
||||
'list_members',
|
||||
'list_health_monitors',),
|
||||
'show_health_monitor',),
|
||||
api.neutron: ('subnet_get',)})
|
||||
def test_pool_get(self):
|
||||
pool = self.pools.first()
|
||||
|
@ -198,8 +198,10 @@ class LbaasApiTests(test.APITestCase):
|
|||
neutronclient.show_vip(pool.vip_id).AndReturn(vip_dict)
|
||||
neutronclient.list_members(pool_id=pool.id).AndReturn(
|
||||
{'members': self.api_members.list()})
|
||||
neutronclient.list_health_monitors(id=pool.health_monitors).AndReturn(
|
||||
{'health_monitors': [self.api_monitors.first()]})
|
||||
monitor = self.api_monitors.first()
|
||||
for pool_mon in pool.health_monitors:
|
||||
neutronclient.show_health_monitor(pool_mon).AndReturn(
|
||||
{'health_monitors': [monitor]})
|
||||
self.mox.ReplayAll()
|
||||
|
||||
ret_val = api.lbaas.pool_get(self.request, pool.id)
|
||||
|
@ -210,7 +212,8 @@ class LbaasApiTests(test.APITestCase):
|
|||
self.assertEqual(ret_val.subnet.id, subnet.id)
|
||||
self.assertEqual(2, len(ret_val.members))
|
||||
self.assertIsInstance(ret_val.members[0], api.lbaas.Member)
|
||||
self.assertEqual(1, len(ret_val.health_monitors))
|
||||
self.assertEqual(len(pool.health_monitors),
|
||||
len(ret_val.health_monitors))
|
||||
self.assertIsInstance(ret_val.health_monitors[0],
|
||||
api.lbaas.PoolMonitor)
|
||||
|
||||
|
|
Loading…
Reference in New Issue