From cc79d5896c0b6e1d8ec3448ade985838e71ed4a5 Mon Sep 17 00:00:00 2001 From: Maxim Kulkin Date: Mon, 14 Oct 2013 12:45:53 +0400 Subject: [PATCH] Added ability to get raw configuration parameter values --- ostack_validator/config_model.py | 5 ++++- ostack_validator/test_configuration.py | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ostack_validator/config_model.py b/ostack_validator/config_model.py index 8acc6d6..656da50 100644 --- a/ostack_validator/config_model.py +++ b/ostack_validator/config_model.py @@ -77,7 +77,7 @@ class Configuration(object): return '%s.%s' % (section, param) - def get(self, name, default=None, _state=[]): + def get(self, name, default=None, raw=False, _state=[]): section, name = self._normalize_name(name) if section in self._normal and name in self._normal[section]: @@ -90,6 +90,9 @@ class Configuration(object): if not isinstance(value, str): return value + if raw: + return value + tmpl = string.Template(value) return tmpl.safe_substitute(ConfigurationWrapper(self, _state + [name])) diff --git a/ostack_validator/test_configuration.py b/ostack_validator/test_configuration.py index 005e724..65e1df8 100644 --- a/ostack_validator/test_configuration.py +++ b/ostack_validator/test_configuration.py @@ -195,3 +195,11 @@ class ConfigurationTests(unittest.TestCase): self.assertEqual('cba', c.get('c')) + def test_getting_raw_values(self): + c = Configuration() + + c.set('a', '$b') + c.set('b', 'x') + + self.assertEqual('$b', c.get('a', raw=True)) +