Merge pull request #17796 from vrothberg/au-errors

auto update: return restart error
This commit is contained in:
OpenShift Merge Robot 2023-03-27 09:23:40 -04:00 committed by GitHub
commit 78f1ebb80b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 2 deletions

View File

@ -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.
if updateError == nil || !u.options.Rollback {
if updateError != nil {
errors = append(errors, fmt.Errorf("restarting unit %s during update: %w", unit, updateError))
}
return errors
}

View File

@ -171,7 +171,15 @@ function _confirm_update() {
is "$output" ".* system auto-update"
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" ".*container-$cname.service,quay.io/libpod/alpine:latest,true,registry.*" "Image is updated."
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}}"
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."
_confirm_update $cname $ori_image
@ -353,6 +369,11 @@ EOF
is "$n_updated" "2" "Number of images updated from registry."
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"
# Just because podman says it fetched, doesn't mean it actually updated
_confirm_update $cname $img_id