I have tried to modify /usr/lib64/ceph/mgr/balancer/module.py replace iteritems () with items(), but I still got following error
g1:/usr/lib64/ceph/mgr/balancer # ceph balancer status Error EINVAL: Traceback (most recent call last): File "/usr/lib64/ceph/mgr/balancer/module.py", line 297, in handle_command return (0, json.dumps(s, indent=4), '') File "/usr/lib64/python3.6/json/__init__.py", line 238, in dumps **kw).encode(obj) File "/usr/lib64/python3.6/json/encoder.py", line 201, in encode chunks = list(chunks) File "/usr/lib64/python3.6/json/encoder.py", line 430, in _iterencode yield from _iterencode_dict(o, _current_indent_level) File "/usr/lib64/python3.6/json/encoder.py", line 404, in _iterencode_dict yield from chunks File "/usr/lib64/python3.6/json/encoder.py", line 437, in _iterencode o = _default(o) File "/usr/lib64/python3.6/json/encoder.py", line 180, in default o.__class__.__name__) TypeError: Object of type 'dict_keys' is not JSON serializable it seems to me that ceph mgr is complie/written for python 3.6 but balancer plugin is written for python 2.7... this might be related https://github.com/ceph/ceph/pull/21446 this might be opensuse building ceph package issue chris
_______________________________________________ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com