summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-01-26 08:29:00 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-01-26 08:29:00 -0500
commit89b2d85439be439b427a575d5b89ed452e1e7248 (patch)
treede61b71284b995406fba1231ac90e77e1301d7fa
parent48ee74f4af26baf165a7d43ec5923d716fa4522a (diff)
downloadbcfg2-89b2d85439be439b427a575d5b89ed452e1e7248.tar.gz
bcfg2-89b2d85439be439b427a575d5b89ed452e1e7248.tar.bz2
bcfg2-89b2d85439be439b427a575d5b89ed452e1e7248.zip
suppress error message from bcfg2-admin Reports module if Reports not configured (#1056)
-rw-r--r--src/lib/Server/Admin/Reports.py20
-rw-r--r--src/lib/Server/Admin/__init__.py1
-rw-r--r--src/lib/Server/Reports/settings.py10
-rwxr-xr-xsrc/sbin/bcfg2-admin5
4 files changed, 14 insertions, 22 deletions
diff --git a/src/lib/Server/Admin/Reports.py b/src/lib/Server/Admin/Reports.py
index 3f25f11af..bdfa5c2d6 100644
--- a/src/lib/Server/Admin/Reports.py
+++ b/src/lib/Server/Admin/Reports.py
@@ -8,9 +8,6 @@ import pickle
import platform
import sys
import traceback
-from Bcfg2.Server.Reports.importscript import load_stats
-from Bcfg2.Server.Reports.updatefix import update_database
-from Bcfg2.Server.Reports.utils import *
from lxml.etree import XML, XMLSyntaxError
# Compatibility import
@@ -22,16 +19,15 @@ if sys.version_info >= (2, 5):
else:
from md5 import md5
-# Load django
-import django.core.management
-
+# Prereq issues can be signaled with ImportError, so no try needed
# FIXME - settings file uses a hardcoded path for /etc/bcfg2.conf
-try:
- import Bcfg2.Server.Reports.settings
-except Exception:
- e = sys.exc_info()[1]
- sys.stderr.write("Failed to load configuration settings. %s\n" % e)
- raise SystemExit(1)
+import Bcfg2.Server.Reports.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.updatefix import update_database
+from Bcfg2.Server.Reports.utils import *
project_directory = os.path.dirname(Bcfg2.Server.Reports.settings.__file__)
project_name = os.path.basename(project_directory)
diff --git a/src/lib/Server/Admin/__init__.py b/src/lib/Server/Admin/__init__.py
index 96d9703ba..d71d789e7 100644
--- a/src/lib/Server/Admin/__init__.py
+++ b/src/lib/Server/Admin/__init__.py
@@ -8,7 +8,6 @@ __all__ = [
'Group',
'Init',
'Minestruct',
- 'Mode',
'Perf',
'Pull',
'Query',
diff --git a/src/lib/Server/Reports/settings.py b/src/lib/Server/Reports/settings.py
index 2b35d0d05..952e3eae6 100644
--- a/src/lib/Server/Reports/settings.py
+++ b/src/lib/Server/Reports/settings.py
@@ -6,9 +6,8 @@ from Bcfg2.Bcfg2Py3k import ConfigParser
# Django settings for bcfg2 reports project.
c = ConfigParser.ConfigParser()
if len(c.read(['/etc/bcfg2.conf', '/etc/bcfg2-web.conf'])) == 0:
- print("Please check that bcfg2.conf or bcfg2-web.conf exists "
- "and is readable by your web server.")
- sys.exit(1)
+ raise ImportError("Please check that bcfg2.conf or bcfg2-web.conf exists "
+ "and is readable by your web server.")
try:
DEBUG = c.getboolean('statistics', 'web_debug')
@@ -30,8 +29,7 @@ try:
db_engine = c.get('statistics', 'database_engine')
except ConfigParser.NoSectionError:
e = sys.exc_info()[1]
- print("Failed to determine database engine: %s" % e)
- sys.exit(1)
+ raise ImportError("Failed to determine database engine: %s" % e)
db_name = ''
if c.has_option('statistics', 'database_name'):
db_name = c.get('statistics', 'database_name')
@@ -122,7 +120,7 @@ AUTHORIZED_GROUP = ''
try:
import django.contrib.auth
except ImportError:
- print('Import of Django module failed. Is Django installed?')
+ raise ImportError('Import of Django module failed. Is Django installed?')
django.contrib.auth.LOGIN_URL = '/login'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
diff --git a/src/sbin/bcfg2-admin b/src/sbin/bcfg2-admin
index 386c8dd47..6a502afde 100755
--- a/src/sbin/bcfg2-admin
+++ b/src/sbin/bcfg2-admin
@@ -6,13 +6,12 @@ import logging
import Bcfg2.Server.Core
import Bcfg2.Logger
import Bcfg2.Options
+import Bcfg2.Server.Admin
# Compatibility import
from Bcfg2.Bcfg2Py3k import StringIO
log = logging.getLogger('bcfg2-admin')
-import Bcfg2.Server.Admin
-
def mode_import(modename):
"""Load Bcfg2.Server.Admin.<mode>."""
modname = modename.capitalize()
@@ -66,7 +65,7 @@ def main():
if setup['args'][0] in get_modes():
modname = setup['args'][0].capitalize()
- if len(setup['args']) > 1 and setup['args'][1] == 'help':
+ if len(setup['args']) > 1 and setup['args'][1] == 'help':
print(mode_import(modname).__longhelp__)
raise SystemExit(0)
try: