48 lines
1.3 KiB
Bash
48 lines
1.3 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Proxmox Utility Functions
|
||
|
|
# Consolidated functions from small Proxmox-related scripts
|
||
|
|
# Usage: source "$(dirname "${BASH_SOURCE[0]}")/../utils/proxmox-utils.sh"
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Load shared modules
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
|
|
source "$SCRIPT_DIR/../lib/ip-config.sh" 2>/dev/null || true
|
||
|
|
source "$SCRIPT_DIR/../lib/logging.sh" 2>/dev/null || true
|
||
|
|
source "$SCRIPT_DIR/../lib/proxmox-api.sh" 2>/dev/null || true
|
||
|
|
|
||
|
|
# List all VMs
|
||
|
|
proxmox_list_vms() {
|
||
|
|
local host="${1:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
|
||
|
|
ssh_proxmox "$host" "qm list" || true
|
||
|
|
}
|
||
|
|
|
||
|
|
# List all containers
|
||
|
|
proxmox_list_containers() {
|
||
|
|
local host="${1:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
|
||
|
|
ssh_proxmox "$host" "pct list" || true
|
||
|
|
}
|
||
|
|
|
||
|
|
# Get VM status
|
||
|
|
proxmox_vm_status() {
|
||
|
|
local vmid="$1"
|
||
|
|
local host="${2:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
|
||
|
|
ssh_proxmox "$host" "qm status $vmid" || true
|
||
|
|
}
|
||
|
|
|
||
|
|
# Get container status
|
||
|
|
proxmox_container_status() {
|
||
|
|
local vmid="$1"
|
||
|
|
local host="${2:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
|
||
|
|
check_container_status "$vmid" "$host"
|
||
|
|
}
|
||
|
|
|
||
|
|
# Proxmox API call wrapper
|
||
|
|
proxmox_api() {
|
||
|
|
local method="$1"
|
||
|
|
local endpoint="$2"
|
||
|
|
local host="${3:-${PROXMOX_HOST_ML110:-192.168.11.10}}"
|
||
|
|
proxmox_api_call "$method" "$endpoint" "$host"
|
||
|
|
}
|