summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2018-06-20 17:08:18 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-06-22 14:30:18 +0000
commit82a948c04ec068acb9f0d47dc0f9e3bd05b4c90c (patch)
treef28917f2e37ea0cc2b4523cc9c6f1d4c4c4049cd /pkg
parentbb4db6d54873c05d0654ab848c09c24a76c95a73 (diff)
downloadpodman-82a948c04ec068acb9f0d47dc0f9e3bd05b4c90c.tar.gz
podman-82a948c04ec068acb9f0d47dc0f9e3bd05b4c90c.tar.bz2
podman-82a948c04ec068acb9f0d47dc0f9e3bd05b4c90c.zip
Option handling has become large and should be a shared function
Everytime we add a new option for create, we end up having to also add it to run, this makes it error prone. Moving these to the same function makes it easier to develop and prevents user mistakes. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #975 Approved by: mheon
Diffstat (limited to 'pkg')
-rw-r--r--pkg/spec/createconfig.go21
-rw-r--r--pkg/varlinkapi/containers_create.go12
2 files changed, 22 insertions, 11 deletions
diff --git a/pkg/spec/createconfig.go b/pkg/spec/createconfig.go
index 36a6e83f2..205e08c57 100644
--- a/pkg/spec/createconfig.go
+++ b/pkg/spec/createconfig.go
@@ -413,6 +413,27 @@ func (c *CreateConfig) GetContainerCreateOptions() ([]libpod.CtrCreateOption, er
}
options = append(options, libpod.WithPrivileged(c.Privileged))
+
+ useImageVolumes := c.ImageVolumeType == "bind"
+ // Gather up the options for NewContainer which consist of With... funcs
+ options = append(options, libpod.WithRootFSFromImage(c.ImageID, c.Image, useImageVolumes))
+ options = append(options, libpod.WithSELinuxLabels(c.ProcessLabel, c.MountLabel))
+ options = append(options, libpod.WithConmonPidFile(c.ConmonPidFile))
+ options = append(options, libpod.WithLabels(c.Labels))
+ options = append(options, libpod.WithUser(c.User))
+ options = append(options, libpod.WithShmDir(c.ShmDir))
+ options = append(options, libpod.WithShmSize(c.Resources.ShmSize))
+ options = append(options, libpod.WithGroups(c.GroupAdd))
+ options = append(options, libpod.WithIDMappings(*c.IDMappings))
+ if c.Rootfs != "" {
+ options = append(options, libpod.WithRootFS(c.Rootfs))
+ }
+ // Default used if not overridden on command line
+
+ if c.CgroupParent != "" {
+ options = append(options, libpod.WithCgroupParent(c.CgroupParent))
+ }
+
return options, nil
}
diff --git a/pkg/varlinkapi/containers_create.go b/pkg/varlinkapi/containers_create.go
index 40bd92e9a..8268a3fdd 100644
--- a/pkg/varlinkapi/containers_create.go
+++ b/pkg/varlinkapi/containers_create.go
@@ -41,7 +41,6 @@ func (i *LibpodAPI) CreateContainer(call ioprojectatomicpodman.VarlinkCall, conf
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
- useImageVolumes := createConfig.ImageVolumeType == "bind"
runtimeSpec, err := cc.CreateConfigToOCISpec(createConfig)
if err != nil {
@@ -52,16 +51,7 @@ func (i *LibpodAPI) CreateContainer(call ioprojectatomicpodman.VarlinkCall, conf
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
- // Gather up the options for NewContainer which consist of With... funcs
- options = append(options, libpod.WithRootFSFromImage(createConfig.ImageID, createConfig.Image, useImageVolumes))
- options = append(options, libpod.WithSELinuxLabels(createConfig.ProcessLabel, createConfig.MountLabel))
- options = append(options, libpod.WithConmonPidFile(createConfig.ConmonPidFile))
- options = append(options, libpod.WithLabels(createConfig.Labels))
- options = append(options, libpod.WithUser(createConfig.User))
- options = append(options, libpod.WithShmDir(createConfig.ShmDir))
- options = append(options, libpod.WithShmSize(createConfig.Resources.ShmSize))
- options = append(options, libpod.WithGroups(createConfig.GroupAdd))
- options = append(options, libpod.WithIDMappings(*createConfig.IDMappings))
+
ctr, err := runtime.NewContainer(ctx, runtimeSpec, options...)
if err != nil {
return call.ReplyErrorOccurred(err.Error())