diff --git a/monasca_common/tests/validation/test_metric_validation.py b/monasca_common/tests/validation/test_metric_validation.py index 7ee87203..29595cc4 100644 --- a/monasca_common/tests/validation/test_metric_validation.py +++ b/monasca_common/tests/validation/test_metric_validation.py @@ -24,7 +24,7 @@ invalid_name_chars = " <>={}(),\"\\\\;&" # a few valid characters to test valid_dimension_chars = " .'_-" -invalid_dimension_chars = "<>={}(),\"\\\\;&" +invalid_dimension_chars = "<>={},\"\\\\;&" class TestMetricValidation(base.BaseTestCase): @@ -182,7 +182,7 @@ class TestMetricValidation(base.BaseTestCase): def test_invalid_dimension_key_restricted_characters(self): metric = {"name": "test_metric_name", - "dimensions": {'A': 'B', 'B': 'C', '(D)': 'E'}, + "dimensions": {'A': 'B', 'B': 'C', 'D=': 'E'}, "timestamp": 1405630174123, "value": 5} self.assertRaisesRegex( diff --git a/monasca_common/validation/metrics.py b/monasca_common/validation/metrics.py index 1b67da93..c7da5bb9 100644 --- a/monasca_common/validation/metrics.py +++ b/monasca_common/validation/metrics.py @@ -30,9 +30,9 @@ VALUE_META_MAX_NUMBER = 16 VALUE_META_VALUE_MAX_LENGTH = 2048 VALUE_META_NAME_MAX_LENGTH = 255 -INVALID_CHARS = "<>={}(),\"\\\\;&" +INVALID_CHARS = "<>={},\"\\\\;&" RESTRICTED_DIMENSION_CHARS = re.compile('[' + INVALID_CHARS + ']') -RESTRICTED_NAME_CHARS = re.compile('[' + INVALID_CHARS + ' ' + ']') +RESTRICTED_NAME_CHARS = re.compile('[' + INVALID_CHARS + '() ' + ']') NUMERIC_VALUES = [int, float] if six.PY2: @@ -42,6 +42,7 @@ if six.PY2: NUMERIC_VALUES = tuple(NUMERIC_VALUES) # convert to tuple for instance call + class InvalidMetricName(Exception): pass