diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-04-03 23:53:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-03 23:53:45 +0200 |
commit | f7dffedeb610df662e69915fcff1bb37986baf55 (patch) | |
tree | 33ced51adee58d38b39416191e2e8a207ce4ec47 /cmd/podmanV2/common/createparse.go | |
parent | 35f586783388cdff6b4f15e7aff4df1ee72d9b67 (diff) | |
parent | 6514a5c80ef91ef6e16e283339cd0b5f78a42322 (diff) | |
download | podman-f7dffedeb610df662e69915fcff1bb37986baf55.tar.gz podman-f7dffedeb610df662e69915fcff1bb37986baf55.tar.bz2 podman-f7dffedeb610df662e69915fcff1bb37986baf55.zip |
Merge pull request #5710 from baude/v2create
v2podman container create
Diffstat (limited to 'cmd/podmanV2/common/createparse.go')
-rw-r--r-- | cmd/podmanV2/common/createparse.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/cmd/podmanV2/common/createparse.go b/cmd/podmanV2/common/createparse.go new file mode 100644 index 000000000..89524a04b --- /dev/null +++ b/cmd/podmanV2/common/createparse.go @@ -0,0 +1,51 @@ +package common + +import ( + "github.com/containers/libpod/cmd/podmanV2/parse" + "github.com/containers/libpod/pkg/util" + "github.com/pkg/errors" +) + +// validate determines if the flags and values given by the user are valid. things checked +// by validate must not need any state information on the flag (i.e. changed) +func (c *ContainerCLIOpts) validate() error { + var () + if c.Rm && c.Restart != "" && c.Restart != "no" { + return errors.Errorf("the --rm option conflicts with --restart") + } + + if _, err := util.ValidatePullType(c.Pull); err != nil { + return err + } + // Verify the additional hosts are in correct format + for _, host := range c.Net.AddHosts { + if _, err := parse.ValidateExtraHost(host); err != nil { + return err + } + } + + if dnsSearches := c.Net.DNSSearch; len(dnsSearches) > 0 { + // Validate domains are good + for _, dom := range dnsSearches { + if dom == "." { + if len(dnsSearches) > 1 { + return errors.Errorf("cannot pass additional search domains when also specifying '.'") + } + continue + } + if _, err := parse.ValidateDomain(dom); err != nil { + return err + } + } + } + var imageVolType = map[string]string{ + "bind": "", + "tmpfs": "", + "ignore": "", + } + if _, ok := imageVolType[c.ImageVolume]; !ok { + return errors.Errorf("invalid image-volume type %q. Pick one of bind, tmpfs, or ignore", c.ImageVolume) + } + return nil + +} |