diff options
-rw-r--r-- | libpod/options.go | 84 | ||||
-rw-r--r-- | libpod/util.go | 15 |
2 files changed, 29 insertions, 70 deletions
diff --git a/libpod/options.go b/libpod/options.go index f9ef2468e..ae6b19055 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -557,16 +557,8 @@ func WithIPCNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -587,16 +579,8 @@ func WithMountNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -617,16 +601,8 @@ func WithNetNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -647,16 +623,8 @@ func WithPIDNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -677,16 +645,8 @@ func WithUTSNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -707,16 +667,8 @@ func WithUserNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() @@ -737,16 +689,8 @@ func WithCgroupNSFromPod(p *Pod) CtrCreateOption { return ErrCtrFinalized } - if p == nil { - return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") - } - - if ctr.config.Pod == "" { - return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") - } - - if ctr.config.Pod != p.ID() { - return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + if err := validPodNSOption(p, ctr.config.Pod); err != nil { + return err } infraContainer, err := p.InfraContainerID() diff --git a/libpod/util.go b/libpod/util.go index 13235059f..17325f6e4 100644 --- a/libpod/util.go +++ b/libpod/util.go @@ -145,3 +145,18 @@ func sortMounts(m []spec.Mount) []spec.Mount { sort.Sort(byDestination(m)) return m } + +func validPodNSOption(p *Pod, ctrPod string) error { + if p == nil { + return errors.Wrapf(ErrInvalidArg, "pod passed in was nil. Container may not be associated with a pod") + } + + if ctrPod == "" { + return errors.Wrapf(ErrInvalidArg, "container is not a member of any pod") + } + + if ctrPod != p.ID() { + return errors.Wrapf(ErrInvalidArg, "pod passed in is not the pod the container is associated with") + } + return nil +} |