From 7f6ebeb119a8b50e80e191cd90332001fd235fd4 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 12 Jan 2026 18:41:19 +0100 Subject: [PATCH] Update build.func --- misc/build.func | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/misc/build.func b/misc/build.func index 9ed4b5422..7183bcd5d 100644 --- a/misc/build.func +++ b/misc/build.func @@ -3709,17 +3709,17 @@ validate_storage_space() { local storage="$1" local required_gb="${2:-8}" local show_dialog="${3:-no}" - + # Get full storage line from pvesm status local storage_line storage_line=$(pvesm status 2>/dev/null | awk -v s="$storage" '$1 == s {print $0}') - + # Check if storage exists and is active if [[ -z "$storage_line" ]]; then [[ "$show_dialog" == "yes" ]] && whiptail --msgbox "⚠️ Warning: Storage '$storage' not found!\n\nThe storage may be unavailable or disabled." 10 60 return 2 fi - + # Check storage status (column 3) local status status=$(awk '{print $3}' <<<"$storage_line") @@ -3727,27 +3727,45 @@ validate_storage_space() { [[ "$show_dialog" == "yes" ]] && whiptail --msgbox "⚠️ Warning: Storage '$storage' is disabled!\n\nPlease enable the storage first." 10 60 return 2 fi - + # Get storage type and free space (column 6) local storage_type storage_free storage_type=$(awk '{print $2}' <<<"$storage_line") storage_free=$(awk '{print $6}' <<<"$storage_line") - + # Some storage types (like PBS, iSCSI) don't report size info # In these cases, skip space validation if [[ -z "$storage_free" || "$storage_free" == "0" ]]; then # Silent pass for storages without size info return 0 fi - + local required_kb=$((required_gb * 1024 * 1024)) local free_gb_fmt free_gb_fmt=$(numfmt --to=iec --from-unit=1024 --suffix=B --format %.1f "$storage_free" 2>/dev/null || echo "${storage_free}KB") - + if [[ "$storage_free" -lt "$required_kb" ]]; then if [[ "$show_dialog" == "yes" ]]; then whiptail --msgbox "⚠️ Warning: Storage '$storage' may not have enough space!\n\nStorage Type: ${storage_type}\nRequired: ${required_gb}GB\nAvailable: ${free_gb_fmt}\n\nYou can continue, but creation might fail." 14 70 + fi + return 1 + fi + return 0 +} + +# ============================================================================== +# SECTION 8: CONTAINER CREATION +# ============================================================================== + +# ------------------------------------------------------------------------------ +# create_lxc_container() +# +# - Main function for creating LXC containers +# - Handles all phases: validation, template discovery, container creation, +# network config, storage, etc. +# - Extensive error checking with detailed exit codes +# ------------------------------------------------------------------------------ create_lxc_container() { # ------------------------------------------------------------------------------ # Optional verbose mode (debug tracing)