summaryrefslogtreecommitdiff
path: root/libpod/define/containerstate.go
diff options
context:
space:
mode:
authorMatthew Heon <mheon@redhat.com>2021-12-22 09:35:00 -0500
committerMatthew Heon <mheon@redhat.com>2022-01-17 13:56:07 -0500
commit141de86862898a4b9e35c15f51031952c63c7114 (patch)
treec5ad04e0c9ec12d98d09ecfc51b54e6b4b30f494 /libpod/define/containerstate.go
parent8514ebd1827b12bae8b5d53d8f0e36244d1b3c3a (diff)
downloadpodman-141de86862898a4b9e35c15f51031952c63c7114.tar.gz
podman-141de86862898a4b9e35c15f51031952c63c7114.tar.bz2
podman-141de86862898a4b9e35c15f51031952c63c7114.zip
Revamp Libpod state strings for Docker compat
Improve our compatibility with Docker by better handling the state strings that we print in `podman ps`. Docker capitalizes all states in `ps` (we do not) - fix this in our PS code. Also, stop normalizing ContainerStateConfigured to the "Created" state, and instead make it always be Created, with the existing Created state becoming Initialized. I didn't rename the actual states because I'm somewhat reticent to make such a large change a day before we leave for break. It's somewhat confusing that ContainerStateConfigured now returns Created, but internally and externally we're still consistent. [NO NEW TESTS NEEDED] existing tests should catch anything that broke. I also consider this a breaking change. I will flag appropriately on Github. Fixes RHBZ#2010432 and RHBZ#2032561 Signed-off-by: Matthew Heon <mheon@redhat.com>
Diffstat (limited to 'libpod/define/containerstate.go')
-rw-r--r--libpod/define/containerstate.go15
1 files changed, 11 insertions, 4 deletions
diff --git a/libpod/define/containerstate.go b/libpod/define/containerstate.go
index fc272beaa..23ba1f451 100644
--- a/libpod/define/containerstate.go
+++ b/libpod/define/containerstate.go
@@ -37,16 +37,23 @@ const (
ContainerStateStopping ContainerStatus = iota
)
-// ContainerStatus returns a string representation for users
-// of a container state
+// ContainerStatus returns a string representation for users of a container
+// state. All results should match Docker's versions (from `docker ps`) as
+// closely as possible, given the different set of states we support.
func (t ContainerStatus) String() string {
switch t {
case ContainerStateUnknown:
return "unknown"
case ContainerStateConfigured:
- return "configured"
- case ContainerStateCreated:
+ // The naming here is confusing, but it's necessary for Docker
+ // compatibility - their Created state is our Configured state.
return "created"
+ case ContainerStateCreated:
+ // Docker does not have an equivalent to this state, so give it
+ // a clear name. Most of the time this is a purely transitory
+ // state between Configured and Running so we don't expect to
+ // see it much anyways.
+ return "initialized"
case ContainerStateRunning:
return "running"
case ContainerStateStopped: