diff options
author | Tim Laszlo <tim.laszlo@gmail.com> | 2012-10-10 08:07:25 -0500 |
---|---|---|
committer | Tim Laszlo <tim.laszlo@gmail.com> | 2012-10-10 08:07:25 -0500 |
commit | 2f7b00a52b304a1db7fbfdfceafbd45217e29e9a (patch) | |
tree | f53eaf458ebbea87f4b333a82862e3cc0d6afdcf /src/lib/Bcfg2/Reporting | |
parent | 54f1fd380fb005dbe37237cbb3e085340539bc3b (diff) | |
download | bcfg2-2f7b00a52b304a1db7fbfdfceafbd45217e29e9a.tar.gz bcfg2-2f7b00a52b304a1db7fbfdfceafbd45217e29e9a.tar.bz2 bcfg2-2f7b00a52b304a1db7fbfdfceafbd45217e29e9a.zip |
Reporting: Make transport configurable
Add routines to the setup to handle alternate transports. Make the
default for new installs LocalFilesystem and existing installs
DirectStore. Raise an error is DirectStore is used when loading
bcfg-report-collector
Diffstat (limited to 'src/lib/Bcfg2/Reporting')
-rw-r--r-- | src/lib/Bcfg2/Reporting/Collector.py | 7 | ||||
-rw-r--r-- | src/lib/Bcfg2/Reporting/Transport/__init__.py | 5 |
2 files changed, 11 insertions, 1 deletions
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') |