#!/bin/bash
#===========================================================================================
# Exit immediately if a command exits with a non-zero status.
set -e
# Treat unset variables as an error when substituting.
set -u
# Exit if any command in a pipeline fails, not just the last one.
set -o pipefail

#  Functions for Colored Output 
print_info() {
    echo -e "\e[34mINFO: $1\e[0m"
}

print_success() {
    echo -e "\e[32mSUCCESS: $1\e[0m"
}

print_warning() {
    echo -e "\e[33mWARNING: $1\e[0m"
}

print_error() {
    echo -e "\e[31mERROR: $1\e[0m"
    exit 1
}

#  Check for Root Privileges 
if [ "$EUID" -ne 0 ]; then
  print_error "This script must be run as root. Please use sudo."
fi

#  User Inputs 
print_info "Removing cloudStack Installation..."
print_info "Step 1: Preparing the system..."
apt update && apt upgrade -y

# remove java
apt-get -y purge java-*

# remove agent management and MariaDB - will still likely prompt for yes to remove db during run
apt-get -y purge cloudstack-agent
rm -rf /etc/cloudstack/agent/
rm -rf /var/log/cloudstack/agent/
rm -rf /usr/share/cloudstack-agent/

apt-get -y purge cloudstack-management
rm -rf /etc/cloudstack/management/
rm -rf /var/lib/cloudstack/management/
rm -rf /var/log/cloudstack/management/
rm -rf /usr/share/cloudstack-common/scripts/vm/systemvm

apt-get -y purge cloudstack-usage
rm -rf /etc/cloudstack/usage/
rm -rf /var/lib/cloudstack/usage/
rm -rf /usr/lib/cloudstack/
rm -rf /etc/cloudstack/
rm -rf /var/log/cloudstack

apt-get -y purge mariadb-* mariadb-common
apt-get -y purge mysql-* mysqld-* mysql-client mysql-common
rm -f /etc/mysql/mysql.conf.d/cloudstack.cnf
rm -f /etc/mysql/mysql.conf.d/*
rm -rf /etc/mysql/
rm -rf /var/lib/mysql/

apt-get -y purge libvirt-*
rm -rf /var/lib/libvirt/qemu/
rm -rf /var/lib/libvirt/
rm -rf /etc/libvirt/hooks/
rm -rf /etc/libvirt/

apt-get -y purge nfs-kernel-server nfs-common rpcbind autofs
rm -f /etc/exports
rm -rf /var/lib/nfs/

apt-get -y autoremove
apt-get update

# remove install logging
rm -f installer.log
rm -f cloudstack-installer-tracker.conf
