Skip to content

Commit 92a1508

Browse files
committed
compat: fix Container State.Status JSON values
This mirrors the conversion currently being done in `LibpodToContainer` into `LibpodToContainerJSON`, converting podman style statuses to docker style statuses as defined in their OpenAPI definition: https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerInspect Fixes: #17728 Signed-off-by: Patrick Barrett <[email protected]>
1 parent 5fef6b7 commit 92a1508

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

pkg/api/handlers/compat/containers.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,9 +463,20 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*container.InspectResp
463463
state.Running = true
464464
}
465465

466-
// Dockers created state is our configured state
467-
if state.Status == define.ContainerStateCreated.String() {
468-
state.Status = define.ContainerStateConfigured.String()
466+
// map our statuses to Docker's statuses
467+
switch state.Status {
468+
case define.ContainerStateConfigured.String(), define.ContainerStateCreated.String():
469+
state.Status = "created"
470+
case define.ContainerStateRunning.String(), define.ContainerStateStopping.String():
471+
state.Status = "running"
472+
case define.ContainerStatePaused.String():
473+
state.Status = "paused"
474+
case define.ContainerStateRemoving.String():
475+
state.Status = "removing"
476+
case define.ContainerStateStopped.String(), define.ContainerStateExited.String():
477+
state.Status = "exited"
478+
default:
479+
state.Status = "" // unknown state
469480
}
470481

471482
if l.HasHealthCheck() && state.Status != "created" {

test/apiv2/20-containers.at

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ t GET containers/status-test/json 200 .State.Status="running"
698698

699699
podman stop status-test &
700700
sleep 1
701-
t GET containers/status-test/json 200 .State.Status="stopping"
701+
t GET containers/status-test/json 200 .State.Status="running"
702702

703703
sleep 3
704704
t GET containers/status-test/json 200 .State.Status="exited"

0 commit comments

Comments
 (0)