diff options
author | Matthew Heon <mheon@redhat.com> | 2021-12-22 09:35:00 -0500 |
---|---|---|
committer | Matthew Heon <mheon@redhat.com> | 2022-01-17 13:56:07 -0500 |
commit | 141de86862898a4b9e35c15f51031952c63c7114 (patch) | |
tree | c5ad04e0c9ec12d98d09ecfc51b54e6b4b30f494 /libpod/define/containerstate.go | |
parent | 8514ebd1827b12bae8b5d53d8f0e36244d1b3c3a (diff) | |
download | podman-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.go | 15 |
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: |