summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-05-11 18:41:49 +0300
committerAlon Levy <alon@pobox.com>2015-05-12 12:29:54 +0300
commited332153735b915e978862e8342b13845ccaca78 (patch)
tree47a4d4bae18b1914217db4729cc480c8082cdf5f /src/server
parent9d065a60cc13f0cf67f8ee5ce9f51233d13c3ad1 (diff)
server/db_op: refactor blob gzip/base64 code
Diffstat (limited to 'src/server')
-rw-r--r--src/server/db_op.py30
1 files changed, 11 insertions, 19 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 89d61cd1..3b526029 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -192,6 +192,16 @@ class DB_composed_op(DB_op):
ret.append(s_result_set)
return ret
+def obj_to_blob(obj):
+ """
+ @return: blob = base64(gzip(json.dumps(obj)))
+ """
+ obj_str = json.dumps(obj)
+ blob_gzip = gzip.zlib.compress(obj_str)
+ blob_base64 = base64.encodestring(blob_gzip)
+
+ return blob_base64
+
class DBO_block_chain__commit(DB_op):
"""
Rhizi version control
@@ -215,7 +225,7 @@ class DBO_block_chain__commit(DB_op):
"""
super(DBO_block_chain__commit, self).__init__()
- blob = self._convert_to_blob(commit_obj)
+ blob = obj_to_blob(commit_obj)
hash_value = self.calc_blob_hash(blob)
l_id = generate_random_id__uuid()
@@ -254,24 +264,6 @@ class DBO_block_chain__commit(DB_op):
]
self.add_statement(q_arr)
- def _convert_to_blob(self, obj):
- """
- @return: blob = base64(gzip(json.dumps(obj)))
- """
- obj_str = json.dumps(obj)
- blob_gzip = self._gzip_compress_string(obj_str)
- blob_base64 = base64.encodestring(blob_gzip)
-
- return blob_base64
-
- def _gzip_compress_string(self, input_string):
- out = sio.StringIO()
- with gzip.GzipFile(fileobj=out, mode='wb') as f:
- f.write(input_string)
-
- ret = out.getvalue()
- return ret
-
def process_result_set(self):
"""
@return: a Topo_Diff object consisting of the commit node and parent link