diff options
-rw-r--r-- | cmd/podman/shared/create.go | 7 | ||||
-rw-r--r-- | pkg/spec/containerconfig.go | 22 | ||||
-rw-r--r-- | pkg/spec/createconfig.go | 2 | ||||
-rw-r--r-- | pkg/spec/spec.go | 2 |
4 files changed, 25 insertions, 8 deletions
diff --git a/cmd/podman/shared/create.go b/cmd/podman/shared/create.go index 48476e177..a1b7cee1c 100644 --- a/cmd/podman/shared/create.go +++ b/cmd/podman/shared/create.go @@ -732,12 +732,7 @@ type namespace interface { } func CreateContainerFromCreateConfig(r *libpod.Runtime, createConfig *cc.CreateConfig, ctx context.Context, pod *libpod.Pod) (*libpod.Container, error) { - runtimeSpec, err := cc.CreateConfigToOCISpec(createConfig) - if err != nil { - return nil, err - } - - options, err := createConfig.GetContainerCreateOptions(r, pod) + runtimeSpec, options, err := createConfig.MakeContainerConfig(r, pod) if err != nil { return nil, err } diff --git a/pkg/spec/containerconfig.go b/pkg/spec/containerconfig.go new file mode 100644 index 000000000..62108c012 --- /dev/null +++ b/pkg/spec/containerconfig.go @@ -0,0 +1,22 @@ +package createconfig + +import ( + "github.com/containers/libpod/libpod" + spec "github.com/opencontainers/runtime-spec/specs-go" +) + +// MakeContainerConfig generates all configuration necessary to start a +// container with libpod from a completed CreateConfig struct. +func (config *CreateConfig) MakeContainerConfig(runtime *libpod.Runtime, pod *libpod.Pod) (*spec.Spec, []libpod.CtrCreateOption, error) { + runtimeSpec, err := config.createConfigToOCISpec() + if err != nil { + return nil, nil, err + } + + options, err := config.getContainerCreateOptions(runtime, pod) + if err != nil { + return nil, nil, err + } + + return runtimeSpec, options, nil +} diff --git a/pkg/spec/createconfig.go b/pkg/spec/createconfig.go index 9c674d9f1..76ce8032c 100644 --- a/pkg/spec/createconfig.go +++ b/pkg/spec/createconfig.go @@ -397,7 +397,7 @@ func (c *CreateConfig) createExitCommand() ([]string, error) { } // GetContainerCreateOptions takes a CreateConfig and returns a slice of CtrCreateOptions -func (c *CreateConfig) GetContainerCreateOptions(runtime *libpod.Runtime, pod *libpod.Pod) ([]libpod.CtrCreateOption, error) { +func (c *CreateConfig) getContainerCreateOptions(runtime *libpod.Runtime, pod *libpod.Pod) ([]libpod.CtrCreateOption, error) { var options []libpod.CtrCreateOption var portBindings []ocicni.PortMapping var err error diff --git a/pkg/spec/spec.go b/pkg/spec/spec.go index 383eeadf3..4c839921c 100644 --- a/pkg/spec/spec.go +++ b/pkg/spec/spec.go @@ -89,7 +89,7 @@ func getAvailableGids() (int64, error) { } // CreateConfigToOCISpec parses information needed to create a container into an OCI runtime spec -func CreateConfigToOCISpec(config *CreateConfig) (*spec.Spec, error) { //nolint +func (config *CreateConfig) createConfigToOCISpec() (*spec.Spec, error) { //nolint cgroupPerm := "ro" g, err := generate.New("linux") if err != nil { |