#!/bin/bash -e HOST_NAME=$1 if [ -z "$HOST_NAME" ]; then echo "usage: $0 host name" exit 1 fi MACHINES="" for image in *; do if [ -d "$image" ]; then for os in $image/configurations/*; do if [ -d "$os" ]; then osname="$(basename $os)" if [ -f "host/configurations/$HOST_NAME/etc/systemd/nspawn/$osname.nspawn" ]; then MACHINES="$MACHINES$osname " fi echo echo "Install machine $image" ./install_machine "$HOST_NAME" "$image" "$osname" fi done fi done machinectl enable $MACHINES 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