Skip to content

Commit eae53b2

Browse files
authored
Merge pull request #316 from Random-Liu/clean-up-state
Cleanup container and sandbox state.
2 parents c58160c + da660f0 commit eae53b2

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

cmd/crictl/container.go

+24-5
Original file line numberDiff line numberDiff line change
@@ -565,18 +565,21 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
565565
}
566566
if opts.state != "" {
567567
st.State = pb.ContainerState_CONTAINER_UNKNOWN
568-
switch opts.state {
568+
switch strings.ToLower(opts.state) {
569569
case "created":
570570
st.State = pb.ContainerState_CONTAINER_CREATED
571571
filter.State = st
572572
case "running":
573573
st.State = pb.ContainerState_CONTAINER_RUNNING
574574
filter.State = st
575-
case "stopped":
575+
case "exited":
576576
st.State = pb.ContainerState_CONTAINER_EXITED
577577
filter.State = st
578+
case "unknown":
579+
st.State = pb.ContainerState_CONTAINER_UNKNOWN
580+
filter.State = st
578581
default:
579-
log.Fatalf("--state should be one of created, running or stopped")
582+
log.Fatalf("--state should be one of created, running, exited or unknown")
580583
}
581584
}
582585
if opts.latest || opts.last > 0 {
@@ -625,7 +628,7 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
625628
}
626629
}
627630
fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%d\n",
628-
id, c.Image.Image, ctm, c.State, c.Metadata.Name, c.Metadata.Attempt)
631+
id, c.Image.Image, ctm, convertContainerState(c.State), c.Metadata.Name, c.Metadata.Attempt)
629632
continue
630633
}
631634

@@ -637,7 +640,7 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
637640
}
638641
fmt.Printf("Attempt: %v\n", c.Metadata.Attempt)
639642
}
640-
fmt.Printf("State: %s\n", c.State)
643+
fmt.Printf("State: %s\n", convertContainerState(c.State))
641644
if c.Image != nil {
642645
fmt.Printf("Image: %s\n", c.Image.Image)
643646
}
@@ -661,6 +664,22 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
661664
return nil
662665
}
663666

667+
func convertContainerState(state pb.ContainerState) string {
668+
switch state {
669+
case pb.ContainerState_CONTAINER_CREATED:
670+
return "Created"
671+
case pb.ContainerState_CONTAINER_RUNNING:
672+
return "Running"
673+
case pb.ContainerState_CONTAINER_EXITED:
674+
return "Exited"
675+
case pb.ContainerState_CONTAINER_UNKNOWN:
676+
return "Unknown"
677+
default:
678+
log.Fatalf("Unknown container state %q", state)
679+
return ""
680+
}
681+
}
682+
664683
func getContainersList(containersList []*pb.Container, opts listOptions) []*pb.Container {
665684
sort.Sort(containerByCreated(containersList))
666685
n := len(containersList)

cmd/crictl/sandbox.go

+15-3
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ func ListPodSandboxes(client pb.RuntimeServiceClient, opts listOptions) error {
387387
if opts.state != "" {
388388
st := &pb.PodSandboxStateValue{}
389389
st.State = pb.PodSandboxState_SANDBOX_NOTREADY
390-
switch opts.state {
390+
switch strings.ToLower(opts.state) {
391391
case "ready":
392392
st.State = pb.PodSandboxState_SANDBOX_READY
393393
filter.State = st
@@ -439,7 +439,7 @@ func ListPodSandboxes(client pb.RuntimeServiceClient, opts listOptions) error {
439439
}
440440
}
441441
fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%d\n",
442-
id, ctm, pod.State, pod.Metadata.Name, pod.Metadata.Namespace, pod.Metadata.Attempt)
442+
id, ctm, convertPodState(pod.State), pod.Metadata.Name, pod.Metadata.Namespace, pod.Metadata.Attempt)
443443
continue
444444
}
445445

@@ -458,7 +458,7 @@ func ListPodSandboxes(client pb.RuntimeServiceClient, opts listOptions) error {
458458
fmt.Printf("Attempt: %v\n", pod.Metadata.Attempt)
459459
}
460460
}
461-
fmt.Printf("Status: %s\n", pod.State)
461+
fmt.Printf("Status: %s\n", convertPodState(pod.State))
462462
ctm := time.Unix(0, pod.CreatedAt)
463463
fmt.Printf("Created: %v\n", ctm)
464464
if pod.Labels != nil {
@@ -480,6 +480,18 @@ func ListPodSandboxes(client pb.RuntimeServiceClient, opts listOptions) error {
480480
return nil
481481
}
482482

483+
func convertPodState(state pb.PodSandboxState) string {
484+
switch state {
485+
case pb.PodSandboxState_SANDBOX_READY:
486+
return "Ready"
487+
case pb.PodSandboxState_SANDBOX_NOTREADY:
488+
return "NotReady"
489+
default:
490+
log.Fatalf("Unknown pod state %q", state)
491+
return ""
492+
}
493+
}
494+
483495
func getSandboxesList(sandboxesList []*pb.PodSandbox, opts listOptions) []*pb.PodSandbox {
484496
sort.Sort(sandboxByCreated(sandboxesList))
485497
n := len(sandboxesList)

0 commit comments

Comments
 (0)