diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-02-22 16:56:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-22 16:56:43 -0500 |
commit | d999328920ce826e5d1ef824c811374bb65ce26b (patch) | |
tree | 12952a1caffc6e2bfae40ec17ff36a66521b16d3 /libpod/network/network.go | |
parent | c69decc305d746066824701ff073d5b34b744693 (diff) | |
parent | 9d818be7329929b05b93e432c408ee65726ec2c0 (diff) | |
download | podman-d999328920ce826e5d1ef824c811374bb65ce26b.tar.gz podman-d999328920ce826e5d1ef824c811374bb65ce26b.tar.bz2 podman-d999328920ce826e5d1ef824c811374bb65ce26b.zip |
Merge pull request #9455 from Luap99/fix-network-ids
Fix podman network IDs handling
Diffstat (limited to 'libpod/network/network.go')
-rw-r--r-- | libpod/network/network.go | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libpod/network/network.go b/libpod/network/network.go index b347ec0e2..f19a764ef 100644 --- a/libpod/network/network.go +++ b/libpod/network/network.go @@ -7,6 +7,7 @@ import ( "net" "os" + "github.com/containernetworking/cni/libcni" "github.com/containernetworking/cni/pkg/types" "github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator" "github.com/containers/common/pkg/config" @@ -222,7 +223,7 @@ func RemoveNetwork(config *config.Config, name string) error { // InspectNetwork reads a CNI config and returns its configuration func InspectNetwork(config *config.Config, name string) (map[string]interface{}, error) { - b, err := ReadRawCNIConfByName(config, name) + b, err := ReadRawCNIConfByNameOrID(config, name) if err != nil { return nil, err } @@ -234,7 +235,7 @@ func InspectNetwork(config *config.Config, name string) (map[string]interface{}, // Exists says whether a given network exists or not; it meant // specifically for restful responses so 404s can be used func Exists(config *config.Config, name string) (bool, error) { - _, err := ReadRawCNIConfByName(config, name) + _, err := ReadRawCNIConfByNameOrID(config, name) if err != nil { if errors.Cause(err) == define.ErrNoSuchNetwork { return false, nil @@ -277,3 +278,17 @@ func PruneNetworks(rtc *config.Config, usedNetworks map[string]bool) ([]*entitie } return reports, nil } + +// NormalizeName translates a network ID into a name. +// If the input is a name the name is returned. +func NormalizeName(config *config.Config, nameOrID string) (string, error) { + path, err := GetCNIConfigPathByNameOrID(config, nameOrID) + if err != nil { + return "", err + } + conf, err := libcni.ConfListFromFile(path) + if err != nil { + return "", err + } + return conf.Name, nil +} |