From 74878cae0fd85f24d3c3238700f22500d6b0a963 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 17 Oct 2022 18:48:32 +0200 Subject: [PATCH] split update_images and diagnose --- sbin/build_image | 1 + sbin/update_images | 43 ++++--------------------------------------- 2 files changed, 5 insertions(+), 39 deletions(-) diff --git a/sbin/build_image b/sbin/build_image index d15c86b..e086d5f 100755 --- a/sbin/build_image +++ b/sbin/build_image @@ -131,6 +131,7 @@ fi if [ -f "$IMAGE_NAME_RISOTTO_IMAGE_DIR".base.pkgs ] && [ -f "$IMAGE_NAME_RISOTTO_IMAGE_DIR".pkgs ]; then echo " - différence(s) avec les paquets de base" diff -u "$IMAGE_NAME_RISOTTO_IMAGE_DIR".base.pkgs "$BASE_PKGS_FILE" && INSTALL=false || INSTALL=true + [ ! -f "$IMAGE_NAME_RISOTTO_IMAGE_NAME" ] && INSTALL=true else INSTALL=true fi diff --git a/sbin/update_images b/sbin/update_images index c2e250c..e260f64 100644 --- a/sbin/update_images +++ b/sbin/update_images @@ -15,7 +15,7 @@ ls /var/lib/risotto/images_files/ | while read image; do /usr/local/sbin/build_image "$image" fi done -rm -f $IMAGE_BASE_RISOTTO_BASE_DIR*.build +#rm -f $IMAGE_BASE_RISOTTO_BASE_DIR*.build MACHINES="" for nspawn in $(ls /etc/systemd/nspawn/*.nspawn); do @@ -23,11 +23,11 @@ for nspawn in $(ls /etc/systemd/nspawn/*.nspawn); do machine=${nspawn_file%.*} MACHINES="$MACHINES$machine " MACHINE_MACHINES_DIR="/var/lib/machines/$machine" - echo "Install machine $machine" SHA_MACHINE="$RISOTTO_DIR/configurations/sha/$machine".sha content=$(cat $SHA_MACHINE) IMAGE_NAME_RISOTTO_IMAGE_NAME=${content##* } - diff -q "$IMAGE_NAME_RISOTTO_IMAGE_NAME".sha "$SHA_MACHINE" || ( + diff -q "$IMAGE_NAME_RISOTTO_IMAGE_NAME".sha "$SHA_MACHINE" > /dev/null || ( + echo "Reinstall machine $machine" machinectl stop $machine while true; do machinectl status "$machine" > /dev/null 2>&1 || break @@ -41,39 +41,4 @@ for nspawn in $(ls /etc/systemd/nspawn/*.nspawn); do ) done machinectl start $MACHINES -STARTED="" -DEGRADED="" -found=true -idx=0 -while [ $found = true ]; do - found=false - echo "tentative $idx" - for machine in $MACHINES; do - if ! echo $STARTED | grep -q " $machine "; then - status=$(machinectl -q shell $machine /usr/bin/systemctl is-system-running || true) - if echo "$status" | grep -q degraded; then - STARTED="$STARTED $machine " - DEGRADED="$DEGRADED $machine" - elif echo "$status" | grep -q running; then - STARTED="$STARTED $machine " - else - found=true - echo "status actuel de $machine : $status" - fi - fi - done - sleep 2 - idx=$((idx+1)) - if [ $idx = 60 ]; then - break - fi -done -retcode=0 -for machine in $DEGRADED; do - echo - echo "========= $machine" - machinectl -q shell $machine /usr/bin/systemctl --state=failed --no-legend --no-pager - retcode=1 -done - -exit $retcode +diagnose