)]}'
{"nova/db/sqlalchemy/session.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"7c8f3f29c140b73042c4b4f9e690d3415b1fb4a1","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        engine \u003d get_engine()"},{"line_number":48,"context_line":"        _MAKER \u003d get_maker(engine, autocommit, expire_on_commit)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    session \u003d _MAKER()"},{"line_number":51,"context_line":"    session.query \u003d nova.exception.wrap_db_error(session.query)"},{"line_number":52,"context_line":"    session.flush \u003d nova.exception.wrap_db_error(session.flush)"},{"line_number":53,"context_line":"    return session"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALn%2F%2F5HA%3D","line":50,"updated":"2012-10-30 14:30:45.000000000","message":"it would be better if these two lines (session.query\u003d... and session.flush\u003d...) were moved out of get_session so that this did not need to be duplicated when you override get_session and get_engine for the separate baremetal db connection.","commit_id":"067717ea4c782fa431276dced699bbfa72a7b5aa"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"d2f60419812b004a84f41c2d258217c1648c08b5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        engine \u003d get_engine()"},{"line_number":48,"context_line":"        _MAKER \u003d get_maker(engine, autocommit, expire_on_commit)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    session \u003d _MAKER()"},{"line_number":51,"context_line":"    session.query \u003d nova.exception.wrap_db_error(session.query)"},{"line_number":52,"context_line":"    session.flush \u003d nova.exception.wrap_db_error(session.flush)"},{"line_number":53,"context_line":"    return session"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALn%2F%2F48c%3D","line":50,"in_reply_to":"AAAALn%2F%2F5AM%3D","updated":"2012-10-30 15:46:37.000000000","message":"That\u0027s fine with me. The reason is that I\u0027ll be expanding upon wrap_db_error to add retry logic at some point in the (near?) future. Keeping that logic in nova/db/sqla/session.py (or db-common) is ideal.","commit_id":"067717ea4c782fa431276dced699bbfa72a7b5aa"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"5945b9064f1da3e7938739d1e94652808cd8785b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        engine \u003d get_engine()"},{"line_number":48,"context_line":"        _MAKER \u003d get_maker(engine, autocommit, expire_on_commit)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    session \u003d _MAKER()"},{"line_number":51,"context_line":"    session.query \u003d nova.exception.wrap_db_error(session.query)"},{"line_number":52,"context_line":"    session.flush \u003d nova.exception.wrap_db_error(session.flush)"},{"line_number":53,"context_line":"    return session"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALn%2F%2F5AM%3D","line":50,"in_reply_to":"AAAALn%2F%2F5HA%3D","updated":"2012-10-30 14:55:28.000000000","message":"Like this? Still we have to call wrap_session(). Is it ok?\n\n    def get_session(autocommit\u003dTrue, expire_on_commit\u003dFalse):\n        \"\"\"Return a SQLAlchemy session.\"\"\"\n        global _MAKER\n    \n        if _MAKER is None:\n            engine \u003d get_engine()\n            _MAKER \u003d get_maker(engine, autocommit, expire_on_commit)\n    \n        session \u003d _MAKER()\n        session \u003d wrap_session(session)\n        return session\n    \n    \n    def wrap_session(session):\n        session.query \u003d nova.exception.wrap_db_error(session.query)\n        session.flush \u003d nova.exception.wrap_db_error(session.flush)\n        return session","commit_id":"067717ea4c782fa431276dced699bbfa72a7b5aa"}]}
