mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-28 21:30:41 +00: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
+11
-6
@@ -407,14 +407,19 @@ detect_ram() {
|
|||||||
|
|
||||||
if command -v dmidecode &>/dev/null; then
|
if command -v dmidecode &>/dev/null; then
|
||||||
# Get configured memory speed (actual running speed)
|
# 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
|
# Fallback to Speed: if Configured not available
|
||||||
if [[ -z "$RAM_SPEED" ]]; then
|
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
|
||||||
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
|
export RAM_SPEED
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,7 +514,7 @@ post_to_api() {
|
|||||||
"gpu_vendor": "${gpu_vendor}",
|
"gpu_vendor": "${gpu_vendor}",
|
||||||
"gpu_model": "${gpu_model}",
|
"gpu_model": "${gpu_model}",
|
||||||
"gpu_passthrough": "${gpu_passthrough}",
|
"gpu_passthrough": "${gpu_passthrough}",
|
||||||
"ram_speed": "${ram_speed}",
|
"ram_speed": ${ram_speed:-0},
|
||||||
"repo_source": "${REPO_SOURCE}"
|
"repo_source": "${REPO_SOURCE}"
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@@ -613,7 +618,7 @@ post_to_api_vm() {
|
|||||||
"gpu_vendor": "${gpu_vendor}",
|
"gpu_vendor": "${gpu_vendor}",
|
||||||
"gpu_model": "${gpu_model}",
|
"gpu_model": "${gpu_model}",
|
||||||
"gpu_passthrough": "${gpu_passthrough}",
|
"gpu_passthrough": "${gpu_passthrough}",
|
||||||
"ram_speed": "${ram_speed}",
|
"ram_speed": ${ram_speed:-0},
|
||||||
"repo_source": "${REPO_SOURCE}"
|
"repo_source": "${REPO_SOURCE}"
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@@ -747,7 +752,7 @@ post_update_to_api() {
|
|||||||
"gpu_vendor": "${gpu_vendor}",
|
"gpu_vendor": "${gpu_vendor}",
|
||||||
"gpu_model": "${gpu_model}",
|
"gpu_model": "${gpu_model}",
|
||||||
"gpu_passthrough": "${gpu_passthrough}",
|
"gpu_passthrough": "${gpu_passthrough}",
|
||||||
"ram_speed": "${ram_speed}",
|
"ram_speed": ${ram_speed:-0},
|
||||||
"repo_source": "${REPO_SOURCE}"
|
"repo_source": "${REPO_SOURCE}"
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@@ -789,7 +794,7 @@ EOF
|
|||||||
"gpu_vendor": "${gpu_vendor}",
|
"gpu_vendor": "${gpu_vendor}",
|
||||||
"gpu_model": "${gpu_model}",
|
"gpu_model": "${gpu_model}",
|
||||||
"gpu_passthrough": "${gpu_passthrough}",
|
"gpu_passthrough": "${gpu_passthrough}",
|
||||||
"ram_speed": "${ram_speed}",
|
"ram_speed": ${ram_speed:-0},
|
||||||
"repo_source": "${REPO_SOURCE}"
|
"repo_source": "${REPO_SOURCE}"
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user