浏览代码

Sort plugin names in node description

Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Nishant Totla 9 年之前
父节点
当前提交
227c7e4e8d
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      daemon/cluster/executor/container/executor.go

+ 16 - 0
daemon/cluster/executor/container/executor.go

@@ -1,6 +1,7 @@
 package container
 
 import (
+	"sort"
 	"strings"
 
 	executorpkg "github.com/docker/docker/daemon/cluster/executor"
@@ -47,6 +48,8 @@ func (e *executor) Describe(ctx context.Context) (*api.NodeDescription, error) {
 	addPlugins("Network", append([]string{"overlay"}, info.Plugins.Network...))
 	addPlugins("Authorization", info.Plugins.Authorization)
 
+	sort.Sort(sortedPlugins(plugins))
+
 	// parse []string labels into a map[string]string
 	labels := map[string]string{}
 	for _, l := range info.Labels {
@@ -137,3 +140,16 @@ func (e *executor) SetNetworkBootstrapKeys(keys []*api.EncryptionKey) error {
 
 	return nil
 }
+
+type sortedPlugins []api.PluginDescription
+
+func (sp sortedPlugins) Len() int { return len(sp) }
+
+func (sp sortedPlugins) Swap(i, j int) { sp[i], sp[j] = sp[j], sp[i] }
+
+func (sp sortedPlugins) Less(i, j int) bool {
+	if sp[i].Type != sp[j].Type {
+		return sp[i].Type < sp[j].Type
+	}
+	return sp[i].Name < sp[j].Name
+}