podman/pkg/network/network.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[:])
}