summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-06-02 17:36:45 +0000
committerGerrit Code Review <review@openstack.org>2021-06-02 17:36:45 +0000
commit1a7bd66a7179ca374e996e76f346def33787a21f (patch)
tree6cc372f018b3b0bf4d1463bddcafc4790e464196
parent2e7b39e44349f775da5e89ba57b05c78790b3c90 (diff)
parente5fc313ecf47813364a2111b987ced823c0d64e3 (diff)
downloadoslo-config-1a7bd66a7179ca374e996e76f346def33787a21f.tar.gz
Merge "config-generator yaml format doesn't work with i18n fields"xena-em8.7.1
-rw-r--r--oslo_config/generator.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/oslo_config/generator.py b/oslo_config/generator.py
index 9845c81..5dd1044 100644
--- a/oslo_config/generator.py
+++ b/oslo_config/generator.py
@@ -52,6 +52,7 @@ except ImportError:
import yaml
from oslo_config import cfg
+from oslo_i18n import _message
import stevedore.named # noqa
LOG = logging.getLogger(__name__)
@@ -723,6 +724,18 @@ def _generate_machine_readable_data(groups, conf):
return output_data
+def i18n_representer(dumper, data):
+ """oslo_i18n yaml representer
+
+ Returns a translated to the default locale string for yaml.safe_dump
+
+ :param dumper: a SafeDumper instance passed by yaml.safe_dump
+ :param data: a oslo_i18n._message.Message instance
+ """
+ serializedData = str(data.translation())
+ return dumper.represent_str(serializedData)
+
+
def _output_machine_readable(groups, output_file, conf):
"""Write a machine readable sample config file
@@ -736,6 +749,7 @@ def _output_machine_readable(groups, output_file, conf):
"""
output_data = _generate_machine_readable_data(groups, conf)
if conf.format_ == 'yaml':
+ yaml.SafeDumper.add_representer(_message.Message, i18n_representer)
output_file.write(yaml.safe_dump(output_data,
default_flow_style=False))
else: