Files
proxmox/scripts/comprehensive-review.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

268 lines
7.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Comprehensive Review Script
# Checks for inconsistencies, gaps, and dependency issues across the project
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
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"; }
REPORT_FILE="$PROJECT_ROOT/logs/comprehensive-review-$(date +%Y%m%d-%H%M%S).md"
mkdir -p "$PROJECT_ROOT/logs"
{
cat << 'EOF'
# Comprehensive Project Review Report
Generated: $(date)
## Summary
This report identifies:
- VMID inconsistencies
- IP address inconsistencies
- Configuration gaps
- Missing dependencies
- Unreferenced or obsolete files
---
## 1. VMID Consistency
### Expected VMID Ranges
- **Validators**: 1000-1004 (5 nodes)
- **Sentries**: 1500-1503 (4 nodes)
- **RPC**: 2500-2502 (3 nodes)
### Issues Found
EOF
echo "### Files with Old VMIDs (106-117)"
echo ""
grep -rE "\b(106|107|108|109|110|111|112|113|114|115|116|117)\b" \
"$PROJECT_ROOT/smom-dbis-138-proxmox/" "$PROJECT_ROOT/docs/" 2>/dev/null | \
grep -v node_modules | grep -v ".git" | \
grep -v "EXPECTED_CONTAINERS.md" | \
grep -v "VMID_ALLOCATION.md" | \
grep -v "HISTORICAL" | \
cut -d: -f1 | sort -u | while read -r file; do
echo "- \`$file\`"
done
echo ""
echo "---"
echo ""
echo "## 2. IP Address Consistency"
echo ""
echo "### Expected IP Range"
echo "- Base subnet: ${NETWORK_192_168_11_0:-192.168.11.0}/24"
echo "- Validators: ${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-192.168.11.100}}}}}}-104"
echo "- Sentries: ${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-192.168.11.150}}}}}}}-153"
echo "- RPC: ${RPC_ALLTRA_1:-${RPC_ALLTRA_1:-192.168.11.250}}-252"
echo ""
echo "### Files with Old IPs (10.3.1.X)"
echo ""
grep -rE "10\.3\.1\." "$PROJECT_ROOT/smom-dbis-138-proxmox/" "$PROJECT_ROOT/docs/" 2>/dev/null | \
grep -v node_modules | grep -v ".git" | \
cut -d: -f1 | sort -u | while read -r file; do
echo "- \`$file\`"
done
echo ""
echo "---"
echo ""
echo "## 3. Configuration Gaps"
echo ""
# Check for missing config files
if [[ ! -f "$PROJECT_ROOT/smom-dbis-138-proxmox/config/proxmox.conf" ]]; then
echo "- ❌ Missing: \`config/proxmox.conf\`"
else
echo "- ✅ Found: \`config/proxmox.conf\`"
fi
if [[ ! -f "$PROJECT_ROOT/smom-dbis-138-proxmox/config/network.conf" ]]; then
echo "- ❌ Missing: \`config/network.conf\`"
else
echo "- ✅ Found: \`config/network.conf\`"
fi
echo ""
echo "### Key Configuration Variables Check"
echo ""
# Source config to check variables
if [[ -f "$PROJECT_ROOT/smom-dbis-138-proxmox/config/proxmox.conf" ]]; then
source "$PROJECT_ROOT/smom-dbis-138-proxmox/config/proxmox.conf" 2>/dev/null || true
if [[ "${VALIDATOR_COUNT:-}" != "5" ]]; then
echo "- ⚠️ VALIDATOR_COUNT=${VALIDATOR_COUNT:-not set} (expected: 5)"
else
echo "- ✅ VALIDATOR_COUNT=5"
fi
if [[ "${SENTRY_COUNT:-}" != "4" ]]; then
echo "- ⚠️ SENTRY_COUNT=${SENTRY_COUNT:-not set} (expected: 4)"
else
echo "- ✅ SENTRY_COUNT=4"
fi
if [[ "${RPC_COUNT:-}" != "3" ]]; then
echo "- ⚠️ RPC_COUNT=${RPC_COUNT:-not set} (expected: 3)"
else
echo "- ✅ RPC_COUNT=3"
fi
fi
echo ""
echo "---"
echo ""
echo "## 4. Dependencies Review"
echo ""
echo "### Required Tools"
echo ""
# Check for required tools
REQUIRED_TOOLS=(
"pct:Proxmox Container Toolkit"
"jq:JSON processor"
"sshpass:SSH password authentication"
"timeout:Command timeout utility"
"openssl:OpenSSL toolkit"
"curl:HTTP client"
"wget:File downloader"
)
for tool_info in "${REQUIRED_TOOLS[@]}"; do
tool=$(echo "$tool_info" | cut -d: -f1)
desc=$(echo "$tool_info" | cut -d: -f2)
if command -v "$tool" >/dev/null 2>&1; then
echo "- ✅ $tool ($desc)"
else
echo "- ❌ $tool ($desc) - MISSING"
fi
done
echo ""
echo "### Optional Tools"
echo ""
OPTIONAL_TOOLS=(
"quorum-genesis-tool:Genesis configuration generator"
"besu:Hyperledger Besu client"
)
for tool_info in "${OPTIONAL_TOOLS[@]}"; do
tool=$(echo "$tool_info" | cut -d: -f1)
desc=$(echo "$tool_info" | cut -d: -f2)
if command -v "$tool" >/dev/null 2>&1; then
echo "- ✅ $tool ($desc)"
else
echo "- ⚠️ $tool ($desc) - Optional (for key generation)"
fi
done
echo ""
echo "---"
echo ""
echo "## 5. Script Dependencies"
echo ""
echo "### Scripts Checking for Dependencies"
echo ""
# Find scripts that check for tools
grep -rE "(command -v|which|command_exists)" "$PROJECT_ROOT/smom-dbis-138-proxmox/scripts/" 2>/dev/null | \
grep -v ".git" | cut -d: -f1 | sort -u | while read -r file; do
echo "- \`$file\`"
done
echo ""
echo "---"
echo ""
echo "## 6. Missing or Incomplete Files"
echo ""
# Check for common missing files
MISSING_CHECKS=(
"smom-dbis-138-proxmox/scripts/copy-besu-config.sh:Configuration copy script"
"smom-dbis-138-proxmox/scripts/network/bootstrap-network.sh:Network bootstrap script"
"smom-dbis-138-proxmox/scripts/validation/validate-deployment-comprehensive.sh:Deployment validation script"
)
for check in "${MISSING_CHECKS[@]}"; do
file=$(echo "$check" | cut -d: -f1)
desc=$(echo "$check" | cut -d: -f2)
if [[ -f "$PROJECT_ROOT/$file" ]]; then
echo "- ✅ $desc: \`$file\`"
else
echo "- ❌ Missing: $desc - \`$file\`"
fi
done
echo ""
echo "---"
echo ""
echo "## 7. Documentation Inconsistencies"
echo ""
echo "### Documents with Outdated VMID References"
echo ""
# Check documentation files
OLD_VMID_DOCS=(
"docs/EXPECTED_CONTAINERS.md:References old VMIDs (106-117)"
"docs/VMID_ALLOCATION.md:Contains historical VMID ranges (1100-1122)"
)
for doc_info in "${OLD_VMID_DOCS[@]}"; do
doc=$(echo "$doc_info" | cut -d: -f1)
issue=$(echo "$doc_info" | cut -d: -f2)
if [[ -f "$PROJECT_ROOT/$doc" ]]; then
echo "- ⚠️ \`$doc\` - $issue"
fi
done
echo ""
echo "---"
echo ""
echo "## Recommendations"
echo ""
echo "1. Update files with old VMID references to use current ranges (1000-1004, 1500-1503, 2500-2502)"
echo "2. Update files with old IP addresses (10.3.1.X) to use new range (${NETWORK_PREFIX:-192.168.11}.X)"
echo "3. Review and update historical documentation files"
echo "4. Ensure all required tools are installed on deployment hosts"
echo "5. Verify configuration file consistency across all scripts"
echo ""
} > "$REPORT_FILE"
log_info "========================================="
log_info "Comprehensive Review Complete"
log_info "========================================="
log_info "Report saved to: $REPORT_FILE"
log_info ""
cat "$REPORT_FILE"