mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00

The `libpod/network` package should only be used on the backend and not the client. The client used this package only for two functions so move them into a new `pkg/network` package. This is needed so we can put linux only code into `libpod/network`, see #9710. [NO TESTS NEEDED] Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
28 lines
753 B
Go
28 lines
753 B
Go
package network
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"strings"
|
|
|
|
"github.com/containernetworking/cni/libcni"
|
|
)
|
|
|
|
// GetCNIPlugins returns a list of plugins that a given network
|
|
// has in the form of a string
|
|
func GetCNIPlugins(list *libcni.NetworkConfigList) string {
|
|
plugins := make([]string, 0, len(list.Plugins))
|
|
for _, plug := range list.Plugins {
|
|
plugins = append(plugins, plug.Network.Type)
|
|
}
|
|
return strings.Join(plugins, ",")
|
|
}
|
|
|
|
// GetNetworkID return the network ID for a given name.
|
|
// It is just the sha256 hash but this should be good enough.
|
|
// The caller has to make sure it is only called with the network name.
|
|
func GetNetworkID(name string) string {
|
|
hash := sha256.Sum256([]byte(name))
|
|
return hex.EncodeToString(hash[:])
|
|
}
|