109 lines
2.7 KiB
Bash
109 lines
2.7 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# Test script for simulating the customer installer functionality
|
||
|
|
# This script mocks the Proxmox pct commands for testing on standard Linux systems
|
||
|
|
|
||
|
|
# Mock functions for Proxmox commands
|
||
|
|
pct() {
|
||
|
|
echo "Mock pct command called with arguments: $*"
|
||
|
|
case "$1" in
|
||
|
|
create)
|
||
|
|
echo "Creating LXC container with CTID: $2"
|
||
|
|
echo " - Hostname: customer-$2"
|
||
|
|
echo " - Memory: 2048 MB"
|
||
|
|
echo " - Cores: 2"
|
||
|
|
echo " - Network: eth0, bridge=vmbr0"
|
||
|
|
echo " - Unprivileged: 1"
|
||
|
|
echo " - Features: nesting=1"
|
||
|
|
echo " - Storage: $4"
|
||
|
|
;;
|
||
|
|
exec)
|
||
|
|
echo "Executing command in container $2:"
|
||
|
|
shift 2
|
||
|
|
echo " Command: $*"
|
||
|
|
;;
|
||
|
|
start)
|
||
|
|
echo "Starting container $2"
|
||
|
|
;;
|
||
|
|
push)
|
||
|
|
echo "Pushing file $3 to container $2"
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "Unknown pct command: $1"
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
}
|
||
|
|
|
||
|
|
# Mock pveam commands
|
||
|
|
pveam() {
|
||
|
|
echo "Mock pveam command called with arguments: $*"
|
||
|
|
case "$1" in
|
||
|
|
update)
|
||
|
|
echo "Updating Proxmox templates"
|
||
|
|
;;
|
||
|
|
download)
|
||
|
|
echo "Downloading template: $2"
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "Unknown pveam command: $1"
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
}
|
||
|
|
|
||
|
|
# Set up test environment
|
||
|
|
echo "Setting up test environment..."
|
||
|
|
mkdir -p /tmp/test-customer-installer
|
||
|
|
cd /tmp/test-customer-installer
|
||
|
|
|
||
|
|
# Create test files
|
||
|
|
echo "#!/bin/bash
|
||
|
|
set -e
|
||
|
|
echo 'Test setup script executed'
|
||
|
|
" > setupowner.sh
|
||
|
|
|
||
|
|
echo "version: '3.8'
|
||
|
|
services:
|
||
|
|
db:
|
||
|
|
image: ankane/pgvector:latest
|
||
|
|
container_name: n8n-db
|
||
|
|
environment:
|
||
|
|
POSTGRES_PASSWORD: testpassword
|
||
|
|
POSTGRES_DB: n8n
|
||
|
|
POSTGRES_USER: n8n
|
||
|
|
volumes:
|
||
|
|
- /var/lib/n8n/data/postgres:/var/lib/postgresql/data
|
||
|
|
networks:
|
||
|
|
- n8n-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
n8n:
|
||
|
|
image: docker.n8n.io/n8nio/n8n:latest
|
||
|
|
container_name: n8n-app
|
||
|
|
environment:
|
||
|
|
DB_TYPE: postgresdb
|
||
|
|
DB_POSTGRESDB_HOST: db
|
||
|
|
DB_POSTGRESDB_PORT: 5432
|
||
|
|
DB_POSTGRESDB_USER: n8n
|
||
|
|
DB_POSTGRESDB_PASSWORD: testpassword
|
||
|
|
DB_POSTGRESDB_DATABASE: n8n
|
||
|
|
N8N_ENCRYPTION_KEY: testkey
|
||
|
|
TIMEZONE: Europe/Berlin
|
||
|
|
volumes:
|
||
|
|
- /var/lib/n8n/data/n8n:/home/n8n/.n8n
|
||
|
|
networks:
|
||
|
|
- n8n-network
|
||
|
|
restart: unless-stopped
|
||
|
|
depends_on:
|
||
|
|
- db
|
||
|
|
|
||
|
|
networks:
|
||
|
|
n8n-network:
|
||
|
|
driver: bridge
|
||
|
|
" > templates/docker-compose.yml
|
||
|
|
|
||
|
|
# Test the main installation script with mocked commands
|
||
|
|
echo "Testing installation script with mocked Proxmox commands..."
|
||
|
|
chmod +x install.sh
|
||
|
|
./install.sh --storage local --bridge vmbr0 --vlan 90
|
||
|
|
|
||
|
|
echo "Test completed successfully!"
|