From 5b3ffd488a8b5f727a531a3b7c3ca419bb53d04e Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Tue, 7 Aug 2012 13:37:33 -0500 Subject: Merge reporting configuration with main server configuration Admin/Syncdb: Use SchemaUpdater Move the schema update routines from reports to Bcfg2.Server Move Reports.settings into Bcfg2.settings --- src/lib/Bcfg2/Server/Admin/Reports.py | 10 ++++------ src/lib/Bcfg2/Server/Admin/Syncdb.py | 14 ++++++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'src/lib/Bcfg2/Server/Admin') diff --git a/src/lib/Bcfg2/Server/Admin/Reports.py b/src/lib/Bcfg2/Server/Admin/Reports.py index 8201ad104..175b99d1d 100644 --- a/src/lib/Bcfg2/Server/Admin/Reports.py +++ b/src/lib/Bcfg2/Server/Admin/Reports.py @@ -19,17 +19,15 @@ if sys.version_info >= (2, 5): else: from md5 import md5 -# Prereq issues can be signaled with ImportError, so no try needed -# FIXME - settings file uses a hardcoded path for /etc/bcfg2.conf -import Bcfg2.Server.Reports.settings +import Bcfg2.settings # Load django and reports stuff _after_ we know we can load settings import django.core.management from Bcfg2.Server.Reports.importscript import load_stats -from Bcfg2.Server.Reports.Updater import update_database, UpdaterError +from Bcfg2.Server.SchemaUpdater import update_database, UpdaterError from Bcfg2.Server.Reports.utils import * -project_directory = os.path.dirname(Bcfg2.Server.Reports.settings.__file__) +project_directory = os.path.dirname(Bcfg2.settings.__file__) project_name = os.path.basename(project_directory) sys.path.append(os.path.join(project_directory, '..')) project_module = __import__(project_name, '', '', ['']) @@ -281,7 +279,7 @@ class Reports(Bcfg2.Server.Admin.Mode): self.log.debug("Filtering by maxdate: %s" % maxdate) ipurge = ipurge.filter(timestamp__lt=maxdate) - if Bcfg2.Server.Reports.settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': + if Bcfg2.settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': grp_limit = 100 else: grp_limit = 1000 diff --git a/src/lib/Bcfg2/Server/Admin/Syncdb.py b/src/lib/Bcfg2/Server/Admin/Syncdb.py index 73dc5b8b2..c9bba0810 100644 --- a/src/lib/Bcfg2/Server/Admin/Syncdb.py +++ b/src/lib/Bcfg2/Server/Admin/Syncdb.py @@ -1,6 +1,7 @@ import Bcfg2.settings import Bcfg2.Options import Bcfg2.Server.Admin +from Bcfg2.Server.SchemaUpdater import update_database, UpdaterError from django.core.management import setup_environ class Syncdb(Bcfg2.Server.Admin.Mode): @@ -10,7 +11,11 @@ class Syncdb(Bcfg2.Server.Admin.Mode): options = {'configfile': Bcfg2.Options.CFILE, 'repo': Bcfg2.Options.SERVER_REPOSITORY} + def __init__(self, setup): + Bcfg2.Server.Admin.Mode.__init__(self, setup) + def __call__(self, args): + import Bcfg2.Server.Admin Bcfg2.Server.Admin.Mode.__call__(self, args) # Parse options @@ -27,7 +32,8 @@ class Syncdb(Bcfg2.Server.Admin.Mode): import Bcfg2.Server.models Bcfg2.Server.models.load_models(cfile=self.opts['configfile']) - from django.core.management.commands import syncdb - - cmd = syncdb.Command() - cmd.handle_noargs(interactive=False) + try: + update_database() + except UpdaterError: + print "Update failed" + raise SystemExit(-1) -- cgit v1.2.3-1-g7c22