def dec(*args, **kwargs): session_maker = SessionMaker() TvbProfile.current.db.ALLOW_NESTED_TRANSACTIONS = True session_maker.start_transaction() try: try: if hasattr(args[0], 'transactional_setup_method_TVB'): LOGGER.debug(args[0].__class__.__name__ + "->" + func.__name__ + "- Transactional SETUP starting...") args[0].transactional_setup_method_TVB() result = func(*args, **kwargs) finally: if hasattr(args[0], 'transactional_teardown_method_TVB'): LOGGER.debug(args[0].__class__.__name__ + "->" + func.__name__ + "- Transactional TEARDOWN starting...") args[0].transactional_teardown_method_TVB() args[0].delete_project_folders() finally: session_maker.rollback_transaction() session_maker.close_transaction() TvbProfile.current.db.ALLOW_NESTED_TRANSACTIONS = False if callback is not None: callback(*args, **kwargs) return result
def dec(*args, **kwargs): session_maker = SessionMaker() TvbProfile.current.db.ALLOW_NESTED_TRANSACTIONS = True session_maker.start_transaction() try: try: if hasattr(args[0], "setUpTVB"): LOGGER.debug( args[0].__class__.__name__ + "->" + func.__name__ + "- Transactional SETUP starting..." ) args[0].setUpTVB() result = func(*args, **kwargs) finally: if hasattr(args[0], "tearDownTVB"): LOGGER.debug( args[0].__class__.__name__ + "->" + func.__name__ + "- Transactional TEARDOWN starting..." ) args[0].tearDownTVB() args[0].delete_project_folders() finally: session_maker.rollback_transaction() session_maker.close_transaction() TvbProfile.current.db.ALLOW_NESTED_TRANSACTIONS = False if callback is not None: callback(*args, **kwargs) return result