4 echo usage: $0 "[initdb | createdb | dropdb | syncdb | runserver | resetdb | dumpdata]"
8 BACKUP_DIR=/opt/planetstack_backups
12 function ensure_postgres_running {
13 # "sudo -u postgres pg_ctl -D /var/lib/postgres/data status" doesn't work
14 # right on Vicci, so let's try to detect it by seeing if the port is
17 netstat -nl | grep -i ":5432 "
18 if [[ $? == 0 ]]; then
19 echo "Postgres is already running"
23 /sbin/service postgresql initdb
24 /sbin/service postgresql start
25 /sbin/chkconfig postgresql on
27 netstat -nl | grep -i ":5432 "
28 if [[ $? != 0 ]]; then
29 # it's still not running
30 echo "Trying fallback mechanism to start Postgres"
31 sudo -u postgres initdb -D /var/lib/pgsql/data/
32 sudo -u postgres pg_ctl -D /var/lib/pgsql/data -l logfile start
37 echo "Creating OpenCloud database..."
38 sudo -u postgres createdb planetstack
41 echo "Dropping OpenCloud database..."
42 sudo -u postgres dropdb planetstack
45 echo "Syncing OpenCloud services..."
46 python /opt/planetstack/manage.py syncdb --noinput
49 echo "Syncing OpenCloud services..."
50 python /opt/planetstack/manage.py evolve --hint --execute --noinput
53 echo "Stopping any running OpenCloud Service(s)"
54 pkill -f "python.*runserver"
57 PUBLIC_HOSTNAME=`/opt/planetstack/planetstack-config.py get server_hostname $HOSTNAME`
58 echo "Starting OpenCloud Service on $PUBLIC_HOSTNAME:8000"
59 python manage.py runserver $PUBLIC_HOSTNAME:8000&
64 FN="$BACKUP_DIR/dumpdata-`date +%Y-%m-%d_%H:%M:%S`.json"
65 echo "Saving data to $FN"
66 python manage.py dumpdata core hpc syndicate_storage requestrouter -a --indent 4 > $FN
67 if [[ ! -f $FN ]]; then
68 echo "FAILED to create $FN"
71 SIZE=$(du -k "$FN" | cut -f 1)
72 if [[ $SIZE -lt 9 ]]; then
73 echo "Dumpdata was empty. Deleting and aborting"
77 rm -f $BACKUP_DIR/dumpdata-latest.json
78 ln -s $FN $BACKUP_DIR/dumpdata-latest.json
83 if [ "$COMMAND" = "initdb" ]; then
85 ensure_postgres_running
89 if [ "$COMMAND" = "repairdb" ]; then
91 ensure_postgres_running
93 # TODO: This is where we could run migration scripts to upgrade the
94 # dumped data to the new models.
95 mv /opt/planetstack/core/fixtures/initial_data.json /opt/planetstack/core/fixtures/initial_data.json-old
96 cp $BACKUP_DIR/dumpdata-latest.json /opt/planetstack/core/fixtures/initial_data.json
101 if [ "$COMMAND" = "restoredb" ]; then
102 if [[ ! -f $BACKUP_DIR/dumpdata-latest.json ]]; then
103 echo There is no dumpdata to restore
107 ensure_postgres_running
108 mv /opt/planetstack/core/fixtures/initial_data.json /opt/planetstack/core/fixtures/initial_data.json-old
109 cp $BACKUP_DIR/dumpdata-latest.json /opt/planetstack/core/fixtures/initial_data.json
114 if [ "$COMMAND" = "evolvedb" ]; then
116 ensure_postgres_running
119 if [ "$COMMAND" = "resetdb" ]; then
125 if [ "$COMMAND" = "syncdb" ]; then
129 if [ "$COMMAND" = "runserver" ]; then
133 if [ "$COMMAND" = "stopserver" ]; then
136 if [ "$COMMAND" = "dumpdata" ]; then