MCPcopy Create free account
hub / github.com/dianping/cat / Transaction

Class Transaction

lib/python/src/cat/transaction.py:37–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35
36
37class Transaction(NullMessage):
38
39 def __init__(self, mtype, mname):
40 self._trans = sdk().new_transaction(mtype, mname)
41 self._py = isinstance(self._trans, PyTransaction)
42 self._completed = False
43
44 def complete(self):
45 if not self._completed:
46 self._trans.complete(self._trans)
47 self._completed = True
48 return self
49
50 def set_status(self, status):
51 if self._py:
52 self._trans.setStatus(self._trans, status)
53 else:
54 self._trans.setStatus(self._trans, _(status))
55 return self
56
57 def __add_data(self, data):
58 if self._py:
59 self._trans.addData(self._trans, data)
60 else:
61 self._trans.addData(self._trans, _(data))
62
63 def __add_kv(self, key, val):
64 if self._py:
65 self._trans.addKV(self._trans, key, val)
66 else:
67 self._trans.addKV(self._trans, _(key), _(val))
68
69 def add_data(self, data, val=None):
70 if val is None:
71 self.__add_data(data)
72 else:
73 self.__add_kv(data, val)
74 return self
75
76 def set_duration(self, duration):
77 self._trans.setDurationInMillis(self._trans, int(duration))
78 return self
79
80 def set_duration_start(self, timestamp):
81 self._trans.setDurationStart(self._trans, int(timestamp))
82 return self
83
84 def set_timestamp(self, timestamp):
85 self._trans.setTimestamp(self._trans, int(timestamp))
86 return self
87
88 def __enter__(self):
89 return self
90
91 def __exit__(self, exc_type, exc_val, exc_tb):
92 if exc_type is not None:
93 trace = traceback.format_exception(exc_type, exc_val, exc_tb)
94 log_exception(

Callers 1

wrapsFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected