Skip to content

Commit c056d09

Browse files
committed
[fix] limit monkey_patching to sqlite3 backends only
1 parent 90a90ad commit c056d09

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

examples/db_handler/django_handler.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ def initialize():
1414
# pylint: disable=E1101
1515
django.setup()
1616
initialize()
17+
from django.conf import settings
1718
from acme_srv.models import Account, Authorization, Cahandler, Certificate, Challenge, Housekeeping, Nonce, Order, Status
18-
1919
from django.db import transaction
2020
# from acme_srv.monkey_patches import django_sqlite_atomic
21-
import acme_srv.monkey_patches
22-
21+
import acme_srv.monkey_patches
2322

2423
class DBstore(object):
2524
""" helper to do datebase operations """
@@ -138,9 +137,14 @@ def authorization_update(self, data_dic):
138137
if 'status' in data_dic:
139138
data_dic['status'] = self._status_getinstance(data_dic['status'], 'name')
140139

141-
with transaction.atomic(immediate=True):
140+
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3':
142141
self.logger.debug('DBStore.authorization_update(): patching transaction to transform all atomic blocks into immediate transactions')
143-
# add authorization
142+
with transaction.atomic(immediate=True):
143+
# update authorization
144+
obj, _created = Authorization.objects.update_or_create(name=data_dic['name'], defaults=data_dic)
145+
obj.save()
146+
else:
147+
# update authorization
144148
obj, _created = Authorization.objects.update_or_create(name=data_dic['name'], defaults=data_dic)
145149
obj.save()
146150

@@ -180,8 +184,12 @@ def challenge_add(self, value, mtype, data_dic):
180184
# replace orderstatus with an instance
181185
data_dic['status'] = self._status_getinstance(data_dic['status'])
182186

183-
with transaction.atomic(immediate=True):
187+
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3':
184188
self.logger.debug('DBStore.challenge_add(): patching transaction to transform all atomic blocks into immediate transactions')
189+
with transaction.atomic(immediate=True):
190+
obj, _created = Challenge.objects.update_or_create(name=data_dic['name'], defaults=data_dic)
191+
obj.save()
192+
else:
185193
obj, _created = Challenge.objects.update_or_create(name=data_dic['name'], defaults=data_dic)
186194
obj.save()
187195

0 commit comments

Comments
 (0)