mirror of
https://github.com/containers/podman.git
synced 2025-07-04 10:10:32 +08:00
Merge pull request #14700 from shuttle-hq/bug/docker-compat-initialized
Docker compat returning unknown "initialized" for `status.status`
This commit is contained in:
@ -289,8 +289,10 @@ func LibpodToContainer(l *libpod.Container, sz bool) (*handlers.Container, error
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
stateStr := state.String()
|
stateStr := state.String()
|
||||||
if stateStr == "configured" {
|
|
||||||
stateStr = "created"
|
// Some docker states are not the same as ours. This makes sure the state string stays true to the Docker API
|
||||||
|
if state == define.ContainerStateCreated {
|
||||||
|
stateStr = define.ContainerStateConfigured.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
switch state {
|
switch state {
|
||||||
@ -420,9 +422,9 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
|
|||||||
state.Running = true
|
state.Running = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// docker calls the configured state "created"
|
// Dockers created state is our configured state
|
||||||
if state.Status == define.ContainerStateConfigured.String() {
|
if state.Status == define.ContainerStateCreated.String() {
|
||||||
state.Status = define.ContainerStateCreated.String()
|
state.Status = define.ContainerStateConfigured.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
if l.HasHealthCheck() && state.Status != "created" {
|
if l.HasHealthCheck() && state.Status != "created" {
|
||||||
|
@ -502,3 +502,27 @@ done
|
|||||||
|
|
||||||
stop_service
|
stop_service
|
||||||
start_service
|
start_service
|
||||||
|
|
||||||
|
# Our states are different from Docker's.
|
||||||
|
# Regression test for #14700 (Docker compat returning unknown "initialized" for status.status) to ensure the stay compatible
|
||||||
|
podman create --name status-test $IMAGE sh -c "sleep 3"
|
||||||
|
t GET containers/status-test/json 200 .State.Status="created"
|
||||||
|
|
||||||
|
podman init status-test
|
||||||
|
t GET containers/status-test/json 200 .State.Status="created"
|
||||||
|
|
||||||
|
podman start status-test
|
||||||
|
t GET containers/status-test/json 200 .State.Status="running"
|
||||||
|
|
||||||
|
podman pause status-test
|
||||||
|
t GET containers/status-test/json 200 .State.Status="paused"
|
||||||
|
|
||||||
|
podman unpause status-test
|
||||||
|
t GET containers/status-test/json 200 .State.Status="running"
|
||||||
|
|
||||||
|
podman stop status-test &
|
||||||
|
sleep 1
|
||||||
|
t GET containers/status-test/json 200 .State.Status="stopping"
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
t GET containers/status-test/json 200 .State.Status="exited"
|
||||||
|
Reference in New Issue
Block a user