mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-01 10:22:08 +00:00
Merge develop and preserve generic i18n regression coverage
This commit is contained in:
@@ -607,6 +607,22 @@ hb_prepare_staging() {
|
||||
(( jobs_covered )) || paths+=("$HB_BACKUP_JOBS_DIR")
|
||||
fi
|
||||
|
||||
# The logins to private image registries are needed to update the
|
||||
# applications installed from them, whatever the profile selects.
|
||||
local registry_logins=/etc/pve/priv/proxmenux/registry-auth.json
|
||||
if [[ -e "$registry_logins" ]]; then
|
||||
local logins_covered=0 candidate normalized
|
||||
for candidate in "${paths[@]}"; do
|
||||
normalized="${candidate%/}"
|
||||
[[ -z "$normalized" ]] && normalized="/"
|
||||
if [[ "$registry_logins" == "$normalized" || "$registry_logins" == "$normalized"/* ]]; then
|
||||
logins_covered=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
(( logins_covered )) || paths+=("$registry_logins")
|
||||
fi
|
||||
|
||||
rm -rf "$staging_root"
|
||||
mkdir -p "$staging_root/rootfs" "$staging_root/metadata"
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
# 6 post-update restart failed
|
||||
# 7 another ProxMenux update is already running for this CT
|
||||
# 8 started CT could not record its verification handoff identity
|
||||
# 9 scheduled run skipped because the CT was intentionally stopped
|
||||
#
|
||||
# The frontend surfaces exit code + duration in a follow-up POST to
|
||||
# /api/lxc-updates/<vmid>/applied so the notification event fires with
|
||||
@@ -163,6 +164,11 @@ fi
|
||||
# 2) CT must be running for pct exec. Auto-start stopped CTs, then
|
||||
# restore their original stopped state on every exit path.
|
||||
STATE=$(pct status "$VMID" | awk '{print $2}')
|
||||
if [[ "$STATE" != "running" && "${EXECUTION_MODE:-}" == "scheduled" ]]; then
|
||||
[[ -n "${SCHEDULED_STOPPED_MARKER:-}" ]] && printf '%s\n' "$SCHEDULED_STOPPED_MARKER"
|
||||
echo "SKIPPED: CT $VMID is stopped; a scheduled update will not start it."
|
||||
exit 9
|
||||
fi
|
||||
STARTED_BY_PROXMENUX=0
|
||||
OBSERVATION_ATTEMPTED=0
|
||||
capture_before_stop() {
|
||||
|
||||
@@ -82,6 +82,16 @@ remove_monitor_notification_target() {
|
||||
echo " - Notification target removed from Proxmox"
|
||||
}
|
||||
|
||||
# The logins to private image registries go with ProxMenux. /etc/pve is shared
|
||||
# by the cluster, so the other nodes lose them too.
|
||||
remove_registry_logins() {
|
||||
mountpoint -q /etc/pve || return 0
|
||||
[[ -f /etc/pve/priv/proxmenux/registry-auth.json ]] || return 0
|
||||
pmx_record_execution "Remove private registry logins" "rm -f /etc/pve/priv/proxmenux/registry-auth.json"
|
||||
rm -f /etc/pve/priv/proxmenux/registry-auth.json /etc/pve/priv/proxmenux/.registry-auth.json.proxmenux.lock
|
||||
rmdir /etc/pve/priv/proxmenux 2>/dev/null || true
|
||||
}
|
||||
|
||||
uninstall_proxmenux_monitor() {
|
||||
|
||||
# 1. Stop service if it is running
|
||||
@@ -809,6 +819,7 @@ uninstall_proxmenu() {
|
||||
pmx_remove_file "$INSTALL_DIR/$MENU_SCRIPT"
|
||||
pmx_record_execution "Remove ProxMenux application directory" "rm -rf $BASE_DIR"
|
||||
rm -rf "$BASE_DIR"
|
||||
remove_registry_logins
|
||||
|
||||
# Remove selected dependencies
|
||||
if [ -n "$deps_to_remove" ]; then
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
"title": "Create VM System NAS",
|
||||
"menu": "Create VM from template or script",
|
||||
"script": "menus/create_vm_menu.sh",
|
||||
"keywords": "vm virtual nas",
|
||||
"keywords": "vm virtual nas truenas openmediavault omv xigmanas rockstor fygoos fygonas fnos",
|
||||
"argument": "1"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#
|
||||
# Features:
|
||||
# - Auto-detects latest versions for TrueNAS SCALE/CORE, OMV,
|
||||
# XigmaNAS and Rockstor, with safe fallbacks.
|
||||
# XigmaNAS, Rockstor and FygoOS, with safe fallbacks.
|
||||
# - Dispatches Synology DSM to the dedicated loader-based flow.
|
||||
# - Dispatches ZimaOS to its own installer script.
|
||||
# - Runs the Umbrel OS community installer (external script).
|
||||
@@ -179,6 +179,30 @@ function resolve_rockstor_iso() {
|
||||
HN="Rockstor"
|
||||
}
|
||||
|
||||
function resolve_fygoos_iso() {
|
||||
local default_file="fygoos_PE_x86_1.2.0701_2731.iso"
|
||||
local base_url="https://download.liveupdate.fygonas.com/x86_64/trim"
|
||||
local detected_file="" detected_ver=""
|
||||
|
||||
if _has_curl; then
|
||||
detected_file=$(
|
||||
curl -fsSL "https://fygonas.com/download" 2>/dev/null \
|
||||
| grep -Eo 'download\.liveupdate\.fygonas\.com/x86_64/trim/fygoos_PE_x86_[0-9.]+_[0-9]+\.iso' \
|
||||
| sed 's|.*/||' \
|
||||
| _latest_version_from_lines
|
||||
)
|
||||
fi
|
||||
|
||||
[[ -z "$detected_file" ]] && detected_file="$default_file"
|
||||
detected_ver=$(sed -E 's/^fygoos_PE_x86_([0-9.]+)_.*/\1/' <<<"$detected_file")
|
||||
|
||||
ISO_NAME="FygoOS ${detected_ver}"
|
||||
ISO_FILE="$detected_file"
|
||||
ISO_URL="${base_url}/${ISO_FILE}"
|
||||
ISO_PATH="$ISO_DIR/$ISO_FILE"
|
||||
HN="FygoOS"
|
||||
}
|
||||
|
||||
function select_nas_iso() {
|
||||
|
||||
local NAS_OPTIONS=(
|
||||
@@ -189,17 +213,18 @@ function select_nas_iso() {
|
||||
"5" "XigmaNAS VM (FreeBSD based)"
|
||||
"6" "Rockstor VM (openSUSE based)"
|
||||
"7" "ZimaOS VM (Proxmox-zimaos)"
|
||||
"8" "FygoOS VM (Debian based)"
|
||||
"" ""
|
||||
"" "\Z4───────────────── $(translate "Community Scripts") ─────────────────\Zn"
|
||||
"" ""
|
||||
"8" "Umbrel OS VM (Helper-Scripts)"
|
||||
"9" "$(translate "Return to Main Menu")"
|
||||
"9" "Umbrel OS VM (Helper-Scripts)"
|
||||
"10" "$(translate "Return to Main Menu")"
|
||||
)
|
||||
|
||||
local NAS_TYPE
|
||||
NAS_TYPE=$(dialog --colors --backtitle "ProxMenux" \
|
||||
--title "$(translate "NAS Systems")" \
|
||||
--menu "\n$(translate "Select the NAS system to install:")" 20 70 10 \
|
||||
--menu "\n$(translate "Select the NAS system to install:")" 22 70 13 \
|
||||
"${NAS_OPTIONS[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
|
||||
@@ -234,6 +259,9 @@ function select_nas_iso() {
|
||||
return 1
|
||||
;;
|
||||
8)
|
||||
resolve_fygoos_iso
|
||||
;;
|
||||
9)
|
||||
HN="Umbrel OS"
|
||||
bash -c "$(wget -qLO - https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/umbrel-os-vm.sh)"
|
||||
echo -e
|
||||
@@ -251,7 +279,7 @@ function select_nas_iso() {
|
||||
return 1
|
||||
;;
|
||||
|
||||
9)
|
||||
10)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user