]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: sort servers and OSDs in OSD list 18736/head
authorJohn Spray <john.spray@redhat.com>
Wed, 27 Sep 2017 14:13:48 +0000 (15:13 +0100)
committerShinobu Kinjo <shinobu@redhat.com>
Sat, 4 Nov 2017 23:12:23 +0000 (08:12 +0900)
Fixes: http://tracker.ceph.com/issues/21572
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit f409099fa25b73fe580ee4662aff51636f118ed2)

src/pybind/mgr/dashboard/module.py

index 526007e00f8d0f5cfc7a13508309f8f16b5728d8..6149904e71fe1c15f1ac36d3601525426b47e44a 100644 (file)
@@ -990,7 +990,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"])
@@ -1002,18 +1001,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):