Update share-common.func

This commit is contained in:
MacRimi
2025-09-02 22:44:42 +02:00
parent f35de5c749
commit 614e629a2b

View File

@@ -428,62 +428,62 @@ select_container_mount_point() {
# CLIENT MOUNT FUNCTIONS (NFS/SAMBA COMMON) # CLIENT MOUNT FUNCTIONS (NFS/SAMBA COMMON)
# ========================================================== # ==========================================================
# Check if container is privileged (required for client mounts) # Check if container is privileged (required for client mounts)
pmx_check_container_privileged() { select_privileged_ct() {
local ctid="$1" # === Select CT ===
local conf="/etc/pve/lxc/${ctid}.conf" local ct_list ctid ct_status conf unpriv
if [[ ! -f "$conf" ]]; then ct_list=$(pct list | awk 'NR>1 {print $1, $3}')
if [[ -z "$ct_list" ]]; then
dialog --backtitle "ProxMenux" --title "$(translate "Error")" \
--msgbox "$(translate "No CTs available in the system.")" 8 50
return 1 return 1
fi fi
local unpriv=$(grep "^unprivileged:" "$conf" | awk '{print $2}') ctid=$(dialog --backtitle "ProxMenux" --title "$(translate "Select CT")" \
--menu "$(translate "Select the CT to manage NFS/Samba client:")" 20 70 12 \
$ct_list 3>&1 1>&2 2>&3)
if [[ "$unpriv" == "1" ]]; then if [[ -z "$ctid" ]]; then
return 1 # Unprivileged dialog --backtitle "ProxMenux" --title "$(translate "Error")" \
else --msgbox "$(translate "No CT was selected.")" 8 50
return 0 # Privileged
fi
}
# Select and validate LXC container for client mounts
pmx_select_privileged_container() {
local ctid
ctid=$(select_lxc_container)
if [[ $? -ne 0 || -z "$ctid" ]]; then
return 1 return 1
fi fi
# Check if container is privileged # === Start CT if not running ===
if ! pmx_check_container_privileged "$ctid"; then ct_status=$(pct status "$ctid" | awk '{print $2}')
whiptail --title "$(translate "Privileged Container Required")" \
--msgbox "$(translate "Network share mounting (NFS/SAMBA) requires a PRIVILEGED container.")\n\n$(translate "Selected container") $ctid $(translate "is UNPRIVILEGED.")\n\n$(translate "For unprivileged containers, use:")\n• $(translate "Configure LXC mount points")\n• $(translate "Mount shares on HOST first")\n• $(translate "Then bind-mount to container")" \
16 80
return 1
fi
# Start container if not running
local ct_status=$(pct status "$ctid" | awk '{print $2}')
if [[ "$ct_status" != "running" ]]; then if [[ "$ct_status" != "running" ]]; then
msg_info "$(translate "Starting container") $ctid..." msg_info "$(translate "Starting CT") $ctid..."
if pct start "$ctid"; then pct start "$ctid"
sleep 2 sleep 2
if [[ "$(pct status "$ctid" | awk '{print $2}')" == "running" ]]; then if [[ "$(pct status "$ctid" | awk '{print $2}')" != "running" ]]; then
msg_ok "$(translate "Container started successfully.")" msg_error "$(translate "Failed to start the CT.")"
else
msg_error "$(translate "Failed to start the container.")"
return 1
fi
else
msg_error "$(translate "Failed to start the container.")"
return 1 return 1
fi fi
msg_ok "$(translate "CT started successfully.")"
fi fi
echo "$ctid" # === Check privileged/unprivileged ===
conf="/etc/pve/lxc/${ctid}.conf"
unpriv=$(awk '/^unprivileged:/ {print $2}' "$conf" 2>/dev/null)
if [[ "$unpriv" == "1" ]]; then
dialog --backtitle "ProxMenux" --title "$(translate "Privileged Container Required")" \
--msgbox "\n$(translate "Network share mounting (NFS/Samba) requires a PRIVILEGED container.")\n\n$(translate "Selected container") $ctid $(translate "is UNPRIVILEGED.")\n\n$(translate "For unprivileged containers, use instead:")\n • $(translate "Configure LXC mount points")\n • $(translate "Mount shares on HOST first")\n • $(translate "Then bind-mount to container")" 15 75
exit 1
fi
# Export CTID if all good
CTID="$ctid"
return 0 return 0
} }
# Common mount point selection for containers # Common mount point selection for containers
pmx_select_container_mount_point() { pmx_select_container_mount_point() {
local ctid="$1" local ctid="$1"