mirror of
https://github.com/containers/podman.git
synced 2025-06-24 03:08:13 +08:00
Merge pull request #14327 from rhatdan/common
Use containers/common/pkg/util.StringToSlice
This commit is contained in:
@ -9,6 +9,7 @@ import (
|
||||
|
||||
"github.com/containers/common/pkg/completion"
|
||||
"github.com/containers/common/pkg/config"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/image/v5/transports/alltransports"
|
||||
"github.com/containers/image/v5/types"
|
||||
"github.com/containers/podman/v4/cmd/podman/common"
|
||||
@ -116,7 +117,7 @@ func create(cmd *cobra.Command, args []string) error {
|
||||
if !cmd.Flags().Changed("pod") {
|
||||
return errors.New("must specify pod value with init-ctr")
|
||||
}
|
||||
if !util.StringInSlice(initctr, []string{define.AlwaysInitContainer, define.OneShotInitContainer}) {
|
||||
if !cutil.StringInSlice(initctr, []string{define.AlwaysInitContainer, define.OneShotInitContainer}) {
|
||||
return errors.Errorf("init-ctr value must be '%s' or '%s'", define.AlwaysInitContainer, define.OneShotInitContainer)
|
||||
}
|
||||
cliVals.InitContainerType = initctr
|
||||
|
@ -6,12 +6,12 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/containers/common/pkg/completion"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/cmd/podman/common"
|
||||
"github.com/containers/podman/v4/cmd/podman/parse"
|
||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
"golang.org/x/term"
|
||||
|
@ -5,10 +5,10 @@ import (
|
||||
"regexp"
|
||||
|
||||
"github.com/containers/common/pkg/completion"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/cmd/podman/common"
|
||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
@ -36,6 +36,7 @@ import (
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/common/pkg/subscriptions"
|
||||
"github.com/containers/common/pkg/umask"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
is "github.com/containers/image/v5/storage"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/libpod/events"
|
||||
@ -393,7 +394,7 @@ func (c *Container) generateSpec(ctx context.Context) (*spec.Spec, error) {
|
||||
overrides := c.getUserOverrides()
|
||||
execUser, err := lookup.GetUserGroupInfo(c.state.Mountpoint, c.config.User, overrides)
|
||||
if err != nil {
|
||||
if util.StringInSlice(c.config.User, c.config.HostUsers) {
|
||||
if cutil.StringInSlice(c.config.User, c.config.HostUsers) {
|
||||
execUser, err = lookupHostUser(c.config.User)
|
||||
}
|
||||
if err != nil {
|
||||
@ -2389,7 +2390,7 @@ func (c *Container) generateResolvConf() error {
|
||||
}
|
||||
|
||||
if len(c.config.DNSSearch) > 0 || len(c.runtime.config.Containers.DNSSearches) > 0 {
|
||||
if !util.StringInSlice(".", c.config.DNSSearch) {
|
||||
if !cutil.StringInSlice(".", c.config.DNSSearch) {
|
||||
search = append(search, c.runtime.config.Containers.DNSSearches...)
|
||||
search = append(search, c.config.DNSSearch...)
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ import (
|
||||
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/config"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/env"
|
||||
v1 "github.com/containers/podman/v4/pkg/k8s.io/api/core/v1"
|
||||
@ -515,7 +516,7 @@ func simplePodWithV1Containers(ctx context.Context, ctrs []*Container) (*v1.Pod,
|
||||
podDNS.Nameservers = make([]string, 0)
|
||||
}
|
||||
for _, s := range servers {
|
||||
if !util.StringInSlice(s, podDNS.Nameservers) { // only append if it does not exist
|
||||
if !cutil.StringInSlice(s, podDNS.Nameservers) { // only append if it does not exist
|
||||
podDNS.Nameservers = append(podDNS.Nameservers, s)
|
||||
}
|
||||
}
|
||||
@ -526,7 +527,7 @@ func simplePodWithV1Containers(ctx context.Context, ctrs []*Container) (*v1.Pod,
|
||||
podDNS.Searches = make([]string, 0)
|
||||
}
|
||||
for _, d := range domains {
|
||||
if !util.StringInSlice(d, podDNS.Searches) { // only append if it does not exist
|
||||
if !cutil.StringInSlice(d, podDNS.Searches) { // only append if it does not exist
|
||||
podDNS.Searches = append(podDNS.Searches, d)
|
||||
}
|
||||
}
|
||||
@ -543,7 +544,7 @@ func simplePodWithV1Containers(ctx context.Context, ctrs []*Container) (*v1.Pod,
|
||||
podName := removeUnderscores(ctrs[0].Name())
|
||||
// Check if the pod name and container name will end up conflicting
|
||||
// Append -pod if so
|
||||
if util.StringInSlice(podName, ctrNames) {
|
||||
if cutil.StringInSlice(podName, ctrNames) {
|
||||
podName += "-pod"
|
||||
}
|
||||
|
||||
@ -824,7 +825,7 @@ func libpodMountsToKubeVolumeMounts(c *Container) ([]v1.VolumeMount, []v1.Volume
|
||||
|
||||
// generateKubePersistentVolumeClaim converts a ContainerNamedVolume to a Kubernetes PersistentVolumeClaim
|
||||
func generateKubePersistentVolumeClaim(v *ContainerNamedVolume) (v1.VolumeMount, v1.Volume) {
|
||||
ro := util.StringInSlice("ro", v.Options)
|
||||
ro := cutil.StringInSlice("ro", v.Options)
|
||||
|
||||
// To avoid naming conflicts with any host path mounts, add a unique suffix to the volume's name.
|
||||
name := v.Name + "-pvc"
|
||||
@ -857,7 +858,7 @@ func generateKubeVolumeMount(m specs.Mount) (v1.VolumeMount, v1.Volume, error) {
|
||||
name += "-host"
|
||||
vm.Name = name
|
||||
vm.MountPath = m.Destination
|
||||
if util.StringInSlice("ro", m.Options) {
|
||||
if cutil.StringInSlice("ro", m.Options) {
|
||||
vm.ReadOnly = true
|
||||
}
|
||||
|
||||
@ -915,7 +916,7 @@ func determineCapAddDropFromCapabilities(defaultCaps, containerCaps []string) *v
|
||||
// Find caps in the defaultCaps but not in the container's
|
||||
// those indicate a dropped cap
|
||||
for _, capability := range defaultCaps {
|
||||
if !util.StringInSlice(capability, containerCaps) {
|
||||
if !cutil.StringInSlice(capability, containerCaps) {
|
||||
if _, ok := dedupDrop[capability]; !ok {
|
||||
drop = append(drop, v1.Capability(capability))
|
||||
dedupDrop[capability] = true
|
||||
@ -925,7 +926,7 @@ func determineCapAddDropFromCapabilities(defaultCaps, containerCaps []string) *v
|
||||
// Find caps in the container but not in the defaults; those indicate
|
||||
// an added cap
|
||||
for _, capability := range containerCaps {
|
||||
if !util.StringInSlice(capability, defaultCaps) {
|
||||
if !cutil.StringInSlice(capability, defaultCaps) {
|
||||
if _, ok := dedupAdd[capability]; !ok {
|
||||
add = append(add, v1.Capability(capability))
|
||||
dedupAdd[capability] = true
|
||||
|
@ -25,13 +25,13 @@ import (
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/common/pkg/machine"
|
||||
"github.com/containers/common/pkg/netns"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/libpod/events"
|
||||
"github.com/containers/podman/v4/pkg/errorhandling"
|
||||
"github.com/containers/podman/v4/pkg/namespaces"
|
||||
"github.com/containers/podman/v4/pkg/resolvconf"
|
||||
"github.com/containers/podman/v4/pkg/rootless"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/containers/podman/v4/utils"
|
||||
"github.com/containers/storage/pkg/lockfile"
|
||||
spec "github.com/opencontainers/runtime-spec/specs-go"
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
nettypes "github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/common/pkg/secrets"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/image/v5/manifest"
|
||||
"github.com/containers/image/v5/types"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
@ -605,7 +606,7 @@ func WithSdNotifyMode(mode string) CtrCreateOption {
|
||||
}
|
||||
|
||||
// verify values
|
||||
if len(mode) > 0 && !util.StringInSlice(strings.ToLower(mode), SdNotifyModeValues) {
|
||||
if len(mode) > 0 && !cutil.StringInSlice(strings.ToLower(mode), SdNotifyModeValues) {
|
||||
return errors.Wrapf(define.ErrInvalidArg, "--sdnotify values must be one of %q", strings.Join(SdNotifyModeValues, ", "))
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ import (
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/cgroups"
|
||||
"github.com/containers/common/pkg/config"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/libpod/events"
|
||||
"github.com/containers/podman/v4/libpod/shutdown"
|
||||
@ -246,7 +247,7 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
|
||||
for _, opts := range ctr.config.Networks {
|
||||
if opts.InterfaceName != "" {
|
||||
// check that no name is assigned to more than network
|
||||
if util.StringInSlice(opts.InterfaceName, usedIfNames) {
|
||||
if cutil.StringInSlice(opts.InterfaceName, usedIfNames) {
|
||||
return nil, errors.Errorf("network interface name %q is already assigned to another network", opts.InterfaceName)
|
||||
}
|
||||
usedIfNames = append(usedIfNames, opts.InterfaceName)
|
||||
@ -262,7 +263,7 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
|
||||
if opts.InterfaceName == "" {
|
||||
for i < 100000 {
|
||||
ifName := fmt.Sprintf("eth%d", i)
|
||||
if !util.StringInSlice(ifName, usedIfNames) {
|
||||
if !cutil.StringInSlice(ifName, usedIfNames) {
|
||||
opts.InterfaceName = ifName
|
||||
usedIfNames = append(usedIfNames, ifName)
|
||||
break
|
||||
|
@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
@ -257,7 +258,7 @@ func GenerateContainerFilterFuncs(filter string, filterValues []string, r *libpo
|
||||
return false
|
||||
}
|
||||
for _, net := range networks {
|
||||
if util.StringInSlice(net, inputNetNames) {
|
||||
if cutil.StringInSlice(net, inputNetNames) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
@ -57,7 +58,7 @@ func GeneratePodFilterFunc(filter string, filterValues []string, r *libpod.Runti
|
||||
}, nil
|
||||
case "ctr-status":
|
||||
for _, filterValue := range filterValues {
|
||||
if !util.StringInSlice(filterValue, []string{"created", "running", "paused", "stopped", "exited", "unknown"}) {
|
||||
if !cutil.StringInSlice(filterValue, []string{"created", "running", "paused", "stopped", "exited", "unknown"}) {
|
||||
return nil, errors.Errorf("%s is not a valid status", filterValue)
|
||||
}
|
||||
}
|
||||
@ -94,7 +95,7 @@ func GeneratePodFilterFunc(filter string, filterValues []string, r *libpod.Runti
|
||||
}, nil
|
||||
case "status":
|
||||
for _, filterValue := range filterValues {
|
||||
if !util.StringInSlice(filterValue, []string{"stopped", "running", "paused", "exited", "dead", "created", "degraded"}) {
|
||||
if !cutil.StringInSlice(filterValue, []string{"stopped", "running", "paused", "exited", "dead", "created", "degraded"}) {
|
||||
return nil, errors.Errorf("%s is not a valid pod status", filterValue)
|
||||
}
|
||||
}
|
||||
@ -150,7 +151,7 @@ func GeneratePodFilterFunc(filter string, filterValues []string, r *libpod.Runti
|
||||
return false
|
||||
}
|
||||
for _, net := range networks {
|
||||
if util.StringInSlice(net, inputNetNames) {
|
||||
if cutil.StringInSlice(net, inputNetNames) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -5,9 +5,9 @@ import (
|
||||
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
netutil "github.com/containers/common/libnetwork/util"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/containers/common/pkg/cgroups"
|
||||
"github.com/containers/common/pkg/config"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities/reports"
|
||||
@ -307,7 +308,7 @@ func (ic *ContainerEngine) SystemDf(ctx context.Context, options entities.System
|
||||
reclaimableSize += volSize
|
||||
}
|
||||
for _, viu := range inUse {
|
||||
if util.StringInSlice(viu, runningContainers) {
|
||||
if cutil.StringInSlice(viu, runningContainers) {
|
||||
consInUse++
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package e2e
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/containers/buildah/util"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/cmd/podman/machine"
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
. "github.com/onsi/ginkgo"
|
||||
|
@ -4,9 +4,9 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/rootless"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/parse"
|
||||
"github.com/containers/common/pkg/secrets"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/image/v5/manifest"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
ann "github.com/containers/podman/v4/pkg/annotations"
|
||||
@ -356,7 +357,7 @@ func ToSpecGen(ctx context.Context, opts *CtrSpecGenOptions) (*specgen.SpecGener
|
||||
// a selinux mount option exists for it
|
||||
for k, v := range opts.Annotations {
|
||||
// Make sure the z/Z option is not already there (from editing the YAML)
|
||||
if strings.Replace(k, define.BindMountPrefix, "", 1) == volumeSource.Source && !util.StringInSlice("z", options) && !util.StringInSlice("Z", options) {
|
||||
if strings.Replace(k, define.BindMountPrefix, "", 1) == volumeSource.Source && !cutil.StringInSlice("z", options) && !cutil.StringInSlice("Z", options) {
|
||||
options = append(options, v)
|
||||
}
|
||||
}
|
||||
|
@ -10,9 +10,9 @@ import (
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/podman/v4/utils"
|
||||
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/pkg/specgen"
|
||||
"github.com/containers/podman/v4/pkg/specgenutil"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"github.com/containers/common/pkg/apparmor"
|
||||
"github.com/containers/common/pkg/capabilities"
|
||||
"github.com/containers/common/pkg/config"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/specgen"
|
||||
@ -120,7 +121,7 @@ func securityConfigureGenerator(s *specgen.SpecGenerator, g *generate.Generator,
|
||||
// capabilities, required to run the container.
|
||||
var capsRequiredRequested []string
|
||||
for key, val := range s.Labels {
|
||||
if util.StringInSlice(key, capabilities.ContainerImageLabels) {
|
||||
if cutil.StringInSlice(key, capabilities.ContainerImageLabels) {
|
||||
capsRequiredRequested = strings.Split(val, ",")
|
||||
}
|
||||
}
|
||||
@ -132,7 +133,7 @@ func securityConfigureGenerator(s *specgen.SpecGenerator, g *generate.Generator,
|
||||
}
|
||||
// Verify all capRequired are in the capList
|
||||
for _, cap := range capsRequired {
|
||||
if !util.StringInSlice(cap, caplist) {
|
||||
if !cutil.StringInSlice(cap, caplist) {
|
||||
privCapsRequired = append(privCapsRequired, cap)
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/cgroups"
|
||||
cutil "github.com/containers/common/pkg/util"
|
||||
"github.com/containers/podman/v4/libpod/define"
|
||||
"github.com/containers/podman/v4/pkg/rootless"
|
||||
"github.com/containers/podman/v4/pkg/util"
|
||||
@ -472,7 +473,7 @@ func ParseNetworkFlag(networks []string) (Namespace, map[string]types.PerNetwork
|
||||
if parts[0] == "" {
|
||||
return toReturn, nil, nil, errors.Wrapf(define.ErrInvalidArg, "network name cannot be empty")
|
||||
}
|
||||
if util.StringInSlice(parts[0], []string{string(Bridge), string(Slirp), string(FromPod), string(NoNetwork),
|
||||
if cutil.StringInSlice(parts[0], []string{string(Bridge), string(Slirp), string(FromPod), string(NoNetwork),
|
||||
string(Default), string(Private), string(Path), string(FromContainer), string(Host)}) {
|
||||
return toReturn, nil, nil, errors.Wrapf(define.ErrInvalidArg, "can only set extra network names, selected mode %s conflicts with bridge", parts[0])
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import (
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/common/pkg/util"
|
||||
"github.com/containers/image/v5/types"
|
||||
"github.com/containers/podman/v4/pkg/errorhandling"
|
||||
"github.com/containers/podman/v4/pkg/namespaces"
|
||||
@ -78,14 +79,9 @@ func ParseRegistryCreds(creds string) (*types.DockerAuthConfig, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// StringInSlice determines if a string is in a string slice, returns bool
|
||||
// StringInSlice is depracated, use containers/common/pkg/util/StringInSlice
|
||||
func StringInSlice(s string, sl []string) bool {
|
||||
for _, i := range sl {
|
||||
if i == s {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
return util.StringInSlice(s, sl)
|
||||
}
|
||||
|
||||
// StringMatchRegexSlice determines if a given string matches one of the given regexes, returns bool
|
||||
|
Reference in New Issue
Block a user