Skip to content

Commit 0d454ee

Browse files
authored
fix(middleware): move to 1.10 style middleware (#955)
1 parent 3f3be4d commit 0d454ee

6 files changed

Lines changed: 14 additions & 14 deletions

File tree

rootfs/api/middleware.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""
22
HTTP middleware for the Deis REST API.
33
4-
See https://docs.djangoproject.com/en/1.6/topics/http/middleware/
4+
See https://docs.djangoproject.com/en/1.10/topics/http/middleware/
55
"""
66

77
from api import __version__
@@ -11,12 +11,15 @@ class APIVersionMiddleware(object):
1111
"""
1212
Include that REST API version with each response.
1313
"""
14+
def __init__(self, get_response):
15+
self.get_response = get_response
1416

15-
def process_response(self, request, response):
17+
def __call__(self, request):
1618
"""
1719
Include the controller's REST API major and minor version in
1820
a response header.
1921
"""
22+
response = self.get_response(request)
2023
# clients shouldn't care about the patch release
2124
version = __version__.rsplit('.', 1)[0]
2225
response['DEIS_API_VERSION'] = version

rootfs/api/models/certificate.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
55
from ndg.httpsclient.subj_alt_name import SubjectAltName as BaseSubjectAltName
66
from datetime import datetime
7+
from pytz import utc
78

89
from django.shortcuts import get_object_or_404
910
from django.db import models
@@ -122,15 +123,15 @@ def save(self, *args, **kwargs):
122123
# Convert bytes to string
123124
timestamp = certificate.get_notAfter().decode(encoding='UTF-8')
124125
# convert openssl's expiry date format to Django's DateTimeField format
125-
self.expires = datetime.strptime(timestamp, '%Y%m%d%H%M%SZ')
126+
self.expires = datetime.strptime(timestamp, '%Y%m%d%H%M%SZ').replace(tzinfo=utc)
126127

127128
# Grab the start date of the certificate
128129
if not self.starts:
129130
# https://pyopenssl.readthedocs.org/en/latest/api/crypto.html#OpenSSL.crypto.X509.get_notBefore
130131
# Convert bytes to string
131132
timestamp = certificate.get_notBefore().decode(encoding='UTF-8')
132133
# convert openssl's starts date format to Django's DateTimeField format
133-
self.starts = datetime.strptime(timestamp, '%Y%m%d%H%M%SZ')
134+
self.starts = datetime.strptime(timestamp, '%Y%m%d%H%M%SZ').replace(tzinfo=utc)
134135

135136
# process issuers - separate each key/value with a slash
136137
issuer = certificate.get_issuer().get_components()

rootfs/api/serializers.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -437,16 +437,12 @@ class CertificateSerializer(serializers.ModelSerializer):
437437
"""Serialize a :class:`~api.models.Cert` model."""
438438

439439
owner = serializers.ReadOnlyField(source='owner.username')
440+
domains = serializers.ReadOnlyField()
440441
san = serializers.ListField(
441442
child=serializers.CharField(allow_blank=True, allow_null=True, required=False),
442443
required=False
443444
)
444445

445-
domains = serializers.ListField(
446-
child=serializers.CharField(allow_blank=True, allow_null=True, required=False),
447-
required=False, default=[]
448-
)
449-
450446
class Meta:
451447
"""Metadata options for CertificateSerializer."""
452448
model = models.Certificate

rootfs/api/settings/production.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
},
7272
]
7373

74-
MIDDLEWARE_CLASSES = (
74+
MIDDLEWARE = [
7575
'corsheaders.middleware.CorsMiddleware',
7676
'django.middleware.security.SecurityMiddleware',
7777
'django.middleware.clickjacking.XFrameOptionsMiddleware',
@@ -81,7 +81,7 @@
8181
'django.contrib.auth.middleware.AuthenticationMiddleware',
8282
'django.contrib.messages.middleware.MessageMiddleware',
8383
'api.middleware.APIVersionMiddleware',
84-
)
84+
]
8585

8686
ROOT_URLCONF = 'deis.urls'
8787

rootfs/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def regenerate(self, request, **kwargs):
132132

133133
if 'all' in request.data:
134134
for user in User.objects.all():
135-
if not user.is_anonymous():
135+
if not user.is_anonymous:
136136
token = Token.objects.get(user=user)
137137
token.delete()
138138
Token.objects.create(user=user)

rootfs/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Deis controller requirements
22
backoff==1.3.1
3-
Django==1.9.8
4-
django-cors-middleware==1.2.0
3+
Django==1.10.0
4+
django-cors-middleware==1.3.1
55
django-guardian==1.4.5
66
djangorestframework==3.4.4
77
docker-py==1.9.0

0 commit comments

Comments
 (0)