mirror of
https://github.com/containers/podman.git
synced 2025-05-22 01:27:07 +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)
|
||||
case *iopodman.VolumeNotFound:
|
||||
ne = errors.New(e.Reason)
|
||||
case *iopodman.InvalidState:
|
||||
ne = errors.New(e.Reason)
|
||||
case *iopodman.ErrorOccurred:
|
||||
ne = errors.New(e.Reason)
|
||||
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.
|
||||
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.
|
||||
error PodContainerError (podname: string, errors: []PodContainerErrorData)
|
||||
|
||||
@ -1241,6 +1241,9 @@ error PodContainerError (podname: string, errors: []PodContainerErrorData)
|
||||
# the pod ID.
|
||||
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
|
||||
# is includes as part of the error's text.
|
||||
error ErrorOccurred (reason: string)
|
||||
@ -1249,4 +1252,4 @@ error ErrorOccurred (reason: string)
|
||||
error RuntimeError (reason: string)
|
||||
|
||||
# The Podman endpoint requires that you use a streaming connection.
|
||||
error WantsMoreRequired (reason: string)
|
||||
error WantsMoreRequired (reason: string)
|
@ -251,7 +251,16 @@ func (r *LocalRuntime) InitContainers(ctx context.Context, cli *cliconfig.InitVa
|
||||
for _, id := range ids {
|
||||
initialized, err := iopodman.InitContainer().Call(r.Conn, id)
|
||||
if err != nil {
|
||||
failures[id] = err
|
||||
if cli.All {
|
||||
switch err.(type) {
|
||||
case *iopodman.InvalidState:
|
||||
ok = append(ok, initialized)
|
||||
default:
|
||||
failures[id] = err
|
||||
}
|
||||
} else {
|
||||
failures[id] = err
|
||||
}
|
||||
} else {
|
||||
ok = append(ok, initialized)
|
||||
}
|
||||
|
@ -372,6 +372,9 @@ func (i *LibpodAPI) InitContainer(call iopodman.VarlinkCall, name string) error
|
||||
return call.ReplyContainerNotFound(name, err.Error())
|
||||
}
|
||||
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.ReplyInitContainer(ctr.ID())
|
||||
|
Reference in New Issue
Block a user