7 models: AS7312-54X, AS7312-54XS, AS7326-56X, AS7716-32X, AS7816-64X, AS9716-32D, AS7512-32X. All from SONiC HCL Accton/Edgecore vendor. Sources: edge-core.com official WP CDN + stordis.com + epsglobal.com. Also adds scripts/apply-pending-migrations.sh for Erik DB catchup.
50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Apply pending migrations 084-089 to Erik production DB
|
|
# Run this script when Erik SSH is back online.
|
|
#
|
|
# Usage: ./scripts/apply-pending-migrations.sh
|
|
|
|
set -e
|
|
|
|
ERIK="root@82.165.222.127"
|
|
DOCKER_CMD="docker exec -i tip-postgres psql -U tip -d transceiver_db"
|
|
SQL_DIR="$(dirname "$0")/../sql"
|
|
|
|
PENDING=(
|
|
"084-cisco-a9k-bulk-images.sql"
|
|
"085-mixed-straggler-images.sql"
|
|
"086-asterfusion-arista-ruckus-misc-images.sql"
|
|
"087-cisco-a9k-license-variant-reuse.sql"
|
|
"088-ubiquiti-phoenix-images.sql"
|
|
"089-arista-cisco-juniper-images.sql"
|
|
)
|
|
|
|
echo "Checking Erik SSH..."
|
|
if ! ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no "$ERIK" "echo OK" 2>/dev/null; then
|
|
echo "ERROR: Cannot reach Erik at $ERIK"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Erik is reachable. Applying pending migrations..."
|
|
echo ""
|
|
|
|
for sql_file in "${PENDING[@]}"; do
|
|
path="${SQL_DIR}/${sql_file}"
|
|
echo "==> Applying ${sql_file}..."
|
|
result=$(cat "$path" | ssh "$ERIK" "$DOCKER_CMD" 2>&1)
|
|
echo "$result" | grep -E "UPDATE|ERROR|error" || true
|
|
echo " Done."
|
|
done
|
|
|
|
echo ""
|
|
echo "All pending migrations applied."
|
|
echo ""
|
|
echo "=== Remaining uncovered models (query) ==="
|
|
ssh "$ERIK" "$DOCKER_CMD" << 'EOSQL'
|
|
SELECT vendors.name AS vendor, switches.model
|
|
FROM switches
|
|
LEFT JOIN vendors ON switches.vendor_id = vendors.id
|
|
WHERE switches.image_url IS NULL
|
|
ORDER BY vendors.name, switches.model;
|
|
EOSQL
|