mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-15 09:43:25 +01:00
fix(api): handle missing RAM speed in nested VMs (#11913)
- Add || true to dmidecode pipelines to prevent error when speed is 'Unknown' - Validate RAM_SPEED is a valid integer, fallback to 0 - Send ram_speed as integer (not string) in all JSON payloads for PocketBase Fixes: dmidecode in nested VMs returns 'Configured Memory Speed: Unknown' which causes grep to fail and triggers catch_errors handler.
This commit is contained in:
committed by
GitHub
parent
da915b87f6
commit
240f1f391f
@@ -407,14 +407,19 @@ detect_ram() {
|
||||
|
||||
if command -v dmidecode &>/dev/null; then
|
||||
# Get configured memory speed (actual running speed)
|
||||
RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Configured Memory Speed:" | grep -oE "[0-9]+" | head -1)
|
||||
RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Configured Memory Speed:" | grep -oE "[0-9]+" | head -1 || true)
|
||||
|
||||
# Fallback to Speed: if Configured not available
|
||||
if [[ -z "$RAM_SPEED" ]]; then
|
||||
RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Speed:" | grep -oE "[0-9]+" | head -1)
|
||||
RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Speed:" | grep -oE "[0-9]+" | head -1 || true)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure RAM_SPEED is a valid integer (PocketBase stores it as integer)
|
||||
if [[ -z "$RAM_SPEED" || ! "$RAM_SPEED" =~ ^[0-9]+$ ]]; then
|
||||
RAM_SPEED=0
|
||||
fi
|
||||
|
||||
export RAM_SPEED
|
||||
}
|
||||
|
||||
@@ -509,7 +514,7 @@ post_to_api() {
|
||||
"gpu_vendor": "${gpu_vendor}",
|
||||
"gpu_model": "${gpu_model}",
|
||||
"gpu_passthrough": "${gpu_passthrough}",
|
||||
"ram_speed": "${ram_speed}",
|
||||
"ram_speed": ${ram_speed:-0},
|
||||
"repo_source": "${REPO_SOURCE}"
|
||||
}
|
||||
EOF
|
||||
@@ -613,7 +618,7 @@ post_to_api_vm() {
|
||||
"gpu_vendor": "${gpu_vendor}",
|
||||
"gpu_model": "${gpu_model}",
|
||||
"gpu_passthrough": "${gpu_passthrough}",
|
||||
"ram_speed": "${ram_speed}",
|
||||
"ram_speed": ${ram_speed:-0},
|
||||
"repo_source": "${REPO_SOURCE}"
|
||||
}
|
||||
EOF
|
||||
@@ -747,7 +752,7 @@ post_update_to_api() {
|
||||
"gpu_vendor": "${gpu_vendor}",
|
||||
"gpu_model": "${gpu_model}",
|
||||
"gpu_passthrough": "${gpu_passthrough}",
|
||||
"ram_speed": "${ram_speed}",
|
||||
"ram_speed": ${ram_speed:-0},
|
||||
"repo_source": "${REPO_SOURCE}"
|
||||
}
|
||||
EOF
|
||||
@@ -789,7 +794,7 @@ EOF
|
||||
"gpu_vendor": "${gpu_vendor}",
|
||||
"gpu_model": "${gpu_model}",
|
||||
"gpu_passthrough": "${gpu_passthrough}",
|
||||
"ram_speed": "${ram_speed}",
|
||||
"ram_speed": ${ram_speed:-0},
|
||||
"repo_source": "${REPO_SOURCE}"
|
||||
}
|
||||
EOF
|
||||
@@ -886,7 +891,7 @@ categorize_error() {
|
||||
# Signal/Process errors (SIGTERM, SIGPIPE, SIGSEGV)
|
||||
139 | 141 | 143) echo "signal" ;;
|
||||
|
||||
# Shell errors (general error, syntax error)
|
||||
# Shell errors (general error, syntax error)
|
||||
1 | 2) echo "shell" ;;
|
||||
|
||||
# Default - truly unknown
|
||||
|
||||
Reference in New Issue
Block a user