mirror of https://github.com/containers/podman.git
Merge pull request #17796 from vrothberg/au-errors
auto update: return restart error
This commit is contained in:
commit
78f1ebb80b
|
|
@ -203,6 +203,9 @@ func (u *updater) updateUnit(ctx context.Context, unit string, tasks []*task) []
|
||||||
|
|
||||||
// Jump to the next unit on successful update or if rollbacks are disabled.
|
// Jump to the next unit on successful update or if rollbacks are disabled.
|
||||||
if updateError == nil || !u.options.Rollback {
|
if updateError == nil || !u.options.Rollback {
|
||||||
|
if updateError != nil {
|
||||||
|
errors = append(errors, fmt.Errorf("restarting unit %s during update: %w", unit, updateError))
|
||||||
|
}
|
||||||
return errors
|
return errors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,15 @@ function _confirm_update() {
|
||||||
is "$output" ".* system auto-update"
|
is "$output" ".* system auto-update"
|
||||||
|
|
||||||
since=$(date --iso-8601=seconds)
|
since=$(date --iso-8601=seconds)
|
||||||
run_podman auto-update --rollback=false --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
run_podman '?' auto-update --rollback=false --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
||||||
|
if [[ $status -ne 0 ]]; then
|
||||||
|
echo "------------------------------------ SYSTEMCTL STATUS"
|
||||||
|
systemctl status container-$cname.service
|
||||||
|
echo "------------------------------------ JOURNALCAL LOGS"
|
||||||
|
journalctl --unit container-$cname.service
|
||||||
|
echo "------------------------------------"
|
||||||
|
die "auto update failed with exit code $status: $output"
|
||||||
|
fi
|
||||||
is "$output" "Trying to pull.*" "Image is updated."
|
is "$output" "Trying to pull.*" "Image is updated."
|
||||||
is "$output" ".*container-$cname.service,quay.io/libpod/alpine:latest,true,registry.*" "Image is updated."
|
is "$output" ".*container-$cname.service,quay.io/libpod/alpine:latest,true,registry.*" "Image is updated."
|
||||||
run_podman events --filter type=system --since $since --stream=false
|
run_podman events --filter type=system --since $since --stream=false
|
||||||
|
|
@ -248,7 +256,15 @@ function _confirm_update() {
|
||||||
run_podman auto-update --dry-run --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
run_podman auto-update --dry-run --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
||||||
is "$output" ".*container-$cname.service,quay.io/libpod/localtest:latest,pending,local.*" "Image update is pending."
|
is "$output" ".*container-$cname.service,quay.io/libpod/localtest:latest,pending,local.*" "Image update is pending."
|
||||||
|
|
||||||
run_podman auto-update --rollback=false --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
run_podman '?' auto-update --rollback=false --format "{{.Unit}},{{.Image}},{{.Updated}},{{.Policy}}"
|
||||||
|
if [[ $status -ne 0 ]]; then
|
||||||
|
echo "------------------------------------ SYSTEMCTL STATUS"
|
||||||
|
systemctl status container-$cname.service
|
||||||
|
echo "------------------------------------ JOURNALCAL LOGS"
|
||||||
|
journalctl --unit container-$cname.service
|
||||||
|
echo "------------------------------------"
|
||||||
|
die "auto update failed with exit code $status: $output"
|
||||||
|
fi
|
||||||
is "$output" ".*container-$cname.service,quay.io/libpod/localtest:latest,true,local.*" "Image is updated."
|
is "$output" ".*container-$cname.service,quay.io/libpod/localtest:latest,true,local.*" "Image is updated."
|
||||||
|
|
||||||
_confirm_update $cname $ori_image
|
_confirm_update $cname $ori_image
|
||||||
|
|
@ -353,6 +369,11 @@ EOF
|
||||||
is "$n_updated" "2" "Number of images updated from registry."
|
is "$n_updated" "2" "Number of images updated from registry."
|
||||||
|
|
||||||
for cname in "${!expect_update[@]}"; do
|
for cname in "${!expect_update[@]}"; do
|
||||||
|
echo "------------------------------------ SYSTEMCTL STATUS"
|
||||||
|
systemctl status container-$cname.service
|
||||||
|
echo "------------------------------------ JOURNALCAL LOGS"
|
||||||
|
journalctl --unit container-$cname.service
|
||||||
|
echo "------------------------------------"
|
||||||
is "$update_log" ".*$cname.*" "container with auto-update policy image updated"
|
is "$update_log" ".*$cname.*" "container with auto-update policy image updated"
|
||||||
# Just because podman says it fetched, doesn't mean it actually updated
|
# Just because podman says it fetched, doesn't mean it actually updated
|
||||||
_confirm_update $cname $img_id
|
_confirm_update $cname $img_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue