)]}'
{"cinder/db/api.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ddcaa707b01e0379a7b7fac37355ec8c8df5dd68","unresolved":false,"context_lines":[{"line_number":1059,"context_line":""},{"line_number":1060,"context_line":"    :param max_count: The maximum number of messages to consider in"},{"line_number":1061,"context_line":"                      this run."},{"line_number":1062,"context_line":"    :param force: Boolean whether or not to force migration of"},{"line_number":1063,"context_line":"                  messages that are performing another operation."},{"line_number":1064,"context_line":"    :returns: number of messages needing migration, number of"},{"line_number":1065,"context_line":"              messages migrated (both will always be less than"},{"line_number":1066,"context_line":"              max_count)."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_86300503","line":1063,"range":{"start_line":1062,"start_character":0,"end_line":1063,"end_character":65},"updated":"2016-06-21 13:50:15.000000000","message":"Well, this isn\u0027t used in this migration I think, so you can just say \"ignored\" here.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"e35e6ac378e4c0c524b74c4780634abe2ac2ccf8","unresolved":false,"context_lines":[{"line_number":1059,"context_line":""},{"line_number":1060,"context_line":"    :param max_count: The maximum number of messages to consider in"},{"line_number":1061,"context_line":"                      this run."},{"line_number":1062,"context_line":"    :param force: Boolean whether or not to force migration of"},{"line_number":1063,"context_line":"                  messages that are performing another operation."},{"line_number":1064,"context_line":"    :returns: number of messages needing migration, number of"},{"line_number":1065,"context_line":"              messages migrated (both will always be less than"},{"line_number":1066,"context_line":"              max_count)."}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_c0040ec8","line":1063,"range":{"start_line":1062,"start_character":0,"end_line":1063,"end_character":65},"in_reply_to":"5a9d85d2_86300503","updated":"2016-06-21 17:19:10.000000000","message":"Done","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ddcaa707b01e0379a7b7fac37355ec8c8df5dd68","unresolved":false,"context_lines":[{"line_number":4280,"context_line":"    prefix \u003d \"VOLUME_\""},{"line_number":4281,"context_line":"    session \u003d get_session()"},{"line_number":4282,"context_line":"    with session.begin():"},{"line_number":4283,"context_line":"        messages \u003d model_query(context, models.Message.id, session\u003dsession).\\"},{"line_number":4284,"context_line":"            filter(~models.Message.event_id.like(prefix + \u0027%\u0027)).\\"},{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_c1ff97ff","line":4284,"range":{"start_line":4283,"start_character":0,"end_line":4284,"end_character":65},"updated":"2016-06-21 13:50:15.000000000","message":"It\u0027s preferred to wrap lines using parentheses instead of backslashes.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"e35e6ac378e4c0c524b74c4780634abe2ac2ccf8","unresolved":false,"context_lines":[{"line_number":4280,"context_line":"    prefix \u003d \"VOLUME_\""},{"line_number":4281,"context_line":"    session \u003d get_session()"},{"line_number":4282,"context_line":"    with session.begin():"},{"line_number":4283,"context_line":"        messages \u003d model_query(context, models.Message.id, session\u003dsession).\\"},{"line_number":4284,"context_line":"            filter(~models.Message.event_id.like(prefix + \u0027%\u0027)).\\"},{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_00261668","line":4284,"range":{"start_line":4283,"start_character":0,"end_line":4284,"end_character":65},"in_reply_to":"5a9d85d2_c1ff97ff","updated":"2016-06-21 17:19:10.000000000","message":"Done","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ddcaa707b01e0379a7b7fac37355ec8c8df5dd68","unresolved":false,"context_lines":[{"line_number":4282,"context_line":"    with session.begin():"},{"line_number":4283,"context_line":"        messages \u003d model_query(context, models.Message.id, session\u003dsession).\\"},{"line_number":4284,"context_line":"            filter(~models.Message.event_id.like(prefix + \u0027%\u0027)).\\"},{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_615ea313","line":4285,"range":{"start_line":4285,"start_character":29,"end_line":4285,"end_character":44},"updated":"2016-06-21 13:50:15.000000000","message":"Do we need that? Is there a way message will be modified while we\u0027re running this? I can notice that Nova doesn\u0027t use SELECT FOR UPDATE in online data migrations.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"e35e6ac378e4c0c524b74c4780634abe2ac2ccf8","unresolved":false,"context_lines":[{"line_number":4282,"context_line":"    with session.begin():"},{"line_number":4283,"context_line":"        messages \u003d model_query(context, models.Message.id, session\u003dsession).\\"},{"line_number":4284,"context_line":"            filter(~models.Message.event_id.like(prefix + \u0027%\u0027)).\\"},{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_e02aea2b","line":4285,"range":{"start_line":4285,"start_character":29,"end_line":4285,"end_character":44},"in_reply_to":"5a9d85d2_615ea313","updated":"2016-06-21 17:19:10.000000000","message":"Done","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ddcaa707b01e0379a7b7fac37355ec8c8df5dd68","unresolved":false,"context_lines":[{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4289,"context_line":"            filter(models.Message.id.in_(messages.as_scalar())).\\"},{"line_number":4290,"context_line":"            update({\u0027event_id\u0027: prefix + models.Message.event_id},"},{"line_number":4291,"context_line":"                   synchronize_session\u003dFalse)"},{"line_number":4292,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_e10c533d","line":4289,"range":{"start_line":4288,"start_character":0,"end_line":4289,"end_character":65},"updated":"2016-06-21 13:50:15.000000000","message":"Same here.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"e35e6ac378e4c0c524b74c4780634abe2ac2ccf8","unresolved":false,"context_lines":[{"line_number":4285,"context_line":"            limit(max_count).with_for_update()"},{"line_number":4286,"context_line":""},{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4289,"context_line":"            filter(models.Message.id.in_(messages.as_scalar())).\\"},{"line_number":4290,"context_line":"            update({\u0027event_id\u0027: prefix + models.Message.event_id},"},{"line_number":4291,"context_line":"                   synchronize_session\u003dFalse)"},{"line_number":4292,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_201d1210","line":4289,"range":{"start_line":4288,"start_character":0,"end_line":4289,"end_character":65},"in_reply_to":"5a9d85d2_e10c533d","updated":"2016-06-21 17:19:10.000000000","message":"Done","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ddcaa707b01e0379a7b7fac37355ec8c8df5dd68","unresolved":false,"context_lines":[{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4289,"context_line":"            filter(models.Message.id.in_(messages.as_scalar())).\\"},{"line_number":4290,"context_line":"            update({\u0027event_id\u0027: prefix + models.Message.event_id},"},{"line_number":4291,"context_line":"                   synchronize_session\u003dFalse)"},{"line_number":4292,"context_line":""},{"line_number":4293,"context_line":"    return count_all, count_hit"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_c1a157ab","line":4290,"range":{"start_line":4290,"start_character":32,"end_line":4290,"end_character":64},"updated":"2016-06-21 13:50:15.000000000","message":"Wait, how will this work? SQLAlchemy is able to figure out that it needs to concatenate prefix to column value? In that case you most certainly won\u0027t need with_for_update, but I doubt it\u0027s the case here.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"3af236c9e07fb4246bedbd7797e1f33ac360c946","unresolved":false,"context_lines":[{"line_number":4287,"context_line":"        count_all \u003d messages.count()"},{"line_number":4288,"context_line":"        count_hit \u003d model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4289,"context_line":"            filter(models.Message.id.in_(messages.as_scalar())).\\"},{"line_number":4290,"context_line":"            update({\u0027event_id\u0027: prefix + models.Message.event_id},"},{"line_number":4291,"context_line":"                   synchronize_session\u003dFalse)"},{"line_number":4292,"context_line":""},{"line_number":4293,"context_line":"    return count_all, count_hit"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_40c49e91","line":4290,"range":{"start_line":4290,"start_character":32,"end_line":4290,"end_character":64},"in_reply_to":"5a9d85d2_c1a157ab","updated":"2016-06-21 17:16:25.000000000","message":"yeah sqlalchemy understands this, much more efficient because it lets the db handle it. I think you are definitely right that I dont need to for update.","commit_id":"b3bef7e1bd53867746aff2403f94d698db3e5c34"}],"cinder/db/sqlalchemy/migrate_repo/versions/076_add_message_event_id_prefix.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"b39155212b018a9f93d97b6f28a04139934276bf","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":23,"context_line":"    PREFIX \u003d \"VOLUME_\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    messages \u003d Table(\u0027messages\u0027, meta, autoload\u003dTrue)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    messages.update().values("},{"line_number":28,"context_line":"        event_id\u003dPREFIX + messages.c.event_id).execute()"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_1bcf7980","line":25,"updated":"2016-05-06 19:42:56.000000000","message":"Why this is required?\nI dont think we need to add this file here as we are changing things within single release..\nUnless untill something is released, we need not to add upgrade script.\nAlso, changes are very less which are not going to hamper any functionality as such only eventID names.\nEven these names will be deleted after elapsed time reached..I am writing background process for same.\n\nLooking for opinion on it.","commit_id":"f3393015cca58be754b95eea72ff0639169b53f3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"8811119c8512d0b108693f3ce46dc1ffbdcd6c54","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    messages \u003d Table(\u0027messages\u0027, meta, autoload\u003dTrue)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    messages.update().values("},{"line_number":29,"context_line":"        event_id\u003dPREFIX + messages.c.event_id).where("},{"line_number":30,"context_line":"            ~messages.c.event_id.like(PREFIX + \u0027%\u0027)).execute()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_58ce26b5","line":30,"range":{"start_line":28,"start_character":0,"end_line":30,"end_character":62},"updated":"2016-05-24 14:34:46.000000000","message":"Awww, this one is harsh… We can have a lot of messages by then and such update may block the table for a lot of time (especially with LIKE operator), which may cause downtime when upgrading. This needs at least a release note added to signal that in case you\u0027ve already upgraded to something between adding messages and here, you need to plan for that (either by making sure you don\u0027t have a ton of data in messages table, or planning downtime).\n\nPlease mention commit hashes and the fact that direct Mitaka-\u003eNewton upgrade won\u0027t be affected.","commit_id":"ce6eedf38380b15bb41519caaf296d7aa59aa520"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"16f02a8e92f3e8b00df255c7a6341c1b59cdb278","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    messages \u003d Table(\u0027messages\u0027, meta, autoload\u003dTrue)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    messages.update().values("},{"line_number":29,"context_line":"        event_id\u003dPREFIX + messages.c.event_id).where("},{"line_number":30,"context_line":"            ~messages.c.event_id.like(PREFIX + \u0027%\u0027)).execute()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_daa9c125","line":30,"range":{"start_line":28,"start_character":0,"end_line":30,"end_character":62},"in_reply_to":"bab6814e_58ce26b5","updated":"2016-06-08 18:59:51.000000000","message":"Will do, I plan to pick up all the messages stuff again next week when I\u0027m a free agent. This makes sense and perhaps we can just do the small chunk method :)","commit_id":"ce6eedf38380b15bb41519caaf296d7aa59aa520"}],"cinder/message/defined_messages.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"102f12b2df0e2d235115a2a887052252b02bec0f","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def get_message_text(event_id):"},{"line_number":47,"context_line":"    if not event_id.startswith(\"VOLUME_\"):"},{"line_number":48,"context_line":"        event_id \u003d \"VOLUME_\" + event_id"},{"line_number":49,"context_line":"    return event_id_message_map[event_id]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_1875b4f8","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":39},"updated":"2016-06-22 14:02:38.000000000","message":"Actually we can add a FIXME comment here saying that in O we can remove that check (everything should be migrated then).","commit_id":"e91e75d6ae7df908faf5cd8484e97ca6d30db995"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"111f55266d978c8c010ef9db1f30c9d2b92e2081","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def get_message_text(event_id):"},{"line_number":47,"context_line":"    if not event_id.startswith(\"VOLUME_\"):"},{"line_number":48,"context_line":"        event_id \u003d \"VOLUME_\" + event_id"},{"line_number":49,"context_line":"    return event_id_message_map[event_id]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_2d582d32","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":39},"in_reply_to":"3aaa91ec_1875b4f8","updated":"2016-06-22 15:18:46.000000000","message":"Done","commit_id":"e91e75d6ae7df908faf5cd8484e97ca6d30db995"}],"cinder/tests/unit/message/test_defined_messages.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5f5c4d825f415786f9ccdc4f8dd89386bc94d528","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class DefinedMessagesTest(test.TestCase):"},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(DefinedMessagesTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_event_id_formats(self):"},{"line_number":25,"context_line":"        \"\"\"Assert all cinder event ids start with VOLUME_.\"\"\""}],"source_content_type":"text/x-python","patch_set":22,"id":"da4df55a_e191b6f2","line":22,"updated":"2016-12-26 10:08:03.000000000","message":"Please, remove this setUp, we don\u0027t need it","commit_id":"8868b0f3f98efcd550784440b306e5a0f0b04359"}],"cinder/tests/unit/test_db_api.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5f5c4d825f415786f9ccdc4f8dd89386bc94d528","unresolved":false,"context_lines":[{"line_number":1991,"context_line":"class DBAPIMigrateMessagePrefixTestCase(BaseTest):"},{"line_number":1992,"context_line":"    \"\"\"Tests for cinder.db.api.migrate_add_message_prefix.\"\"\""},{"line_number":1993,"context_line":""},{"line_number":1994,"context_line":"    def setUp(self):"},{"line_number":1995,"context_line":"        super(DBAPIMigrateMessagePrefixTestCase, self).setUp()"},{"line_number":1996,"context_line":"        message_values \u003d {"},{"line_number":1997,"context_line":"            \"project_id\": \"fake_project\","}],"source_content_type":"text/x-python","patch_set":22,"id":"da4df55a_4151a235","line":1994,"updated":"2016-12-26 10:08:03.000000000","message":"Please, add tearDown too.","commit_id":"8868b0f3f98efcd550784440b306e5a0f0b04359"}],"cinder/tests/unit/test_migrations.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"8811119c8512d0b108693f3ce46dc1ffbdcd6c54","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # NOTE(dulek): 73 drops tables and columns we\u0027ve stopped using a"},{"line_number":115,"context_line":"            # release ago."},{"line_number":116,"context_line":"            73,"},{"line_number":117,"context_line":"            # NOTE(ameade): 75 sets messages.request_id to nullable. This"},{"line_number":118,"context_line":"            # should be safe for the same reason as migration 66."},{"line_number":119,"context_line":"            75,"},{"line_number":120,"context_line":"        ]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # NOTE(dulek): We only started requiring things be additive in"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_9d69a028","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":15},"updated":"2016-05-24 14:34:46.000000000","message":"Sure!","commit_id":"ce6eedf38380b15bb41519caaf296d7aa59aa520"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"102f12b2df0e2d235115a2a887052252b02bec0f","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                                                 \"messages\"))"},{"line_number":849,"context_line":"        messages \u003d db_utils.get_table(engine, \u0027messages\u0027)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"        self.assertIsInstance(messages.c.created_at.type,"},{"line_number":852,"context_line":"                              self.TIME_TYPE)"},{"line_number":853,"context_line":"        self.assertIsInstance(messages.c.deleted_at.type,"},{"line_number":854,"context_line":"                              self.TIME_TYPE)"},{"line_number":855,"context_line":"        self.assertIsInstance(messages.c.deleted.type,"},{"line_number":856,"context_line":"                              self.BOOL_TYPE)"},{"line_number":857,"context_line":"        self.assertIsInstance(messages.c.message_level.type,"},{"line_number":858,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":859,"context_line":"        self.assertIsInstance(messages.c.project_id.type,"},{"line_number":860,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":861,"context_line":"        self.assertIsInstance(messages.c.id.type,"},{"line_number":862,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":863,"context_line":"        self.assertIsInstance(messages.c.request_id.type,"},{"line_number":864,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":865,"context_line":"        self.assertIsInstance(messages.c.resource_uuid.type,"},{"line_number":866,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":867,"context_line":"        self.assertIsInstance(messages.c.event_id.type,"},{"line_number":868,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":869,"context_line":"        self.assertIsInstance(messages.c.resource_type.type,"},{"line_number":870,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"    def test_walk_versions(self):"},{"line_number":873,"context_line":"        self.walk_versions(False, False)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_78183885","line":870,"range":{"start_line":851,"start_character":0,"end_line":870,"end_character":48},"updated":"2016-06-22 14:02:38.000000000","message":"Shouldn\u0027t we check if request_id is nullable here instead?","commit_id":"e91e75d6ae7df908faf5cd8484e97ca6d30db995"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"111f55266d978c8c010ef9db1f30c9d2b92e2081","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                                                 \"messages\"))"},{"line_number":849,"context_line":"        messages \u003d db_utils.get_table(engine, \u0027messages\u0027)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"        self.assertIsInstance(messages.c.created_at.type,"},{"line_number":852,"context_line":"                              self.TIME_TYPE)"},{"line_number":853,"context_line":"        self.assertIsInstance(messages.c.deleted_at.type,"},{"line_number":854,"context_line":"                              self.TIME_TYPE)"},{"line_number":855,"context_line":"        self.assertIsInstance(messages.c.deleted.type,"},{"line_number":856,"context_line":"                              self.BOOL_TYPE)"},{"line_number":857,"context_line":"        self.assertIsInstance(messages.c.message_level.type,"},{"line_number":858,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":859,"context_line":"        self.assertIsInstance(messages.c.project_id.type,"},{"line_number":860,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":861,"context_line":"        self.assertIsInstance(messages.c.id.type,"},{"line_number":862,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":863,"context_line":"        self.assertIsInstance(messages.c.request_id.type,"},{"line_number":864,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":865,"context_line":"        self.assertIsInstance(messages.c.resource_uuid.type,"},{"line_number":866,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":867,"context_line":"        self.assertIsInstance(messages.c.event_id.type,"},{"line_number":868,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":869,"context_line":"        self.assertIsInstance(messages.c.resource_type.type,"},{"line_number":870,"context_line":"                              self.VARCHAR_TYPE)"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"    def test_walk_versions(self):"},{"line_number":873,"context_line":"        self.walk_versions(False, False)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_2dcb0da7","line":870,"range":{"start_line":851,"start_character":0,"end_line":870,"end_character":48},"in_reply_to":"3aaa91ec_78183885","updated":"2016-06-22 15:18:46.000000000","message":"Yeah good catch. *face palm*","commit_id":"e91e75d6ae7df908faf5cd8484e97ca6d30db995"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"22ac4231b71461ede9aa07903f09ffa3eae4d0e8","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            # NOTE(dulek): 73 drops tables and columns we\u0027ve stopped using a"},{"line_number":114,"context_line":"            # release ago."},{"line_number":115,"context_line":"            73,"},{"line_number":116,"context_line":"            # NOTE(ameade): 85 sets messages.request_id to nullable. This"},{"line_number":117,"context_line":"            # should be safe for the same reason as migration 66."},{"line_number":118,"context_line":"            86,"},{"line_number":119,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a629dbe_f60eb58a","line":116,"range":{"start_line":116,"start_character":28,"end_line":116,"end_character":30},"updated":"2016-11-10 13:12:34.000000000","message":"s/85/86/","commit_id":"df2c225b30c8e1f2b0528260501bfde09afc8070"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2ce1d790486814160314ccbd28bb7dc6dcbb0aee","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # NOTE(dulek): 73 drops tables and columns we\u0027ve stopped using a"},{"line_number":115,"context_line":"            # release ago."},{"line_number":116,"context_line":"            73,"},{"line_number":117,"context_line":"            # NOTE(ameade): 86 sets messages.request_id to nullable. This"},{"line_number":118,"context_line":"            # should be safe for the same reason as migration 66."},{"line_number":119,"context_line":"            87,"},{"line_number":120,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a57fde8_b40caa43","line":117,"range":{"start_line":117,"start_character":28,"end_line":117,"end_character":30},"updated":"2017-01-12 19:38:55.000000000","message":"87","commit_id":"e0b27ec44177962caf4ccfa3d6676dd4004b6f8c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9fa027e65237b25f534ce3d44f6c6d107feb9c4a","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # NOTE(dulek): 73 drops tables and columns we\u0027ve stopped using a"},{"line_number":115,"context_line":"            # release ago."},{"line_number":116,"context_line":"            73,"},{"line_number":117,"context_line":"            # NOTE(ameade): 86 sets messages.request_id to nullable. This"},{"line_number":118,"context_line":"            # should be safe for the same reason as migration 66."},{"line_number":119,"context_line":"            87,"},{"line_number":120,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":23,"id":"7a3c09a3_63ec4fc8","line":117,"range":{"start_line":117,"start_character":28,"end_line":117,"end_character":30},"in_reply_to":"9a57fde8_b40caa43","updated":"2017-01-13 10:28:21.000000000","message":"Done","commit_id":"e0b27ec44177962caf4ccfa3d6676dd4004b6f8c"}]}
