From 823b0738844dbc3b5894a83d57df0e0a481bc016 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 18 May 2021 08:23:36 -0400 Subject: [PATCH] cephadm: write config files as utf-8 If we don't specify the encoding, python may use something like 'latin-1', which cannot handle unicode characters. Signed-off-by: Sage Weil (cherry picked from commit fa2cf2987cccea9f152c04862fc684e146c4692e) Conflicts: src/cephadm/cephadm --- src/cephadm/cephadm | 2 +- src/cephadm/tests/test_cephadm.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 662b758d4127c..a8ee463bb17b5 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -1854,7 +1854,7 @@ def create_daemon_dirs(fsid, daemon_type, daemon_id, uid, gid, fpath = os.path.join(data_dir_root, fname.lstrip(os.path.sep)) else: fpath = os.path.join(data_dir_root, config_dir, fname) - with open(fpath, 'w') as f: + with open(fpath, 'w', encoding='utf-8') as f: os.fchown(f.fileno(), uid, gid) os.fchmod(f.fileno(), 0o600) f.write(content) diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index e5787fe50062a..66b3ca7b39dfe 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -550,8 +550,10 @@ class TestMonitoring(object): daemon_id=daemon_id ) assert _open.call_args_list == [ - call('{}/etc/prometheus/prometheus.yml'.format(prefix), 'w'), - call('{}/etc/prometheus/alerting/ceph_alerts.yml'.format(prefix), 'w'), + call('{}/etc/prometheus/prometheus.yml'.format(prefix), 'w', + encoding='utf-8'), + call('{}/etc/prometheus/alerting/ceph_alerts.yml'.format(prefix), 'w', + encoding='utf-8'), ] assert call().__enter__().write('foo') in _open.mock_calls assert call().__enter__().write('bar') in _open.mock_calls -- 2.39.5