mirror of
https://github.com/containers/podman.git
synced 2025-12-03 11:49:18 +08:00
With the advent of Podman 2.0.0 we crossed the magical barrier of go modules. While we were able to continue importing all packages inside of the project, the project could not be vendored anymore from the outside. Move the go module to new major version and change all imports to `github.com/containers/libpod/v2`. The renaming of the imports was done via `gomove` [1]. [1] https://github.com/KSubedi/gomove Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package createconfig
|
|
|
|
import (
|
|
"github.com/containers/libpod/v2/libpod"
|
|
"github.com/containers/libpod/v2/libpod/define"
|
|
spec "github.com/opencontainers/runtime-spec/specs-go"
|
|
"github.com/pkg/errors"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// 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) {
|
|
if config.Pod != "" && pod == nil {
|
|
return nil, nil, errors.Wrapf(define.ErrInvalidArg, "pod was specified but no pod passed")
|
|
} else if config.Pod == "" && pod != nil {
|
|
return nil, nil, errors.Wrapf(define.ErrInvalidArg, "pod was given but no pod is specified")
|
|
}
|
|
|
|
// Parse volumes flag into OCI spec mounts and libpod Named Volumes.
|
|
// If there is an identical mount in the OCI spec, we will replace it
|
|
// with a mount generated here.
|
|
mounts, namedVolumes, err := config.parseVolumes(runtime)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
runtimeSpec, err := config.createConfigToOCISpec(runtime, mounts)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
options, err := config.getContainerCreateOptions(runtime, pod, mounts, namedVolumes)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
logrus.Debugf("created OCI spec and options for new container")
|
|
|
|
return runtimeSpec, options, nil
|
|
}
|