)]}'
{"keystone/common/sql/migration_helpers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"6eb6e318600b3c9cc06014bd0366e44c852f34a4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # * Make sure the engine is InnoDB"},{"line_number":148,"context_line":"        engine.execute(\u0027ALTER TABLE region Engine\u003dInnoDB\u0027)"},{"line_number":149,"context_line":"        # * Make sure the character set is utf8"},{"line_number":150,"context_line":"        engine.execute(\u0027ALTER TABLE region CONVERT TO CHARACTER SET utf8\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"def sync_database_to_version(extension\u003dNone, version\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_24922a9f","line":150,"updated":"2014-06-27 01:09:36.000000000","message":"Are these no-ops if it\u0027s already set properly? Maybe that doesn\u0027t matter because this will only be called once?","commit_id":"ccc0da3b91483f287f780f0f2943a6c7940b707c"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"00386674e3d0c5b0e2795cf82e7540ea2d7cafe4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # * Make sure the engine is InnoDB"},{"line_number":148,"context_line":"        engine.execute(\u0027ALTER TABLE region Engine\u003dInnoDB\u0027)"},{"line_number":149,"context_line":"        # * Make sure the character set is utf8"},{"line_number":150,"context_line":"        engine.execute(\u0027ALTER TABLE region CONVERT TO CHARACTER SET utf8\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"def sync_database_to_version(extension\u003dNone, version\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_98734915","line":150,"in_reply_to":"1ae5cdf2_24922a9f","updated":"2014-06-27 14:54:03.000000000","message":"They should be. But you shouldn\u0027t hit this case unless something very bad has happened (and most of the time afaict that would be the sanity check failing because this is broken)","commit_id":"ccc0da3b91483f287f780f0f2943a6c7940b707c"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"6eb6e318600b3c9cc06014bd0366e44c852f34a4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    try:"},{"line_number":180,"context_line":"        migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":181,"context_line":"                          init_version\u003dinit_version)"},{"line_number":182,"context_line":"    except ValueError:"},{"line_number":183,"context_line":"        if (not extension and engine.name \u003d\u003d \u0027mysql\u0027 and"},{"line_number":184,"context_line":"                six.text_type(get_db_version()) \u003d\u003d \u002737\u0027):"},{"line_number":185,"context_line":"            # NOTE(morganfainberg): The region table was not initially"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_44e2d630","line":182,"updated":"2014-06-27 01:09:36.000000000","message":"Can you put a short comment here about why the ValueError is thrown when the old version 37 was applied?","commit_id":"ccc0da3b91483f287f780f0f2943a6c7940b707c"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"00386674e3d0c5b0e2795cf82e7540ea2d7cafe4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    try:"},{"line_number":180,"context_line":"        migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":181,"context_line":"                          init_version\u003dinit_version)"},{"line_number":182,"context_line":"    except ValueError:"},{"line_number":183,"context_line":"        if (not extension and engine.name \u003d\u003d \u0027mysql\u0027 and"},{"line_number":184,"context_line":"                six.text_type(get_db_version()) \u003d\u003d \u002737\u0027):"},{"line_number":185,"context_line":"            # NOTE(morganfainberg): The region table was not initially"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_984a69ab","line":182,"in_reply_to":"1ae5cdf2_44e2d630","updated":"2014-06-27 14:54:03.000000000","message":"Sure. I\u0027ll move the comment below up and add it is the sanity check","commit_id":"ccc0da3b91483f287f780f0f2943a6c7940b707c"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"92ddf44e957d17bc89eb811498e53c5dbee423a4","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            # Try the migration a second time now that we\u0027ve done the"},{"line_number":193,"context_line":"            # un-wedge work."},{"line_number":194,"context_line":"            migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":195,"context_line":"                              init_version\u003dinit_version)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            raise"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_00bb3fe5","line":195,"updated":"2014-06-27 17:10:10.000000000","message":"Not as pretty as I had hope:)\n\nWhat about retry with a loop around try-except, so that migration.db_sync() at line 180 gets reused.  Utilize a retry counter to keep track of things.","commit_id":"ccc0da3b91483f287f780f0f2943a6c7940b707c"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"7f569ec79f7de04bc88866c3f5650a8d7027a22c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            # Try the migration a second time now that we\u0027ve done the"},{"line_number":193,"context_line":"            # un-wedge work."},{"line_number":194,"context_line":"            migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":195,"context_line":"                              init_version\u003dinit_version)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            raise"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_2d5e45ea","line":195,"updated":"2014-06-30 17:14:42.000000000","message":"What if an exception is raised here?  Who is responsible for handling it?","commit_id":"c714517e7db9a02769e56ff827b7648916eeeda7"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"83da55f2c5f574e30cff04c9b0060cb9f15496d9","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            # Try the migration a second time now that we\u0027ve done the"},{"line_number":193,"context_line":"            # un-wedge work."},{"line_number":194,"context_line":"            migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":195,"context_line":"                              init_version\u003dinit_version)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            raise"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_fef5c7cb","line":195,"in_reply_to":"baada198_2d5e45ea","updated":"2014-07-01 00:19:41.000000000","message":"The operator will need to take corrective actions or need to come and bug the ML/IRC about it. The error would be, in this case, outside of migration 37 issue corrected here and would have been raised anyway (if they hadn\u0027t hit the innodb/charset issue going 37-\u003e38)","commit_id":"c714517e7db9a02769e56ff827b7648916eeeda7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8cee2d053712f155399f28b640679da43a4a3b6c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":195,"context_line":"                              init_version\u003dinit_version)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            raise"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_b2e63015","line":197,"updated":"2014-06-30 16:46:42.000000000","message":"This will raise information from the original exception, right? Just checking in case there is anything else we can add here to help the user.","commit_id":"c714517e7db9a02769e56ff827b7648916eeeda7"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"83da55f2c5f574e30cff04c9b0060cb9f15496d9","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            migration.db_sync(engine, abs_path, version\u003dversion,"},{"line_number":195,"context_line":"                              init_version\u003dinit_version)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            raise"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_3e69ff8b","line":197,"in_reply_to":"baada198_b2e63015","updated":"2014-07-01 00:19:41.000000000","message":"This should.","commit_id":"c714517e7db9a02769e56ff827b7648916eeeda7"}]}
