)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bff350ada60579a51616fb3f9a37017e3befaff4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix sqlalchemy migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Dependencies: https://review.openstack.org/#/c/42307/ (should be"},{"line_number":10,"context_line":"reviewed)."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch only fixes sqlalchemy migrations"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATH%2F%2FYvs%3D","line":9,"updated":"2013-10-16 20:19:42.000000000","message":"This is not really use from the commit log perspective, so lets remove it. This change is already marked as a dependency for the sqlalchemy model fix. So assuming that\u0027s marked as a dep of 42307, this should happen.","commit_id":"8bf6705a99b5b2144890ce1547a7371332f1ee0b"}],"cinder/db/sqlalchemy/migrate_repo/versions/002_quota_class.py":[{"author":{"_account_id":6506,"name":"Anastasia Guzikova","email":"aguzikova@mirantis.com","username":"aguzikova"},"change_message_id":"76d13d3a100c04b43e345d180849ef95d7dd8127","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    try:"},{"line_number":130,"context_line":"        quota_usages.drop()"},{"line_number":131,"context_line":"    except Exception:"},{"line_number":132,"context_line":"        LOG.error(_(\"quota_usages table not dropped\"))"},{"line_number":133,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FRiI%3D","line":132,"updated":"2013-10-18 15:49:38.000000000","message":"Shouldn\u0027t \"raise\" be after?","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"},{"author":{"_account_id":6507,"name":"Shturm Svetlana","email":"svetlana.v.shturm@gmail.com","username":"sshturm"},"change_message_id":"18ea66b67ae242d88f588de58daf488fdcdd8bf1","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    try:"},{"line_number":130,"context_line":"        quota_usages.drop()"},{"line_number":131,"context_line":"    except Exception:"},{"line_number":132,"context_line":"        LOG.error(_(\"quota_usages table not dropped\"))"},{"line_number":133,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FKDk%3D","line":132,"in_reply_to":"AAAATH%2F%2FRiI%3D","updated":"2013-10-22 11:10:48.000000000","message":"It is placed on next line.","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"}],"cinder/db/sqlalchemy/migrate_repo/versions/004_volume_type_to_uuid.py":[{"author":{"_account_id":2401,"name":"Victor Rodionov","email":"vito.ordaz@gmail.com","username":"vito-ordaz"},"change_message_id":"a946ced40078d481009d8f21bc2f3051a591c2a3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                fkey.drop()"},{"line_number":47,"context_line":"            except Exception:"},{"line_number":48,"context_line":"                if migrate_engine.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":49,"context_line":"                    pass"},{"line_number":50,"context_line":"                else:"},{"line_number":51,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2FpCA%3D","line":48,"updated":"2013-10-11 21:25:02.000000000","message":"what about?\nif migrate_engine.name !\u003d \u0027sqlite\u0027:\n    raise","commit_id":"0fd1c2f554f718e50a5c1610447b71b194aba184"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"a4e65235fbbeb117af4db1260925ecce30fe83a2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            try:"},{"line_number":46,"context_line":"                fkey.drop()"},{"line_number":47,"context_line":"            except Exception:"},{"line_number":48,"context_line":"                if migrate_engine.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":49,"context_line":"                    pass"},{"line_number":50,"context_line":"                else:"},{"line_number":51,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2Flkw%3D","line":48,"in_reply_to":"AAAATH%2F%2FpCA%3D","updated":"2013-10-14 07:29:04.000000000","message":"it is make sense, unfortunately all migrations are tested at sqlite and some test  (for example, walk_version) will fail in this case.","commit_id":"0fd1c2f554f718e50a5c1610447b71b194aba184"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e9581e530b11bd352f9e0f194e6e1da7abf9f79a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            column.alter(Integer)"},{"line_number":98,"context_line":"        except exc.ProgrammingError:"},{"line_number":99,"context_line":"            LOG.error(\u0027Downgrade column %s, for current dialect not supported\u0027"},{"line_number":100,"context_line":"                      % column.name)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2Fdeg%3D","line":99,"updated":"2013-10-15 21:47:23.000000000","message":"Sound end error message with \u0027.\u0027 .","commit_id":"0fd1c2f554f718e50a5c1610447b71b194aba184"},{"author":{"_account_id":6506,"name":"Anastasia Guzikova","email":"aguzikova@mirantis.com","username":"aguzikova"},"change_message_id":"76d13d3a100c04b43e345d180849ef95d7dd8127","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    meta \u003d MetaData()"},{"line_number":93,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def alter_column_type(column):"},{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            column.alter(Integer)"},{"line_number":98,"context_line":"        except exc.ProgrammingError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FRhQ%3D","line":95,"updated":"2013-10-18 15:49:38.000000000","message":"Wouldn\u0027t be better to use name \"alter_column_type_to_integer\" or \"try_alter_type_to_integer\" or something else that makes sense?","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"},{"author":{"_account_id":6506,"name":"Anastasia Guzikova","email":"aguzikova@mirantis.com","username":"aguzikova"},"change_message_id":"76d13d3a100c04b43e345d180849ef95d7dd8127","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            column.alter(Integer)"},{"line_number":98,"context_line":"        except exc.ProgrammingError:"},{"line_number":99,"context_line":"            LOG.error(\u0027Downgrade column %s, for current dialect not supported.\u0027"},{"line_number":100,"context_line":"                      % column.name)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FRhw%3D","line":99,"updated":"2013-10-18 15:49:38.000000000","message":"\"raise\" is missed, isn\u0027t it?","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"},{"author":{"_account_id":6507,"name":"Shturm Svetlana","email":"svetlana.v.shturm@gmail.com","username":"sshturm"},"change_message_id":"18ea66b67ae242d88f588de58daf488fdcdd8bf1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        try:"},{"line_number":97,"context_line":"            column.alter(Integer)"},{"line_number":98,"context_line":"        except exc.ProgrammingError:"},{"line_number":99,"context_line":"            LOG.error(\u0027Downgrade column %s, for current dialect not supported.\u0027"},{"line_number":100,"context_line":"                      % column.name)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FKC4%3D","line":99,"in_reply_to":"AAAATH%2F%2FRhw%3D","updated":"2013-10-22 11:10:48.000000000","message":"Conversion of Integer to String will always end by success.\nBut after first inserting to this column we can\u0027t do backward change.\nBut this behavior is expected here and we just logging it.\nIntegrity of data is more preferably than changing of column\u0027s type.","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"}],"cinder/db/sqlalchemy/migrate_repo/versions/018_add_qos_specs.py":[{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"f5ffe93cf13f64b0831ae78b021350b8b458c8aa","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    sqlite_backend \u003d False"},{"line_number":34,"context_line":"    if migrate_engine.url.get_dialect().name.startswith(\u0027sqlite\u0027):"},{"line_number":35,"context_line":"        sqlite_backend \u003d True"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    quality_of_service_specs \u003d Table("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FT1Q%3D","line":34,"updated":"2013-09-30 14:13:50.000000000","message":"btw there is more convenient way to perform that check\n\neg. https://review.openstack.org/#/c/47360/7/heat/tests/test_migrations.py line 234","commit_id":"acf05680838b66f0dcef946dd4bfa1d0260bb96a"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"f5ffe93cf13f64b0831ae78b021350b8b458c8aa","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    sqlite_backend \u003d False"},{"line_number":98,"context_line":"    if migrate_engine.url.get_dialect().name.startswith(\u0027sqlite\u0027):"},{"line_number":99,"context_line":"        sqlite_backend \u003d True"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    qos_specs \u003d Table(\u0027quality_of_service_specs\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FT1M%3D","line":98,"updated":"2013-09-30 14:13:50.000000000","message":"ditto","commit_id":"acf05680838b66f0dcef946dd4bfa1d0260bb96a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e9581e530b11bd352f9e0f194e6e1da7abf9f79a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if not sqlite_backend:"},{"line_number":53,"context_line":"            ForeignKeyConstraint("},{"line_number":54,"context_line":"                columns\u003d[quality_of_service_specs.c.specs_id],"},{"line_number":55,"context_line":"                refcolumns\u003d[quality_of_service_specs.c.id]).create()"},{"line_number":56,"context_line":"    except Exception:"},{"line_number":57,"context_line":"        LOG.error(_(\"Table quality_of_service_specs not created!\"))"},{"line_number":58,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2Fdck%3D","line":55,"updated":"2013-10-15 21:47:23.000000000","message":"I am not comfortable making changes in the upgrade path at this point in the release process.  This won\u0027t make it into the initial release for Havana.  If this goes into an RC we then have some people on Havana that will have this change in their DB and others who don\u0027t.  Also, people who upgrade from Havana to Icehouse may or may not get this change.\n\nSo, this needs to go into a new migration script if it is necessary.","commit_id":"0fd1c2f554f718e50a5c1610447b71b194aba184"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"98f977e99491182c69b682b98ad88921073efb76","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if not sqlite_backend:"},{"line_number":53,"context_line":"            ForeignKeyConstraint("},{"line_number":54,"context_line":"                columns\u003d[quality_of_service_specs.c.specs_id],"},{"line_number":55,"context_line":"                refcolumns\u003d[quality_of_service_specs.c.id]).create()"},{"line_number":56,"context_line":"    except Exception:"},{"line_number":57,"context_line":"        LOG.error(_(\"Table quality_of_service_specs not created!\"))"},{"line_number":58,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2Fb%2BQ%3D","line":55,"in_reply_to":"AAAATH%2F%2Fdck%3D","updated":"2013-10-16 07:30:27.000000000","message":"So, I agree with you, that it will give some problems for other users. Unfortunately this fix is necessary there.\nYou can check it in mysql backend in next way: upgrade-\u003edowgrade-\u003eupgrade.\nAs you can see this patch connected with BP: db-sync-models-with-migrations.\nOne of purposes of BP is testing migration at real backends, like: mysql, postgres.\nAs result without current fix testing is not available.","commit_id":"0fd1c2f554f718e50a5c1610447b71b194aba184"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bff350ada60579a51616fb3f9a37017e3befaff4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from migrate import ForeignKeyConstraint"},{"line_number":20,"context_line":"from sqlalchemy import Boolean, Column, DateTime"},{"line_number":21,"context_line":"from sqlalchemy import ForeignKey, MetaData, Integer, String, Table"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FYvM%3D","line":21,"updated":"2013-10-16 20:19:42.000000000","message":"while we\u0027re at it, lets get rid of ForeignKey and Integer import, which are unused.","commit_id":"8bf6705a99b5b2144890ce1547a7371332f1ee0b"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"663200c5b2a747a2f0731cb89b53bb6223db23b8","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from migrate import ForeignKeyConstraint"},{"line_number":20,"context_line":"from sqlalchemy import Boolean, Column, DateTime"},{"line_number":21,"context_line":"from sqlalchemy import ForeignKey, MetaData, Integer, String, Table"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FXUY%3D","line":21,"in_reply_to":"AAAATH%2F%2FYvM%3D","updated":"2013-10-17 07:04:49.000000000","message":"Mike, Thanks. I missed it.","commit_id":"8bf6705a99b5b2144890ce1547a7371332f1ee0b"},{"author":{"_account_id":6506,"name":"Anastasia Guzikova","email":"aguzikova@mirantis.com","username":"aguzikova"},"change_message_id":"76d13d3a100c04b43e345d180849ef95d7dd8127","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    meta \u003d MetaData()"},{"line_number":31,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    sqlite_backend \u003d False"},{"line_number":34,"context_line":"    if migrate_engine.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":35,"context_line":"        sqlite_backend \u003d True"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FRgQ%3D","line":33,"updated":"2013-10-18 15:49:38.000000000","message":"sqlite_backend \u003d migrate_engine.name \u003d\u003d \u0027sqlite\u0027\ndo the same.","commit_id":"e192beaf2377d2aff02b494dd0e78f7069f66d61"}]}
