# HG changeset patch # User Adrien Di Mascio # Date 1418987281 -3600 # Node ID 153c969b3a05e53c294f0c6b0ca9600205e201b2 # Parent c390c444de06bbd68d5fe2b2480da698a509586e [serverctl] add db_transaction context manager diff -r c390c444de06 -r 153c969b3a05 server/serverctl.py --- a/server/serverctl.py Thu Mar 28 19:24:46 2013 +0100 +++ b/server/serverctl.py Fri Dec 19 12:08:01 2014 +0100 @@ -207,6 +207,22 @@ @contextmanager +def db_transaction(source, privilege): + """Open a transaction to the instance database""" + cnx = system_source_cnx(source, special_privs=privilege) + cursor = cnx.cursor() + try: + yield cursor + except: + cnx.rollback() + cnx.close() + raise + else: + cnx.commit() + cnx.close() + + +@contextmanager def db_sys_transaction(source, privilege): """Open a transaction to the system database""" cnx = _db_sys_cnx(source, privilege)