 8b32e680be
			
		
	
	8b32e680be
	
	
	
		
			
			The db_backend_package name has changed in puppet-oslo[0], so fix it. [0]: https://review.openstack.org/#/c/467582/ Change-Id: I2b1a42ae3b134063239652907bcfb87f6137255b Closes-Bug: #1693403
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'spec_helper'
 | |
| 
 | |
| describe 'cloudkitty::db' do
 | |
| 
 | |
|   shared_examples 'cloudkitty::db' do
 | |
|     context 'with default parameters' do
 | |
|       it { is_expected.to contain_oslo__db('cloudkitty_config').with(
 | |
|         :db_max_retries => '<SERVICE DEFAULT>',
 | |
|         :connection     => 'sqlite:////var/lib/cloudkitty/cloudkitty.sqlite',
 | |
|         :idle_timeout   => '<SERVICE DEFAULT>',
 | |
|         :min_pool_size  => '<SERVICE DEFAULT>',
 | |
|         :max_pool_size  => '<SERVICE DEFAULT>',
 | |
|         :max_retries    => '<SERVICE DEFAULT>',
 | |
|         :retry_interval => '<SERVICE DEFAULT>',
 | |
|         :max_overflow   => '<SERVICE DEFAULT>',
 | |
|       )}
 | |
|     end
 | |
| 
 | |
|     context 'with specific parameters' do
 | |
|       let :params do
 | |
|         { :database_connection     => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty',
 | |
|           :database_idle_timeout   => '3601',
 | |
|           :database_min_pool_size  => '2',
 | |
|           :database_db_max_retries => '-1',
 | |
|           :database_max_retries    => '11',
 | |
|           :database_retry_interval => '11',
 | |
|           :database_max_pool_size  => '11',
 | |
|           :database_max_overflow   => '21',
 | |
|         }
 | |
|       end
 | |
| 
 | |
|       it { is_expected.to contain_oslo__db('cloudkitty_config').with(
 | |
|         :db_max_retries => '-1',
 | |
|         :connection     => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty',
 | |
|         :idle_timeout   => '3601',
 | |
|         :min_pool_size  => '2',
 | |
|         :max_pool_size  => '11',
 | |
|         :max_retries    => '11',
 | |
|         :retry_interval => '11',
 | |
|         :max_overflow   => '21',
 | |
|       )}
 | |
|     end
 | |
| 
 | |
|     context 'with postgresql backend' do
 | |
|       let :params do
 | |
|         { :database_connection => 'postgresql://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|       it 'install the proper backend package' do
 | |
|         is_expected.to contain_package('python-psycopg2').with(:ensure => 'present')
 | |
|       end
 | |
| 
 | |
|     end
 | |
| 
 | |
|     context 'with MySQL-python library as backend package' do
 | |
|       let :params do
 | |
|         { :database_connection => 'mysql://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|       it { is_expected.to contain_package('python-mysqldb').with(:ensure => 'present') }
 | |
|     end
 | |
| 
 | |
|     context 'with incorrect database_connection string' do
 | |
|       let :params do
 | |
|         { :database_connection => 'foodb://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|       it_raises 'a Puppet::Error', /validate_re/
 | |
|     end
 | |
| 
 | |
|     context 'with incorrect pymysql database_connection string' do
 | |
|       let :params do
 | |
|         { :database_connection => 'foo+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|       it_raises 'a Puppet::Error', /validate_re/
 | |
|     end
 | |
| 
 | |
|   end
 | |
| 
 | |
|   shared_examples_for 'cloudkitty::db on Debian' do
 | |
|     context 'using pymysql driver' do
 | |
|       let :params do
 | |
|         { :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|       it 'install the proper backend package' do
 | |
|         is_expected.to contain_package('python-pymysql').with(
 | |
|           :ensure => 'present',
 | |
|           :name   => 'python-pymysql',
 | |
|           :tag    => 'openstack'
 | |
|         )
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   shared_examples_for 'cloudkitty::db on RedHat' do
 | |
|     context 'using pymysql driver' do
 | |
|       let :params do
 | |
|         { :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', }
 | |
|       end
 | |
| 
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   on_supported_os({
 | |
|     :supported_os   => OSDefaults.get_supported_os
 | |
|   }).each do |os,facts|
 | |
|     context "on #{os}" do
 | |
|       let (:facts) do
 | |
|         facts.merge!(OSDefaults.get_facts())
 | |
|       end
 | |
| 
 | |
|       it_configures 'cloudkitty::db'
 | |
|       it_configures "cloudkitty::db on #{facts[:osfamily]}"
 | |
|     end
 | |
|   end
 | |
| end
 |