Skip to content

Commit 1c12b6a

Browse files
committed
Support old-style MIDDLEWARE_CLASSES
Django >=1.10 to <2.0 support old-style MIDDLEWARE_CLASSES so we do as well here
1 parent 1303d47 commit 1c12b6a

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

instana/django.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,32 @@ def load_middleware_wrapper(wrapped, instance, args, kwargs):
6060
try:
6161
from django.conf import settings
6262

63-
if DJ_INSTANA_MIDDLEWARE in settings.MIDDLEWARE:
64-
return
65-
66-
if type(settings.MIDDLEWARE) is tuple:
67-
settings.MIDDLEWARE = (DJ_INSTANA_MIDDLEWARE,) + settings.MIDDLEWARE
68-
elif type(settings.MIDDLEWARE) is list:
69-
settings.MIDDLEWARE = [DJ_INSTANA_MIDDLEWARE] + settings.MIDDLEWARE
63+
# Django >=1.10 to <2.0 support old-style MIDDLEWARE_CLASSES so we
64+
# do as well here
65+
if hasattr(settings, 'MIDDLEWARE_CLASSES'):
66+
if DJ_INSTANA_MIDDLEWARE in settings.MIDDLEWARE_CLASSES:
67+
return wrapped(*args, **kwargs)
68+
69+
if type(settings.MIDDLEWARE_CLASSES) is tuple:
70+
settings.MIDDLEWARE_CLASSES = (DJ_INSTANA_MIDDLEWARE,) + settings.MIDDLEWARE_CLASSES
71+
elif type(settings.MIDDLEWARE_CLASSES) is list:
72+
settings.MIDDLEWARE_CLASSES = [DJ_INSTANA_MIDDLEWARE] + settings.MIDDLEWARE_CLASSES
73+
else:
74+
logger.warn("Instana: Couldn't add InstanaMiddleware to Django")
75+
elif hasattr(settings, 'MIDDLEWARE'):
76+
if DJ_INSTANA_MIDDLEWARE in settings.MIDDLEWARE:
77+
return wrapped(*args, **kwargs)
78+
79+
if type(settings.MIDDLEWARE) is tuple:
80+
settings.MIDDLEWARE = (DJ_INSTANA_MIDDLEWARE,) + settings.MIDDLEWARE
81+
elif type(settings.MIDDLEWARE) is list:
82+
settings.MIDDLEWARE = [DJ_INSTANA_MIDDLEWARE] + settings.MIDDLEWARE
83+
else:
84+
logger.warn("Instana: Couldn't add InstanaMiddleware to Django")
7085
else:
71-
logger.warn("Instana: Couldn't add InstanaMiddleware to Django")
86+
logger.warn("Instana: Couldn't find middleware settings")
7287

7388
return wrapped(*args, **kwargs)
74-
7589
except Exception as e:
7690
logger.warn("Instana: Couldn't add InstanaMiddleware to Django: ", e)
7791

0 commit comments

Comments
 (0)