From: Mathieu Gagné Date: Fri, 5 Apr 2013 01:21:13 +0000 (-0400) Subject: Add rspec tests for ceilometer::keystone::auth X-Git-Tag: grizzly-eol~15^2~9^2~8 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=150367be1b70a6dbf4eb32405a43d5f2a5d5c3ca;p=puppet-modules%2Fpuppet-ceilometer.git Add rspec tests for ceilometer::keystone::auth --- diff --git a/.fixtures.yml b/.fixtures.yml index 1605bb8..a116e6b 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -1,7 +1,9 @@ fixtures: repositories: "stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git" - "inifile": "git://github.com/cprice-puppet/puppetlabs-inifile" + "keystone": "git://github.com/puppetlabs/puppetlabs-keystone.git" "mysql": "git://github.com/puppetlabs/puppetlabs-mysql.git" + "stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git" + "inifile": "git://github.com/cprice-puppet/puppetlabs-inifile" symlinks: "ceilometer": "#{source_dir}" diff --git a/spec/classes/ceilometer_keystone_auth_spec.rb b/spec/classes/ceilometer_keystone_auth_spec.rb new file mode 100644 index 0000000..1e090d4 --- /dev/null +++ b/spec/classes/ceilometer_keystone_auth_spec.rb @@ -0,0 +1,73 @@ +require 'spec_helper' + +describe 'ceilometer::keystone::auth' do + + let :params do + { :password => 'ceilometer-passw0rd', + :email => 'ceilometer@localhost', + :auth_name => 'ceilometer', + :configure_endpoint => true, + :service_type => 'metering', + :public_address => '127.0.0.1', + :admin_address => '127.0.0.1', + :internal_address => '127.0.0.1', + :port => '8777', + :region => 'RegionOne', + :tenant => 'services', + :public_protocol => 'http' + } + end + + shared_examples_for 'ceilometer keystone auth' do + + it 'configures ceilometer user' do + should contain_keystone_user( params[:auth_name] ).with( + :ensure => 'present', + :password => params[:password], + :email => params[:email], + :tenant => params[:tenant] + ) + end + + it 'configures ceilometer user roles' do + should contain_keystone_user_role("#{params[:auth_name]}@#{params[:tenant]}").with( + :ensure => 'present', + :roles => ['admin','ResellerAdmin'] + ) + end + + it 'configures ceilometer service' do + should contain_keystone_service( params[:auth_name] ).with( + :ensure => 'present', + :type => params[:service_type], + :description => 'Openstack Metering Service' + ) + end + + it 'configure ceilometer endpoints' do + should contain_keystone_endpoint("#{params[:region]}/#{params[:auth_name]}").with( + :ensure => 'present', + :public_url => "#{params[:public_protocol]}://#{params[:public_address]}:#{params[:port]}", + :admin_url => "http://#{params[:admin_address]}:#{params[:port]}", + :internal_url => "http://#{params[:internal_address]}:#{params[:port]}" + ) + end + end + + + context 'on Debian platforms' do + let :facts do + { :osfamily => 'Debian' } + end + + it_configures 'ceilometer keystone auth' + end + + context 'on RedHat platforms' do + let :facts do + { :osfamily => 'RedHat' } + end + + it_configures 'ceilometer keystone auth' + end +end