Fix postgresql setup on openSUSE
The initdb call is part of starting the service for the first time, so
we need to do that.
Also, restart postgresql after sed'ing its configuration files: if it
was already running for some reason, it needs to be restarted, not
started.
Change-Id: Ib7d3ff5217d06a7764a62a36084090514a1825ea
diff --git a/lib/databases/postgresql b/lib/databases/postgresql
index 20ade85..e1463c5 100644
--- a/lib/databases/postgresql
+++ b/lib/databases/postgresql
@@ -20,14 +20,21 @@
function configure_database_postgresql {
echo_summary "Configuring and starting PostgreSQL"
- if is_fedora || is_suse; then
+ if is_fedora; then
PG_HBA=/var/lib/pgsql/data/pg_hba.conf
PG_CONF=/var/lib/pgsql/data/postgresql.conf
sudo [ -e $PG_HBA ] || sudo postgresql-setup initdb
- else
+ elif is_ubuntu; then
PG_DIR=`find /etc/postgresql -name pg_hba.conf|xargs dirname`
PG_HBA=$PG_DIR/pg_hba.conf
PG_CONF=$PG_DIR/postgresql.conf
+ elif is_suse; then
+ PG_HBA=/var/lib/pgsql/data/pg_hba.conf
+ PG_CONF=/var/lib/pgsql/data/postgresql.conf
+ # initdb is called when postgresql is first started
+ sudo [ -e $PG_HBA ] || start_service postgresql
+ else
+ exit_distro_not_supported "postgresql configuration"
fi
# Listen on all addresses
sudo sed -i "/listen_addresses/s/.*/listen_addresses = '*'/" $PG_CONF
@@ -35,7 +42,7 @@
sudo sed -i "/^host/s/all\s\+127.0.0.1\/32\s\+ident/$DATABASE_USER\t0.0.0.0\/0\tpassword/" $PG_HBA
# Do password auth for all IPv6 clients
sudo sed -i "/^host/s/all\s\+::1\/128\s\+ident/$DATABASE_USER\t::0\/0\tpassword/" $PG_HBA
- start_service postgresql
+ restart_service postgresql
# If creating the role fails, chances are it already existed. Try to alter it.
sudo -u root sudo -u postgres -i psql -c "CREATE ROLE $DATABASE_USER WITH SUPERUSER LOGIN PASSWORD '$DATABASE_PASSWORD'" || \