Make custom middleware use new style vs old

This commit is contained in:
beeankha
2019-05-09 16:11:53 -04:00
parent 97dc77ea63
commit 68800d0e8e
5 changed files with 87 additions and 57 deletions

View File

@@ -35,11 +35,20 @@ class TimingMiddleware(threading.local):
dest = '/var/log/tower/profile'
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.process_request(request)
response = self.process_response(request, response)
return response
def process_request(self, request):
self.start_time = time.time()
if settings.AWX_REQUEST_PROFILE:
self.prof = cProfile.Profile()
self.prof.enable()
return self.get_response(request)
def process_response(self, request, response):
if not hasattr(self, 'start_time'): # some tools may not invoke process_request
@@ -66,9 +75,15 @@ class TimingMiddleware(threading.local):
class ActivityStreamMiddleware(threading.local):
def __init__(self):
def __init__(self, get_response):
self.disp_uid = None
self.instance_ids = []
self.get_response = get_response
def __call__(self, request):
response = self.process_request(request)
response = self.process_response(request, response)
return response
def process_request(self, request):
if hasattr(request, 'user') and hasattr(request.user, 'is_authenticated') and request.user.is_authenticated():
@@ -80,6 +95,7 @@ class ActivityStreamMiddleware(threading.local):
self.disp_uid = str(uuid.uuid1())
self.instance_ids = []
post_save.connect(set_actor, sender=ActivityStream, dispatch_uid=self.disp_uid, weak=False)
return self.get_response(request)
def process_response(self, request, response):
drf_request = getattr(request, 'drf_request', None)
@@ -124,6 +140,14 @@ class SessionTimeoutMiddleware(object):
to the value of SESSION_COOKIE_AGE on every request if there is a valid session.
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response = self.process_response(request, response)
return response
def process_response(self, request, response):
should_skip = 'HTTP_X_WS_SESSION_QUIET' in request.META
# Something went wrong, such as upgrade-in-progress page
@@ -153,7 +177,8 @@ def _customize_graph():
class URLModificationMiddleware(object):
def __init__(self):
def __init__(self, get_response):
self.get_response = get_response
models = [m for m in apps.get_app_config('main').get_models() if hasattr(m, 'get_absolute_url')]
generate_graph(models)
_customize_graph()
@@ -195,6 +220,10 @@ class URLModificationMiddleware(object):
url_units[4])
return '/'.join(url_units)
def __call__(self, request):
response = self.process_request(request)
return response
def process_request(self, request):
if hasattr(request, 'environ') and 'REQUEST_URI' in request.environ:
old_path = urllib.parse.urlsplit(request.environ['REQUEST_URI']).path
@@ -205,13 +234,22 @@ class URLModificationMiddleware(object):
if request.path_info != new_path:
request.path = request.path.replace(request.path_info, new_path)
request.path_info = new_path
return self.get_response(request)
class MigrationRanCheckMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.process_request(request)
return response
def process_request(self, request):
executor = MigrationExecutor(connection)
plan = executor.migration_plan(executor.loader.graph.leaf_nodes())
if bool(plan) and \
getattr(resolve(request.path), 'url_name', '') != 'migrations_notran':
return redirect(reverse("ui:migrations_notran"))
return self.get_response(request)