Pārlūkot izejas kodu

Merge pull request #24969 from runcom/fix-network-info

daemon: no map[string]bool from GetNetworkDriverList
Michael Crosby 8 gadi atpakaļ
vecāks
revīzija
c8b55c19cf
2 mainītis faili ar 13 papildinājumiem un 13 dzēšanām
  1. 1 6
      daemon/info.go
  2. 12 7
      daemon/network.go

+ 1 - 6
daemon/info.go

@@ -175,12 +175,7 @@ func (daemon *Daemon) showPluginsInfo() types.PluginsInfo {
 	var pluginsInfo types.PluginsInfo
 
 	pluginsInfo.Volume = volumedrivers.GetDriverList()
-
-	networkDriverList := daemon.GetNetworkDriverList()
-	for nd := range networkDriverList {
-		pluginsInfo.Network = append(pluginsInfo.Network, nd)
-	}
-
+	pluginsInfo.Network = daemon.GetNetworkDriverList()
 	pluginsInfo.Authorization = daemon.configStore.AuthorizationPlugins
 
 	return pluginsInfo

+ 12 - 7
daemon/network.go

@@ -3,6 +3,7 @@ package daemon
 import (
 	"fmt"
 	"net"
+	"sort"
 	"strings"
 
 	"github.com/Sirupsen/logrus"
@@ -328,21 +329,25 @@ func (daemon *Daemon) DisconnectContainerFromNetwork(containerName string, netwo
 
 // GetNetworkDriverList returns the list of plugins drivers
 // registered for network.
-func (daemon *Daemon) GetNetworkDriverList() map[string]bool {
-	pluginList := make(map[string]bool)
+func (daemon *Daemon) GetNetworkDriverList() []string {
+	pluginList := []string{}
+	pluginMap := make(map[string]bool)
 
 	if !daemon.NetworkControllerEnabled() {
 		return nil
 	}
-	c := daemon.netController
-	networks := c.Networks()
+	networks := daemon.netController.Networks()
 
 	for _, network := range networks {
-		driver := network.Type()
-		pluginList[driver] = true
+		if !pluginMap[network.Type()] {
+			pluginList = append(pluginList, network.Type())
+			pluginMap[network.Type()] = true
+		}
 	}
 	// TODO : Replace this with proper libnetwork API
-	pluginList["overlay"] = true
+	pluginList = append(pluginList, "overlay")
+
+	sort.Strings(pluginList)
 
 	return pluginList
 }