From 1cdd7a21979b072118c5c543d005e99fa3c77814 Mon Sep 17 00:00:00 2001 From: Semyon Deviatkin Date: Sun, 6 Jul 2014 13:36:20 +0000 Subject: [PATCH] Install dependency python-memcache when token driver memcache. Token driver backends.memcache requires python-memcache which not installed by default. As result keystone crash with exception. Patch install python-memcache when it's need. Change-Id: I752a97ad9b3135a7336265760f0cd3304e0277b4 --- manifests/init.pp | 7 +++++++ manifests/params.pp | 18 ++++++++++-------- spec/classes/keystone_spec.rb | 4 ++++ 3 files changed, 21 insertions(+), 8 deletions(-) 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