Loading cloudcontrol/common/tql/db/db.py +21 −1 Original line number Diff line number Diff line """ Main class of the TQL database. """ import time from copy import copy from fnmatch import fnmatch Loading Loading @@ -221,6 +222,8 @@ class TqlDatabase(object): def __init__(self, default_requestor=None): self._objects = {} self._stats_maxquerytime = 0 self._stats_numquery = 0 if default_requestor is None: self._default_requestor = StaticRequestor() else: Loading @@ -243,16 +246,33 @@ class TqlDatabase(object): obj = obj.id del self._objects[obj] def stats(self): """ Get statistics about the database. :return: return a dict of statistics """ stats = {} stats['objects'] = len(self._objects) stats['max_query_time'] = self._stats_maxquerytime stats['queries'] = self._stats_numquery return stats def get(self, object_id): return self._objects[object_id] def raw_query(self, tql, requestor=None): started = time.time() self._stats_numquery += 1 if requestor is None: requestor = self._default_requestor if isinstance(tql, basestring): tql = TqlParser(tql, debug=False, write_tables=False, errorlog=yacc.NullLogger()).parse() return self._evaluate_ast(tql, requestor) evaluated = self._evaluate_ast(tql, requestor) duration = time.time() - started if duration > self._stats_maxquerytime: self._stats_maxquerytime = duration return evaluated def query(self, tql, show=None, requestor=None): if requestor is None: Loading Loading
cloudcontrol/common/tql/db/db.py +21 −1 Original line number Diff line number Diff line """ Main class of the TQL database. """ import time from copy import copy from fnmatch import fnmatch Loading Loading @@ -221,6 +222,8 @@ class TqlDatabase(object): def __init__(self, default_requestor=None): self._objects = {} self._stats_maxquerytime = 0 self._stats_numquery = 0 if default_requestor is None: self._default_requestor = StaticRequestor() else: Loading @@ -243,16 +246,33 @@ class TqlDatabase(object): obj = obj.id del self._objects[obj] def stats(self): """ Get statistics about the database. :return: return a dict of statistics """ stats = {} stats['objects'] = len(self._objects) stats['max_query_time'] = self._stats_maxquerytime stats['queries'] = self._stats_numquery return stats def get(self, object_id): return self._objects[object_id] def raw_query(self, tql, requestor=None): started = time.time() self._stats_numquery += 1 if requestor is None: requestor = self._default_requestor if isinstance(tql, basestring): tql = TqlParser(tql, debug=False, write_tables=False, errorlog=yacc.NullLogger()).parse() return self._evaluate_ast(tql, requestor) evaluated = self._evaluate_ast(tql, requestor) duration = time.time() - started if duration > self._stats_maxquerytime: self._stats_maxquerytime = duration return evaluated def query(self, tql, show=None, requestor=None): if requestor is None: Loading