|
@@ -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
|
|
|
}
|