)]}'
{"glance/db/sqlalchemy/migrate_repo/versions/028_rename_unique_constraints.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"1c96dfd4f8ec9cfefd2be3dbd387c4e2ffa04756","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        for old_uc_name, columns in UC_DATA[table_name]:"},{"line_number":45,"context_line":"            if old_uc_name \u003d\u003d \"ix_image_properties_image_id_name\" \\"},{"line_number":46,"context_line":"               and migrate_engine.name \u003d\u003d \"postgresql\":"},{"line_number":47,"context_line":"                # one UC name different in postgresql so we should get this"},{"line_number":48,"context_line":"                # name and drop UC using it"},{"line_number":49,"context_line":"                query \u003d \"\"\""},{"line_number":50,"context_line":"                    SELECT conname FROM pg_constraint WHERE"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FpQQ%3D","line":47,"updated":"2013-09-01 19:50:15.000000000","message":"NOTE()","commit_id":"96d863c220843b649fc153b2eecbaf0d94625068"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"d6fe683d7a46db9ff190ca1f9fd49baa7d9d388d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        for old_uc_name, columns in UC_DATA[table_name]:"},{"line_number":45,"context_line":"            if old_uc_name \u003d\u003d \"ix_image_properties_image_id_name\" \\"},{"line_number":46,"context_line":"               and migrate_engine.name \u003d\u003d \"postgresql\":"},{"line_number":47,"context_line":"                # one UC name different in postgresql so we should get this"},{"line_number":48,"context_line":"                # name and drop UC using it"},{"line_number":49,"context_line":"                query \u003d \"\"\""},{"line_number":50,"context_line":"                    SELECT conname FROM pg_constraint WHERE"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FoYw%3D","line":47,"in_reply_to":"AAAASn%2F%2FpQQ%3D","updated":"2013-09-02 13:58:17.000000000","message":"Done","commit_id":"96d863c220843b649fc153b2eecbaf0d94625068"}],"glance/db/sqlalchemy/migrate_repo/versions/033_rename_unique_constraints.py":[{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"60685a7cad25d4e5c731f4f49b395bcbd016c1b4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# @author: Victor Sergeyev, Mirantis Inc."},{"line_number":17,"context_line":"#"},{"line_number":18,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from migrate.changeset import UniqueConstraint"},{"line_number":21,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2Blm4%3D","line":19,"updated":"2014-01-24 05:17:03.000000000","message":"In https://review.openstack.org/#/c/66504/, I removed vim tag.\n\nI am sorry, but please delete vim tag.\n\nThanks","commit_id":"8ba46b78d755ca105426a1815670ff3fbc9f3805"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"f5b94891ead4477dce7928dace1f4fb15c28e922","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# @author: Victor Sergeyev, Mirantis Inc."},{"line_number":17,"context_line":"#"},{"line_number":18,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from migrate.changeset import UniqueConstraint"},{"line_number":21,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2Bkzw%3D","line":19,"in_reply_to":"AAAAUH%2F%2Blm4%3D","updated":"2014-01-24 08:39:37.000000000","message":"No problem, fixed.","commit_id":"8ba46b78d755ca105426a1815670ff3fbc9f3805"}],"glance/db/sqlalchemy/models.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"1c96dfd4f8ec9cfefd2be3dbd387c4e2ffa04756","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    __tablename__ \u003d \u0027image_properties\u0027"},{"line_number":111,"context_line":"    __table_args__ \u003d (UniqueConstraint(\u0027image_id\u0027, \u0027name\u0027,"},{"line_number":112,"context_line":"                      name\u003d\u0027uniq_image_properties0image_id0name\u0027),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":115,"context_line":"    image_id \u003d Column(String(36), ForeignKey(\u0027images.id\u0027),"},{"line_number":116,"context_line":"                      nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FpQE%3D","line":113,"updated":"2013-09-01 19:50:15.000000000","message":"you are no longer passing in the final positional argument {}.  Is this intentional and do we know why that was used before?","commit_id":"96d863c220843b649fc153b2eecbaf0d94625068"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"d6fe683d7a46db9ff190ca1f9fd49baa7d9d388d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    __tablename__ \u003d \u0027image_properties\u0027"},{"line_number":111,"context_line":"    __table_args__ \u003d (UniqueConstraint(\u0027image_id\u0027, \u0027name\u0027,"},{"line_number":112,"context_line":"                      name\u003d\u0027uniq_image_properties0image_id0name\u0027),)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":115,"context_line":"    image_id \u003d Column(String(36), ForeignKey(\u0027images.id\u0027),"},{"line_number":116,"context_line":"                      nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FnNg%3D","line":113,"in_reply_to":"AAAASn%2F%2FpQE%3D","updated":"2013-09-02 13:58:17.000000000","message":"This argument was removed in another patch. Rebased current changes","commit_id":"96d863c220843b649fc153b2eecbaf0d94625068"}],"glance/tests/unit/test_migrations.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"372fa0503cd725fb3821b505502a0a3c52caad8e","unresolved":false,"context_lines":[{"line_number":1063,"context_line":"                # for SQLite using sqlalchemy.Table(). So we will get"},{"line_number":1064,"context_line":"                # table info from `sqlite_master` table."},{"line_number":1065,"context_line":"                regexp \u003d \"CONSTRAINT (\\w+) UNIQUE \\(([^\\)]+)\\)\""},{"line_number":1066,"context_line":"                sql_data \u003d engine.execute("},{"line_number":1067,"context_line":"                    \"\"\""},{"line_number":1068,"context_line":"                        SELECT sql"},{"line_number":1069,"context_line":"                        FROM"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BsAA%3D","line":1066,"updated":"2013-11-21 14:44:23.000000000","message":"why plain sql?","commit_id":"a41213d394c582337666a363572b3c6f081fbfb8"}]}
