diff --git a/manifests/init.pp b/manifests/init.pp index 2c7122ce..9402aae7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -665,7 +665,11 @@ and usage of a quoted value is deprecated.') } if $cache_server_ip { - $cache_server_ip_real = inet6_prefix($cache_server_ip) + if $cache_backend =~ /\.MemcachedCache$/ { + $cache_server_ip_real = inet6_prefix($cache_server_ip) + } else { + $cache_server_ip_real = normalize_ip_for_uri($cache_server_ip) + } } $hypervisor_defaults = { @@ -737,7 +741,7 @@ and usage of a quoted value is deprecated.') validate_legacy(Enum['legacy', 'angular'], 'validate_re', $images_panel, [['^legacy$', '^angular$']]) validate_legacy(Stdlib::Absolutepath, 'validate_absolute_path', $root_path) - if $manage_memcache_package and $cache_backend =~ /MemcachedCache/ { + if $manage_memcache_package and $cache_backend =~ /\.MemcachedCache$/ { ensure_packages('python-memcache', { name => $::horizon::params::memcache_package, tag => ['openstack'], diff --git a/spec/classes/horizon_init_spec.rb b/spec/classes/horizon_init_spec.rb index b46ebd73..5c553f0e 100644 --- a/spec/classes/horizon_init_spec.rb +++ b/spec/classes/horizon_init_spec.rb @@ -93,7 +93,7 @@ describe 'horizon' do context 'with overridden parameters' do before do params.merge!({ - :cache_backend => 'horizon.backends.memcached.HorizonMemcached', + :cache_backend => 'django.core.cache.backends.memcached.MemcachedCache', :cache_options => {'SOCKET_TIMEOUT' => 1,'SERVER_RETRIES' => 1,'DEAD_RETRY' => 1}, :cache_server_ip => '10.0.0.1', :django_session_engine => 'django.contrib.sessions.backends.cache', @@ -160,7 +160,7 @@ describe 'horizon' do " 'DEAD_RETRY': 1,", " 'SERVER_RETRIES': 1,", " 'SOCKET_TIMEOUT': 1,", - " 'BACKEND': 'horizon.backends.memcached.HorizonMemcached',", + " 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',", " 'LOCATION': '10.0.0.1:11211',", 'SESSION_ENGINE = "django.contrib.sessions.backends.cache"', 'OPENSTACK_KEYSTONE_URL = "https://keystone.example.com:4682"', @@ -237,15 +237,17 @@ describe 'horizon' do it { is_expected.to contain_exec('refresh_horizon_django_compress') } end - context 'with overridden parameters and IPv6 cache_server_ip array' do + context 'with overridden parameters, IPv6 cache_server_ip array and MemcachedCache' do before do params.merge!({ + :cache_backend => 'django.core.cache.backends.memcached.MemcachedCache', :cache_server_ip => ['fd12:3456:789a:1::1','fd12:3456:789a:1::2'], }) end it 'generates local_settings.py' do verify_concat_fragment_contents(catalogue, 'local_settings.py', [ + " 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',", " 'LOCATION': [ 'inet6:[fd12:3456:789a:1::1]:11211','inet6:[fd12:3456:789a:1::2]:11211', ],", ]) end @@ -254,6 +256,25 @@ describe 'horizon' do it { is_expected.to contain_exec('refresh_horizon_django_compress') } end + context 'with overridden parameters, IPv6 cache_server_ip array and PyMemcacheCache' do + before do + params.merge!({ + :cache_backend => 'django.core.cache.backends.memcached.PyMemcacheCache', + :cache_server_ip => ['fd12:3456:789a:1::1','fd12:3456:789a:1::2'], + }) + end + + it 'generates local_settings.py' do + verify_concat_fragment_contents(catalogue, 'local_settings.py', [ + " 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',", + " 'LOCATION': [ '[fd12:3456:789a:1::1]:11211','[fd12:3456:789a:1::2]:11211', ],", + ]) + end + + it { is_expected.to contain_exec('refresh_horizon_django_cache') } + it { is_expected.to contain_exec('refresh_horizon_django_compress') } + end + context 'with overridden parameters and cache_server_url (string)' do before do params.merge!({