mirror of https://github.com/docker/cli.git
Merge pull request #2000 from thaJeztah/add_ps_state
docker ps: add State field to formatting
This commit is contained in:
commit
63ba419703
|
@ -44,6 +44,7 @@ func NewContainerFormat(source string, quiet bool, size bool) Format {
|
|||
image: {{.Image}}
|
||||
command: {{.Command}}
|
||||
created_at: {{.CreatedAt}}
|
||||
state: {{- pad .State 1 0}}
|
||||
status: {{- pad .Status 1 0}}
|
||||
names: {{.Names}}
|
||||
labels: {{- pad .Labels 1 0}}
|
||||
|
@ -87,6 +88,7 @@ func newContainerContext() *containerContext {
|
|||
"CreatedAt": CreatedAtHeader,
|
||||
"RunningFor": runningForHeader,
|
||||
"Ports": PortsHeader,
|
||||
"State": StateHeader,
|
||||
"Status": StatusHeader,
|
||||
"Size": SizeHeader,
|
||||
"Labels": LabelsHeader,
|
||||
|
@ -169,6 +171,10 @@ func (c *containerContext) Ports() string {
|
|||
return DisplayablePorts(c.c.Ports)
|
||||
}
|
||||
|
||||
func (c *containerContext) State() string {
|
||||
return c.c.State
|
||||
}
|
||||
|
||||
func (c *containerContext) Status() string {
|
||||
return c.c.Status
|
||||
}
|
||||
|
|
|
@ -168,6 +168,10 @@ containerID2 ubuntu "" 24 hours ago
|
|||
Context{Format: NewContainerFormat("table", true, false)},
|
||||
"containerID1\ncontainerID2\n",
|
||||
},
|
||||
{
|
||||
Context{Format: NewContainerFormat("table {{.State}}", false, true)},
|
||||
"STATE\nrunning\nrunning\n",
|
||||
},
|
||||
// Raw Format
|
||||
{
|
||||
Context{Format: NewContainerFormat("raw", false, false)},
|
||||
|
@ -175,6 +179,7 @@ containerID2 ubuntu "" 24 hours ago
|
|||
image: ubuntu
|
||||
command: ""
|
||||
created_at: %s
|
||||
state: running
|
||||
status:
|
||||
names: foobar_baz
|
||||
labels:
|
||||
|
@ -184,6 +189,7 @@ container_id: containerID2
|
|||
image: ubuntu
|
||||
command: ""
|
||||
created_at: %s
|
||||
state: running
|
||||
status:
|
||||
names: foobar_bar
|
||||
labels:
|
||||
|
@ -197,6 +203,7 @@ ports:
|
|||
image: ubuntu
|
||||
command: ""
|
||||
created_at: %s
|
||||
state: running
|
||||
status:
|
||||
names: foobar_baz
|
||||
labels:
|
||||
|
@ -207,6 +214,7 @@ container_id: containerID2
|
|||
image: ubuntu
|
||||
command: ""
|
||||
created_at: %s
|
||||
state: running
|
||||
status:
|
||||
names: foobar_bar
|
||||
labels:
|
||||
|
@ -237,8 +245,8 @@ size: 0B
|
|||
|
||||
for _, testcase := range cases {
|
||||
containers := []types.Container{
|
||||
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu", Created: unixTime},
|
||||
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu", Created: unixTime},
|
||||
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu", Created: unixTime, State: "running"},
|
||||
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu", Created: unixTime, State: "running"},
|
||||
}
|
||||
out := bytes.NewBufferString("")
|
||||
testcase.context.Output = out
|
||||
|
@ -314,8 +322,8 @@ func TestContainerContextWriteWithNoContainers(t *testing.T) {
|
|||
func TestContainerContextWriteJSON(t *testing.T) {
|
||||
unix := time.Now().Add(-65 * time.Second).Unix()
|
||||
containers := []types.Container{
|
||||
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu", Created: unix},
|
||||
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu", Created: unix},
|
||||
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu", Created: unix, State: "running"},
|
||||
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu", Created: unix, State: "running"},
|
||||
}
|
||||
expectedCreated := time.Unix(unix, 0).String()
|
||||
expectedJSONs := []map[string]interface{}{
|
||||
|
@ -332,6 +340,7 @@ func TestContainerContextWriteJSON(t *testing.T) {
|
|||
"Ports": "",
|
||||
"RunningFor": "About a minute ago",
|
||||
"Size": "0B",
|
||||
"State": "running",
|
||||
"Status": "",
|
||||
},
|
||||
{
|
||||
|
@ -347,6 +356,7 @@ func TestContainerContextWriteJSON(t *testing.T) {
|
|||
"Ports": "",
|
||||
"RunningFor": "About a minute ago",
|
||||
"Size": "0B",
|
||||
"State": "running",
|
||||
"Status": "",
|
||||
},
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ const (
|
|||
DescriptionHeader = "DESCRIPTION"
|
||||
DriverHeader = "DRIVER"
|
||||
ScopeHeader = "SCOPE"
|
||||
StateHeader = "STATE"
|
||||
StatusHeader = "STATUS"
|
||||
PortsHeader = "PORTS"
|
||||
ImageHeader = "IMAGE"
|
||||
|
|
|
@ -397,7 +397,8 @@ Valid placeholders for the Go template are listed below:
|
|||
| `.CreatedAt` | Time when the container was created. |
|
||||
| `.RunningFor` | Elapsed time since the container was started. |
|
||||
| `.Ports` | Exposed ports. |
|
||||
| `.Status` | Container status. |
|
||||
| `.State` | Container status (for example; "created", "running", "exited"). |
|
||||
| `.Status` | Container status with details about duration and health-status. |
|
||||
| `.Size` | Container disk size. |
|
||||
| `.Names` | Container names. |
|
||||
| `.Labels` | All labels assigned to the container. |
|
||||
|
|
Loading…
Reference in New Issue