Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
190 lines
6.1 KiB
Bash
Executable File
190 lines
6.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Review ml110 for duplicates, missing files, and gaps
|
|
# Comprehensive review of ml110 structure and completeness
|
|
|
|
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
|
|
|
|
|
|
REMOTE_HOST="${PROXMOX_HOST_ML110}"
|
|
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"
|
|
|