server: properly format error
`containerdID` is overridden in `s.ctrIDIndex.Get()`, if the ctr is not found it's overridden by an empty string making the error return totally unusable. Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
330f5cc9db
commit
66e9c7d2a9
2 changed files with 62 additions and 4 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue