summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/podman/common/create.go4
-rw-r--r--cmd/podman/common/create_opts.go4
-rw-r--r--cmd/podman/common/netflags.go4
-rw-r--r--cmd/podman/common/specgen.go19
4 files changed, 15 insertions, 16 deletions
diff --git a/cmd/podman/common/create.go b/cmd/podman/common/create.go
index f256d9677..bdf762ed7 100644
--- a/cmd/podman/common/create.go
+++ b/cmd/podman/common/create.go
@@ -55,7 +55,7 @@ func GetCreateFlags(cf *ContainerCLIOpts) *pflag.FlagSet {
"cgroup namespace to use",
)
createFlags.StringVar(
- &cf.CGroups,
+ &cf.CGroupsMode,
"cgroups", containerConfig.Cgroups(),
`control container cgroup configuration ("enabled"|"disabled"|"no-conmon")`,
)
@@ -125,7 +125,7 @@ func GetCreateFlags(cf *ContainerCLIOpts) *pflag.FlagSet {
"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or a comma separated sequence of `ctrl-<value>`, where `<value>` is one of: `a-cf`, `@`, `^`, `[`, `\\`, `]`, `^` or `_`",
)
createFlags.StringSliceVar(
- &cf.Device,
+ &cf.Devices,
"device", containerConfig.Devices(),
fmt.Sprintf("Add a host device to the container"),
)
diff --git a/cmd/podman/common/create_opts.go b/cmd/podman/common/create_opts.go
index 9d12e4b26..2f08bb6a6 100644
--- a/cmd/podman/common/create_opts.go
+++ b/cmd/podman/common/create_opts.go
@@ -11,7 +11,7 @@ type ContainerCLIOpts struct {
CapAdd []string
CapDrop []string
CGroupsNS string
- CGroups string
+ CGroupsMode string
CGroupParent string
CIDFile string
ConmonPIDFile string
@@ -25,7 +25,7 @@ type ContainerCLIOpts struct {
CPUSetMems string
Detach bool
DetachKeys string
- Device []string
+ Devices []string
DeviceCGroupRule []string
DeviceReadBPs []string
DeviceReadIOPs []string
diff --git a/cmd/podman/common/netflags.go b/cmd/podman/common/netflags.go
index a439eb792..2bb45476b 100644
--- a/cmd/podman/common/netflags.go
+++ b/cmd/podman/common/netflags.go
@@ -4,6 +4,7 @@ import (
"net"
"github.com/containers/libpod/cmd/podman/parse"
+ "github.com/containers/libpod/libpod/define"
"github.com/containers/libpod/pkg/domain/entities"
"github.com/containers/libpod/pkg/specgen"
"github.com/pkg/errors"
@@ -149,6 +150,9 @@ func NetFlagsToNetOptions(cmd *cobra.Command) (*entities.NetOptions, error) {
if staticIP == nil {
return nil, errors.Errorf("%s is not an ip address", ip)
}
+ if staticIP.To4() == nil {
+ return nil, errors.Wrapf(define.ErrInvalidArg, "%s is not an IPv4 address", ip)
+ }
opts.StaticIP = &staticIP
}
diff --git a/cmd/podman/common/specgen.go b/cmd/podman/common/specgen.go
index fc0167461..1e857ea01 100644
--- a/cmd/podman/common/specgen.go
+++ b/cmd/podman/common/specgen.go
@@ -123,7 +123,7 @@ func getPidsLimits(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string)
pids.Limit = c.PIDsLimit
hasLimits = true
}
- if c.CGroups == "disabled" && c.PIDsLimit > 0 {
+ if c.CGroupsMode == "disabled" && c.PIDsLimit > 0 {
s.ResourceLimits.Pids.Limit = -1
}
if !hasLimits {
@@ -472,12 +472,11 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
if ld := c.LogDriver; len(ld) > 0 {
s.LogConfiguration.Driver = ld
}
+ s.CgroupParent = c.CGroupParent
+ s.CgroupsMode = c.CGroupsMode
// TODO WTF
//cgroup := &cc.CgroupConfig{
- // Cgroups: c.String("cgroups"),
// Cgroupns: c.String("cgroupns"),
- // CgroupParent: c.String("cgroup-parent"),
- // CgroupMode: cgroupMode,
//}
//
//userns := &cc.UserConfig{
@@ -494,6 +493,7 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
// Hostname: c.String("hostname"),
//}
+ s.Hostname = c.Hostname
sysctl := map[string]string{}
if ctl := c.Sysctl; len(ctl) > 0 {
sysctl, err = util.ValidateSysctls(ctl)
@@ -561,14 +561,9 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
//s.Mounts = c.Mount
s.VolumesFrom = c.VolumesFrom
- // TODO any idea why this was done
- //devices := rtc.Containers.Devices
- // TODO conflict on populate?
- //
- //if c.Changed("device") {
- // devices = append(devices, c.StringSlice("device")...)
- //}
-
+ for _, dev := range c.Devices {
+ s.Devices = append(s.Devices, specs.LinuxDevice{Path: dev})
+ }
// TODO things i cannot find in spec
// we dont think these are in the spec
// init - initbinary