Merge "NSXP: parse statistics correctly"

This commit is contained in:
Zuul 2019-05-14 12:03:59 +00:00 committed by Gerrit Code Review
commit db82bd3c14
1 changed files with 20 additions and 15 deletions

View File

@ -253,21 +253,26 @@ def stats_getter(context, core_plugin, ignore_list=None):
lb_service_id = lb_service.get('id')
try:
# get the NSX statistics for this LB service
rsp = lb_service_client.get_statistics(lb_service_id)
if rsp and 'virtual_servers' in rsp:
# Go over each virtual server in the response
for vs in rsp['virtual_servers']:
# look up the virtual server in the DB
if vs.get('statistics'):
vs_stats = vs['statistics']
stats = copy.copy(lb_const.LB_EMPTY_STATS)
stats['id'] = p_utils.path_to_id(
vs['virtual_server_path'])
stats['request_errors'] = 0 # currently unsupported
for stat in lb_const.LB_STATS_MAP:
lb_stat = lb_const.LB_STATS_MAP[stat]
stats[stat] += vs_stats[lb_stat]
stat_list.append(stats)
stats_results = lb_service_client.get_statistics(
lb_service_id).get('results', [])
if stats_results:
rsp = stats_results[0]
else:
rsp = {}
# Go over each virtual server in the response
for vs in rsp.get('virtual_servers', []):
# look up the virtual server in the DB
if vs.get('statistics'):
vs_stats = vs['statistics']
stats = copy.copy(lb_const.LB_EMPTY_STATS)
stats['id'] = p_utils.path_to_id(
vs['virtual_server_path'])
stats['request_errors'] = 0 # currently unsupported
for stat in lb_const.LB_STATS_MAP:
lb_stat = lb_const.LB_STATS_MAP[stat]
stats[stat] += vs_stats[lb_stat]
stat_list.append(stats)
except nsxlib_exc.ManagerError:
pass