summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2012-10-10 08:07:25 -0500
committerTim Laszlo <tim.laszlo@gmail.com>2012-10-10 08:07:25 -0500
commit2f7b00a52b304a1db7fbfdfceafbd45217e29e9a (patch)
treef53eaf458ebbea87f4b333a82862e3cc0d6afdcf /src/lib/Bcfg2/Reporting
parent54f1fd380fb005dbe37237cbb3e085340539bc3b (diff)
downloadbcfg2-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.py7
-rw-r--r--src/lib/Bcfg2/Reporting/Transport/__init__.py5
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')