diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Bcfg2/Options.py | 9 | ||||
-rw-r--r-- | src/lib/Bcfg2/Reporting/Collector.py | 7 | ||||
-rw-r--r-- | src/lib/Bcfg2/Reporting/Transport/__init__.py | 5 | ||||
-rw-r--r-- | src/lib/Bcfg2/Server/Admin/Init.py | 3 |
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 |