diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-11-11 08:29:36 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-11-11 08:29:43 -0500 |
commit | 9dc84e1ec1f7ffc74f878e16d48637eac660e803 (patch) | |
tree | 110994407ec1b7a2f66fe2e23ee9512c9268d517 /src/lib/Bcfg2/Server | |
parent | 514f51630839ad318c600b861c1b3dd7867ff17f (diff) | |
download | bcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.tar.gz bcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.tar.bz2 bcfg2-9dc84e1ec1f7ffc74f878e16d48637eac660e803.zip |
Probes: automatically remove duplicate probe data
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Probes.py | 13 |
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() |