From b43275a4b4f014d62cbe53d90eaf670b3d9e5799 Mon Sep 17 00:00:00 2001 From: Javier Pena Date: Tue, 15 Dec 2015 13:10:11 +0100 Subject: [PATCH] Switch to PyMySQL Upstream OpenStack has switched to PyMySQL for MySQL/MariaDB dbapi access (see https://wiki.openstack.org/wiki/PyMySQL_evaluation). Now that there is support in the Puppet modules for it, let's make the switch in Packstack. Note: this requires an update to OPM to include all patches in https://review.openstack.org/#/q/status:merged+branch:master+topic:PyMySQL-driver,n,z During some initial testing, it seems that some other fixes to Packstack will be required to include those updates. Change-Id: I8af512a7717a2654e2325404e54202fd6fd14940 Fixes: rhbz#1266028 --- packstack/plugins/nova_300.py | 2 +- packstack/puppet/templates/cinder_qpid.pp | 2 +- packstack/puppet/templates/cinder_rabbitmq.pp | 2 +- packstack/puppet/templates/glance.pp | 4 ++-- packstack/puppet/templates/heat_qpid.pp | 2 +- packstack/puppet/templates/heat_rabbitmq.pp | 2 +- packstack/puppet/templates/ironic_qpid.pp | 2 +- packstack/puppet/templates/ironic_rabbitmq.pp | 2 +- packstack/puppet/templates/keystone.pp | 2 +- packstack/puppet/templates/manila_qpid.pp | 2 +- packstack/puppet/templates/manila_rabbitmq.pp | 2 +- packstack/puppet/templates/neutron.pp | 2 +- packstack/puppet/templates/sahara.pp | 2 +- packstack/puppet/templates/trove_qpid.pp | 2 +- packstack/puppet/templates/trove_rabbitmq.pp | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packstack/plugins/nova_300.py b/packstack/plugins/nova_300.py index 04d4d1dcc..b3d61b289 100644 --- a/packstack/plugins/nova_300.py +++ b/packstack/plugins/nova_300.py @@ -834,7 +834,7 @@ def create_common_manifest(config, messages): pw_in_sqlconn = True mariadb_host_url = config['CONFIG_MARIADB_HOST_URL'] - sqlconn = "mysql://%s@%s/nova" % (perms, mariadb_host_url) + sqlconn = "mysql+pymysql://%s@%s/nova" % (perms, mariadb_host_url) if pw_in_sqlconn: config['CONFIG_NOVA_SQL_CONN_PW'] = sqlconn else: diff --git a/packstack/puppet/templates/cinder_qpid.pp b/packstack/puppet/templates/cinder_qpid.pp index c5308f42e..9abed4c36 100644 --- a/packstack/puppet/templates/cinder_qpid.pp +++ b/packstack/puppet/templates/cinder_qpid.pp @@ -8,7 +8,7 @@ class { '::cinder': qpid_protocol => hiera('CONFIG_AMQP_PROTOCOL'), qpid_username => hiera('CONFIG_AMQP_AUTH_USER'), qpid_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://cinder:${cinder_qpid_cfg_cinder_db_pw}@${cinder_qpid_cfg_mariadb_host}/cinder", + database_connection => "mysql+pymysql://cinder:${cinder_qpid_cfg_cinder_db_pw}@${cinder_qpid_cfg_mariadb_host}/cinder", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), } diff --git a/packstack/puppet/templates/cinder_rabbitmq.pp b/packstack/puppet/templates/cinder_rabbitmq.pp index d2f0b0fea..3538e4ffe 100644 --- a/packstack/puppet/templates/cinder_rabbitmq.pp +++ b/packstack/puppet/templates/cinder_rabbitmq.pp @@ -21,7 +21,7 @@ class { '::cinder': rabbit_use_ssl => hiera('CONFIG_AMQP_SSL_ENABLED'), rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'), rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://cinder:${cinder_rab_cfg_cinder_db_pw}@${cinder_rab_cfg_mariadb_host}/cinder", + database_connection => "mysql+pymysql://cinder:${cinder_rab_cfg_cinder_db_pw}@${cinder_rab_cfg_mariadb_host}/cinder", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), kombu_ssl_ca_certs => $kombu_ssl_ca_certs, diff --git a/packstack/puppet/templates/glance.pp b/packstack/puppet/templates/glance.pp index 3506cd285..874f16840 100644 --- a/packstack/puppet/templates/glance.pp +++ b/packstack/puppet/templates/glance.pp @@ -24,7 +24,7 @@ class { '::glance::api': keystone_user => 'glance', keystone_password => hiera('CONFIG_GLANCE_KS_PW'), pipeline => 'keystone', - database_connection => "mysql://glance:${glance_ks_pw}@${glance_mariadb_host}/glance", + database_connection => "mysql+pymysql://glance:${glance_ks_pw}@${glance_mariadb_host}/glance", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), os_region_name => hiera('CONFIG_KEYSTONE_REGION'), @@ -37,7 +37,7 @@ class { '::glance::registry': keystone_tenant => 'services', keystone_user => 'glance', keystone_password => hiera('CONFIG_GLANCE_KS_PW'), - database_connection => "mysql://glance:${glance_ks_pw}@${glance_mariadb_host}/glance", + database_connection => "mysql+pymysql://glance:${glance_ks_pw}@${glance_mariadb_host}/glance", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), } diff --git a/packstack/puppet/templates/heat_qpid.pp b/packstack/puppet/templates/heat_qpid.pp index c5c0650b0..56b06ef0b 100644 --- a/packstack/puppet/templates/heat_qpid.pp +++ b/packstack/puppet/templates/heat_qpid.pp @@ -14,5 +14,5 @@ class { '::heat': qpid_protocol => hiera('CONFIG_AMQP_PROTOCOL'), verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), - database_connection => "mysql://heat:${heat_qpid_cfg_heat_db_pw}@${heat_qpid_cfg_mariadb_host}/heat", + database_connection => "mysql+pymysql://heat:${heat_qpid_cfg_heat_db_pw}@${heat_qpid_cfg_mariadb_host}/heat", } diff --git a/packstack/puppet/templates/heat_rabbitmq.pp b/packstack/puppet/templates/heat_rabbitmq.pp index 795c2b344..2e5e3dbe3 100644 --- a/packstack/puppet/templates/heat_rabbitmq.pp +++ b/packstack/puppet/templates/heat_rabbitmq.pp @@ -28,7 +28,7 @@ class { '::heat': rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), - database_connection => "mysql://heat:${heat_rabbitmq_cfg_heat_db_pw}@${heat_rabbitmq_cfg_mariadb_host}/heat", + database_connection => "mysql+pymysql://heat:${heat_rabbitmq_cfg_heat_db_pw}@${heat_rabbitmq_cfg_mariadb_host}/heat", kombu_ssl_ca_certs => $kombu_ssl_ca_certs, kombu_ssl_keyfile => $kombu_ssl_keyfile, kombu_ssl_certfile => $kombu_ssl_certfile, diff --git a/packstack/puppet/templates/ironic_qpid.pp b/packstack/puppet/templates/ironic_qpid.pp index 409e829f2..7ec84882b 100644 --- a/packstack/puppet/templates/ironic_qpid.pp +++ b/packstack/puppet/templates/ironic_qpid.pp @@ -8,7 +8,7 @@ class { '::ironic': qpid_protocol => hiera('CONFIG_AMQP_PROTOCOL'), qpid_username => hiera('CONFIG_AMQP_AUTH_USER'), qpid_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://ironic:${ironic_qpid_cfg_ironic_db_pw}@${ironic_qpid_cfg_mariadb_host}/ironic", + database_connection => "mysql+pymysql://ironic:${ironic_qpid_cfg_ironic_db_pw}@${ironic_qpid_cfg_mariadb_host}/ironic", debug => true, verbose => true, } diff --git a/packstack/puppet/templates/ironic_rabbitmq.pp b/packstack/puppet/templates/ironic_rabbitmq.pp index 305ac9042..6322b3211 100644 --- a/packstack/puppet/templates/ironic_rabbitmq.pp +++ b/packstack/puppet/templates/ironic_rabbitmq.pp @@ -22,7 +22,7 @@ class { '::ironic': rabbit_use_ssl => hiera('CONFIG_AMQP_SSL_ENABLED'), rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'), rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://ironic:${ironic_rabbitmq_cfg_ironic_db_pw}@${ironic_rabbitmq_cfg_mariadb_host}/ironic", + database_connection => "mysql+pymysql://ironic:${ironic_rabbitmq_cfg_ironic_db_pw}@${ironic_rabbitmq_cfg_mariadb_host}/ironic", debug => true, verbose => true, kombu_ssl_ca_certs => $kombu_ssl_ca_certs, diff --git a/packstack/puppet/templates/keystone.pp b/packstack/puppet/templates/keystone.pp index 40a2fb660..157c0cd05 100644 --- a/packstack/puppet/templates/keystone.pp +++ b/packstack/puppet/templates/keystone.pp @@ -33,7 +33,7 @@ if hiera('CONFIG_KEYSTONE_DB_PURGE_ENABLE',false) { class { '::keystone': admin_token => hiera('CONFIG_KEYSTONE_ADMIN_TOKEN'), - database_connection => "mysql://keystone_admin:${keystone_cfg_ks_db_pw}@${keystone_cfg_mariadb_host}/keystone", + database_connection => "mysql+pymysql://keystone_admin:${keystone_cfg_ks_db_pw}@${keystone_cfg_mariadb_host}/keystone", token_provider => "keystone.token.providers.${keystone_token_provider_str}.Provider", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), diff --git a/packstack/puppet/templates/manila_qpid.pp b/packstack/puppet/templates/manila_qpid.pp index 2ea7f898a..7187aace4 100644 --- a/packstack/puppet/templates/manila_qpid.pp +++ b/packstack/puppet/templates/manila_qpid.pp @@ -9,7 +9,7 @@ class { '::manila': qpid_protocol => hiera('CONFIG_AMQP_PROTOCOL'), qpid_username => hiera('CONFIG_AMQP_AUTH_USER'), qpid_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - sql_connection => "mysql://manila:${db_pw}@${mariadb_host}/manila", + sql_connection => "mysql+pymysql://manila:${db_pw}@${mariadb_host}/manila", verbose => true, debug => hiera(CONFIG_DEBUG_MODE), } diff --git a/packstack/puppet/templates/manila_rabbitmq.pp b/packstack/puppet/templates/manila_rabbitmq.pp index d20a9afb7..4b47bbc12 100644 --- a/packstack/puppet/templates/manila_rabbitmq.pp +++ b/packstack/puppet/templates/manila_rabbitmq.pp @@ -22,7 +22,7 @@ class { '::manila': rabbit_use_ssl => hiera('CONFIG_AMQP_SSL_ENABLED'), rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'), rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - sql_connection => "mysql://manila:${db_pw}@${mariadb_host}/manila", + sql_connection => "mysql+pymysql://manila:${db_pw}@${mariadb_host}/manila", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), } diff --git a/packstack/puppet/templates/neutron.pp b/packstack/puppet/templates/neutron.pp index 5fb90f457..3c6e7fb8c 100644 --- a/packstack/puppet/templates/neutron.pp +++ b/packstack/puppet/templates/neutron.pp @@ -2,7 +2,7 @@ $neutron_db_host = hiera('CONFIG_MARIADB_HOST_URL') $neutron_db_name = hiera('CONFIG_NEUTRON_L2_DBNAME') $neutron_db_user = 'neutron' $neutron_db_password = hiera('CONFIG_NEUTRON_DB_PW') -$neutron_sql_connection = "mysql://${neutron_db_user}:${neutron_db_password}@${neutron_db_host}/${neutron_db_name}" +$neutron_sql_connection = "mysql+pymysql://${neutron_db_user}:${neutron_db_password}@${neutron_db_host}/${neutron_db_name}" $neutron_user_password = hiera('CONFIG_NEUTRON_KS_PW') diff --git a/packstack/puppet/templates/sahara.pp b/packstack/puppet/templates/sahara.pp index bbfb83264..91b37d1df 100644 --- a/packstack/puppet/templates/sahara.pp +++ b/packstack/puppet/templates/sahara.pp @@ -5,7 +5,7 @@ $sahara_cfg_config_neutron_install = hiera('CONFIG_NEUTRON_INSTALL') class { '::sahara': database_connection => - "mysql://sahara:${sahara_cfg_sahara_db_pw}@${sahara_cfg_sahara_mariadb_host}/sahara", + "mysql+pymysql://sahara:${sahara_cfg_sahara_db_pw}@${sahara_cfg_sahara_mariadb_host}/sahara", verbose => true, debug => hiera('CONFIG_DEBUG_MODE'), admin_user => 'sahara', diff --git a/packstack/puppet/templates/trove_qpid.pp b/packstack/puppet/templates/trove_qpid.pp index 5e58e9666..2ac290d05 100644 --- a/packstack/puppet/templates/trove_qpid.pp +++ b/packstack/puppet/templates/trove_qpid.pp @@ -9,7 +9,7 @@ class { '::trove': qpid_protocol => hiera('CONFIG_AMQP_PROTOCOL'), qpid_username => hiera('CONFIG_AMQP_AUTH_USER'), qpid_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://trove:${trove_qpid_cfg_trove_db_pw}@${trove_qpid_cfg_mariadb_host}/trove", + database_connection => "mysql+pymysql://trove:${trove_qpid_cfg_trove_db_pw}@${trove_qpid_cfg_mariadb_host}/trove", nova_proxy_admin_user => hiera('CONFIG_TROVE_NOVA_USER'), nova_proxy_admin_tenant_name => hiera('CONFIG_TROVE_NOVA_TENANT'), nova_proxy_admin_pass => hiera('CONFIG_TROVE_NOVA_PW'), diff --git a/packstack/puppet/templates/trove_rabbitmq.pp b/packstack/puppet/templates/trove_rabbitmq.pp index 82661cf95..30dbe2cc0 100644 --- a/packstack/puppet/templates/trove_rabbitmq.pp +++ b/packstack/puppet/templates/trove_rabbitmq.pp @@ -24,7 +24,7 @@ class { '::trove': rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'), rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'), rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'), - database_connection => "mysql://trove:${trove_rabmq_cfg_trove_db_pw}@${trove_rabmq_cfg_mariadb_host}/trove", + database_connection => "mysql+pymysql://trove:${trove_rabmq_cfg_trove_db_pw}@${trove_rabmq_cfg_mariadb_host}/trove", nova_proxy_admin_user => hiera('CONFIG_TROVE_NOVA_USER'), nova_proxy_admin_tenant_name => hiera('CONFIG_TROVE_NOVA_TENANT'), nova_proxy_admin_pass => hiera('CONFIG_TROVE_NOVA_PW'),