mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 05:59:44 -04:00
Merge pull request #2769 from alphagov/delete-redis-button
Clear redis cache page
This commit is contained in:
@@ -4,12 +4,8 @@ import pytz
|
||||
from flask import abort, redirect, render_template, request, session, url_for
|
||||
from flask_login import current_user
|
||||
|
||||
from app import (
|
||||
convert_to_boolean,
|
||||
current_service,
|
||||
service_api_client,
|
||||
zendesk_client,
|
||||
)
|
||||
from app import convert_to_boolean, current_service, service_api_client
|
||||
from app.extensions import zendesk_client
|
||||
from app.main import main
|
||||
from app.main.forms import Feedback, Problem, SupportType, Triage
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import itertools
|
||||
import re
|
||||
from collections import OrderedDict
|
||||
from datetime import datetime
|
||||
|
||||
from flask import abort, flash, redirect, render_template, request, url_for
|
||||
@@ -8,14 +9,19 @@ from notifications_python_client.errors import HTTPError
|
||||
from requests import RequestException
|
||||
|
||||
from app import (
|
||||
antivirus_client,
|
||||
complaint_api_client,
|
||||
letter_jobs_client,
|
||||
platform_stats_api_client,
|
||||
service_api_client,
|
||||
)
|
||||
from app.extensions import antivirus_client, redis_client
|
||||
from app.main import main
|
||||
from app.main.forms import DateFilterForm, PDFUploadForm, ReturnedLettersForm
|
||||
from app.main.forms import (
|
||||
ClearCacheForm,
|
||||
DateFilterForm,
|
||||
PDFUploadForm,
|
||||
ReturnedLettersForm,
|
||||
)
|
||||
from app.statistics_utils import (
|
||||
get_formatted_percentage,
|
||||
get_formatted_percentage_two_dp,
|
||||
@@ -281,6 +287,56 @@ def platform_admin_letter_validation_preview():
|
||||
)
|
||||
|
||||
|
||||
@main.route("/platform-admin/clear-cache", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
@user_is_platform_admin
|
||||
def clear_cache():
|
||||
# note: `service-{uuid}-templates` cache is cleared for both services and templates.
|
||||
CACHE_KEYS = OrderedDict([
|
||||
('user', [
|
||||
'user-????????-????-????-????-????????????',
|
||||
]),
|
||||
('service', [
|
||||
'has_jobs-????????-????-????-????-????????????',
|
||||
'service-????????-????-????-????-????????????',
|
||||
'service-????????-????-????-????-????????????-templates',
|
||||
'service-????????-????-????-????-????????????-data-retention',
|
||||
'service-????????-????-????-????-????????????-template-folders',
|
||||
]),
|
||||
('template', [
|
||||
'service-????????-????-????-????-????????????-templates',
|
||||
'template-????????-????-????-????-????????????-version-*',
|
||||
'template-????????-????-????-????-????????????-versions',
|
||||
]),
|
||||
('email_branding', [
|
||||
'email_branding',
|
||||
'email_branding-????????-????-????-????-????????????',
|
||||
]),
|
||||
('letter_branding', [
|
||||
'letter_branding',
|
||||
'letter_branding-????????-????-????-????-????????????',
|
||||
])
|
||||
])
|
||||
|
||||
form = ClearCacheForm()
|
||||
form.model_type.choices = [(key, key.replace('_', ' ').title()) for key in CACHE_KEYS]
|
||||
|
||||
if form.validate_on_submit():
|
||||
to_delete = form.model_type.data
|
||||
|
||||
num_deleted = max(
|
||||
redis_client.delete_cache_keys_by_pattern(pattern)
|
||||
for pattern in CACHE_KEYS[to_delete]
|
||||
)
|
||||
msg = 'Removed {} {} object{} from redis'
|
||||
flash(msg.format(num_deleted, to_delete, 's' if num_deleted != 1 else ''), category='default')
|
||||
|
||||
return render_template(
|
||||
'views/platform-admin/clear-cache.html',
|
||||
form=form
|
||||
)
|
||||
|
||||
|
||||
def sum_service_usage(service):
|
||||
total = 0
|
||||
for notification_type in service['statistics'].keys():
|
||||
|
||||
@@ -23,8 +23,8 @@ from app import (
|
||||
organisations_client,
|
||||
service_api_client,
|
||||
user_api_client,
|
||||
zendesk_client,
|
||||
)
|
||||
from app.extensions import zendesk_client
|
||||
from app.main import main
|
||||
from app.main.forms import (
|
||||
BrandingOptionsEmail,
|
||||
|
||||
Reference in New Issue
Block a user