diff options
Diffstat (limited to 'nova/objects/monitor_metric.py')
-rw-r--r-- | nova/objects/monitor_metric.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/nova/objects/monitor_metric.py b/nova/objects/monitor_metric.py index 7d6c350a41..0ad599b366 100644 --- a/nova/objects/monitor_metric.py +++ b/nova/objects/monitor_metric.py @@ -97,8 +97,18 @@ class MonitorMetricList(base.ObjectListBase, base.NovaObject): :returns: a MonitorMetricList Object. """ metrics = jsonutils.loads(metrics) if metrics else [] - metric_list = [ - MonitorMetric(**metric) for metric in metrics] + + # NOTE(suro-patz): While instantiating the MonitorMetric() from + # JSON-ified string, we need to re-convert the + # normalized metrics to avoid truncation to 0 by + # typecasting into an integer. + metric_list = [] + for metric in metrics: + if ('value' in metric and metric['name'] in + FIELDS_REQUIRING_CONVERSION): + metric['value'] = metric['value'] * 100 + metric_list.append(MonitorMetric(**metric)) + return MonitorMetricList(objects=metric_list) # NOTE(jaypipes): This method exists to convert the object to the |