From 972c50e10e3727d697457299ae71918c1f444af5 Mon Sep 17 00:00:00 2001 From: LV-426 Date: Wed, 29 Apr 2015 03:51:44 +0300 Subject: db_op: DBO_rzdb__fetch_DB_metablock --- src/server/db_op.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/server') diff --git a/src/server/db_op.py b/src/server/db_op.py index f28dc320..aa0046a0 100644 --- a/src/server/db_op.py +++ b/src/server/db_op.py @@ -716,6 +716,29 @@ class DBO_rm_link_set(DB_op): q_params = {'id_set': id_set} self.add_statement(q_arr, q_params) +class DBO_rzdb__fetch_DB_metablock(DB_op): + + def __init__(self, length_lim=None): + """ + Fetch DB metadata + + @retrun metablock or None if none was found + """ + super(DBO_rzdb__fetch_DB_metablock, self).__init__() + + q_arr = ['match (n:%s)' % (neo4j_schema.META_LABEL__RZDB_META), + 'return n' + ] + self.add_statement(q_arr) + + def process_result_set(self): + ret = super(DBO_rzdb__fetch_DB_metablock, self).process_result_set() + if len(ret) > 1: # assert DB contains single metablock + raise Exception('found more than one DB metablocks, DB may be corrupt') + if 0 == len(ret): + return None + return ret.pop() + class DBO_rzdoc__clone(DB_op): def __init__(self, limit=16384): -- cgit v1.3.1