summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Metadata.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-30 11:38:59 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-30 11:53:18 -0400
commita8ee32b8e57a4711ca4ff2f1e619a523f4c4216d (patch)
treefcf83a5c6a0f734339c8a1daaec44f9df31a01c9 /src/lib/Bcfg2/Server/Plugins/Metadata.py
parent5b66845d01a507120503c19e40829c6394d47b93 (diff)
downloadbcfg2-a8ee32b8e57a4711ca4ff2f1e619a523f4c4216d.tar.gz
bcfg2-a8ee32b8e57a4711ca4ff2f1e619a523f4c4216d.tar.bz2
bcfg2-a8ee32b8e57a4711ca4ff2f1e619a523f4c4216d.zip
Metadata: Clean up FAM monitoring cruft
Removed code that supported an unused watch_clients option that permitted locally disabling FAM monitoring for Metadata; and ensured that XIncludes from clients.xml/groups.xml were always monitored (fixed in 5b66845).
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Metadata.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Metadata.py34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py
index f58e0a8b7..17352dedc 100644
--- a/src/lib/Bcfg2/Server/Plugins/Metadata.py
+++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py
@@ -102,17 +102,12 @@ def load_django_models():
class XMLMetadataConfig(Bcfg2.Server.Plugin.XMLFileBacked):
"""Handles xml config files and all XInclude statements"""
- def __init__(self, metadata, watch_clients, basefile):
- # we tell XMLFileBacked _not_ to add a monitor for this file,
- # because the main Metadata plugin has already added one.
- # then we immediately set should_monitor to the proper value,
- # so that XInclude'd files get properly watched
+ def __init__(self, metadata, basefile):
fpath = os.path.join(metadata.data, basefile)
toptag = os.path.splitext(basefile)[0].title()
Bcfg2.Server.Plugin.XMLFileBacked.__init__(self, fpath,
should_monitor=False,
create=toptag)
- self.should_monitor = watch_clients
self.metadata = metadata
self.basefile = basefile
self.data = None
@@ -257,8 +252,7 @@ class XMLMetadataConfig(Bcfg2.Server.Plugin.XMLFileBacked):
def add_monitor(self, fpath):
self.extras.append(fpath)
- if self.should_monitor:
- self.fam.AddMonitor(fpath, self.metadata)
+ self.fam.AddMonitor(fpath, self.metadata)
def HandleEvent(self, event=None):
"""Handle fam events"""
@@ -517,11 +511,10 @@ class Metadata(Bcfg2.Server.Plugin.Metadata,
help='Default client authentication method')]
options_parsed_hook = staticmethod(load_django_models)
- def __init__(self, core, datastore, watch_clients=True):
+ def __init__(self, core, datastore):
Bcfg2.Server.Plugin.Metadata.__init__(self)
Bcfg2.Server.Plugin.ClientRunHooks.__init__(self)
Bcfg2.Server.Plugin.DatabaseBacked.__init__(self, core, datastore)
- self.watch_clients = watch_clients
self.states = dict()
self.extra = dict()
self.handlers = dict()
@@ -594,17 +587,16 @@ class Metadata(Bcfg2.Server.Plugin.Metadata,
def _handle_file(self, fname):
""" set up the necessary magic for handling a metadata file
(clients.xml or groups.xml, e.g.) """
- if self.watch_clients:
- try:
- Bcfg2.Server.FileMonitor.get_fam().AddMonitor(
- os.path.join(self.data, fname), self)
- except:
- err = sys.exc_info()[1]
- msg = "Unable to add file monitor for %s: %s" % (fname, err)
- self.logger.error(msg)
- raise Bcfg2.Server.Plugin.PluginInitError(msg)
- self.states[fname] = False
- xmlcfg = XMLMetadataConfig(self, self.watch_clients, fname)
+ try:
+ Bcfg2.Server.FileMonitor.get_fam().AddMonitor(
+ os.path.join(self.data, fname), self)
+ except:
+ err = sys.exc_info()[1]
+ msg = "Unable to add file monitor for %s: %s" % (fname, err)
+ self.logger.error(msg)
+ raise Bcfg2.Server.Plugin.PluginInitError(msg)
+ self.states[fname] = False
+ xmlcfg = XMLMetadataConfig(self, fname)
aname = re.sub(r'[^A-z0-9_]', '_', os.path.basename(fname))
self.handlers[xmlcfg.HandleEvent] = getattr(self,
"_handle_%s_event" % aname)