From b3f4b34e8bf3634b812b83f15b675c626b0b1472 Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Wed, 26 May 2010 18:22:59 +0000 Subject: DBStats: Handle errors in load_stats If any of the sql database insertsor selects failed, the all of the data for the client at that point was lost. This uses an empty Reason object to preserve the rest of the data. git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5866 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Reports/importscript.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lib/Server/Reports/importscript.py b/src/lib/Server/Reports/importscript.py index ae8b6e402..8cc38268e 100755 --- a/src/lib/Server/Reports/importscript.py +++ b/src/lib/Server/Reports/importscript.py @@ -123,15 +123,21 @@ def load_stats(cdata, sdata, vlevel, quick=False, location=''): else: rls = [] - if rls: - rr = rls[0] - if vlevel > 0: - print "Reason exists: %s"% (rr.id) - else: - rr = Reason(**kargs) + try: + if rls: + rr = rls[0] + if vlevel > 0: + print "Reason exists: %s"% (rr.id) + else: + rr = Reason(**kargs) + rr.save() + if vlevel > 0: + print "Created reason: %s" % rr.id + except Exception, ex: + print "Failed to create reason for %s: %s" % (x.get('name'), ex) + rr=Reason(current_exists=x.get('current_exists', + default="True").capitalize()=="True") rr.save() - if vlevel > 0: - print "Created reason: %s" % rr.id links = Entries.objects.filter(name=x.get('name'), kind=x.tag) -- cgit v1.2.3-1-g7c22