133 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # Copyright (c) 2021-2025 community-scripts ORG
 | |
| # Author: michelroegl-brunner
 | |
| # License: MIT | https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/LICENSE
 | |
| 
 | |
| post_to_api() {
 | |
| 
 | |
|   if ! command -v curl &>/dev/null; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ "$DIAGNOSTICS" = "no" ]; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ -z "$RANDOM_UUID" ]; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   local API_URL="http://api.community-scripts.org/upload"
 | |
|   local pve_version="not found"
 | |
|   pve_version=$(pveversion | awk -F'[/ ]' '{print $2}')
 | |
| 
 | |
|   JSON_PAYLOAD=$(
 | |
|     cat <<EOF
 | |
| {
 | |
|     "ct_type": $CT_TYPE,
 | |
|     "type":"lxc",
 | |
|     "disk_size": $DISK_SIZE,
 | |
|     "core_count": $CORE_COUNT,
 | |
|     "ram_size": $RAM_SIZE,
 | |
|     "os_type": "$var_os",
 | |
|     "os_version": "$var_version",
 | |
|     "disableip6": "",
 | |
|     "nsapp": "$NSAPP",
 | |
|     "method": "$METHOD",
 | |
|     "pve_version": "$pve_version",
 | |
|     "status": "installing",
 | |
|     "random_id": "$RANDOM_UUID"
 | |
| }
 | |
| EOF
 | |
|   )
 | |
| 
 | |
|   if [[ "$DIAGNOSTICS" == "yes" ]]; then
 | |
|     RESPONSE=$(curl -s -w "%{http_code}" -L -X POST "$API_URL" --post301 --post302 \
 | |
|       -H "Content-Type: application/json" \
 | |
|       -d "$JSON_PAYLOAD") || true
 | |
|   fi
 | |
| }
 | |
| 
 | |
| post_to_api_vm() {
 | |
| 
 | |
|   if [[ ! -f /usr/local/community-scripts/diagnostics ]]; then
 | |
|     return
 | |
|   fi
 | |
|   DIAGNOSTICS=$(grep -i "^DIAGNOSTICS=" /usr/local/community-scripts/diagnostics | awk -F'=' '{print $2}')
 | |
|   if ! command -v curl &>/dev/null; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ "$DIAGNOSTICS" = "no" ]; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ -z "$RANDOM_UUID" ]; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   local API_URL="http://api.community-scripts.org/upload"
 | |
|   local pve_version="not found"
 | |
|   pve_version=$(pveversion | awk -F'[/ ]' '{print $2}')
 | |
| 
 | |
|   DISK_SIZE_API=${DISK_SIZE%G}
 | |
| 
 | |
|   JSON_PAYLOAD=$(
 | |
|     cat <<EOF
 | |
| {
 | |
|     "ct_type": 2,
 | |
|     "type":"vm",
 | |
|     "disk_size": $DISK_SIZE_API,
 | |
|     "core_count": $CORE_COUNT,
 | |
|     "ram_size": $RAM_SIZE,
 | |
|     "os_type": "$var_os",
 | |
|     "os_version": "$var_version",
 | |
|     "disableip6": "",
 | |
|     "nsapp": "$NSAPP",
 | |
|     "method": "$METHOD",
 | |
|     "pve_version": "$pve_version",
 | |
|     "status": "installing",
 | |
|     "random_id": "$RANDOM_UUID"
 | |
| }
 | |
| EOF
 | |
|   )
 | |
| 
 | |
|   if [[ "$DIAGNOSTICS" == "yes" ]]; then
 | |
|     RESPONSE=$(curl -s -w "%{http_code}" -L -X POST "$API_URL" --post301 --post302 \
 | |
|       -H "Content-Type: application/json" \
 | |
|       -d "$JSON_PAYLOAD") || true
 | |
|   fi
 | |
| }
 | |
| 
 | |
| POST_UPDATE_DONE=false
 | |
| post_update_to_api() {
 | |
| 
 | |
|   if ! command -v curl &>/dev/null; then
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ "$POST_UPDATE_DONE" = true ]; then
 | |
|     return 0
 | |
|   fi
 | |
|   local API_URL="http://api.community-scripts.org/upload/updatestatus"
 | |
|   local status="${1:-failed}"
 | |
|   local error="${2:-No error message}"
 | |
| 
 | |
|   JSON_PAYLOAD=$(
 | |
|     cat <<EOF
 | |
| {
 | |
|     "status": "$status",
 | |
|     "error": "$error",
 | |
|     "random_id": "$RANDOM_UUID"
 | |
| }
 | |
| EOF
 | |
|   )
 | |
| 
 | |
|   if [[ "$DIAGNOSTICS" == "yes" ]]; then
 | |
|     RESPONSE=$(curl -s -w "%{http_code}" -L -X POST "$API_URL" --post301 --post302 \
 | |
|       -H "Content-Type: application/json" \
 | |
|       -d "$JSON_PAYLOAD") || true
 | |
|   fi
 | |
| 
 | |
|   POST_UPDATE_DONE=true
 | |
| }
 | 
