]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: write config files as utf-8 41388/head
authorSage Weil <sage@newdream.net>
Tue, 18 May 2021 12:23:36 +0000 (08:23 -0400)
committerSage Weil <sage@newdream.net>
Wed, 19 May 2021 01:49:55 +0000 (21:49 -0400)
If we don't specify the encoding, python may use something like 'latin-1',
which cannot handle unicode characters.

Signed-off-by: Sage Weil <sage@newdream.net>
src/cephadm/cephadm
src/cephadm/tests/test_cephadm.py

index a7e4cc0aee7f2b377c992d540c7056f77fc51370..ed92c0b017a23dbc442d6729d552f3617a0b18a7 100755 (executable)
@@ -350,7 +350,7 @@ def populate_files(config_dir, config_files, uid, gid):
         config_file = os.path.join(config_dir, fname)
         config_content = dict_get_join(config_files, fname)
         logger.info('Write file: %s' % (config_file))
-        with open(config_file, 'w') as f:
+        with open(config_file, 'w', encoding='utf-8') as f:
             os.fchown(f.fileno(), uid, gid)
             os.fchmod(f.fileno(), 0o600)
             f.write(config_content)
@@ -2221,7 +2221,7 @@ def create_daemon_dirs(ctx, 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)
index 7e9861c2cc64ba73499adc42f0e054dd39190ff4..75220957f53d4cdf73d807453f5eadaf1bb8ad41 100644 (file)
@@ -1024,8 +1024,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