From: John Spray Date: Wed, 27 Sep 2017 14:13:48 +0000 (+0100) Subject: mgr/dashboard: sort servers and OSDs in OSD list X-Git-Tag: v13.0.1~768^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F17993%2Fhead;p=ceph.git mgr/dashboard: sort servers and OSDs in OSD list Fixes: http://tracker.ceph.com/issues/21572 Signed-off-by: John Spray --- diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py index 0a7c625be318..114271caea81 100644 --- a/src/pybind/mgr/dashboard/module.py +++ b/src/pybind/mgr/dashboard/module.py @@ -965,7 +965,6 @@ class Module(MgrModule): for server in servers: hostname = server['hostname'] services = server['services'] - first = True for s in services: if s["type"] == "osd": osd_id = int(s["id"]) @@ -977,18 +976,18 @@ class Module(MgrModule): summary = self._osd_summary(osd_id, osd_map.osds_by_id[osd_id]) - if first: - # A little helper for rendering - summary['first'] = True - first = False result[hostname].append(summary) + result[hostname].sort(key=lambda a: a['id']) + if len(result[hostname]): + result[hostname][0]['first'] = True + global_instance().log.warn("result.size {0} servers.size {1}".format( len(result), len(servers) )) # Return list form for convenience of rendering - return result.items() + return sorted(result.items(), key=lambda a: a[0]) @cherrypy.expose def index(self):