From cdedb90ed87148bf850fa9071486ce3dee412ce2 Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Tue, 13 Feb 2018 17:05:30 +0100 Subject: [PATCH] Allow unicode for metadata keys in publisher I encountered a bug whith the following configuration in monasca_field_definitions.yaml: metadata: cpu: - flavor_id: flavor["id"] - flavor_name: flavor["name"] The problem was in _get_value_metadata_for_key(): sometimes keys from ceilometer samples can be unicode. Change-Id: I8914c2238f3a450393f07e6309f57451c8c45cf2 --- ceilosca/ceilometer/publisher/monasca_data_filter.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ceilosca/ceilometer/publisher/monasca_data_filter.py b/ceilosca/ceilometer/publisher/monasca_data_filter.py index 70557ad..163ba5e 100644 --- a/ceilosca/ceilometer/publisher/monasca_data_filter.py +++ b/ceilosca/ceilometer/publisher/monasca_data_filter.py @@ -19,6 +19,7 @@ import datetime from jsonpath_rw_ext import parser from oslo_log import log from oslo_utils import timeutils +import six import yaml from ceilometer.ceilosca_mapping.ceilosca_mapping import ( @@ -125,7 +126,8 @@ class MonascaDataFilter(object): if len(val_matches) > 0: # resolve the find to the first match and get value val = val_matches[0].value - if not isinstance(val, str) and not isinstance(val, int): + if not isinstance(val, (str, six.text_type)) \ + and not isinstance(val, int): # Don't support lists or dicts or ... raise CeiloscaMappingDefinitionException( "Metadata format mismatch, value "