From 227c7e4e8d8ce9ecb74ff1b38fe07cd6c37aee9f Mon Sep 17 00:00:00 2001 From: Nishant Totla Date: Mon, 25 Jul 2016 10:38:24 -0700 Subject: [PATCH] Sort plugin names in node description Signed-off-by: Nishant Totla --- daemon/cluster/executor/container/executor.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/daemon/cluster/executor/container/executor.go b/daemon/cluster/executor/container/executor.go index bf5e248f62..33f05905b6 100644 --- a/daemon/cluster/executor/container/executor.go +++ b/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 +}