Remove deprecated PostgreSQL database driver
This was deprecated for removal in Pike. It's probably time to drop it.
Note that the 'postgresql-devel'/'postgresql-server-dev-all' packages
are retained since some packages still include 'psycopg2' in their
general requirements.
Change-Id: I51e8354e99972757253ce259e6c03c91da24398c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst
index 45f4ffe..62571e0 100644
--- a/doc/source/configuration.rst
+++ b/doc/source/configuration.rst
@@ -326,29 +326,23 @@
Database Backend
----------------
-Multiple database backends are available. The available databases are defined
-in the lib/databases directory.
-``mysql`` is the default database, choose a different one by putting the
-following in the ``localrc`` section::
+Support for the MySQL database backend is included. Addition database backends
+may be available via external plugins. Enabling of disabling MySQL is handled
+via the usual service functions and ``ENABLED_SERVICES``. For example, to
+disable MySQL in ``local.conf``::
disable_service mysql
- enable_service postgresql
-
-``mysql`` is the default database.
RPC Backend
-----------
-Support for a RabbitMQ RPC backend is included. Additional RPC
-backends may be available via external plugins. Enabling or disabling
-RabbitMQ is handled via the usual service functions and
-``ENABLED_SERVICES``.
-
-Example disabling RabbitMQ in ``local.conf``::
+Support for a RabbitMQ RPC backend is included. Additional RPC backends may be
+available via external plugins. Enabling or disabling RabbitMQ is handled via
+the usual service functions and ``ENABLED_SERVICES``. For example, to disable
+RabbitMQ in ``local.conf``::
disable_service rabbit
-
Apache Frontend
---------------
diff --git a/doc/source/zuul_ci_jobs_migration.rst b/doc/source/zuul_ci_jobs_migration.rst
index 17e7e16..66f8251 100644
--- a/doc/source/zuul_ci_jobs_migration.rst
+++ b/doc/source/zuul_ci_jobs_migration.rst
@@ -302,10 +302,7 @@
- This will probably be implemented on ironic side.
* - DEVSTACK_GATE_POSTGRES
- Legacy
- - This flag exists in d-g but the only thing that it does is
- capture postgres logs. This is already supported by the roles
- in post, so the flag is useless in the new jobs. postgres
- itself can be enabled via the devstack_service job variable.
+ - This has no effect in d-g.
* - DEVSTACK_GATE_ZEROMQ
- Legacy
- This has no effect in d-g.
diff --git a/functions b/functions
index f33fd25..8eeb032 100644
--- a/functions
+++ b/functions
@@ -400,7 +400,8 @@
# initialized yet, just save the configuration selection and call back later
# to validate it.
#
-# ``$1`` - the name of the database backend to use (mysql, postgresql, ...)
+# ``$1`` - the name of the database backend to use (only mysql is currently
+# supported)
function use_database {
if [[ -z "$DATABASE_BACKENDS" ]]; then
# No backends registered means this is likely called from ``localrc``
diff --git a/lib/databases/postgresql b/lib/databases/postgresql
deleted file mode 100644
index 618834b..0000000
--- a/lib/databases/postgresql
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/bin/bash
-#
-# lib/databases/postgresql
-# Functions to control the configuration and operation of the **PostgreSQL** database backend
-
-# Dependencies:
-#
-# - DATABASE_{HOST,USER,PASSWORD} must be defined
-
-# Save trace setting
-_XTRACE_PG=$(set +o | grep xtrace)
-set +o xtrace
-
-
-MAX_DB_CONNECTIONS=${MAX_DB_CONNECTIONS:-200}
-
-
-register_database postgresql
-
-
-# Functions
-# ---------
-
-function get_database_type_postgresql {
- echo postgresql
-}
-
-# Get rid of everything enough to cleanly change database backends
-function cleanup_database_postgresql {
- stop_service postgresql
- if is_ubuntu; then
- # Get ruthless with mysql
- apt_get purge -y postgresql*
- return
- elif is_fedora || is_suse; then
- uninstall_package postgresql-server
- else
- return
- fi
-}
-
-function recreate_database_postgresql {
- local db=$1
- # Avoid unsightly error when calling dropdb when the database doesn't exist
- psql -h$DATABASE_HOST -U$DATABASE_USER -dtemplate1 -c "DROP DATABASE IF EXISTS $db"
- createdb -h $DATABASE_HOST -U$DATABASE_USER -l C -T template0 -E utf8 $db
-}
-
-function configure_database_postgresql {
- local pg_conf pg_dir pg_hba check_role version
- echo_summary "Configuring and starting PostgreSQL"
- if is_fedora; then
- pg_hba=/var/lib/pgsql/data/pg_hba.conf
- pg_conf=/var/lib/pgsql/data/postgresql.conf
- if ! sudo [ -e $pg_hba ]; then
- sudo postgresql-setup initdb
- fi
- elif is_ubuntu; then
- version=`psql --version | cut -d ' ' -f3 | cut -d. -f1-2`
- if vercmp $version '>=' 9.3; then
- if [ -z "`pg_lsclusters -h`" ]; then
- echo 'No PostgreSQL clusters exist; will create one'
- sudo pg_createcluster $version main --start
- fi
- fi
- 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
- # Set max_connections
- sudo sed -i "/max_connections/s/.*/max_connections = $MAX_DB_CONNECTIONS/" $pg_conf
- # Do password auth from all IPv4 clients
- 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
- restart_service postgresql
-
- # Create the role if it's not here or else alter it.
- check_role=$(sudo -u root sudo -u postgres -i psql -t -c "SELECT 'HERE' from pg_roles where rolname='$DATABASE_USER'")
- if [[ ${check_role} == *HERE ]];then
- sudo -u root sudo -u postgres -i psql -c "ALTER ROLE $DATABASE_USER WITH SUPERUSER LOGIN PASSWORD '$DATABASE_PASSWORD'"
- else
- sudo -u root sudo -u postgres -i psql -c "CREATE ROLE $DATABASE_USER WITH SUPERUSER LOGIN PASSWORD '$DATABASE_PASSWORD'"
- fi
-}
-
-function install_database_postgresql {
- echo_summary "Installing postgresql"
- deprecated "Use of postgresql in devstack is deprecated, and will be removed during the Pike cycle"
- local pgpass=$HOME/.pgpass
- if [[ ! -e $pgpass ]]; then
- cat <<EOF > $pgpass
-*:*:*:$DATABASE_USER:$DATABASE_PASSWORD
-EOF
- chmod 0600 $pgpass
- else
- sed -i "s/:root:\w\+/:root:$DATABASE_PASSWORD/" $pgpass
- fi
- if is_ubuntu; then
- install_package postgresql
- elif is_fedora || is_suse; then
- install_package postgresql-server
- if is_fedora; then
- sudo systemctl enable postgresql
- fi
- else
- exit_distro_not_supported "postgresql installation"
- fi
-}
-
-function install_database_python_postgresql {
- # Install Python client module
- pip_install_gr psycopg2
- ADDITIONAL_VENV_PACKAGES+=",psycopg2"
-}
-
-function database_connection_url_postgresql {
- local db=$1
- echo "$BASE_SQL_CONN/$db?client_encoding=utf8"
-}
-
-
-# Restore xtrace
-$_XTRACE_PG
-
-# Local variables:
-# mode: shell-script
-# End:
diff --git a/stack.sh b/stack.sh
index 9982c35..5064d5d 100755
--- a/stack.sh
+++ b/stack.sh
@@ -695,14 +695,11 @@
# Database Configuration
# ----------------------
-# To select between database backends, add the following to ``local.conf``:
+# DevStack provides a MySQL database backend. Additional backends may be
+# provided by external plugins and can be enabled using the usual service
+# functions and ``ENABLED_SERVICES``. For example, to disable MySQL:
#
# disable_service mysql
-# enable_service postgresql
-#
-# The available database backends are listed in ``DATABASE_BACKENDS`` after
-# ``lib/database`` is sourced. ``mysql`` is the default.
-
if initialize_database_backends; then
echo "Using $DATABASE_TYPE database backend"
# Last chance for the database password. This must be handled here
diff --git a/unstack.sh b/unstack.sh
index ccea0ef..07dc2b1 100755
--- a/unstack.sh
+++ b/unstack.sh
@@ -147,10 +147,6 @@
stop_service mysql
fi
- if is_service_enabled postgresql; then
- stop_service postgresql
- fi
-
# Stop rabbitmq-server
if is_service_enabled rabbit; then
stop_service rabbitmq-server