)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"cabd4f595705e36cef4fdf5bd8f9b77fb6f3bfc0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The patch make sure the index \u0027instance_type_id\u0027 is existed after adding UC."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib15dc87aa8af3f0f8070693283da77ee66fd42c8"},{"line_number":16,"context_line":"close-bug: #1239484"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2B3SE%3D","line":16,"updated":"2013-11-19 08:09:10.000000000","message":"nit: this should be \"Closes-Bug: #1239484\" and put behind the change id","commit_id":"a8961da041d887c368add6a01b607d3a74cdf42e"},{"author":{"_account_id":1678,"name":"Tiantian Gao","email":"gtt116@gmail.com","username":"gtt116"},"change_message_id":"bcdca4ec5f124bd1c39946608a192ea97ee62e72","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The patch make sure the index \u0027instance_type_id\u0027 is existed after adding UC."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib15dc87aa8af3f0f8070693283da77ee66fd42c8"},{"line_number":16,"context_line":"close-bug: #1239484"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2B3RI%3D","line":16,"in_reply_to":"AAAATn%2F%2B3SE%3D","updated":"2013-11-19 08:15:23.000000000","message":"Done","commit_id":"a8961da041d887c368add6a01b607d3a74cdf42e"}],"nova/db/sqlalchemy/migrate_repo/versions/174_add_instance_type_access_uc.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"cabd4f595705e36cef4fdf5bd8f9b77fb6f3bfc0","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    #NOTE(gtt): When upgrade from folsom, instance_type_id index lost"},{"line_number":40,"context_line":"    #See bug#1239484"},{"line_number":41,"context_line":"    t \u003d Table(\u0027instance_type_projects\u0027, meta, autoload\u003dTrue)"},{"line_number":42,"context_line":"    i \u003d Index(\u0027instance_type_id\u0027, t.c.instance_type_id)"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        i.create(migrate_engine)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B3Rs%3D","line":41,"updated":"2013-11-19 08:09:10.000000000","message":"nit: the table has already been reflected, you can just use one from line 32","commit_id":"a8961da041d887c368add6a01b607d3a74cdf42e"},{"author":{"_account_id":1678,"name":"Tiantian Gao","email":"gtt116@gmail.com","username":"gtt116"},"change_message_id":"bcdca4ec5f124bd1c39946608a192ea97ee62e72","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    #NOTE(gtt): When upgrade from folsom, instance_type_id index lost"},{"line_number":40,"context_line":"    #See bug#1239484"},{"line_number":41,"context_line":"    t \u003d Table(\u0027instance_type_projects\u0027, meta, autoload\u003dTrue)"},{"line_number":42,"context_line":"    i \u003d Index(\u0027instance_type_id\u0027, t.c.instance_type_id)"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        i.create(migrate_engine)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B3RQ%3D","line":41,"in_reply_to":"AAAATn%2F%2B3Rs%3D","updated":"2013-11-19 08:15:23.000000000","message":"Thanks Roman, My fault!","commit_id":"a8961da041d887c368add6a01b607d3a74cdf42e"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"5a81057a9a2da09b989350c34470d332ad9a5320","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    #NOTE(gtt): When upgrade from folsom, instance_type_id index lost"},{"line_number":40,"context_line":"    #See bug#1239484"},{"line_number":41,"context_line":"    i \u003d Index(\u0027instance_type_id\u0027, t.c.instance_type_id)"},{"line_number":42,"context_line":"    try:"},{"line_number":43,"context_line":"        i.create(migrate_engine)"},{"line_number":44,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0ig%3D","line":41,"updated":"2013-11-19 18:17:19.000000000","message":"Oops, this breaks migration 201 on SQLite. We should probably just skip SQLite here.","commit_id":"8bd8c591fdda8d6624045482aeb10e90866e7099"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"a3e64d2e24753dbb741f54cff35cfa7701edea4c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    uc.create()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    #NOTE(gtt): When upgrade from folsom, instance_type_id index lost"},{"line_number":40,"context_line":"    #See bug#1239484"},{"line_number":41,"context_line":"    if migrate_engine.name \u003d\u003d \"sqlite\":"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtB0%3D","line":40,"updated":"2013-11-21 10:37:16.000000000","message":"nit: you could add a note, that we skip SQLite here because for this backend this index is created in migration 201","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"},{"author":{"_account_id":1678,"name":"Tiantian Gao","email":"gtt116@gmail.com","username":"gtt116"},"change_message_id":"579bf34263fefe457408241fd03a452dfa2c87af","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    uc.create()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    #NOTE(gtt): When upgrade from folsom, instance_type_id index lost"},{"line_number":40,"context_line":"    #See bug#1239484"},{"line_number":41,"context_line":"    if migrate_engine.name \u003d\u003d \"sqlite\":"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Bpck%3D","line":40,"in_reply_to":"AAAATn%2F%2BtB0%3D","updated":"2013-11-22 01:45:17.000000000","message":"Done","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"}],"nova/tests/db/test_migrations.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"a3e64d2e24753dbb741f54cff35cfa7701edea4c","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"                          it_projects.insert().execute,"},{"line_number":1421,"context_line":"                          dict(instance_type\u003d31, project_id\u003d\u0027pr1\u0027, deleted\u003d0))"},{"line_number":1422,"context_line":"        # Check indexes exist"},{"line_number":1423,"context_line":"        if engine.name \u003d\u003d \u0027mysql\u0027 or engine.name \u003d\u003d \u0027postgresql\u0027:"},{"line_number":1424,"context_line":"            current_indexes \u003d [(i.name, tuple(i.columns.keys()))"},{"line_number":1425,"context_line":"                               for i in it_projects.indexes]"},{"line_number":1426,"context_line":"            current_indexes \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtE8%3D","line":1423,"updated":"2013-11-21 10:37:16.000000000","message":"nit: we\u0027d better do \"if engine.name !\u003d \u0027sqlite\u0027: \" instead","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"},{"author":{"_account_id":1678,"name":"Tiantian Gao","email":"gtt116@gmail.com","username":"gtt116"},"change_message_id":"579bf34263fefe457408241fd03a452dfa2c87af","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"                          it_projects.insert().execute,"},{"line_number":1421,"context_line":"                          dict(instance_type\u003d31, project_id\u003d\u0027pr1\u0027, deleted\u003d0))"},{"line_number":1422,"context_line":"        # Check indexes exist"},{"line_number":1423,"context_line":"        if engine.name \u003d\u003d \u0027mysql\u0027 or engine.name \u003d\u003d \u0027postgresql\u0027:"},{"line_number":1424,"context_line":"            current_indexes \u003d [(i.name, tuple(i.columns.keys()))"},{"line_number":1425,"context_line":"                               for i in it_projects.indexes]"},{"line_number":1426,"context_line":"            current_indexes \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Bpcg%3D","line":1423,"in_reply_to":"AAAATn%2F%2BtE8%3D","updated":"2013-11-22 01:45:17.000000000","message":"Done","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"a3e64d2e24753dbb741f54cff35cfa7701edea4c","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"                          dict(instance_type\u003d31, project_id\u003d\u0027pr1\u0027, deleted\u003d0))"},{"line_number":1422,"context_line":"        # Check indexes exist"},{"line_number":1423,"context_line":"        if engine.name \u003d\u003d \u0027mysql\u0027 or engine.name \u003d\u003d \u0027postgresql\u0027:"},{"line_number":1424,"context_line":"            current_indexes \u003d [(i.name, tuple(i.columns.keys()))"},{"line_number":1425,"context_line":"                               for i in it_projects.indexes]"},{"line_number":1426,"context_line":"            current_indexes \u003d ("},{"line_number":1427,"context_line":"                [(idx[0], sorted(idx[1])) for idx in current_indexes]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtB4%3D","line":1424,"updated":"2013-11-21 10:37:16.000000000","message":"nit: you could do sorted() on keys here instead of going through the indexes again on the next line","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"},{"author":{"_account_id":1678,"name":"Tiantian Gao","email":"gtt116@gmail.com","username":"gtt116"},"change_message_id":"579bf34263fefe457408241fd03a452dfa2c87af","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"                          dict(instance_type\u003d31, project_id\u003d\u0027pr1\u0027, deleted\u003d0))"},{"line_number":1422,"context_line":"        # Check indexes exist"},{"line_number":1423,"context_line":"        if engine.name \u003d\u003d \u0027mysql\u0027 or engine.name \u003d\u003d \u0027postgresql\u0027:"},{"line_number":1424,"context_line":"            current_indexes \u003d [(i.name, tuple(i.columns.keys()))"},{"line_number":1425,"context_line":"                               for i in it_projects.indexes]"},{"line_number":1426,"context_line":"            current_indexes \u003d ("},{"line_number":1427,"context_line":"                [(idx[0], sorted(idx[1])) for idx in current_indexes]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Bpcc%3D","line":1424,"in_reply_to":"AAAATn%2F%2BtB4%3D","updated":"2013-11-22 01:45:17.000000000","message":"Done","commit_id":"175fce17df5ccd4faea878871b6884d078dbae45"}]}
