Files
proxmox/scripts/review-ml110-completeness.sh.bak

184 lines
5.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Review ml110 for duplicates, missing files, and gaps
# Comprehensive review of ml110 structure and completeness
set -euo pipefail
REMOTE_HOST="192.168.11.10"
REMOTE_USER="root"
REMOTE_PASS="L@kers2010"
REMOTE_BASE="/opt"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_section() { echo -e "${CYAN}=== $1 ===${NC}"; }
log_section "ml110 Completeness Review"
echo "Remote: ${REMOTE_USER}@${REMOTE_HOST}"
echo ""
# Test connection
if ! sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
"${REMOTE_USER}@${REMOTE_HOST}" "echo 'Connected'" 2>/dev/null; then
log_error "Cannot connect to ${REMOTE_HOST}"
exit 1
fi
log_success "Connected to ${REMOTE_HOST}"
echo ""
# 1. Check for duplicate directories
log_section "1. Duplicate Directories Check"
DUPLICATE_DIRS=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && find . -maxdepth 1 -type d -name 'smom-dbis-138*' 2>/dev/null" 2>/dev/null)
if echo "$DUPLICATE_DIRS" | wc -l | grep -q "2"; then
log_success "Expected directories found (smom-dbis-138 and smom-dbis-138-proxmox)"
else
DUPLICATE_COUNT=$(echo "$DUPLICATE_DIRS" | wc -l)
if [[ $DUPLICATE_COUNT -gt 2 ]]; then
log_warn "Found $DUPLICATE_COUNT smom-dbis-138* directories (expected 2)"
echo "$DUPLICATE_DIRS"
else
log_info "Directories: $DUPLICATE_DIRS"
fi
fi
echo ""
# 2. Check for duplicate files
log_section "2. Duplicate Files Check"
# Check for files with same name in different locations
DUPLICATE_FILES=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && find smom-dbis-138* -type f -name '*.sh' -o -name '*.conf' -o -name '*.md' 2>/dev/null | xargs -I {} basename {} | sort | uniq -d" 2>/dev/null)
if [[ -n "$DUPLICATE_FILES" ]]; then
log_warn "Found files with duplicate names:"
echo "$DUPLICATE_FILES" | head -10 | sed 's/^/ /'
else
log_success "No duplicate file names found"
fi
echo ""
# 3. Missing Critical Files
log_section "3. Missing Critical Files Check"
CRITICAL_FILES=(
"smom-dbis-138-proxmox/config/proxmox.conf"
"smom-dbis-138-proxmox/config/network.conf"
"smom-dbis-138-proxmox/scripts/deployment/deploy-validated-set.sh"
"smom-dbis-138-proxmox/scripts/copy-besu-config.sh"
"smom-dbis-138-proxmox/scripts/fix-container-ips.sh"
"smom-dbis-138-proxmox/scripts/network/bootstrap-network.sh"
"smom-dbis-138/config/genesis.json"
)
MISSING_COUNT=0
for file in "${CRITICAL_FILES[@]}"; do
EXISTS=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && [ -f \"$file\" ] && echo 'yes' || echo 'no'" 2>/dev/null)
if [[ "$EXISTS" == "yes" ]]; then
log_success "$(basename "$file")"
else
log_error "Missing: $file"
MISSING_COUNT=$((MISSING_COUNT + 1))
fi
done
echo ""
# 4. Validator Keys Check
log_section "4. Validator Keys Completeness"
VALIDATOR_KEYS=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && if [ -d 'smom-dbis-138/keys/validators' ]; then find smom-dbis-138/keys/validators -type d -name 'validator-*' 2>/dev/null | sort -V; else echo 'DIR_NOT_FOUND'; fi" 2>/dev/null)
if [[ "$VALIDATOR_KEYS" == "DIR_NOT_FOUND" ]]; then
log_error "keys/validators directory not found"
else
KEY_COUNT=$(echo "$VALIDATOR_KEYS" | grep -c "validator-" || echo "0")
log_info "Found $KEY_COUNT validator key directories"
for i in 1 2 3 4 5; do
EXISTS=$(echo "$VALIDATOR_KEYS" | grep -q "validator-$i" && echo "yes" || echo "no")
if [[ "$EXISTS" == "yes" ]]; then
log_success "validator-$i"
else
log_error "Missing: validator-$i"
fi
done
fi
echo ""
# 5. Directory Structure Check
log_section "5. Directory Structure Check"
EXPECTED_DIRS=(
"smom-dbis-138-proxmox/config"
"smom-dbis-138-proxmox/scripts"
"smom-dbis-138-proxmox/scripts/deployment"
"smom-dbis-138-proxmox/scripts/network"
"smom-dbis-138-proxmox/scripts/validation"
"smom-dbis-138/config"
"smom-dbis-138/keys"
"smom-dbis-138/keys/validators"
)
for dir in "${EXPECTED_DIRS[@]}"; do
EXISTS=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && [ -d \"$dir\" ] && echo 'yes' || echo 'no'" 2>/dev/null)
if [[ "$EXISTS" == "yes" ]]; then
log_success "$dir/"
else
log_error "Missing directory: $dir/"
fi
done
echo ""
# 6. File Count Comparison
log_section "6. File Counts"
CONFIG_COUNT=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && find smom-dbis-138-proxmox/config -name '*.conf' -type f 2>/dev/null | wc -l" 2>/dev/null)
SCRIPT_COUNT=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && find smom-dbis-138-proxmox/scripts -name '*.sh' -type f 2>/dev/null | wc -l" 2>/dev/null)
DOC_COUNT=$(sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no \
"${REMOTE_USER}@${REMOTE_HOST}" "cd ${REMOTE_BASE} && find smom-dbis-138-proxmox/docs -name '*.md' -type f 2>/dev/null | wc -l" 2>/dev/null)
log_info "Configuration files: $CONFIG_COUNT"
log_info "Script files: $SCRIPT_COUNT"
log_info "Documentation files: $DOC_COUNT"
echo ""
# Summary
log_section "Summary"
if [[ $MISSING_COUNT -eq 0 ]]; then
log_success "All critical files present"
else
log_error "Found $MISSING_COUNT missing critical files"
fi
log_info "Review complete"