ESPO-30: Laufzeiten der langen Schritte im Bericht

Installation, Neustart bis healthy und Gesamtdauer werden gemessen und am
Ende ausgegeben. Fuer die EspoCRM-Installation selbst gibt es noch keinen
Messwert (die Integrationsinstanz protokolliert sie nicht); die ersten
Laeufe liefern so die Grundlage fuer das Zeitlimit des Tasks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gordon.zimm 2026-09-30 14:25:00 +02:00
parent f75c62224f
commit 1031846f43

View File

@ -10,7 +10,7 @@
set -u set -u
# Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist. # Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist.
echo "ESPO-30-Extension-Installieren, Skriptstand 2026-09-30" echo "ESPO-30-Extension-Installieren, Skriptstand 2026-09-30b"
GITEA=https://gitea.subcura.net GITEA=https://gitea.subcura.net
ORG=EspoCRM_Packages ORG=EspoCRM_Packages
@ -152,10 +152,12 @@ echo "Paket: $M_NAME $M_VERSION, SHA-256 ${SOLL_SHA:0:12}... geprueft"
# 6. Installieren. Ab hier kann sich die Instanz veraendert haben - bei einem Fehler bleibt der Snapshot. # 6. Installieren. Ab hier kann sich die Instanz veraendert haben - bei einem Fehler bleibt der Snapshot.
docker cp "$ZIP" "espocrm:/tmp/$DATEI" >/dev/null 2>&1 || abbruch_ohne_aenderung "Paket nicht in den Container kopierbar" docker cp "$ZIP" "espocrm:/tmp/$DATEI" >/dev/null 2>&1 || abbruch_ohne_aenderung "Paket nicht in den Container kopierbar"
docker exec -u root espocrm chmod 0644 "/tmp/$DATEI" >/dev/null 2>&1 docker exec -u root espocrm chmod 0644 "/tmp/$DATEI" >/dev/null 2>&1
T_INSTALL=$SECONDS
AUSGABE="$(docker exec -u www-data espocrm php /var/www/html/command.php extension --file="/tmp/$DATEI" 2>&1)" || { AUSGABE="$(docker exec -u www-data espocrm php /var/www/html/command.php extension --file="/tmp/$DATEI" 2>&1)" || {
printf '%s\n' "$AUSGABE" | tail -n 20 printf '%s\n' "$AUSGABE" | tail -n 20
fehler "Installation fehlgeschlagen - der Snapshot '$SNAPSHOT' steht fuer den Rueckweg bereit (ESPO-12)" fehler "Installation fehlgeschlagen - der Snapshot '$SNAPSHOT' steht fuer den Rueckweg bereit (ESPO-12)"
} }
DAUER_INSTALL=$(( SECONDS - T_INSTALL ))
# 7. Pakete entfernen: unsere Kopie, die Kopie im Container und EspoCRMs eigene Archive. Update und # 7. Pakete entfernen: unsere Kopie, die Kopie im Container und EspoCRMs eigene Archive. Update und
# Deinstallation arbeiten mit der Dateiliste in der Datenbank und den Skripten unter data/.backup/extensions; # Deinstallation arbeiten mit der Dateiliste in der Datenbank und den Skripten unter data/.backup/extensions;
@ -166,6 +168,7 @@ docker exec -u root espocrm rm -f "/tmp/$DATEI" >/dev/null 2>&1
find "$ESPO_ARCHIVE" -maxdepth 1 -type f -name '*z' -delete 2>/dev/null find "$ESPO_ARCHIVE" -maxdepth 1 -type f -name '*z' -delete 2>/dev/null
# 8. Web, Daemon und WebSocket neu starten, damit kein langlaufender Prozess alten Code behaelt, und warten. # 8. Web, Daemon und WebSocket neu starten, damit kein langlaufender Prozess alten Code behaelt, und warten.
T_START=$SECONDS
RESTART="$(docker compose -f "$COMPOSE" restart espocrm espocrm-daemon espocrm-websocket 2>&1)" || { RESTART="$(docker compose -f "$COMPOSE" restart espocrm espocrm-daemon espocrm-websocket 2>&1)" || {
printf '%s\n' "$RESTART" | tail -n 10 printf '%s\n' "$RESTART" | tail -n 10
fehler "Neustart fehlgeschlagen - der Snapshot '$SNAPSHOT' steht fuer den Rueckweg bereit (ESPO-12)" fehler "Neustart fehlgeschlagen - der Snapshot '$SNAPSHOT' steht fuer den Rueckweg bereit (ESPO-12)"
@ -176,6 +179,7 @@ while [ "$SECONDS" -lt "$ENDE" ]; do
sleep 10 sleep 10
done done
alle_gesund || fehler "nach ${WARTE_MAX}s nicht alle Container gesund: $(nicht_gesund) - Rueckweg ueber ESPO-12" alle_gesund || fehler "nach ${WARTE_MAX}s nicht alle Container gesund: $(nicht_gesund) - Rueckweg ueber ESPO-12"
DAUER_START=$(( SECONDS - T_START ))
# 9. Nachweis: EspoCRM selbst muss die neue Version als installiert fuehren. # 9. Nachweis: EspoCRM selbst muss die neue Version als installiert fuehren.
NACHHER="$(installierte_version)" NACHHER="$(installierte_version)"
@ -187,6 +191,10 @@ installiert | sed 's/^/ /'
echo "--- Pakete auf der VM" echo "--- Pakete auf der VM"
REST="$(find "$PACKAGES" "$ESPO_ARCHIVE" -maxdepth 1 -type f 2>/dev/null)" REST="$(find "$PACKAGES" "$ESPO_ARCHIVE" -maxdepth 1 -type f 2>/dev/null)"
[ -z "$REST" ] && echo " keine - installiert, nicht als ZIP abgelegt" || printf ' WARNUNG, noch vorhanden: %s\n' $REST [ -z "$REST" ] && echo " keine - installiert, nicht als ZIP abgelegt" || printf ' WARNUNG, noch vorhanden: %s\n' $REST
echo "--- Laufzeit"
echo " Installation: ${DAUER_INSTALL} s"
echo " Neustart bis healthy: ${DAUER_START} s"
echo " gesamt: ${SECONDS} s"
echo "--- Rueckweg" echo "--- Rueckweg"
lvs --noheadings -o lv_name,lv_attr,origin,lv_size,data_percent "$VG/$SNAPSHOT" 2>/dev/null | sed 's/^ */ /' lvs --noheadings -o lv_name,lv_attr,origin,lv_size,data_percent "$VG/$SNAPSHOT" 2>/dev/null | sed 's/^ */ /'
echo "--- Naechster Schritt von Hand" echo "--- Naechster Schritt von Hand"