From 4547c283abb963a12d48434d91a02a74be4de96a Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 14 Mar 2019 22:33:15 +0100 Subject: [run-virt] Use --retry-connrefused; shuffle slxlog around --- .../run-virt-includes/download_vm_metadata.inc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes') diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/download_vm_metadata.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/download_vm_metadata.inc index 8c680677..17b679ea 100644 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/download_vm_metadata.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/download_vm_metadata.inc @@ -6,7 +6,7 @@ # Legacy mode: As runvirt has been before. # New mode: uuid in xml _and_ vmx given via http. download_metadata() { - local TRIES EXTRA_ERROR WLOG TMPFILE RET ERRCODE + local TRIES EXTRA_ERROR WLOG TMPFILE RET ERRCODE CMDLINE # Sanity checks if ! check_dep wget; then writelog "Could not find 'wget' in PATH: $PATH" @@ -19,7 +19,9 @@ download_metadata() { # Try new unified .tar.gz way TMPFILE="$TMPDIR/metadata.tgz" WLOG="$TMPDIR/wget-metadata.log" - curl -L -o "$TMPFILE" -w '\nretval:%{http_code}\n' --retry 3 --max-time 6 --retry-max-time 15 "${url_lecture_metadata}" &> "$WLOG" + CMDLINE= + curl --help | grep -q -- --retry-connrefused && CMDLINE="--retry-connrefused" + curl -L -o "$TMPFILE" -w '\nretval:%{http_code}\n' --retry 3 $CMDLINE --max-time 6 --retry-max-time 15 "${url_lecture_metadata}" &> "$WLOG" ERRCODE=$( awk -F: '{ if ($1 == "retval") print $2 }' "$WLOG" ) RET=$? if [ "$RET" = 0 ] && [ -n "$ERRCODE" ] && [ "$ERRCODE" -ge 200 ] && [ "$ERRCODE" -lt 300 ]; then @@ -29,11 +31,11 @@ download_metadata() { fi rm -rf -- "$TMPFILE" writelog "Extracting metadata.tgz failed. Trying legacy mode." - elif [ -n "$ERRCODE" ] && [ "$ERRCODE" -ge 500 ]; then - slxlog --delete "run-virt-wget" "Downloading MetaData failed" "$WLOG" + else + writelog "Downloading metadata.tgz failed (HTTP $ERRCODE). Trying legacy mode." + #slxlog --delete "run-virt-wget" "Downloading MetaData failed" "$WLOG" fi - writelog "Metadata download failed, trying legacy approach..." TRIES=0 while [ "$TRIES" -lt 3 ]; do TRIES=$(( TRIES + 1 )) @@ -50,17 +52,18 @@ download_metadata() { EXTRA_ERROR="(Der Server hat eine leere Antwort gesendet)" fi else - local ERRCODE=$(grep -m1 -o -E '\b[0-9]{3}\b' "$WLOG") + ERRCODE=$(grep -m1 -o -E '\b[0-9]{3}\b' "$WLOG") if [ -n "$ERRCODE" ]; then EXTRA_ERROR="(HTTP Error Code $ERRCODE)" else EXTRA_ERROR="(Der Server ist nicht erreichbar)" fi writelog "wget failed." - slxlog --delete "run-virt-wget" "Downloading VMX failed" "$WLOG" fi done + slxlog --delete "run-virt-wget" "Downloading VMX/Metadata failed" "$WLOG" + # Seems we are in legacy mode, which is no longer supported. Warn user and exit EXIT_TYPE="user" EXIT_REASON="msg.vm.no-metadata Die Metadaten der Lehrumgebung konnten nicht vom bwLehrpool-Satelliten -- cgit v1.2.3-55-g7522