mirror of
https://github.com/containers/podman.git
synced 2025-05-26 03:47:53 +08:00
Add an InvalidState varlink error for Init
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@ -33,6 +33,8 @@ func outputError(err error) {
|
|||||||
ne = errors.New(e.Reason)
|
ne = errors.New(e.Reason)
|
||||||
case *iopodman.VolumeNotFound:
|
case *iopodman.VolumeNotFound:
|
||||||
ne = errors.New(e.Reason)
|
ne = errors.New(e.Reason)
|
||||||
|
case *iopodman.InvalidState:
|
||||||
|
ne = errors.New(e.Reason)
|
||||||
case *iopodman.ErrorOccurred:
|
case *iopodman.ErrorOccurred:
|
||||||
ne = errors.New(e.Reason)
|
ne = errors.New(e.Reason)
|
||||||
default:
|
default:
|
||||||
|
@ -1233,7 +1233,7 @@ error PodNotFound (name: string, reason: string)
|
|||||||
# VolumeNotFound means the volume could not be found by the name or ID in local storage.
|
# VolumeNotFound means the volume could not be found by the name or ID in local storage.
|
||||||
error VolumeNotFound (id: string, reason: string)
|
error VolumeNotFound (id: string, reason: string)
|
||||||
|
|
||||||
# PodContainerError means a container associated with a pod failed to preform an operation. It contains
|
# PodContainerError means a container associated with a pod failed to perform an operation. It contains
|
||||||
# a container ID of the container that failed.
|
# a container ID of the container that failed.
|
||||||
error PodContainerError (podname: string, errors: []PodContainerErrorData)
|
error PodContainerError (podname: string, errors: []PodContainerErrorData)
|
||||||
|
|
||||||
@ -1241,6 +1241,9 @@ error PodContainerError (podname: string, errors: []PodContainerErrorData)
|
|||||||
# the pod ID.
|
# the pod ID.
|
||||||
error NoContainersInPod (name: string)
|
error NoContainersInPod (name: string)
|
||||||
|
|
||||||
|
# InvalidState indicates that a container or pod was in an improper state for the requested operation
|
||||||
|
error InvalidState (id: string, reason: string)
|
||||||
|
|
||||||
# ErrorOccurred is a generic error for an error that occurs during the execution. The actual error message
|
# ErrorOccurred is a generic error for an error that occurs during the execution. The actual error message
|
||||||
# is includes as part of the error's text.
|
# is includes as part of the error's text.
|
||||||
error ErrorOccurred (reason: string)
|
error ErrorOccurred (reason: string)
|
||||||
|
@ -251,7 +251,16 @@ func (r *LocalRuntime) InitContainers(ctx context.Context, cli *cliconfig.InitVa
|
|||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
initialized, err := iopodman.InitContainer().Call(r.Conn, id)
|
initialized, err := iopodman.InitContainer().Call(r.Conn, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if cli.All {
|
||||||
|
switch err.(type) {
|
||||||
|
case *iopodman.InvalidState:
|
||||||
|
ok = append(ok, initialized)
|
||||||
|
default:
|
||||||
failures[id] = err
|
failures[id] = err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
failures[id] = err
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ok = append(ok, initialized)
|
ok = append(ok, initialized)
|
||||||
}
|
}
|
||||||
|
@ -372,6 +372,9 @@ func (i *LibpodAPI) InitContainer(call iopodman.VarlinkCall, name string) error
|
|||||||
return call.ReplyContainerNotFound(name, err.Error())
|
return call.ReplyContainerNotFound(name, err.Error())
|
||||||
}
|
}
|
||||||
if err := ctr.Init(getContext()); err != nil {
|
if err := ctr.Init(getContext()); err != nil {
|
||||||
|
if errors.Cause(err) == libpod.ErrCtrStateInvalid {
|
||||||
|
return call.ReplyInvalidState(ctr.ID(), err.Error())
|
||||||
|
}
|
||||||
return call.ReplyErrorOccurred(err.Error())
|
return call.ReplyErrorOccurred(err.Error())
|
||||||
}
|
}
|
||||||
return call.ReplyInitContainer(ctr.ID())
|
return call.ReplyInitContainer(ctr.ID())
|
||||||
|
Reference in New Issue
Block a user