Back

7c_foundation_unstack

#!/bin/bash
# ================================================================
#  OPENSTACK PHASE 3 — REVERSION (Target Instance)
#  Rollback DevStack processes and clean environment
#  RUN: Inside the EC2 instance manually
# ================================================================
set -euo pipefail

G='\033[0;32m'; B='\033[0;34m'; Y='\033[1;33m'; R='\033[0;31m'; NC='\033[0m'
info()    { echo -e "${B}[INFO]${NC}    $*"; }
success() { echo -e "${G}[OK]${NC}      $*"; }
error()   { echo -e "${R}[ERROR]${NC}   $*"; }
banner()  { echo -e "\n${Y}══════════════════════════════════════════${NC}"; \
            echo -e "${Y}  $*${NC}"; \
            echo -e "${Y}══════════════════════════════════════════${NC}\n"; }

banner "OPENSTACK REVERSION — DevStack Cleanup"

if [[ ! -d "devstack" ]]; then
    error "DevStack directory not found. Nothing to reverse."
    exit 1
fi

cd devstack

# ── 1. Unstack ───────────────────────────────────────────────
info "Step 1 — Gracefully stopping services (unstack.sh)..."
if [[ -f "./unstack.sh" ]]; then
    ./unstack.sh || info "  Some services already stopped."
else
    error "unstack.sh not found."
fi

# ── 2. Clean ─────────────────────────────────────────────────
info "Step 2 — Scouring environment (clean.sh)..."
if [[ -f "./clean.sh" ]]; then
    # clean.sh removes OVS bridges and reset databases
    ./clean.sh || info "  Partial cleanup completed."
else
    error "clean.sh not found."
fi

# ── 3. Post-Clean ────────────────────────────────────────────
info "Step 3 — Removing configuration locks..."
sudo rm -rf /opt/stack
sudo rm -rf /etc/openstack
sudo rm -rf /var/log/openstack

banner "REVERSION COMPLETE"
echo -e "  Environment has been ${G}RESET${NC}."
echo -e "  You can now run ${Y}./7b_foundation_install.sh${NC} again."