From b7479fa7dc6d87135fb328dbf9ba4bcd81a5db53 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 11 Nov 2013 21:36:50 +0100 Subject: Fix compatibility with Django 1.6. --- src/lib/Bcfg2/Reporting/Compat.py | 18 ++++++++++++++++++ src/lib/Bcfg2/Reporting/Storage/DjangoORM.py | 4 ++-- src/lib/Bcfg2/Reporting/urls.py | 2 +- src/lib/Bcfg2/Reporting/utils.py | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/lib/Bcfg2/Reporting/Compat.py (limited to 'src/lib/Bcfg2/Reporting') diff --git a/src/lib/Bcfg2/Reporting/Compat.py b/src/lib/Bcfg2/Reporting/Compat.py new file mode 100644 index 000000000..d8f439e22 --- /dev/null +++ b/src/lib/Bcfg2/Reporting/Compat.py @@ -0,0 +1,18 @@ +""" Compatibility imports for Django. """ + +from django import VERSION +from django.db import transaction + +# Django 1.6 deprecated commit_on_success() and introduced atomic() with +# similar semantics. +if VERSION[0] == 1 and VERSION[1] < 6: + transaction.atomic = transaction.commit_on_success + +try: + # Django < 1.6 + from django.conf.urls import defaults + django_urls = defaults +except: + # Django > 1.6 + from django.conf import urls + django_urls = urls diff --git a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py index aea5e9d4b..ef1e92103 100644 --- a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py +++ b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py @@ -18,12 +18,12 @@ from django.core import management from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.db.models import FieldDoesNotExist from django.core.cache import cache -from django.db import transaction #Used by GetCurrentEntry import difflib from Bcfg2.Compat import b64decode from Bcfg2.Reporting.models import * +from Bcfg2.Reporting.Compat import transaction class DjangoORM(StorageBase): @@ -256,7 +256,7 @@ class DjangoORM(StorageBase): entry.tag) return None - @transaction.commit_on_success + @transaction.atomic def _import_interaction(self, interaction): """Real import function""" hostname = interaction['hostname'] diff --git a/src/lib/Bcfg2/Reporting/urls.py b/src/lib/Bcfg2/Reporting/urls.py index 8330fef7b..a9e5690be 100644 --- a/src/lib/Bcfg2/Reporting/urls.py +++ b/src/lib/Bcfg2/Reporting/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls.defaults import * +from Bcfg2.Reporting.Compat.django_urls import * from django.core.urlresolvers import reverse, NoReverseMatch from django.http import HttpResponsePermanentRedirect from Bcfg2.Reporting.utils import filteredUrls, paginatedUrls, timeviewUrls diff --git a/src/lib/Bcfg2/Reporting/utils.py b/src/lib/Bcfg2/Reporting/utils.py index 619501d8b..d9b8213b1 100755 --- a/src/lib/Bcfg2/Reporting/utils.py +++ b/src/lib/Bcfg2/Reporting/utils.py @@ -1,5 +1,5 @@ """Helper functions for reports""" -from django.conf.urls.defaults import * +from Bcfg2.Reporting.Compat.django_urls import * import re """List of filters provided by filteredUrls""" -- cgit v1.2.3-1-g7c22