|
|
|
@@ -94,11 +94,11 @@ bei_fehler() {
|
|
|
|
|
else
|
|
|
|
|
warn "Abgebrochen (Code $code). Es gab keinen vorherigen Stand dieser Fassung,"
|
|
|
|
|
warn "also wurde nichts wiederhergestellt und nichts geloescht."
|
|
|
|
|
fi
|
|
|
|
|
# Nur sagen, was es wirklich gibt: bei einem Abbruch an der Rueckfrage
|
|
|
|
|
# existiert das Verzeichnis noch nicht, und die Zeile log dann.
|
|
|
|
|
if [[ -n "${ROOT:-}" && -d "${ROOT:-}" ]]; then
|
|
|
|
|
warn "Angelegt wurde bis hierhin: $ROOT (Daten unter data/ unberuehrt)."
|
|
|
|
|
# Nur sagen, was es wirklich gibt: bei einem Abbruch an der Rueckfrage
|
|
|
|
|
# existiert das Verzeichnis noch nicht.
|
|
|
|
|
if [[ -n "${ROOT:-}" && -d "${ROOT:-}" ]]; then
|
|
|
|
|
warn "Angelegt wurde bis hierhin: $ROOT (Daten unter data/ unberuehrt)."
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
return "$code"
|
|
|
|
@@ -189,6 +189,9 @@ fi
|
|
|
|
|
# beim Secure-Flag weiter unten: eine Aktualisierung nimmt nichts weg, was
|
|
|
|
|
# nicht ausdruecklich neu gesetzt wird.
|
|
|
|
|
ENV_FILE="$ETC_TESM/$NAME.env"
|
|
|
|
|
# Wo die Daten liegen, steht in der Umgebungsdatei; ohne sie beim Vorgabeort.
|
|
|
|
|
DATEN_DIR="$(sed -n "s/^${ENV_PREFIX}DATA_DIR=//p" "$ENV_FILE" 2>/dev/null | tail -1)"
|
|
|
|
|
DATEN_DIR="${DATEN_DIR:-$ROOT/data}"
|
|
|
|
|
if [[ -z "$PORT" && -f "$ENV_FILE" ]]; then
|
|
|
|
|
PORT="$(sed -n "s/^${ENV_PREFIX}BIND=127\.0\.0\.1:\([0-9]\{1,5\}\)$/\1/p" "$ENV_FILE" | head -1)"
|
|
|
|
|
fi
|
|
|
|
@@ -306,11 +309,28 @@ fi
|
|
|
|
|
# Abgleich unten laeuft mit --delete und wuerde das Teilpaket entfernen. Danach
|
|
|
|
|
# gaebe es auf dem Master keinen Weg mehr, eine Master-Lizenz auszustellen --
|
|
|
|
|
# und niemand haette es gesagt.
|
|
|
|
|
if [[ "$EDITION" == "sub" && -d "$ROOT/$MASTER_TEILPAKET" ]]; then
|
|
|
|
|
fail "Hier laeuft die Master-Ausgabe, dieses Paket ist die Ausgabe fuer Sub-Lizenzserver.
|
|
|
|
|
# Die Rolle steht in der eingespielten Lizenz. Das ist die zuverlaessigere
|
|
|
|
|
# Haelfte der Pruefung: eine Master-Installation aus einer aelteren Fassung
|
|
|
|
|
# kennt das Teilpaket noch nicht, ist aber trotzdem eine Wurzelinstanz.
|
|
|
|
|
ROLLE_ALT=""
|
|
|
|
|
if [[ "$EDITION" == "sub" && -s "$DATEN_DIR/license.json" ]]; then
|
|
|
|
|
ROLLE_ALT="$(python3 -c '
|
|
|
|
|
import json, sys
|
|
|
|
|
try:
|
|
|
|
|
print(json.load(open(sys.argv[1])).get("role", ""))
|
|
|
|
|
except Exception:
|
|
|
|
|
pass
|
|
|
|
|
' "$DATEN_DIR/license.json" 2>/dev/null || true)"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "$EDITION" == "sub" && ( -d "$ROOT/$MASTER_TEILPAKET" || "$ROLLE_ALT" == "master" ) ]]; then
|
|
|
|
|
fail "Hier laeuft eine Wurzelinstanz${ROLLE_ALT:+ (Lizenz mit Rolle $ROLLE_ALT)}, dieses Paket
|
|
|
|
|
ist die Ausgabe fuer Sub-Lizenzserver.
|
|
|
|
|
Eine Aktualisierung damit wuerde die Master-Ausgabe entfernen.
|
|
|
|
|
Passendes Paket: Repository tesm-license-master (privat).
|
|
|
|
|
Bewusster Rueckbau: $ROOT/$MASTER_TEILPAKET von Hand entfernen, dann erneut."
|
|
|
|
|
Bewusster Rueckbau: eine vom Master ausgestellte Lizenz einspielen (Rolle
|
|
|
|
|
license_server) und $ROOT/$MASTER_TEILPAKET entfernen -- danach ist dies ein
|
|
|
|
|
Sub-Lizenzserver und dieses Paket das richtige."
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# -- Backup ------------------------------------------------------------------
|
|
|
|
@@ -676,10 +696,6 @@ fi
|
|
|
|
|
# gleich die eigene Master-Lizenz. Bei einer Aktualisierung nichts davon --
|
|
|
|
|
# ein bestehender Schluessel darf nie angetastet werden.
|
|
|
|
|
if [[ "$APP" == "tesm-license" && $IS_UPDATE -eq 0 ]]; then
|
|
|
|
|
# Das Datenverzeichnis steht in der Umgebungsdatei -- es muss nicht
|
|
|
|
|
# $ROOT/data sein, wenn jemand es dort umgestellt hat.
|
|
|
|
|
DATEN_DIR="$(sed -n "s/^${ENV_PREFIX}DATA_DIR=//p" "$ENV_FILE" | tail -1)"
|
|
|
|
|
DATEN_DIR="${DATEN_DIR:-$ROOT/data}"
|
|
|
|
|
step "Signaturschluessel"
|
|
|
|
|
if sudo -u "$SERVICE_USER" "/usr/local/bin/$NAME-admin" init-key; then
|
|
|
|
|
info "Bitte die Datei $DATEN_DIR/master_signing_key.json SOFORT sichern."
|
|
|
|
|