summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Probes.py
diff options
context:
space:
mode:
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()