summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/DBStats.py
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2010-07-05 23:44:23 +0000
committerSol Jerome <sol.jerome@gmail.com>2010-07-08 23:26:49 -0500
commit2b514771564024df2fb89e5b4351eef903f9947d (patch)
tree9b9e362d62479eb8782e0b794c2007c96ac5554b /src/lib/Server/Plugins/DBStats.py
parent1245c432c2b3a5b3854efa17ca45504492328c41 (diff)
downloadbcfg2-2b514771564024df2fb89e5b4351eef903f9947d.tar.gz
bcfg2-2b514771564024df2fb89e5b4351eef903f9947d.tar.bz2
bcfg2-2b514771564024df2fb89e5b4351eef903f9947d.zip
DBStats: Improved handling of binary objects in the database
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5962 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins/DBStats.py')
-rw-r--r--src/lib/Server/Plugins/DBStats.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/Server/Plugins/DBStats.py b/src/lib/Server/Plugins/DBStats.py
index 1b8052c2d..d6d6d7819 100644
--- a/src/lib/Server/Plugins/DBStats.py
+++ b/src/lib/Server/Plugins/DBStats.py
@@ -1,3 +1,4 @@
+import binascii
import difflib
import logging
import lxml.etree
@@ -83,8 +84,14 @@ class DBStats(Bcfg2.Server.Plugin.Plugin,
ret.append(getattr(entry.reason, "current_%s" % t))
if entry.reason.current_diff != '':
- ret.append('\n'.join(difflib.restore(\
- entry.reason.current_diff.split('\n'), 1)))
+ if entry.reason.is_binary:
+ ret.append(binascii.a2b_base64(entry.reason.current_diff))
+ else:
+ ret.append('\n'.join(difflib.restore(\
+ entry.reason.current_diff.split('\n'), 1)))
+ elif entry.reason.is_binary:
+ # If len is zero the object was too large to store
+ raise Bcfg2.Server.Plugin.PluginExecutionError
else:
ret.append(None)
return ret