From 5d3209a50ff80601622c862006a207e1612a7ff8 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 26 Mar 2025 14:52:52 +0100 Subject: [PATCH] Update api.func --- misc/api.func | 170 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 118 insertions(+), 52 deletions(-) diff --git a/misc/api.func b/misc/api.func index f6a3413..2e34e9d 100644 --- a/misc/api.func +++ b/misc/api.func @@ -1,26 +1,78 @@ # Copyright (c) 2021-2025 community-scripts ORG # Author: michelroegl-brunner -# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE +# License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/LICENSE + +get_error_description() { + local exit_code="$1" + case "$exit_code" in + 0) echo " " ;; + 1) echo "General error: An unspecified error occurred." ;; + 2) echo "Incorrect shell usage or invalid command arguments." ;; + 3) echo "Unexecuted function or invalid shell condition." ;; + 4) echo "Error opening a file or invalid path." ;; + 5) echo "I/O error: An input/output failure occurred." ;; + 6) echo "No such device or address." ;; + 7) echo "Insufficient memory or resource exhaustion." ;; + 8) echo "Non-executable file or invalid file format." ;; + 9) echo "Failed child process execution." ;; + 18) echo "Connection to a remote server failed." ;; + 22) echo "Invalid argument or faulty network connection." ;; + 28) echo "No space left on device." ;; + 35) echo "Timeout while establishing a connection." ;; + 56) echo "Faulty TLS connection." ;; + 60) echo "SSL certificate error." ;; + 100) echo "LXC install error: Unexpected error in create_lxc.sh." ;; + 101) echo "LXC install error: No network connection detected." ;; + 200) echo "LXC creation failed." ;; + 201) echo "LXC error: Invalid Storage class." ;; + 202) echo "User aborted menu in create_lxc.sh." ;; + 203) echo "CTID not set in create_lxc.sh." ;; + 204) echo "PCT_OSTYPE not set in create_lxc.sh." ;; + 205) echo "CTID cannot be less than 100 in create_lxc.sh." ;; + 206) echo "CTID already in use in create_lxc.sh." ;; + 207) echo "Template not found in create_lxc.sh." ;; + 208) echo "Error downloading template in create_lxc.sh." ;; + 209) echo "Container creation failed, but template is intact in create_lxc.sh." ;; + 125) echo "Docker error: Container could not start." ;; + 126) echo "Command not executable: Incorrect permissions or missing dependencies." ;; + 127) echo "Command not found: Incorrect path or missing dependency." ;; + 128) echo "Invalid exit signal, e.g., incorrect Git command." ;; + 129) echo "Signal 1 (SIGHUP): Process terminated due to hangup." ;; + 130) echo "Signal 2 (SIGINT): Manual termination via Ctrl+C." ;; + 132) echo "Signal 4 (SIGILL): Illegal machine instruction." ;; + 133) echo "Signal 5 (SIGTRAP): Debugging error or invalid breakpoint signal." ;; + 134) echo "Signal 6 (SIGABRT): Program aborted itself." ;; + 135) echo "Signal 7 (SIGBUS): Memory error, invalid memory address." ;; + 137) echo "Signal 9 (SIGKILL): Process forcibly terminated (OOM-killer or 'kill -9')." ;; + 139) echo "Signal 11 (SIGSEGV): Segmentation fault, possibly due to invalid pointer access." ;; + 141) echo "Signal 13 (SIGPIPE): Pipe closed unexpectedly." ;; + 143) echo "Signal 15 (SIGTERM): Process terminated normally." ;; + 152) echo "Signal 24 (SIGXCPU): CPU time limit exceeded." ;; + 255) echo "Unknown critical error, often due to missing permissions or broken scripts." ;; + *) echo "Unknown error code ($exit_code)." ;; + esac +} post_to_api() { - if ! command -v curl &> /dev/null; then - return - fi + if ! command -v curl &>/dev/null; then + return + fi - if [ "$DIAGNOSTICS" = "no" ]; then - return - fi + if [ "$DIAGNOSTICS" = "no" ]; then + return + fi - if [ -z "$RANDOM_UUID" ]; then - return - fi + if [ -z "$RANDOM_UUID" ]; then + return + fi - local API_URL="http://api.community-scripts.org/dev/upload" - local pve_version="not found" - pve_version=$(pveversion | awk -F'[/ ]' '{print $2}') + local API_URL="http://api.community-scripts.org/dev/upload" + local pve_version="not found" + pve_version=$(pveversion | awk -F'[/ ]' '{print $2}') - JSON_PAYLOAD=$(cat < /dev/null; then - return + if ! command -v curl &>/dev/null; then + return fi if [ "$POST_UPDATE_DONE" = true ]; then return 0 fi + exit_code=${2:-1} local API_URL="http://api.community-scripts.org/dev/upload/updatestatus" local status="${1:-failed}" - local error="${2:-No error message}" + if [[ "$status" == "failed" ]]; then + local exit_code="${2:-1}" + elif [[ "$status" == "success" ]]; then + local exit_code="${2:-0}" + fi - JSON_PAYLOAD=$(cat <