diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-11-09 15:00:17 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-30 01:29:29 +0100 |
commit | c038f0ceca6779fa429d6f74f0c794498a826c7e (patch) | |
tree | fce40412aac397aca265aa7ff1d2072bd52eccc1 /src/lib/Server/Plugins/Metadata.py | |
parent | 6bb0a83e06db94fe1d0446cb07e1446369dfa137 (diff) | |
download | bcfg2-c038f0ceca6779fa429d6f74f0c794498a826c7e.tar.gz bcfg2-c038f0ceca6779fa429d6f74f0c794498a826c7e.tar.bz2 bcfg2-c038f0ceca6779fa429d6f74f0c794498a826c7e.zip |
pingdata.xml: add new file for dynamic ping data of the clients
bcfg2-ping-sweep saved the pingdata into clients.xml. This is problematic
if the repository is tracked by a vcs. Now the dynamic data is saved into
pingdata.xml and the DBStat plugin reads the data from there. So the
pingdata.xml could be ignored by the vcs.
Diffstat (limited to 'src/lib/Server/Plugins/Metadata.py')
-rw-r--r-- | src/lib/Server/Plugins/Metadata.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/Server/Plugins/Metadata.py b/src/lib/Server/Plugins/Metadata.py index 4f0ca9686..f89c98d2c 100644 --- a/src/lib/Server/Plugins/Metadata.py +++ b/src/lib/Server/Plugins/Metadata.py @@ -237,16 +237,19 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, try: core.fam.AddMonitor("%s/%s" % (self.data, "groups.xml"), self) core.fam.AddMonitor("%s/%s" % (self.data, "clients.xml"), self) + core.fam.AddMonitor("%s/%s" % (self.data, "pingdata.xml"), self) except: - print("Unable to add file monitor for groups.xml or clients.xml") + print("Unable to add file monitor for groups.xml, clients.xml or pingdata.xml") raise Bcfg2.Server.Plugin.PluginInitError self.clients_xml = XMLMetadataConfig(self, watch_clients, 'clients.xml') + self.pingdata_xml = XMLMetadataConfig(self, watch_clients, 'pingdata.xml') self.groups_xml = XMLMetadataConfig(self, watch_clients, 'groups.xml') self.states = {} if watch_clients: self.states = {"groups.xml": False, - "clients.xml": False} + "clients.xml": False, + "pingdata.xml": False} self.addresses = {} self.auth = dict() self.clients = {} @@ -266,7 +269,8 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, self.default = None self.pdirty = False self.extra = {'groups.xml': [], - 'clients.xml': []} + 'clients.xml': [], + 'pingdata.xml': []} self.password = core.password self.query = MetadataQuery(core.build_metadata, lambda: list(self.clients.keys()), @@ -530,6 +534,8 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, ggg)) [self.groups[group][0].add(bund) for bund in bundles] self.states['groups.xml'] = True + elif self.pingdata_xml.HandleEvent(event): + self.states['pingdata.xml'] = True if False not in list(self.states.values()): # check that all client groups are real and complete real = list(self.groups.keys()) |