diff --git a/spec/classes/glance_api_spec.rb b/spec/classes/glance_api_spec.rb index 86d23409..b47bc892 100644 --- a/spec/classes/glance_api_spec.rb +++ b/spec/classes/glance_api_spec.rb @@ -5,37 +5,57 @@ describe 'glance::api' do let :facts do { :osfamily => 'Debian', - :concat_basedir => '/var/lib/puppet/concat' + :processorcount => '7', } end let :default_params do { - :log_verbose => 'False', - :log_debug => 'False', - :bind_host => '0.0.0.0', - :bind_port => '9292', - :registry_host => '0.0.0.0', - :registry_port => '9191', - :log_file => '/var/log/glance/api.log', - :auth_type => 'keystone', - :auth_uri => 'http://127.0.0.1:5000/', - :enabled => true + :verbose => 'False', + :debug => 'False', + :bind_host => '0.0.0.0', + :bind_port => '9292', + :registry_host => '0.0.0.0', + :registry_port => '9191', + :log_file => '/var/log/glance/api.log', + :auth_type => 'keystone', + :auth_url => 'http://127.0.0.1:5000/', + :enabled => true, + :backlog => '4096', + :workers => '7', + :auth_host => '127.0.0.1', + :auth_port => '35357', + :auth_protocol => 'http', + :keystone_tenant => 'admin', + :keystone_user => 'admin', + :keystone_password => 'ChangeMe', + :sql_idle_timeout => '3600', + :sql_connection => 'sqlite:///var/lib/glance/glance.sqlite' } end [{}, { - :log_verbose => 'true', - :log_debug => 'true', - :bind_host => '127.0.0.1', - :bind_port => '9222', - :registry_host => '127.0.0.1', - :registry_port => '9111', - :log_file => '/var/log/glance-api.log', - :auth_type => 'not_keystone', - :auth_uri => 'http://192.168.56.210:5000/', - :enabled => false + :verbose => 'true', + :debug => 'true', + :bind_host => '127.0.0.1', + :bind_port => '9222', + :registry_host => '127.0.0.1', + :registry_port => '9111', + :log_file => '/var/log/glance-api.log', + :auth_type => 'not_keystone', + :auth_url => 'http://192.168.56.210:5000/', + :enabled => false, + :backlog => '4095', + :workers => '5', + :auth_host => '127.0.0.2', + :auth_port => '35358', + :auth_protocol => 'https', + :keystone_tenant => 'admin2', + :keystone_user => 'admin2', + :keystone_password => 'ChangeMe2', + :sql_idle_timeout => '36002', + :sql_connection => 'mysql:///var:lib@glance/glance' } ].each do |param_set| @@ -55,42 +75,60 @@ describe 'glance::api' do 'ensure' => param_hash[:enabled] ? 'running': 'stopped', 'enable' => param_hash[:enabled], 'hasstatus' => 'true', - 'hasrestart' => 'true', - 'subscribe' => 'Concat[/etc/glance/glance-api.conf]' + 'hasrestart' => 'true' ) } - it 'should compile the template based on the class parameters' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/01_glance-api-header', - [ - "verbose = #{param_hash[:log_verbose]}", - "debug = #{param_hash[:log_debug]}", - "bind_host = #{param_hash[:bind_host]}", - "bind_port = #{param_hash[:bind_port]}", - "log_file = #{param_hash[:log_file]}", - "registry_host = #{param_hash[:registry_host]}", - "registry_port = #{param_hash[:registry_port]}", - ] - ) + it 'should lay down default api config' do + [ + 'verbose', + 'debug', + 'bind_host', + 'bind_port', + 'log_file', + 'registry_host', + 'registry_port' + ].each do |config| + should contain_glance_api_config("DEFAULT/#{config}").with_value(param_hash[config.intern]) + end end - it 'should add paste deploy footers' do - expected_lines = ['[paste_deploy]', 'flavor = keystone'] if params[:auth_type] = 'keystone' - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/99_glance-api-footer', - expected_lines - ) + it 'should lay down default cache config' do + [ + 'verbose', + 'debug', + 'registry_host', + 'registry_port' + ].each do |config| + should contain_glance_cache_config("DEFAULT/#{config}").with_value(param_hash[config.intern]) + end end - it 'should use the proper auth_uri for glance-cache' do - verify_contents( - subject, - '/etc/glance/glance-cache.conf', - [ - "auth_url = #{param_hash[:auth_uri]}" - ] - ) + + it 'should config db' do + should contain_glance_api_config('DEFAULT/sql_connection').with_value(param_hash[:sql_connection]) + should contain_glance_api_config('DEFAULT/sql_idle_timeout').with_value(param_hash[:sql_idle_timeout]) + end + + it 'should lay down default auth config' do + [ + 'auth_host', + 'auth_port', + 'protocol', + 'auth_uri' + ].each do |config| + should contain_glance_api_config("keystone_authtoken/#{config}").with_value(param_hash[config.intern]) + end + end + + it 'should configure itself for keystone if that is the auth_type' do + if params[:auth_type] == 'keystone' + should contain('paste_deploy/flavor').with_value('keystone+cachemanagement') + ['admin_tenant_name', 'admin_user', 'admin_password'].each do |config| + should contain_glance_api_config("keystone_authtoken/#{config}").with_value(param_hash[config.intern]) + end + ['admin_tenant_name', 'admin_user', 'admin_password', 'auth_url'].each do |config| + should contain_glance_cache_config("keystone_authtoken/#{config}").with_value(param_hash[config.intern]) + end + end end end end diff --git a/spec/classes/glance_backend_file_spec.rb b/spec/classes/glance_backend_file_spec.rb index 8aece35c..e94488fe 100644 --- a/spec/classes/glance_backend_file_spec.rb +++ b/spec/classes/glance_backend_file_spec.rb @@ -3,37 +3,17 @@ require 'spec_helper' describe 'glance::backend::file' do let :facts do { - :concat_basedir => '/var/lib/puppet/concat', :osfamily => 'Debian' } end - it 'should set the default store to file' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/04_glance-api-backend', - ['default_store = file'] - ) - end - it 'should configure file backend settings' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/05_glance-api-file', - ['filesystem_store_datadir = /var/lib/glance/images/'] - ) - end - describe 'when datadir is overridden' do - let :params do - { - :filesystem_store_datadir => '/var/lib/glance/images2' - } - end - it 'should configure file backend settings with specified parameter' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/05_glance-api-file', - ['filesystem_store_datadir = /var/lib/glance/images2'] - ) + it { should contain_glance_api_config('DEFAULT/default_store').with_value('file') } + it { should contain_glance_api_config('DEFAULT/filesystem_store_datadir').with_value('/var/lib/glance/images/') } + + describe 'when overriding datadir' do + let :params do + {:filesystem_store_datadir => '/tmp/'} end + it { should contain_glance_api_config('DEFAULT/filesystem_store_datadir').with_value('/tmp/') } end end diff --git a/spec/classes/glance_backend_swift_spec.rb b/spec/classes/glance_backend_swift_spec.rb index 3e06fa7d..3cc480c8 100644 --- a/spec/classes/glance_backend_swift_spec.rb +++ b/spec/classes/glance_backend_swift_spec.rb @@ -3,59 +3,36 @@ require 'spec_helper' describe 'glance::backend::swift' do let :facts do { - :concat_basedir => '/var/lib/puppet/concat', :osfamily => 'Debian' } end + let :params do { - 'swift_store_user' => 'glance', - 'swift_store_key' => 'glance_key' + :swift_store_user => 'user', + :swift_store_key => 'key', } end - it 'should set the default store to file' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/04_glance-api-backend', - ['default_store = swift'] - ) - end - it 'should configure swift settings with defaults' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/05_glance-api-swift', - [ - 'swift_store_auth_address = 127.0.0.1:8080/v1.0/', - 'swift_store_user = glance', - 'swift_store_key = glance_key', - 'swift_store_container = glance', - 'swift_store_create_container_on_put = False' - ] - ) - end - describe 'when datadir is overridden' do + + it { should contain_glance_api_config('DEFAULT/default_store').with_value('swift') } + it { should contain_glance_api_config('DEFAULT/swift_store_key').with_value('key') } + it { should contain_glance_api_config('DEFAULT/swift_store_user').with_value('user') } + it { should contain_glance_api_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.1:8080/v1.0/') } + it { should contain_glance_api_config('DEFAULT/swift_store_container').with_value('glance') } + it { should contain_glance_api_config('DEFAULT/swift_store_create_container_on_put').with_value('False') } + + describe 'when overriding datadir' do let :params do { - 'swift_store_user' => 'glance', - 'swift_store_key' => 'glance_key', - 'swift_store_container' => 'glance2', - 'swift_store_auth_address' => '127.0.0.1:8080/v2.0/', - 'swift_store_create_container_on_put' => 'True' + :swift_store_user => 'user', + :swift_store_key => 'key', + :swift_store_auth_address => '127.0.0.2:8080/v1.0/', + :swift_store_container => 'swift', + :swift_store_create_container_on_put => 'True' } end - - it 'should configure file backend settings with specified parameter' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/05_glance-api-swift', - [ - 'swift_store_auth_address = 127.0.0.1:8080/v2.0/', - 'swift_store_user = glance', - 'swift_store_key = glance_key', - 'swift_store_container = glance2', - 'swift_store_create_container_on_put = True' - ] - ) - end + it { should contain_glance_api_config('DEFAULT/swift_store_container').with_value('swift') } + it { should contain_glance_api_config('DEFAULT/swift_store_create_container_on_put').with_value('True') } + it { should contain_glance_api_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.2:8080/v1.0/') } end end diff --git a/spec/classes/glance_db_mysql_spec.rb b/spec/classes/glance_db_mysql_spec.rb index 448a38f2..193deae0 100644 --- a/spec/classes/glance_db_mysql_spec.rb +++ b/spec/classes/glance_db_mysql_spec.rb @@ -5,12 +5,16 @@ describe 'glance::db::mysql' do { :osfamily => 'Debian' } - end + end + + let :pre_condition do + 'include mysql::server' + end describe "with default params" do let :params do - { - :password => 'glancepass1' + { + :password => 'glancepass1' } end @@ -26,7 +30,7 @@ describe 'glance::db::mysql' do describe "overriding default params" do let :params do - { + { :password => 'glancepass2', :dbname => 'glancedb2', :charset => 'utf8' diff --git a/spec/classes/glance_notify_qpid_spec.rb b/spec/classes/glance_notify_qpid_spec.rb index e5d1997c..0dfa7ff0 100644 --- a/spec/classes/glance_notify_qpid_spec.rb +++ b/spec/classes/glance_notify_qpid_spec.rb @@ -2,24 +2,30 @@ require 'spec_helper' describe 'glance::notify::qpid' do let :facts do { - :concat_basedir => '/var/lib/puppet/concat', :osfamily => 'Debian' } end - describe 'with default parameters' do - it 'should set nofier strategy to qpid' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/06_glance-api-notify', - ['notifier_strategy = qpid'] - ) - end - it 'should use the current qpid template' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/07_glance-api-qpid', - ['#qpid_port = 5672'] - ) + let :params do + {:qpid_password => 'pass'} + end + + it { should contain_glance_api_config('DEFAULT/notifier_strategy').with_value('qpid') } + it { should contain_glance_api_config('DEFAULT/qpid_username').with_value('guest') } + it { should contain_glance_api_config('DEFAULT/qpid_password').with_value('pass') } + it { should contain_glance_api_config('DEFAULT/qpid_host').with_value('localhost') } + it { should contain_glance_api_config('DEFAULT/qpid_port').with_value('5672') } + + describe 'when passing params' do + let :params do + { + :qpid_password => 'pass', + :qpid_usernane => 'guest2', + :qpid_host => 'localhost2', + :qpid_port => '5673' + } + it { should contain_glance_api_config('DEFAULT/qpid_username').with_value('guest2') } + it { should contain_glance_api_config('DEFAULT/qpid_host').with_value('localhost2') } + it { should contain_glance_api_config('DEFAULT/qpid_port').with_value('5673') } end end end diff --git a/spec/classes/glance_notify_rabbitmq_spec.rb b/spec/classes/glance_notify_rabbitmq_spec.rb index 81a94cc9..180add9c 100644 --- a/spec/classes/glance_notify_rabbitmq_spec.rb +++ b/spec/classes/glance_notify_rabbitmq_spec.rb @@ -2,24 +2,27 @@ require 'spec_helper' describe 'glance::notify::rabbitmq' do let :facts do { - :concat_basedir => '/var/lib/puppet/concat', :osfamily => 'Debian' } end - describe 'with default parameters' do - it 'should set nofier strategy to rabbit' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/06_glance-api-notify', - ['notifier_strategy = rabbit'] - ) - end - it 'should use the current rabbitmq template' do - verify_contents( - subject, - '/var/lib/puppet/concat/_etc_glance_glance-api.conf/fragments/07_glance-api-rabbitmq', - ['#rabbit_port = 5672'] - ) + let :params do + {:rabbit_password => 'pass'} + end + + it { should contain_glance_api_config('DEFAULT/notifier_strategy').with_value('rabbit') } + it { should contain_glance_api_config('DEFAULT/rabbit_password').with_value('pass') } + it { should contain_glance_api_config('DEFAULT/rabbit_userid').with_value('guest') } + it { should contain_glance_api_config('DEFAULT/rabbit_host').with_value('localhost') } + + describe 'when passing params' do + let :params do + { + :rabbit_password => 'pass', + :rabbit_userid => 'guest2', + :rabbit_host => 'localhost2', + } + it { should contain_glance_api_config('DEFAULT/rabbit_userid').with_value('guest2') } + it { should contain_glance_api_config('DEFAULT/rabbit_host').with_value('localhost2') } end end end diff --git a/spec/classes/glance_registry_spec.rb b/spec/classes/glance_registry_spec.rb index 8a6b8715..8aded8bd 100644 --- a/spec/classes/glance_registry_spec.rb +++ b/spec/classes/glance_registry_spec.rb @@ -17,21 +17,35 @@ describe 'glance::registry' do :log_file => '/var/log/glance/registry.log', :sql_connection => 'sqlite:///var/lib/glance/glance.sqlite', :sql_idle_timeout => '3600', - :enabled => true + :enabled => true, + :auth_type => 'keystone', + :auth_host => '127.0.0.1', + :auth_port => '35357', + :auth_protocol => 'http', + :keystone_tenant => 'admin', + :keystone_user => 'admin', + :keystone_password => 'ChangeMe', } end [ {}, { - :log_verbose => 'true', - :log_debug => 'true', + :verbose => 'true', + :debug => 'true', :bind_host => '127.0.0.1', :bind_port => '9111', :log_file => '/var/log/glance-registry.log', :sql_connection => 'sqlite:///var/lib/glance.sqlite', :sql_idle_timeout => '360', - :enabled => false + :enabled => false, + :auth_type => 'keystone', + :auth_host => '127.0.0.1', + :auth_port => '35357', + :auth_protocol => 'http', + :keystone_tenant => 'admin', + :keystone_user => 'admin', + :keystone_password => 'ChangeMe', } ].each do |param_set| @@ -67,19 +81,30 @@ describe 'glance::registry' do ) end end - - it 'should compile the template based on the class parameters' do - content = param_value(subject, 'file', '/etc/glance/glance-registry.conf', 'content') - expected_lines = [ - "verbose = #{param_hash[:log_verbose]}", - "debug = #{param_hash[:log_debug]}", - "bind_host = #{param_hash[:bind_host]}", - "bind_port = #{param_hash[:bind_port]}", - "log_file = #{param_hash[:log_file]}", - "sql_connection = #{param_hash[:sql_connection]}", - "sql_idle_timeout = #{param_hash[:sql_idle_timeout]}" - ] - (content.split("\n") & expected_lines).should == expected_lines + it 'should configure itself' do + [ + 'verbose', + 'debug', + 'bind_port', + 'bind_host', + 'sql_connection', + 'sql_idle_timeout' + ].each do |config| + should contain_glance_registry_config("DEFAULT/#{config}").with_value(param_hash[config.intern]) + end + [ + 'auth_host', + 'auth_port', + 'auth_protocol' + ].each do |config| + should contain_glance_registry_config("keystone_authtoken/#{config}").with_value(param_hash[config.intern]) + end + if param_hash[:auth_type] == 'keystone' + should contain_glance_registry_config("paste_deploy/flavor").with_value('keystone') + should contain_glance_registry_config("keystone_authtoken/admin_tenant_name").with_value(param_hash[:keystone_tenant]) + should contain_glance_registry_config("keystone_authtoken/admin_user").with_value(param_hash[:keystone_user]) + should contain_glance_registry_config("keystone_authtoken/admin_password").with_value(param_hash[:keystone_password]) + end end end end