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