diff options
author | Ivan Kolodyazhny <e0ne@e0ne.info> | 2020-04-21 18:36:35 +0300 |
---|---|---|
committer | Ivan Kolodyazhny <e0ne@e0ne.info> | 2020-06-15 17:33:16 +0300 |
commit | 0d290b9184a554cda7f6dc28d82401bb85cad7b3 (patch) | |
tree | 1d5f19ea44bee208302061797805cbcd1f7e82bf /openstack_dashboard/management | |
parent | 50837618bdbc4ee18ba25da00a4d98cae9744d68 (diff) | |
download | horizon-0d290b9184a554cda7f6dc28d82401bb85cad7b3.tar.gz |
Fix django-compress caching issues
django-compress doesn't work well with cache. If horizon is
deployed in a containarized environment with pre-built static
in images, django-compress tries to load old templates from cache.
This patch introduces following changes:
* update_angular_template_hash uses the correct Django cache backend now
* fixed cache cleanup for memcached backend
* added clean_angular_template_cache management command to clean cache
manually without executing heavy 'compress' command.
Closes-Bug: #1874657
Change-Id: If1fd61fa2e4b36e22797b0f54ac067a2a937f369
Diffstat (limited to 'openstack_dashboard/management')
-rw-r--r-- | openstack_dashboard/management/commands/cleanup_angular_template_cache.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/openstack_dashboard/management/commands/cleanup_angular_template_cache.py b/openstack_dashboard/management/commands/cleanup_angular_template_cache.py new file mode 100644 index 000000000..8b7b9dbbd --- /dev/null +++ b/openstack_dashboard/management/commands/cleanup_angular_template_cache.py @@ -0,0 +1,24 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from django.conf import settings +from django.core.management.base import BaseCommand + +from horizon import cache + + +class Command(BaseCommand): + help = 'Clears template cache for angularized views.' + + def handle(self, *args, **options): + for theme in settings.AVAILABLE_THEMES: + cache.cleanup_angular_template_cache(theme[0]) |