diff --git a/manifests/init.pp b/manifests/init.pp index 62c7448cf..5531f5323 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -366,6 +366,13 @@ class keystone( 'DEFAULT/admin_endpoint': ensure => absent; } } + # requirements for memcache token driver + if ($token_driver =~ /memcache/ ) { + package { 'python-memcache': + ensure => present, + name => $::keystone::params::python_memcache_package_name, + } + } # token driver config keystone_config { diff --git a/manifests/params.pp b/manifests/params.pp index 8127036ef..4b8fe8762 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -6,9 +6,10 @@ class keystone::params { case $::osfamily { 'Debian': { - $package_name = 'keystone' - $service_name = 'keystone' - $keystone_wsgi_script_path = '/usr/lib/cgi-bin/keystone' + $package_name = 'keystone' + $service_name = 'keystone' + $keystone_wsgi_script_path = '/usr/lib/cgi-bin/keystone' + $python_memcache_package_name = 'python-memcache' case $::operatingsystem { 'Debian': { $service_provider = undef @@ -21,11 +22,12 @@ class keystone::params { } } 'RedHat': { - $package_name = 'openstack-keystone' - $service_name = 'openstack-keystone' - $keystone_wsgi_script_path = '/var/www/cgi-bin/keystone' - $service_provider = undef - $keystone_wsgi_script_source = 'puppet:///modules/keystone/httpd/keystone.py' + $package_name = 'openstack-keystone' + $service_name = 'openstack-keystone' + $keystone_wsgi_script_path = '/var/www/cgi-bin/keystone' + $python_memcache_package_name = 'python-memcached' + $service_provider = undef + $keystone_wsgi_script_source = 'puppet:///modules/keystone/httpd/keystone.py' } } } diff --git a/spec/classes/keystone_spec.rb b/spec/classes/keystone_spec.rb index 70a0ce6a6..98a92652c 100644 --- a/spec/classes/keystone_spec.rb +++ b/spec/classes/keystone_spec.rb @@ -315,6 +315,10 @@ describe 'keystone' do end it { should contain_keystone_config("memcache/servers").with_value('SERVER1:11211,SERVER2:11211') } + it { should contain_package('python-memcache').with( + :name => 'python-memcache', + :ensure => 'present' + ) } end describe 'do not configure memcache servers when not set' do