summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Probes.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-11 08:29:36 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-11 08:29:43 -0500
commit9dc84e1ec1f7ffc74f878e16d48637eac660e803 (patch)
tree110994407ec1b7a2f66fe2e23ee9512c9268d517 /src/lib/Bcfg2/Server/Plugins/Probes.py
parent514f51630839ad318c600b861c1b3dd7867ff17f (diff)
downloadbcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.tar.gz
bcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.tar.bz2
bcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.zip
Probes: automatically remove duplicate probe data
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Probes.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Probes.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py
index fd6fd3bd1..84e1638d6 100644
--- a/src/lib/Bcfg2/Server/Plugins/Probes.py
+++ b/src/lib/Bcfg2/Server/Plugins/Probes.py
@@ -252,9 +252,16 @@ class Probes(Bcfg2.Server.Plugin.Probing,
def _write_data_db(self, client):
""" Write received probe data to the database """
for probe, data in self.probedata[client.hostname].items():
- pdata = \
- ProbesDataModel.objects.get_or_create(hostname=client.hostname,
- probe=probe)[0]
+ try:
+ pdata = ProbesDataModel.objects.get_or_create(
+ hostname=client.hostname,
+ probe=probe)[0]
+ except MultipleObjectsReturned:
+ ProbesDataModel.objects.filter(hostname=client.hostname,
+ probe=probe).delete()
+ ProbesDataModel.objects.get_or_create(
+ hostname=client.hostname,
+ probe=probe)
if pdata.data != data:
pdata.data = data
pdata.save()