blob: a8b68b849a3e2d07f3685b7b94a3f66a5c5009db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/bin/bash
set -e
cecho() {
local code="\033["
case "$1" in
black | bk) color="${code}0;30m";;
red | r) color="${code}1;31m";;
green | g) color="${code}1;32m";;
yellow | y) color="${code}1;33m";;
blue | b) color="${code}1;34m";;
purple | p) color="${code}1;35m";;
cyan | c) color="${code}1;36m";;
gray | gr) color="${code}0;37m";;
*) local text="$1"
esac
[ -z "$text" ] && local text="$color$2${code}0m"
echo -e "$text"
}
do_delete_instance() {
NGINX_AVAILABLE_PATH='/etc/nginx/sites-available'
NGINX_ENABLE_PATH='/etc/nginx/sites-enabled'
UWSGI_AVAILABLE_PATH='/etc/uwsgi/apps-available'
UWSGI_ENABLE_PATH='/etc/uwsgi/apps-enabled'
if [ ! -z '$CONFIG_PATH' ]; then
CONFIG_PATH="/etc/ishtar/"
fi
if [ ! -f $CONFIG_PATH/config ]; then
echo "";
cecho r ""$CONFIG_PATH" is not a valid config file."
echo "Have you properly install Ishtar sources?"
echo "Run ishtar-install before this script.";
echo "";
exit 1;
fi
source $CONFIG_PATH/config
INSTANCES_FILE=$CONFIG_PATH/instances
if [ ! -f $INSTANCES_FILE ]; then
echo "";
cecho r "No instance installed. Exiting."
echo "";
exit 1;
fi
echo ""
cecho g "*******************************************************************************"
cecho g "++++++ Ishtar instance deletion script ++++++"
cecho g "*******************************************************************************"
echo ""
cecho y "Available instances:"
echo ""
cat $INSTANCES_FILE
to_delete=''
echo ""
while [ "$to_delete" == '' ]
do
read -p "* Which one would you like to delete? " choice
GRP=`cat $INSTANCES_FILE | grep "^$choice$"`
if [ "$GRP" != '' ]; then
to_delete=$choice
fi
done
echo ""
cecho r "Are you really sure to delete configuration, database and media attached to the "
cecho r "instance "$to_delete"?"
echo ""
read -p "* Type DELETE if you are sure: " choice
if [ "$choice" != "DELETE" ]; then
exit 1
fi
sed '/'$to_delete'/d' $INSTANCES_FILE > /tmp/new_instances
mv /tmp/new_instances $INSTANCES_FILE
INSTANCE=$to_delete
rm -rf $ISHTAR_PATH/$INSTANCE
rm -f "$NGINX_AVAILABLE_PATH/ishtar-$INSTANCE.conf"
rm -f "$NGINX_ENABLE_PATH/ishtar-$INSTANCE.conf"
rm -f "$UWSGI_AVAILABLE_PATH/ishtar-$INSTANCE.ini"
rm -f "$UWSGI_ENABLE_PATH/ishtar-$INSTANCE.ini"
DB_NAME="ishtar-$INSTANCE"
export DB_NAME
su postgres <<'EOF'
dropdb "$DB_NAME"
dropuser "$DB_NAME"
EOF
if [ $USE_CELERY = 'yes' ]; then
systemctl disable celery-$INSTANCE
systemctl stop celery-$INSTANCE
/usr/sbin/rabbitmqctl delete_vhost /ishtar$INSTANCE
/usr/sbin/rabbitmqctl delete_user ishtar$INSTANCE
rm "/etc/default/celeryd-"$INSTANCE
rm "/etc/systemd/system/celery-"$INSTANCE".service"
systemctl daemon-reload
fi
echo ""
cecho g $to_delete" have been completly removed"
echo ""
}
do_delete_instance
|