summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/Bcfg2/Options.py9
-rw-r--r--src/lib/Bcfg2/Reporting/Collector.py7
-rw-r--r--src/lib/Bcfg2/Reporting/Transport/__init__.py5
-rw-r--r--src/lib/Bcfg2/Server/Admin/Init.py3
4 files changed, 22 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py
index 467d9d6d7..4dd3dd3f7 100644
--- a/src/lib/Bcfg2/Options.py
+++ b/src/lib/Bcfg2/Options.py
@@ -634,6 +634,12 @@ REPORTING_FILE_LIMIT = \
cf=('reporting', 'file_limit'),
cook=get_size,)
+# Reporting options
+REPORTING_TRANSPORT = \
+ Option('Reporting transport',
+ default='DirectStore',
+ cf=('reporting', 'transport'),)
+
# Client options
CLIENT_KEY = \
Option('Path to SSL key',
@@ -1161,7 +1167,8 @@ DATABASE_COMMON_OPTIONS = dict(web_configfile=WEB_CFILE,
django_debug=DJANGO_DEBUG,
web_prefix=DJANGO_WEB_PREFIX)
-REPORTING_COMMON_OPTIONS = dict(reporting_file_limit=REPORTING_FILE_LIMIT)
+REPORTING_COMMON_OPTIONS = dict(reporting_file_limit=REPORTING_FILE_LIMIT,
+ reporting_transport=REPORTING_TRANSPORT)
class OptionParser(OptionSet):
diff --git a/src/lib/Bcfg2/Reporting/Collector.py b/src/lib/Bcfg2/Reporting/Collector.py
index bb2e85c21..b27a961fd 100644
--- a/src/lib/Bcfg2/Reporting/Collector.py
+++ b/src/lib/Bcfg2/Reporting/Collector.py
@@ -9,6 +9,7 @@ import threading
import Bcfg2.Logger
from Bcfg2.Reporting.Transport import load_transport_from_config, \
TransportError, TransportImportError
+from Bcfg2.Reporting.Transport.DirectStore import DirectStore
from Bcfg2.Reporting.Storage import load_storage_from_config, \
StorageError, StorageImportError
@@ -54,6 +55,12 @@ class ReportingCollector(object):
traceback.format_exc().splitlines()[-1])
raise ReportingError
+ if isinstance(self.transport, DirectStore):
+ self.logger.error("DirectStore cannot be used with the collector. "
+ "Use LocalFilesystem instead")
+ self.shutdown()
+ raise ReportingError
+
try:
self.logger.debug("Validating storage %s" %
self.storage.__class__.__name__)
diff --git a/src/lib/Bcfg2/Reporting/Transport/__init__.py b/src/lib/Bcfg2/Reporting/Transport/__init__.py
index 8070c13fa..5c51dad1e 100644
--- a/src/lib/Bcfg2/Reporting/Transport/__init__.py
+++ b/src/lib/Bcfg2/Reporting/Transport/__init__.py
@@ -28,5 +28,8 @@ def load_transport(transport_name, setup):
def load_transport_from_config(setup):
"""Load the transport in the config... eventually"""
- return load_transport('DirectStore', setup)
+ try:
+ return load_transport(setup['reporting_transport'], setup)
+ except KeyError:
+ raise TransportImportError('Transport missing in config')
diff --git a/src/lib/Bcfg2/Server/Admin/Init.py b/src/lib/Bcfg2/Server/Admin/Init.py
index 5d5888ff2..286c52d5d 100644
--- a/src/lib/Bcfg2/Server/Admin/Init.py
+++ b/src/lib/Bcfg2/Server/Admin/Init.py
@@ -37,6 +37,9 @@ sendmailpath = %s
# Not used with sqlite3.
#port =
+[reporting]
+transport = LocalFilesystem
+
[communication]
protocol = %s
password = %s