summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Reporting')
-rwxr-xr-xsrc/lib/Bcfg2/Reporting/Reports.py2
-rw-r--r--src/lib/Bcfg2/Reporting/Storage/DjangoORM.py36
-rw-r--r--src/lib/Bcfg2/Reporting/templates/base.html6
-rw-r--r--src/lib/Bcfg2/Reporting/templates/clients/detail.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/clients/detailed-list.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/clients/index.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/clients/manage.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/config_items/common.html2
-rw-r--r--src/lib/Bcfg2/Reporting/templates/config_items/entry_status.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/config_items/item.html6
-rw-r--r--src/lib/Bcfg2/Reporting/templates/config_items/listing.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/displays/summary.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templates/displays/timing.html5
-rw-r--r--src/lib/Bcfg2/Reporting/templatetags/bcfg2_compat.py14
-rw-r--r--src/lib/Bcfg2/Reporting/views.py2
15 files changed, 50 insertions, 58 deletions
diff --git a/src/lib/Bcfg2/Reporting/Reports.py b/src/lib/Bcfg2/Reporting/Reports.py
index 7ba0265ae..e60b2e82e 100755
--- a/src/lib/Bcfg2/Reporting/Reports.py
+++ b/src/lib/Bcfg2/Reporting/Reports.py
@@ -327,8 +327,6 @@ class CLI(Bcfg2.Options.CommandRegistry):
components=[self])
parser.add_options(self.subcommand_options)
parser.parse()
- if django.VERSION[0] == 1 and django.VERSION[1] >= 7:
- django.setup() # pylint: disable=E1101
def run(self):
""" Run bcfg2-reports """
diff --git a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
index ac0cde783..347e5cc81 100644
--- a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
+++ b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py
@@ -2,26 +2,37 @@
The base for the original DjangoORM (DBStats)
"""
-from lxml import etree
-from datetime import datetime
+import difflib
import traceback
+from datetime import datetime
from time import strptime
-import Bcfg2.Options
-import Bcfg2.DBSettings
-from Bcfg2.Compat import md5
-from Bcfg2.Reporting.Storage.base import StorageBase, StorageError
-from Bcfg2.Server.Plugin.exceptions import PluginExecutionError
+from lxml import etree
+
import django
-from django.core import management
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.db.models import FieldDoesNotExist
from django.core.cache import cache
-#Used by GetCurrentEntry
-import difflib
-from Bcfg2.Compat import b64decode
-from Bcfg2.Reporting.models import *
+import Bcfg2.Options
+import Bcfg2.DBSettings
+from Bcfg2.Compat import b64decode, md5
from Bcfg2.Reporting.Compat import transaction
+from Bcfg2.Reporting.Storage.base import StorageBase, StorageError
+from Bcfg2.Server.Plugin.exceptions import PluginExecutionError
+
+
+def load_django_models():
+ """ Load models for Django after option parsing has completed """
+ # pylint: disable=W0602
+ global Interaction, PackageEntry, FilePerms, PathEntry, LinkEntry, \
+ Group, Client, Bundle, TYPE_EXTRA, TYPE_BAD, TYPE_MODIFIED, \
+ FailureEntry, Performance, BaseEntry
+ # pylint: enable=W0602
+
+ from Bcfg2.Reporting.models import \
+ Interaction, PackageEntry, FilePerms, PathEntry, LinkEntry, \
+ Group, Client, Bundle, TYPE_EXTRA, TYPE_BAD, TYPE_MODIFIED, \
+ FailureEntry, Performance, BaseEntry
def get_all_field_names(model):
@@ -42,6 +53,7 @@ class DjangoORM(StorageBase):
type=Bcfg2.Options.Types.size,
help='Reporting file size limit',
default=1024 * 1024)]
+ options_parsed_hook = staticmethod(load_django_models)
def _import_default(self, entry, state, entrytype=None, defaults=None,
mapping=None, boolean=None, xforms=None):
diff --git a/src/lib/Bcfg2/Reporting/templates/base.html b/src/lib/Bcfg2/Reporting/templates/base.html
index f6ecfd263..2e9ec888a 100644
--- a/src/lib/Bcfg2/Reporting/templates/base.html
+++ b/src/lib/Bcfg2/Reporting/templates/base.html
@@ -1,9 +1,5 @@
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
-
+{% load url from bcfg2_compat %}
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
diff --git a/src/lib/Bcfg2/Reporting/templates/clients/detail.html b/src/lib/Bcfg2/Reporting/templates/clients/detail.html
index 6809dcc2d..4258fc11d 100644
--- a/src/lib/Bcfg2/Reporting/templates/clients/detail.html
+++ b/src/lib/Bcfg2/Reporting/templates/clients/detail.html
@@ -1,9 +1,6 @@
{% extends "base.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Client {{client.name}}{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/clients/detailed-list.html b/src/lib/Bcfg2/Reporting/templates/clients/detailed-list.html
index 130d58ede..56594554c 100644
--- a/src/lib/Bcfg2/Reporting/templates/clients/detailed-list.html
+++ b/src/lib/Bcfg2/Reporting/templates/clients/detailed-list.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Detailed Client Listing{% endblock %}
{% block pagebanner %}Clients - Detailed View{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/clients/index.html b/src/lib/Bcfg2/Reporting/templates/clients/index.html
index eba83670b..1eaa3ca9b 100644
--- a/src/lib/Bcfg2/Reporting/templates/clients/index.html
+++ b/src/lib/Bcfg2/Reporting/templates/clients/index.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block extra_header_info %}
{% endblock%}
diff --git a/src/lib/Bcfg2/Reporting/templates/clients/manage.html b/src/lib/Bcfg2/Reporting/templates/clients/manage.html
index 03918aad7..2379cfe6a 100644
--- a/src/lib/Bcfg2/Reporting/templates/clients/manage.html
+++ b/src/lib/Bcfg2/Reporting/templates/clients/manage.html
@@ -1,8 +1,5 @@
{% extends "base.html" %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block extra_header_info %}
{% endblock%}
diff --git a/src/lib/Bcfg2/Reporting/templates/config_items/common.html b/src/lib/Bcfg2/Reporting/templates/config_items/common.html
index 91f37d7dc..1445182be 100644
--- a/src/lib/Bcfg2/Reporting/templates/config_items/common.html
+++ b/src/lib/Bcfg2/Reporting/templates/config_items/common.html
@@ -1,6 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Common Problems{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/config_items/entry_status.html b/src/lib/Bcfg2/Reporting/templates/config_items/entry_status.html
index 8a5d93690..160d9c738 100644
--- a/src/lib/Bcfg2/Reporting/templates/config_items/entry_status.html
+++ b/src/lib/Bcfg2/Reporting/templates/config_items/entry_status.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Entry Status{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/config_items/item.html b/src/lib/Bcfg2/Reporting/templates/config_items/item.html
index 2e2fd36fa..91c368bd7 100644
--- a/src/lib/Bcfg2/Reporting/templates/config_items/item.html
+++ b/src/lib/Bcfg2/Reporting/templates/config_items/item.html
@@ -1,11 +1,7 @@
{% extends "base.html" %}
{% load split %}
{% load syntax_coloring %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
-
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Element Details{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/config_items/listing.html b/src/lib/Bcfg2/Reporting/templates/config_items/listing.html
index 0e4812e85..1ae82dab5 100644
--- a/src/lib/Bcfg2/Reporting/templates/config_items/listing.html
+++ b/src/lib/Bcfg2/Reporting/templates/config_items/listing.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Element Listing{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/displays/summary.html b/src/lib/Bcfg2/Reporting/templates/displays/summary.html
index ffafd52e0..53f504c15 100644
--- a/src/lib/Bcfg2/Reporting/templates/displays/summary.html
+++ b/src/lib/Bcfg2/Reporting/templates/displays/summary.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Client Summary{% endblock %}
{% block pagebanner %}Clients - Summary{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templates/displays/timing.html b/src/lib/Bcfg2/Reporting/templates/displays/timing.html
index 8ac5e49bb..2d24fc1c2 100644
--- a/src/lib/Bcfg2/Reporting/templates/displays/timing.html
+++ b/src/lib/Bcfg2/Reporting/templates/displays/timing.html
@@ -1,9 +1,6 @@
{% extends "base-timeview.html" %}
{% load bcfg2_tags %}
-{% comment %}
-This is needed for Django versions less than 1.5
-{% endcomment %}
-{% load url from future %}
+{% load url from bcfg2_compat %}
{% block title %}Bcfg2 - Performance Metrics{% endblock %}
{% block pagebanner %}Performance Metrics{% endblock %}
diff --git a/src/lib/Bcfg2/Reporting/templatetags/bcfg2_compat.py b/src/lib/Bcfg2/Reporting/templatetags/bcfg2_compat.py
new file mode 100644
index 000000000..da4c73745
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/templatetags/bcfg2_compat.py
@@ -0,0 +1,14 @@
+from django.template import Library
+
+try:
+ from django.templatetags.future import url as django_url
+except ImportError:
+ # future is removed in django 1.9
+ from django.template.defaulttags import url as django_url
+
+register = Library()
+
+
+@register.tag
+def url(parser, token):
+ return django_url(parser, token)
diff --git a/src/lib/Bcfg2/Reporting/views.py b/src/lib/Bcfg2/Reporting/views.py
index 0b8ed65cc..7d60e724a 100644
--- a/src/lib/Bcfg2/Reporting/views.py
+++ b/src/lib/Bcfg2/Reporting/views.py
@@ -186,7 +186,7 @@ def config_item_list(request, item_state, timestamp=None, **kwargs):
lists = []
for etype in ENTRY_TYPES:
ldata = etype.objects.filter(state=state, interaction__in=current_clients)\
- .annotate(num_entries=Count('id')).select_related('linkentry', 'target_perms', 'current_perms')
+ .annotate(num_entries=Count('id')).select_related()
if len(ldata) > 0:
# Property doesn't render properly..
lists.append((etype.ENTRY_TYPE, ldata))