#!/bin/bash

echo ""
echo "WARNING: This script will erase many packages and config files."
echo "Important packages such as the following will be removed:"
echo ""
echo "  * httpd (apache)"
echo "  * mongodb"
echo "  * tomcat"
echo "  * puppet"
echo "  * ruby"
echo "  * rubygems"
echo "  * All Katello and Foreman Packages"
echo ""
echo "Once these packages and configuration files are removed there is no going back."
echo "If you use this system for anything other than Katello and Foreman you probably"
echo "do not want to execute this script."
echo ""
read -p "Read the source for a list of what is removed.  Are you sure(Y/N)? " -n 1 -r
echo    # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    echo "** cancelled **"
    exit 1
fi

echo ""
echo "ARE YOU SURE?: This script permanently deletes data and configuration."
read -p "Read the source for a list of what is removed.  Type [remove] to continue? " -r
echo    # (optional) move to a new line
if [[ ! $REPLY = remove ]]
then
    echo "** cancelled **"
    exit 1
fi

CONFIG_FILES=(
    /etc/pulp
    /etc/candlepin
    /etc/katello
    /etc/httpd
    /etc/tomcat6
    /etc/foreman
    /etc/tomcat
    /etc/foreman-installer
    /etc/foreman-proxy
    /etc/pki/katello-certs-tools
    /etc/sudoers.d/foreman-proxy
    /etc/hammer
    /etc/tomcat
    /etc/squid
    /etc/puppet
    /etc/qpid
    /etc/qpid-dispatch
    /etc/sysconfig/foreman.rpmsave
)

LOG_FILES=(
    /var/log/katello
    /var/log/tomcat6
    /var/log/pulp
    /var/log/candlepin
    /var/log/httpd
    /var/log/mongodb
    /var/log/foreman
    /var/log/foreman-proxy
    /var/log/foreman-installer
    /var/log/tomcat
    /var/log/squid
    /var/log/capsule-certs-generate*
)

RPMS=(
    `rpm -qa | grep puppetlabs-release`
    `rpm -qa | grep foreman-release`
    `rpm -qa | grep foreman-client`
    `rpm -qa | grep foreman-proxy`
    `rpm -qa | grep candlepin`
    `rpm -qa | grep katello`
    `rpm -qa | grep ^pulp`
    `rpm -qa | grep ^python-pulp`
    `rpm -qa | grep ^pulp-`
    `rpm -qa | grep mongo`
    `rpm -qa | grep postgre`
    `rpm -qa | grep ^mod_`
    `rpm -qa | grep ^rubygem`
    `rpm -qa | grep ^ruby193`
    `rpm -qa | grep ^tfm`
    `rpm -qa | grep ^foreman`
    `rpm -qa | grep ^qpid`
    `rpm -qa | grep ^python-crane`
    `rpm -qa | grep ^python-celery`
    `rpm -qa | grep ^python-gofer`
    `rpm -qa | grep ^python-qpid`
    `rpm -qa | grep ^python-kombu`
    `rpm -qa | grep ^python-webpy`
    `rpm -qa | grep ^python-nectar`
    `rpm -qa | grep ^python-saslwrapper`
    `rpm -qa | grep ^python-amqp`
    `rpm -qa | grep ^python-billiard`
    `rpm -qa | grep ^python-semantic-version`
    `rpm -qa | grep ^python-requests`
    `rpm -qa | grep ^python-isodate`
    `rpm -qa | grep $HOSTNAME`
    `rpm -qa | grep saslwrapper`
    `rpm -qa | grep ruby`
    `rpm -qa | grep rubygems`
    `rpm -qa | grep httpd`
    `rpm -qa | grep puppet`
    `rpm -qa | grep tomcat`
    `rpm -qa | grep squid`
)

CERT_FILES=(
    /etc/pki/pulp
    /etc/pki/content/*
    /etc/pki/katello
    /root/ssl-build
    /etc/pki/tls/certs/katello-node.crt
    /etc/pki/tls/private/katello-node.key
    /etc/pki/tls/certs/pulp_consumers_ca.crt
    /etc/pki/tls/certs/pulp_ssl_cert.crt
    /var/www/html/pub/katello-ca*.rpm
    /etc/pki/ca-trust/source/anchors/katello_server-host-cert.crt
)

CONTENT=(
    /var/cache/pulp
    /usr/share/foreman-proxy
    /usr/share/foreman-installer-katello
    /var/www/html/pub/katello-server-ca.crt
    /usr/share/foreman
    /var/lib/candlepin
    /usr/share/katello
    /var/lib/puppet
    /var/lib/pgsql
    /var/lib/mongodb
    /var/lib/katello
    /var/lib/pulp/
    /var/lib/foreman
    /usr/share/pulp
    /var/lib/tomcat
    /var/lib/qpidd
    /usr/share/candlepin
    /usr/share/tomcat
    /usr/share/katello-installer-base
    /usr/share/qpid
    /usr/share/qpid-tools
    /var/cache/candlepin
    /var/cache/foreman-proxy
    /var/cache/
    /opt/theforeman
    /var/www/html/pub/katello-rhsm-consumer
)

katello-service stop

echo "Removing RPMs"
yum erase -y ${RPMS[*]}

echo "Cleaning up configuration files"
rm -rf ${CONFIG_FILES[*]}

echo "Cleaning up log files"
# logs
rm -rf ${LOG_FILES[*]}

echo "Cleaning up Certs"
# pulp cert stuff
rm -rf ${CERT_FILES[*]}

echo "Cleaning up content"
#content
rm -rf ${CONTENT[*]}
