summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-09 11:25:15 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-09 11:52:20 -0400
commit1b6394708b267bcc9230fbb77e0fd4ad51f456b8 (patch)
tree479b5fc50c58f73abb871605836f0159958b450c /src
parentc8ca57745a5ba5859ade9f36cd57b80210cc01f8 (diff)
downloadbcfg2-1b6394708b267bcc9230fbb77e0fd4ad51f456b8.tar.gz
bcfg2-1b6394708b267bcc9230fbb77e0fd4ad51f456b8.tar.bz2
bcfg2-1b6394708b267bcc9230fbb77e0fd4ad51f456b8.zip
DatabaseBacked interface needs to be a Plugin object
Diffstat (limited to 'src')
-rw-r--r--src/lib/Bcfg2/Server/Plugin.py44
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Metadata.py6
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Probes.py6
3 files changed, 24 insertions, 32 deletions
diff --git a/src/lib/Bcfg2/Server/Plugin.py b/src/lib/Bcfg2/Server/Plugin.py
index 79350f800..035de1465 100644
--- a/src/lib/Bcfg2/Server/Plugin.py
+++ b/src/lib/Bcfg2/Server/Plugin.py
@@ -99,30 +99,6 @@ class Debuggable(object):
self.logger.error(message)
-class DatabaseBacked(object):
- def __init__(self):
- pass
-
- @property
- def _use_db(self):
- use_db = self.core.setup.cfp.getboolean(self.name.lower(),
- "use_database",
- default=False)
- if use_db and has_django:
- return True
- elif not use_db:
- return False
- else:
- self.logger.error("use_database is true but django not found")
- return False
-
-
-
-class PluginDatabaseModel(object):
- class Meta:
- app_label = "Server"
-
-
class Plugin(Debuggable):
"""This is the base class for all Bcfg2 Server plugins.
Several attributes must be defined in the subclass:
@@ -169,6 +145,26 @@ class Plugin(Debuggable):
return "%s Plugin" % self.__class__.__name__
+class DatabaseBacked(Plugin):
+ @property
+ def _use_db(self):
+ use_db = self.core.setup.cfp.getboolean(self.name.lower(),
+ "use_database",
+ default=False)
+ if use_db and has_django:
+ return True
+ elif not use_db:
+ return False
+ else:
+ self.logger.error("use_database is true but django not found")
+ return False
+
+
+class PluginDatabaseModel(object):
+ class Meta:
+ app_label = "Server"
+
+
class Generator(object):
"""Generator plugins contribute to literal client configurations."""
def HandlesEntry(self, entry, metadata):
diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py
index e7be7c227..ef246ffd0 100644
--- a/src/lib/Bcfg2/Server/Plugins/Metadata.py
+++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py
@@ -318,8 +318,7 @@ class MetadataGroup(tuple):
def __hash__(self):
return hash(self.name)
-class Metadata(Bcfg2.Server.Plugin.Plugin,
- Bcfg2.Server.Plugin.Metadata,
+class Metadata(Bcfg2.Server.Plugin.Metadata,
Bcfg2.Server.Plugin.Statistics,
Bcfg2.Server.Plugin.DatabaseBacked):
"""This class contains data for bcfg2 server metadata."""
@@ -328,10 +327,9 @@ class Metadata(Bcfg2.Server.Plugin.Plugin,
sort_order = 500
def __init__(self, core, datastore, watch_clients=True):
- Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore)
Bcfg2.Server.Plugin.Metadata.__init__(self)
Bcfg2.Server.Plugin.Statistics.__init__(self)
- Bcfg2.Server.Plugin.DatabaseBacked.__init__(self)
+ Bcfg2.Server.Plugin.DatabaseBacked.__init__(self, core, datastore)
self.watch_clients = watch_clients
self.states = dict()
self.extra = dict()
diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py
index 114a9bbd8..53deefebd 100644
--- a/src/lib/Bcfg2/Server/Plugins/Probes.py
+++ b/src/lib/Bcfg2/Server/Plugins/Probes.py
@@ -152,8 +152,7 @@ class ProbeSet(Bcfg2.Server.Plugin.EntrySet):
return ret
-class Probes(Bcfg2.Server.Plugin.Plugin,
- Bcfg2.Server.Plugin.Probing,
+class Probes(Bcfg2.Server.Plugin.Probing,
Bcfg2.Server.Plugin.Connector,
Bcfg2.Server.Plugin.DatabaseBacked):
"""A plugin to gather information from a client machine."""
@@ -161,10 +160,9 @@ class Probes(Bcfg2.Server.Plugin.Plugin,
__author__ = 'bcfg-dev@mcs.anl.gov'
def __init__(self, core, datastore):
- Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore)
Bcfg2.Server.Plugin.Connector.__init__(self)
Bcfg2.Server.Plugin.Probing.__init__(self)
- Bcfg2.Server.Plugin.DatabaseBacked.__init__(self)
+ Bcfg2.Server.Plugin.DatabaseBacked.__init__(self, core, datastore)
try:
self.probes = ProbeSet(self.data, core.fam, core.encoding,