add support for percona-cluster as db backend

- added percona-cluster as option to the proper openstack attributes

Change-Id: I0ccdc6efbdfa3d72bdc63a49b3cd0fd1630babe1
Implements Blueprint: galera-and-percona-support
This commit is contained in:
Jan Klare 2015-06-05 16:02:38 +02:00
parent 3d37e8c52f
commit e7b8676b0d
4 changed files with 16 additions and 9 deletions

View File

@ -82,6 +82,7 @@ default['openstack']['db']['server_role'] = 'os-ops-database'
# Database charset during create database
default['openstack']['db']['charset'] = {
mysql: 'utf8',
'percona-cluster' => 'utf8',
mariadb: 'utf8',
postgresql: nil,
pgsql: nil,
@ -94,6 +95,7 @@ default['openstack']['db']['charset'] = {
# Database connection options. Should include starting '?'
default['openstack']['db']['options'] = {
mysql: "?charset=#{node['openstack']['db']['charset']['mysql']}",
'percona-cluster' => "?charset=#{node['openstack']['db']['charset']['percona-cluster']}",
mariadb: "?charset=#{node['openstack']['db']['charset']['mariadb']}",
postgresql: '',
sqlite: '',
@ -112,6 +114,7 @@ when 'rhel'
default['openstack']['db']['service_type'] = 'mariadb'
default['openstack']['db']['python_packages']['mysql'] = ['MySQL-python']
default['openstack']['db']['python_packages']['mariadb'] = ['MySQL-python']
default['openstack']['db']['python_packages']['percona-cluster'] = ['MySQL-python']
default['openstack']['db']['python_packages']['db2'] = ['python-ibm-db', 'python-ibm-db-sa']
default['openstack']['db']['python_packages']['galera'] = ['MySQL-python']
when 'suse'
@ -119,10 +122,12 @@ when 'suse'
default['openstack']['db']['python_packages']['mysql'] = ['python-mysql']
default['openstack']['db']['python_packages']['mariadb'] = ['python-mysql']
default['openstack']['db']['python_packages']['galera'] = ['python-mysql']
default['openstack']['db']['python_packages']['percona-cluster'] = ['python-mysql']
when 'debian'
default['openstack']['db']['service_type'] = 'mysql'
default['openstack']['db']['python_packages']['mysql'] = ['python-mysqldb']
default['openstack']['db']['python_packages']['mariadb'] = ['python-mysqldb']
default['openstack']['db']['python_packages']['percona-cluster'] = ['python-mysqldb']
default['openstack']['db']['python_packages']['db2'] = ['ibm-db', 'ibm-db-sa']
default['openstack']['db']['python_packages']['galera'] = ['python-mysqldb']
end

View File

@ -74,7 +74,7 @@ module ::Openstack
end
when 'pgsql'
type = 'postgresql'
when 'mariadb', 'galera'
when 'mariadb', 'galera', 'percona-cluster'
type = 'mysql'
end

View File

@ -4,7 +4,7 @@ maintainer_email 'opscode-chef-openstack@googlegroups.com'
license 'Apache 2.0'
description 'Common OpenStack attributes, libraries and recipes.'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '11.5.0'
version '11.5.1'
recipe 'openstack-common', 'Installs/Configures common recipes'
recipe 'openstack-common::set_endpoints_by_interface', 'Set endpoints by interface'

View File

@ -393,13 +393,15 @@ describe 'openstack-common::set_endpoints_by_interface' do
).to eq(expected)
end
it 'returns compute db info hash when service found for galera' do
node.set['openstack']['db']['service_type'] = 'galera'
allow(subject).to receive(:node).and_return(chef_run.node)
expected = 'mysql://user:pass@127.0.0.1:3306/nova?charset=utf8'
expect(
subject.db_uri('compute', 'user', 'pass')
).to eq(expected)
%w(galera percona-cluster).each do |db|
it "returns compute db info hash when service found for #{db}" do
node.set['openstack']['db']['service_type'] = db
allow(subject).to receive(:node).and_return(chef_run.node)
expected = 'mysql://user:pass@127.0.0.1:3306/nova?charset=utf8'
expect(
subject.db_uri('compute', 'user', 'pass')
).to eq(expected)
end
end
end