)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d6067db05dc0390d1c3d2dbfbe250c680792399","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   work for mysql in cases where the index name was too long so it"},{"line_number":14,"context_line":"   could be table-specific and therefore unusable in some mysql cases."},{"line_number":15,"context_line":"   See commit 029ebab for history."},{"line_number":16,"context_line":"2. create_shadow_table was not in oslo-incubator but it\u0027s also no"},{"line_number":17,"context_line":"   longer used in nova after the migration compaction, however, the"},{"line_number":18,"context_line":"   216_havana migration does have it\u0027s own slightly different version"},{"line_number":19,"context_line":"   of this method, so I\u0027ve left in check_shadow_table for unit tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAVn%2F%2FCB4%3D","line":16,"updated":"2014-03-10 15:11:07.000000000","message":"To be safe for future migrations, I\u0027m going to keep create_shadow_table in nova for now even though nothing is currently using it, but there could be future migrations that need it.","commit_id":"fdaa36aa2c0d908ffa9afdf10c36a053c78722ce"}],"nova/db/sqlalchemy/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e24cba2ba4c5d89cf3855d5d3a279ec327e9118","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    new_table.rename(table_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"def drop_unique_constraint(migrate_engine, table_name, uc_name, *columns,"},{"line_number":185,"context_line":"                           **col_name_col_instance):"},{"line_number":186,"context_line":"    \"\"\"This method drops UC from table and works for mysql, postgresql and"},{"line_number":187,"context_line":"    sqlite. In mysql and postgresql we are able to use \"alter table\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FhPE%3D","side":"PARENT","line":184,"updated":"2014-04-14 01:25:11.000000000","message":"Crap, this is different from how oslo\u0027s db utils handles this, see here:\n\nhttp://logs.openstack.org/47/69047/19/check/gate-nova-python27/ed044cc/testr_results.html.gz\n\nThey don\u0027t drop and recreate the table like the nova utils does, so this needs to stay or oslo db utils needs to be updated to match what nova is doing today.\n\nhttps://github.com/openstack/oslo-incubator/blob/master/openstack/common/db/sqlalchemy/utils.py#L307","commit_id":"82b07d039283690371d19ef37ebb43f9b8c08093"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0a4e2461613c5cbad87332d23369a6783de73d0e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    new_table.rename(table_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"def drop_unique_constraint(migrate_engine, table_name, uc_name, *columns,"},{"line_number":185,"context_line":"                           **col_name_col_instance):"},{"line_number":186,"context_line":"    \"\"\"This method drops UC from table and works for mysql, postgresql and"},{"line_number":187,"context_line":"    sqlite. In mysql and postgresql we are able to use \"alter table\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FSJk%3D","side":"PARENT","line":184,"in_reply_to":"AAAAW3%2F%2FhPE%3D","updated":"2014-04-15 15:26:37.000000000","message":"Nevermind, handled here: \n\nhttps://review.openstack.org/#/c/31016/\n\nSo if nova wants to do migrations with unique constraints it needs to monkey-patch sqlalchemy-migrate for now.","commit_id":"82b07d039283690371d19ef37ebb43f9b8c08093"}],"nova/tests/db/test_migration_utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"664eacef35012c34d318c70745543edaab7c9c8d","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            test_table.drop()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    # TODO(mriedem): Move this to oslo-incubator."},{"line_number":78,"context_line":"    def test_insert_from_select(self):"},{"line_number":79,"context_line":"        insert_table_name \u003d \"__test_insert_to_table__\""},{"line_number":80,"context_line":"        select_table_name \u003d \"__test_select_from_table__\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FK60%3D","line":77,"updated":"2014-03-07 21:50:06.000000000","message":"The oslo patch is here:\n\nhttps://review.openstack.org/#/c/79086/","commit_id":"f2ee3acbf9ca507a0a4cc3d1b325c7691445811e"}],"nova/tests/db/test_migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ffaeb4117f932573d727dae84397c341239826d","unresolved":false,"context_lines":[{"line_number":780,"context_line":"                          sqlalchemyutils.get_table, engine, \u0027bm_pxe_ips\u0027)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"    def _post_downgrade_008(self, engine):"},{"line_number":783,"context_line":"        sqlalchemyutils.get_table(engine, \u0027bm_pxe_ips\u0027)"},{"line_number":784,"context_line":""},{"line_number":785,"context_line":"    def _pre_upgrade_010(self, engine):"},{"line_number":786,"context_line":"        bm_nodes \u003d sqlalchemyutils.get_table(engine, \u0027bm_nodes\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FBkw%3D","line":783,"updated":"2014-03-10 16:14:19.000000000","message":"What is this testing?","commit_id":"fdaa36aa2c0d908ffa9afdf10c36a053c78722ce"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d0a6ab2d2b6d8d4e822ebb0299a58ddf5122484a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"def _have_mysql(user, passwd, database):"},{"line_number":69,"context_line":"    present \u003d os.environ.get(\u0027NOVA_TEST_MYSQL_PRESENT\u0027)"},{"line_number":70,"context_line":"    if present is None:"},{"line_number":71,"context_line":"        return oslodbutils.is_backend_avail(\u0027mysql+mysqldb\u0027, database,"},{"line_number":72,"context_line":"                                            user, passwd)"},{"line_number":73,"context_line":"    return present.lower() in (\u0027\u0027, \u0027true\u0027)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FiPk%3D","line":71,"updated":"2014-04-13 15:10:10.000000000","message":"mysqldb and psycopg2 are default DB API drivers for mysql and postgresql dialects appropriately, so it\u0027s not really needed to be explicit here. There is nothing wrong on doing so, on the other hand.","commit_id":"1a8dd2487d95327b97ebf8e8b4a27420d1432fd4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7122f737563fd470b3908f39bf34454dea6ea596","unresolved":false,"context_lines":[{"line_number":68,"context_line":"def _have_mysql(user, passwd, database):"},{"line_number":69,"context_line":"    present \u003d os.environ.get(\u0027NOVA_TEST_MYSQL_PRESENT\u0027)"},{"line_number":70,"context_line":"    if present is None:"},{"line_number":71,"context_line":"        return oslodbutils.is_backend_avail(\u0027mysql+mysqldb\u0027, database,"},{"line_number":72,"context_line":"                                            user, passwd)"},{"line_number":73,"context_line":"    return present.lower() in (\u0027\u0027, \u0027true\u0027)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FiIg%3D","line":71,"in_reply_to":"AAAAW3%2F%2FiPk%3D","updated":"2014-04-13 15:45:58.000000000","message":"Yeah, this is just how _get_connect_string worked before so left it this way to avoid any kind of regression.","commit_id":"1a8dd2487d95327b97ebf8e8b4a27420d1432fd4"}]}
