diff --git a/server/container.go b/server/container.go index 56fb7e73..96cfe517 100644 --- a/server/container.go +++ b/server/container.go @@ -13,14 +13,14 @@ const ( containerTypeContainer = "container" ) -func (s *Server) getContainerFromRequest(containerID string) (*oci.Container, error) { - if containerID == "" { +func (s *Server) getContainerFromRequest(cid string) (*oci.Container, error) { + if cid == "" { return nil, fmt.Errorf("container ID should not be empty") } - containerID, err := s.ctrIDIndex.Get(containerID) + containerID, err := s.ctrIDIndex.Get(cid) if err != nil { - return nil, fmt.Errorf("container with ID starting with %s not found: %v", containerID, err) + return nil, fmt.Errorf("container with ID starting with %s not found: %v", cid, err) } c := s.state.containers.Get(containerID) diff --git a/test/ctr.bats b/test/ctr.bats index 675a83cf..6bc30b24 100644 --- a/test/ctr.bats +++ b/test/ctr.bats @@ -6,6 +6,64 @@ function teardown() { cleanup_test } +@test "ctr not found correct error message" { + start_crio + run crioctl ctr status --id randomid + echo "$output" + [ "$status" -eq 1 ] + [[ "$output" =~ "container with ID starting with randomid not found" ]] + + stop_crio +} + +@test "ctr termination reason Completed" { + start_crio + run crioctl pod run --config "$TESTDATA"/sandbox_config.json + echo "$output" + [ "$status" -eq 0 ] + pod_id="$output" + run crioctl ctr create --config "$TESTDATA"/container_config.json --pod "$pod_id" + echo "$output" + [ "$status" -eq 0 ] + ctr_id="$output" + run crioctl ctr start --id "$ctr_id" + echo "$output" + [ "$status" -eq 0 ] + run crioctl ctr status --id "$ctr_id" + echo "$output" + [ "$status" -eq 0 ] + [[ "$output" =~ "Reason: Completed" ]] + + cleanup_ctrs + cleanup_pods + stop_crio +} + +@test "ctr termination reason Error" { + start_crio + run crioctl pod run --config "$TESTDATA"/sandbox_config.json + echo "$output" + [ "$status" -eq 0 ] + pod_id="$output" + errorconfig=$(cat "$TESTDATA"/container_config.json | python -c 'import json,sys;obj=json.load(sys.stdin);obj["command"] = ["false"]; json.dump(obj, sys.stdout)') + echo "$errorconfig" > "$TESTDIR"/container_config_error.json + run crioctl ctr create --config "$TESTDIR"/container_config_error.json --pod "$pod_id" + echo "$output" + [ "$status" -eq 0 ] + ctr_id="$output" + run crioctl ctr start --id "$ctr_id" + echo "$output" + [ "$status" -eq 0 ] + run crioctl ctr status --id "$ctr_id" + echo "$output" + [ "$status" -eq 0 ] + [[ "$output" =~ "Reason: Error" ]] + + cleanup_ctrs + cleanup_pods + stop_crio +} + @test "ctr remove" { start_crio run crioctl pod run --config "$TESTDATA"/sandbox_config.json