2016-10-08 12:24:16 +00:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
|
|
|
|
load helpers
|
|
|
|
|
|
|
|
function teardown() {
|
|
|
|
cleanup_test
|
|
|
|
}
|
|
|
|
|
2017-05-12 13:36:15 +00:00
|
|
|
@test "crio restore" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2016-10-08 12:24:16 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl pods --quiet --id "$pod_id"
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_list_info="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspectp "$pod_id" --output table
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2017-11-15 15:24:20 +00:00
|
|
|
pod_status_info=`echo "$output" | grep Status`
|
2016-10-27 06:24:27 +00:00
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl create "$pod_id" "$TESTDATA"/container_config.json "$TESTDATA"/sandbox_config.json
|
2016-10-08 12:24:16 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
ctr_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl ps --quiet --id "$ctr_id" --all
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
ctr_list_info="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspect "$ctr_id" --output table
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2017-11-15 15:24:20 +00:00
|
|
|
ctr_status_info=`echo "$output" | grep State`
|
2016-10-27 06:24:27 +00:00
|
|
|
|
2017-05-12 13:36:15 +00:00
|
|
|
stop_crio
|
2016-10-08 12:24:16 +00:00
|
|
|
|
2017-05-12 13:36:15 +00:00
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl pods --quiet
|
2016-10-08 12:24:16 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2016-10-08 12:57:45 +00:00
|
|
|
[[ "${output}" != "" ]]
|
2017-11-15 15:24:20 +00:00
|
|
|
[[ "${output}" == "${pod_id}" ]]
|
2016-10-08 12:24:16 +00:00
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl pods --quiet --id "$pod_id"
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" == "${pod_list_info}" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspectp "$pod_id" --output table
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2017-11-15 15:24:20 +00:00
|
|
|
output=`echo "$output" | grep Status`
|
2016-10-27 06:24:27 +00:00
|
|
|
[[ "${output}" == "${pod_status_info}" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl ps --quiet --all
|
2016-10-08 12:24:16 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2016-10-08 12:57:45 +00:00
|
|
|
[[ "${output}" != "" ]]
|
2017-11-15 15:24:20 +00:00
|
|
|
[[ "${output}" == "${ctr_id}" ]]
|
2016-10-08 12:24:16 +00:00
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl ps --quiet --id "$ctr_id" --all
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" == "${ctr_list_info}" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspect "$ctr_id" --output table
|
2016-10-27 06:24:27 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2017-11-15 15:24:20 +00:00
|
|
|
output=`echo "$output" | grep State`
|
2016-10-27 06:24:27 +00:00
|
|
|
[[ "${output}" == "${ctr_status_info}" ]]
|
|
|
|
|
2016-10-08 12:57:45 +00:00
|
|
|
cleanup_ctrs
|
2016-10-08 12:24:16 +00:00
|
|
|
cleanup_pods
|
2017-05-12 13:36:15 +00:00
|
|
|
stop_crio
|
2016-10-08 12:24:16 +00:00
|
|
|
}
|
2017-05-16 10:50:21 +00:00
|
|
|
|
2017-05-21 13:47:01 +00:00
|
|
|
@test "crio restore with bad state and pod stopped" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl stopp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
stop_crio
|
|
|
|
|
|
|
|
# simulate reboot with runc state going away
|
|
|
|
for i in $("$RUNTIME" list -q | xargs); do "$RUNTIME" delete -f $i; done
|
|
|
|
|
|
|
|
start_crio
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl stopp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
cleanup_pods
|
|
|
|
stop_crio
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "crio restore with bad state and ctr stopped" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl create "$pod_id" "$TESTDATA"/container_config.json "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
ctr_id="$output"
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl stop "$ctr_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
stop_crio
|
|
|
|
|
|
|
|
# simulate reboot with runc state going away
|
|
|
|
for i in $("$RUNTIME" list -q | xargs); do "$RUNTIME" delete -f $i; done
|
|
|
|
|
|
|
|
start_crio
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl stop "$ctr_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
cleanup_ctrs
|
|
|
|
cleanup_pods
|
|
|
|
stop_crio
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "crio restore with bad state and ctr removed" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl create "$pod_id" "$TESTDATA"/container_config.json "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
ctr_id="$output"
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl stop "$ctr_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl rm "$ctr_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
stop_crio
|
|
|
|
|
|
|
|
# simulate reboot with runc state going away
|
|
|
|
for i in $("$RUNTIME" list -q | xargs); do "$RUNTIME" delete -f $i; done
|
|
|
|
|
|
|
|
start_crio
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl stop "$ctr_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 1 ]
|
|
|
|
[[ "${output}" =~ "not found" ]]
|
|
|
|
|
|
|
|
cleanup_ctrs
|
|
|
|
cleanup_pods
|
|
|
|
stop_crio
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "crio restore with bad state and pod removed" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl stopp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl rmp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
stop_crio
|
|
|
|
|
|
|
|
# simulate reboot with runc state going away
|
|
|
|
for i in $("$RUNTIME" list -q | xargs); do "$RUNTIME" delete -f $i; done
|
|
|
|
|
|
|
|
start_crio
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl stopp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
|
|
|
cleanup_pods
|
|
|
|
stop_crio
|
|
|
|
}
|
|
|
|
|
2017-05-16 10:50:21 +00:00
|
|
|
@test "crio restore with bad state" {
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl runp "$TESTDATA"/sandbox_config.json
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
pod_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspectp "$pod_id"
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" =~ "SANDBOX_READY" ]]
|
|
|
|
|
2017-11-15 15:24:20 +00:00
|
|
|
run crictl create "$pod_id" "$TESTDATA"/container_config.json "$TESTDATA"/sandbox_config.json
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
ctr_id="$output"
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspect "$ctr_id" --output table
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" =~ "CONTAINER_CREATED" ]]
|
|
|
|
|
|
|
|
stop_crio
|
|
|
|
|
|
|
|
# simulate reboot with runc state going away
|
|
|
|
for i in $("$RUNTIME" list -q | xargs); do "$RUNTIME" delete -f $i; done
|
|
|
|
|
|
|
|
start_crio
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl pods --quiet
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" != "" ]]
|
|
|
|
[[ "${output}" =~ "${pod_id}" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspectp "$pod_id"
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" =~ "SANDBOX_NOTREADY" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl ps --quiet --all
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" != "" ]]
|
|
|
|
[[ "${output}" =~ "${ctr_id}" ]]
|
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl inspect "$ctr_id" --output table
|
2017-05-16 10:50:21 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[[ "${output}" =~ "CONTAINER_EXITED" ]]
|
2017-11-15 15:24:20 +00:00
|
|
|
# TODO: may be cri-tool should display Exit Code
|
|
|
|
#[[ "${output}" =~ "Exit Code: 255" ]]
|
2017-05-16 10:50:21 +00:00
|
|
|
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl stopp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
2018-01-26 02:06:38 +00:00
|
|
|
run crictl rmp "$pod_id"
|
2017-05-21 13:47:01 +00:00
|
|
|
echo "$output"
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
|
2017-05-16 10:50:21 +00:00
|
|
|
cleanup_ctrs
|
|
|
|
cleanup_pods
|
|
|
|
stop_crio
|
|
|
|
}
|