)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the migrations table in the DB and corresponding"},{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_3a2f44f7","line":11,"range":{"start_line":11,"start_character":20,"end_line":11,"end_character":29},"updated":"2019-09-11 13:26:51.000000000","message":"Migration","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the migrations table in the DB and corresponding"},{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_7aeffcaf","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":5},"updated":"2019-09-11 13:26:51.000000000","message":"nix","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the migrations table in the DB and corresponding"},{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_e83794af","line":11,"range":{"start_line":11,"start_character":20,"end_line":11,"end_character":29},"in_reply_to":"5faad753_3a2f44f7","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the migrations table in the DB and corresponding"},{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_48bb480d","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":5},"in_reply_to":"5faad753_7aeffcaf","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Qiu Fossen \u003cqiujunting\u003e"},{"line_number":17,"context_line":"Part of blueprint add-user-id-field-to-the-migrations-table"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_fa38cc3d","line":14,"range":{"start_line":14,"start_character":43,"end_line":14,"end_character":44},"updated":"2019-09-11 13:26:51.000000000","message":"in the DB, correct?","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":11,"context_line":"these fields in the Migraions versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Qiu Fossen \u003cqiujunting\u003e"},{"line_number":17,"context_line":"Part of blueprint add-user-id-field-to-the-migrations-table"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5faad753_48e26831","line":14,"range":{"start_line":14,"start_character":43,"end_line":14,"end_character":44},"in_reply_to":"5faad753_fa38cc3d","updated":"2019-09-12 01:31:01.000000000","message":"Yup","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28e964af26a95dccaf72c2a8d6cf03453ebe958d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the ``migrations`` table in the DB and corresponding"},{"line_number":11,"context_line":"fields in the Migraion versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project in the DB."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"5faad753_1ebfbcb0","line":11,"range":{"start_line":11,"start_character":14,"end_line":11,"end_character":22},"updated":"2019-09-12 14:55:41.000000000","message":"Migration","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2c40748fa16081a49a9ebafe43c931c31327134","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds two String columns, \u0027user_id\u0027 and \u0027project_id\u0027,"},{"line_number":10,"context_line":"to the ``migrations`` table in the DB and corresponding"},{"line_number":11,"context_line":"fields in the Migraion versioned object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add optional \u0027user_id\u0027 and/or \u0027project_id\u0027 query parameters"},{"line_number":14,"context_line":"for filtering migrations by user or project in the DB."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"5faad753_77613305","line":11,"range":{"start_line":11,"start_character":14,"end_line":11,"end_character":22},"in_reply_to":"5faad753_1ebfbcb0","updated":"2019-09-12 16:54:02.000000000","message":"Done","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"}],"nova/api/openstack/compute/migrations.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5addcae724611835ce12d64d5957681f947f874f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            if \u0027memory_total\u0027 in obj:"},{"line_number":64,"context_line":"                for key in detail_keys:"},{"line_number":65,"context_line":"                    del obj[key]"},{"line_number":66,"context_line":"            support_v277 \u003d api_version_request.is_supported(req, \u00272.77\u0027)"},{"line_number":67,"context_line":"            if not support_v277:"},{"line_number":68,"context_line":"                if \u0027user_id\u0027 in obj:"},{"line_number":69,"context_line":"                    del obj[\u0027user_id\u0027]"},{"line_number":70,"context_line":"                if \u0027project_id\u0027 in obj:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_d714d543","line":67,"range":{"start_line":66,"start_character":12,"end_line":67,"end_character":32},"updated":"2019-08-28 04:30:40.000000000","message":"this check should be moved to next patch.\n\nIf there is another microversion patch merged after this patch and before your next patch, then it is a trouble.","commit_id":"c7967ca5b20264d0f2d01d0d221f3b2dabff5cac"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"58b4ba32905ad06e35332f089494befef7171473","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            if \u0027memory_total\u0027 in obj:"},{"line_number":64,"context_line":"                for key in detail_keys:"},{"line_number":65,"context_line":"                    del obj[key]"},{"line_number":66,"context_line":"            support_v277 \u003d api_version_request.is_supported(req, \u00272.77\u0027)"},{"line_number":67,"context_line":"            if not support_v277:"},{"line_number":68,"context_line":"                if \u0027user_id\u0027 in obj:"},{"line_number":69,"context_line":"                    del obj[\u0027user_id\u0027]"},{"line_number":70,"context_line":"                if \u0027project_id\u0027 in obj:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_12f11bdf","line":67,"range":{"start_line":66,"start_character":12,"end_line":67,"end_character":32},"in_reply_to":"7faddb67_d714d543","updated":"2019-08-28 08:24:59.000000000","message":"Yeah, this should belong to the next patch, will move it.","commit_id":"c7967ca5b20264d0f2d01d0d221f3b2dabff5cac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # Then we can pass the target version to it\u0027s obj_to_primitive."},{"line_number":53,"context_line":"        objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":54,"context_line":"        objects \u003d [x for x in objects if not x[\u0027hidden\u0027]]"},{"line_number":55,"context_line":"        for obj in objects:"},{"line_number":56,"context_line":"            del obj[\u0027deleted\u0027]"},{"line_number":57,"context_line":"            del obj[\u0027deleted_at\u0027]"},{"line_number":58,"context_line":"            del obj[\u0027hidden\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_5a49e0cd","line":55,"updated":"2019-09-11 13:26:51.000000000","message":"The code in this loop has gotten pretty hard to read and maintain with all of the negative logic to pull fields out of the object so they aren\u0027t exposed in the response. At some point in the future I\u0027d like to make this into a real view builder and just take the fields out of the object that go into the response and ignore the rest so we don\u0027t have to do this \"if x in y: del y[x]\" dance.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"892976abbc1508fa138ba17e8767e16be39a4aee","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # Then we can pass the target version to it\u0027s obj_to_primitive."},{"line_number":53,"context_line":"        objects \u003d obj_base.obj_to_primitive(migrations_obj)"},{"line_number":54,"context_line":"        objects \u003d [x for x in objects if not x[\u0027hidden\u0027]]"},{"line_number":55,"context_line":"        for obj in objects:"},{"line_number":56,"context_line":"            del obj[\u0027deleted\u0027]"},{"line_number":57,"context_line":"            del obj[\u0027deleted_at\u0027]"},{"line_number":58,"context_line":"            del obj[\u0027hidden\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_94688021","line":55,"in_reply_to":"5faad753_5a49e0cd","updated":"2019-09-12 00:49:45.000000000","message":"\u003e At some point in the future I\u0027d like to make this into a \n\u003e real view builder and just take the fields out of the object \n\u003e that go into the response \n\nGood Idea.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5addcae724611835ce12d64d5957681f947f874f","unresolved":false,"context_lines":[{"line_number":4476,"context_line":"    if \"instance_uuid\" in filters:"},{"line_number":4477,"context_line":"        instance_uuid \u003d filters[\"instance_uuid\"]"},{"line_number":4478,"context_line":"        query \u003d query.filter(models.Migration.instance_uuid \u003d\u003d instance_uuid)"},{"line_number":4479,"context_line":"    if \u0027user_id\u0027 in filters:"},{"line_number":4480,"context_line":"        user_id \u003d filters[\u0027user_id\u0027]"},{"line_number":4481,"context_line":"        query \u003d query.filter(models.Migration.user_id \u003d\u003d user_id)"},{"line_number":4482,"context_line":"    if \u0027project_id\u0027 in filters:"},{"line_number":4483,"context_line":"        project_id \u003d filters[\u0027project_id\u0027]"},{"line_number":4484,"context_line":"        query \u003d query.filter(models.Migration.project_id \u003d\u003d project_id)"},{"line_number":4485,"context_line":""},{"line_number":4486,"context_line":"    if marker:"},{"line_number":4487,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_97289d85","line":4484,"range":{"start_line":4479,"start_character":4,"end_line":4484,"end_character":71},"updated":"2019-08-28 04:30:40.000000000","message":"would you mind add unittests for those two filters under nova.tests.unit.db.test_db_api.py?","commit_id":"c7967ca5b20264d0f2d01d0d221f3b2dabff5cac"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"58b4ba32905ad06e35332f089494befef7171473","unresolved":false,"context_lines":[{"line_number":4476,"context_line":"    if \"instance_uuid\" in filters:"},{"line_number":4477,"context_line":"        instance_uuid \u003d filters[\"instance_uuid\"]"},{"line_number":4478,"context_line":"        query \u003d query.filter(models.Migration.instance_uuid \u003d\u003d instance_uuid)"},{"line_number":4479,"context_line":"    if \u0027user_id\u0027 in filters:"},{"line_number":4480,"context_line":"        user_id \u003d filters[\u0027user_id\u0027]"},{"line_number":4481,"context_line":"        query \u003d query.filter(models.Migration.user_id \u003d\u003d user_id)"},{"line_number":4482,"context_line":"    if \u0027project_id\u0027 in filters:"},{"line_number":4483,"context_line":"        project_id \u003d filters[\u0027project_id\u0027]"},{"line_number":4484,"context_line":"        query \u003d query.filter(models.Migration.project_id \u003d\u003d project_id)"},{"line_number":4485,"context_line":""},{"line_number":4486,"context_line":"    if marker:"},{"line_number":4487,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_cd8a04bb","line":4484,"range":{"start_line":4479,"start_character":4,"end_line":4484,"end_character":71},"in_reply_to":"7faddb67_97289d85","updated":"2019-08-28 08:24:59.000000000","message":"Done","commit_id":"c7967ca5b20264d0f2d01d0d221f3b2dabff5cac"}],"nova/db/sqlalchemy/migrate_repo/versions/401_add_user_id_and_project_id_to_migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        table \u003d Table(prefix + BASE_TABLE_NAME, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":"        for new_column_name in NEW_COLUMNS_NAME:"},{"line_number":25,"context_line":"            new_column \u003d Column(new_column_name, String(255), nullable\u003dTrue)"},{"line_number":26,"context_line":"            if not hasattr(table.c, new_column_name):"},{"line_number":27,"context_line":"                table.create_column(new_column)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_9adbd8eb","line":26,"range":{"start_line":26,"start_character":36,"end_line":26,"end_character":51},"updated":"2019-09-11 13:26:51.000000000","message":"Should this be a Column object or the name of the column? I see other migrations that use the name of the column rather than the object itself. Has anyone tested running this migration twice in a row to show that it\u0027s idempotent?","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"892976abbc1508fa138ba17e8767e16be39a4aee","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        table \u003d Table(prefix + BASE_TABLE_NAME, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":"        for new_column_name in NEW_COLUMNS_NAME:"},{"line_number":25,"context_line":"            new_column \u003d Column(new_column_name, String(255), nullable\u003dTrue)"},{"line_number":26,"context_line":"            if not hasattr(table.c, new_column_name):"},{"line_number":27,"context_line":"                table.create_column(new_column)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_d4a2784b","line":26,"range":{"start_line":26,"start_character":36,"end_line":26,"end_character":51},"in_reply_to":"5faad753_9adbd8eb","updated":"2019-09-12 00:49:45.000000000","message":"I don\u0027t seem to realize what you want to express?\nThey are the same as:\n...\n    for prefix in (\u0027\u0027, \u0027shadow_\u0027):\n        table \u003d Table(prefix + BASE_TABLE_NAME, meta, autoload\u003dTrue)\n        user_id \u003d Column(\u0027user_id\u0027, String(255), nullable\u003dTrue)\n        if not hasattr(table.c, \u0027user_id\u0027):\n            table.create_column(user_id)\n        project_id \u003d Column(\u0027project_id\u0027, String(255), nullable\u003dTrue)\n        if not hasattr(table.c, \u0027project_id\u0027):\n            table.create_column(project_id)\n\n\u003e Has anyone tested running this migration twice in a row to\n\u003e show that it\u0027s idempotent?\n\nWhat are you worried about?","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd1dd7d1980468875df2f59a472961593f5a7cd3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        table \u003d Table(prefix + BASE_TABLE_NAME, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":"        for new_column_name in NEW_COLUMNS_NAME:"},{"line_number":25,"context_line":"            new_column \u003d Column(new_column_name, String(255), nullable\u003dTrue)"},{"line_number":26,"context_line":"            if not hasattr(table.c, new_column_name):"},{"line_number":27,"context_line":"                table.create_column(new_column)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_9ea16c97","line":26,"range":{"start_line":26,"start_character":36,"end_line":26,"end_character":51},"in_reply_to":"5faad753_d4a2784b","updated":"2019-09-12 14:53:00.000000000","message":"Oh I\u0027m sorry, I thought you were using \"new_column\" rather than \"new_column_name\", yeah you\u0027re doing it correctly.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"            self.assertEqual(migration[\u0027instance_uuid\u0027],"},{"line_number":1298,"context_line":"                             instance_migrations[0][\u0027instance_uuid\u0027])"},{"line_number":1299,"context_line":""},{"line_number":1300,"context_line":"    def test_get_migrations_by_filters_user_id(self):"},{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        self._create(user_id\u003duser_id)"},{"line_number":1303,"context_line":"        filters \u003d {\"user_id\": user_id}"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_7aa7fc50","line":1300,"updated":"2019-09-11 13:26:51.000000000","message":"Since you only create one migration in this test, I could remove the filtering code in the DB API and this test would still pass because we only have one migration to return. So this would be better with at least one more migration record with either None for the user_id or some value that\u0027s different from the filter value.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"            self.assertEqual(migration[\u0027instance_uuid\u0027],"},{"line_number":1298,"context_line":"                             instance_migrations[0][\u0027instance_uuid\u0027])"},{"line_number":1299,"context_line":""},{"line_number":1300,"context_line":"    def test_get_migrations_by_filters_user_id(self):"},{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        self._create(user_id\u003duser_id)"},{"line_number":1303,"context_line":"        filters \u003d {\"user_id\": user_id}"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_485028d5","line":1300,"in_reply_to":"5faad753_7aa7fc50","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1305,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1306,"context_line":"        for migration in migrations:"},{"line_number":1307,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1310,"context_line":"        project_id \u003d \"fake_porject_id\""}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_3a50a432","line":1307,"range":{"start_line":1307,"start_character":17,"end_line":1307,"end_character":25},"updated":"2019-09-11 13:26:51.000000000","message":"Use assertEqual here. You should also swap the args (expected, actual).","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1305,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1306,"context_line":"        for migration in migrations:"},{"line_number":1307,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1310,"context_line":"        project_id \u003d \"fake_porject_id\""}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_a8575c02","line":1307,"range":{"start_line":1307,"start_character":17,"end_line":1307,"end_character":25},"in_reply_to":"5faad753_3a50a432","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"        for migration in migrations:"},{"line_number":1307,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1310,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1311,"context_line":"        self._create(project_id\u003dproject_id)"},{"line_number":1312,"context_line":"        filters \u003d {\"project_id\": project_id}"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_1a64c821","line":1309,"updated":"2019-09-11 13:26:51.000000000","message":"same as above","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"        for migration in migrations:"},{"line_number":1307,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1310,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1311,"context_line":"        self._create(project_id\u003dproject_id)"},{"line_number":1312,"context_line":"        filters \u003d {\"project_id\": project_id}"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_089f90b4","line":1309,"in_reply_to":"5faad753_1a64c821","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1313,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1314,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1315,"context_line":"        for migration in migrations:"},{"line_number":1316,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    def test_get_migrations_by_filters_user_id_and_project_id(self):"},{"line_number":1319,"context_line":"        user_id \u003d \"fake_user_id\""}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_fa49ac8a","line":1316,"range":{"start_line":1316,"start_character":17,"end_line":1316,"end_character":25},"updated":"2019-09-11 13:26:51.000000000","message":"Use assertEqual here. You should also swap the args (expected, actual).","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1313,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1314,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1315,"context_line":"        for migration in migrations:"},{"line_number":1316,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    def test_get_migrations_by_filters_user_id_and_project_id(self):"},{"line_number":1319,"context_line":"        user_id \u003d \"fake_user_id\""}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_2864cce3","line":1316,"range":{"start_line":1316,"start_character":17,"end_line":1316,"end_character":25},"in_reply_to":"5faad753_fa49ac8a","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"        for migration in migrations:"},{"line_number":1316,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    def test_get_migrations_by_filters_user_id_and_project_id(self):"},{"line_number":1319,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1320,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1321,"context_line":"        self._create(user_id\u003duser_id, project_id\u003dproject_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_fa70ccde","line":1318,"updated":"2019-09-11 13:26:51.000000000","message":"same","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"        for migration in migrations:"},{"line_number":1316,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    def test_get_migrations_by_filters_user_id_and_project_id(self):"},{"line_number":1319,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1320,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1321,"context_line":"        self._create(user_id\u003duser_id, project_id\u003dproject_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_485fc80d","line":1318,"in_reply_to":"5faad753_fa70ccde","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ec8e32b07e09e807dc07ef133287594bf09a851","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1324,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1325,"context_line":"        for migration in migrations:"},{"line_number":1326,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1327,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1330,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_ba5b3452","line":1327,"range":{"start_line":1326,"start_character":12,"end_line":1327,"end_character":73},"updated":"2019-09-11 13:26:51.000000000","message":"Use assertEqual here. You should also swap the args (expected, actual).","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"57b1be9fb9723ecac6bc47b7bb04b9ca71c6cd48","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1324,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1325,"context_line":"        for migration in migrations:"},{"line_number":1326,"context_line":"            self.assertIn(migration[\u0027user_id\u0027], filters[\u0027user_id\u0027])"},{"line_number":1327,"context_line":"            self.assertIn(migration[\u0027project_id\u0027], filters[\u0027project_id\u0027])"},{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1330,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_e89b14c6","line":1327,"range":{"start_line":1326,"start_character":12,"end_line":1327,"end_character":73},"in_reply_to":"5faad753_ba5b3452","updated":"2019-09-12 01:31:01.000000000","message":"Done","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28e964af26a95dccaf72c2a8d6cf03453ebe958d","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"    def test_get_migrations_by_filters_user_id(self):"},{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        for i in range(2):"},{"line_number":1303,"context_line":"            self._create(user_id\u003duser_id)"},{"line_number":1304,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1305,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1306,"context_line":"        filters \u003d {\"user_id\": user_id, \"source_compute\": \"host1\"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_fe074081","line":1303,"range":{"start_line":1303,"start_character":12,"end_line":1303,"end_character":41},"updated":"2019-09-12 14:55:41.000000000","message":"This isn\u0027t what I was asking for. You\u0027re creating 2 migration records but with the same user_id. So again, if I removed the DB API filtering code we\u0027d still get two back since the values are the same. So you need to create a migration with user_id \u0027fake_user_id\u0027 and then another where user_id does not equal \u0027fake_user_id\u0027 and then assert you only get one result back due to the filtering.","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2c40748fa16081a49a9ebafe43c931c31327134","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"    def test_get_migrations_by_filters_user_id(self):"},{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        for i in range(2):"},{"line_number":1303,"context_line":"            self._create(user_id\u003duser_id)"},{"line_number":1304,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1305,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1306,"context_line":"        filters \u003d {\"user_id\": user_id, \"source_compute\": \"host1\"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_5702f70c","line":1303,"range":{"start_line":1303,"start_character":12,"end_line":1303,"end_character":41},"in_reply_to":"5faad753_fe074081","updated":"2019-09-12 16:54:02.000000000","message":"Done","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28e964af26a95dccaf72c2a8d6cf03453ebe958d","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        for i in range(2):"},{"line_number":1303,"context_line":"            self._create(user_id\u003duser_id)"},{"line_number":1304,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1305,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1306,"context_line":"        filters \u003d {\"user_id\": user_id, \"source_compute\": \"host1\"}"},{"line_number":1307,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1308,"context_line":"        self.assertEqual(2, len(migrations))"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_5eee94b4","line":1305,"range":{"start_line":1304,"start_character":8,"end_line":1305,"end_character":37},"updated":"2019-09-12 14:55:41.000000000","message":"I don\u0027t know why we need the source_compute filtering stuff in here now.","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2c40748fa16081a49a9ebafe43c931c31327134","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        for i in range(2):"},{"line_number":1303,"context_line":"            self._create(user_id\u003duser_id)"},{"line_number":1304,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1305,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1306,"context_line":"        filters \u003d {\"user_id\": user_id, \"source_compute\": \"host1\"}"},{"line_number":1307,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1308,"context_line":"        self.assertEqual(2, len(migrations))"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_3206691f","line":1305,"range":{"start_line":1304,"start_character":8,"end_line":1305,"end_character":37},"in_reply_to":"5faad753_5eee94b4","updated":"2019-09-12 16:54:02.000000000","message":"Done","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"aef5b2cb1b2a5ebc396bf9d21ccc9a505b21f474","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1302,"context_line":"        for i in range(2):"},{"line_number":1303,"context_line":"            self._create(user_id\u003duser_id)"},{"line_number":1304,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1305,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1306,"context_line":"        filters \u003d {\"user_id\": user_id, \"source_compute\": \"host1\"}"},{"line_number":1307,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1308,"context_line":"        self.assertEqual(2, len(migrations))"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_320c20ec","line":1305,"range":{"start_line":1304,"start_character":8,"end_line":1305,"end_character":37},"in_reply_to":"5faad753_5eee94b4","updated":"2019-09-13 01:21:06.000000000","message":"Just check it works ok with others filter.","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28e964af26a95dccaf72c2a8d6cf03453ebe958d","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1313,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1314,"context_line":"        for i in range(2):"},{"line_number":1315,"context_line":"            self._create(project_id\u003dproject_id)"},{"line_number":1316,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1317,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1318,"context_line":"        filters \u003d {\"project_id\": project_id, \"source_compute\": \"host1\"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_1e0d7ca0","line":1315,"updated":"2019-09-12 14:55:41.000000000","message":"same issue","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2c40748fa16081a49a9ebafe43c931c31327134","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    def test_get_migrations_by_filters_project_id(self):"},{"line_number":1313,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1314,"context_line":"        for i in range(2):"},{"line_number":1315,"context_line":"            self._create(project_id\u003dproject_id)"},{"line_number":1316,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1317,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1318,"context_line":"        filters \u003d {\"project_id\": project_id, \"source_compute\": \"host1\"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_9214fd45","line":1315,"in_reply_to":"5faad753_1e0d7ca0","updated":"2019-09-12 16:54:02.000000000","message":"Done","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28e964af26a95dccaf72c2a8d6cf03453ebe958d","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1326,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1327,"context_line":"        for i in range(2):"},{"line_number":1328,"context_line":"            self._create(user_id\u003duser_id, project_id\u003dproject_id)"},{"line_number":1329,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1330,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1331,"context_line":"        filters \u003d {\"user_id\": user_id, \"project_id\": project_id,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_fe2c2003","line":1328,"updated":"2019-09-12 14:55:41.000000000","message":"same issue","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2c40748fa16081a49a9ebafe43c931c31327134","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        user_id \u003d \"fake_user_id\""},{"line_number":1326,"context_line":"        project_id \u003d \"fake_porject_id\""},{"line_number":1327,"context_line":"        for i in range(2):"},{"line_number":1328,"context_line":"            self._create(user_id\u003duser_id, project_id\u003dproject_id)"},{"line_number":1329,"context_line":"        # The default value of \u0027source_compute\u0027 when creating"},{"line_number":1330,"context_line":"        # migration record is \u0027host1\u0027"},{"line_number":1331,"context_line":"        filters \u003d {\"user_id\": user_id, \"project_id\": project_id,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5faad753_521a056f","line":1328,"in_reply_to":"5faad753_fe2c2003","updated":"2019-09-12 16:54:02.000000000","message":"Done","commit_id":"866ebb93d84f7719be2a6dd6b2f5c29fffd9403d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b95a6514c1185db76c5f03af6c69352209d41192","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"        # We should only get one migration back because we filtered on only"},{"line_number":1310,"context_line":"        # one of the two different user_id"},{"line_number":1311,"context_line":"        self.assertEqual(1, len(migrations))"},{"line_number":1312,"context_line":"        for migration in migrations:"},{"line_number":1313,"context_line":"            self.assertEqual(filters[\u0027user_id\u0027], migration[\u0027user_id\u0027])"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"    def test_get_migrations_by_filters_project_id(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_1286cd67","line":1312,"updated":"2019-09-12 16:58:49.000000000","message":"nit: this doesn\u0027t really need to be a loop since we asserted that we only got one back","commit_id":"c65aabded20eb3b41c8ed17b263310c0845a0b47"}],"nova/tests/unit/objects/test_migration.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e05938946a868ab723cbe7aabb2da8fc375dc3a0","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        mig \u003d objects.Migration.get_by_id(self.context, db_mig.id)"},{"line_number":293,"context_line":"        self.assertEqual(uuid, mig.uuid)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":296,"context_line":"        mig \u003d objects.Migration("},{"line_number":297,"context_line":"            cross_cell_move\u003dTrue,                                # added in 1.6"},{"line_number":298,"context_line":"            uuid\u003duuidsentinel.migration,                         # added in 1.5"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_95e68be8","line":295,"range":{"start_line":295,"start_character":0,"end_line":295,"end_character":32},"updated":"2019-09-09 05:58:24.000000000","message":"This test should be updated.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"4843ce2aa281ab88cc5a117a92453fc6464d6abf","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        mig \u003d objects.Migration.get_by_id(self.context, db_mig.id)"},{"line_number":293,"context_line":"        self.assertEqual(uuid, mig.uuid)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":296,"context_line":"        mig \u003d objects.Migration("},{"line_number":297,"context_line":"            cross_cell_move\u003dTrue,                                # added in 1.6"},{"line_number":298,"context_line":"            uuid\u003duuidsentinel.migration,                         # added in 1.5"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_a89d6a5a","line":295,"range":{"start_line":295,"start_character":0,"end_line":295,"end_character":32},"in_reply_to":"5faad753_95e68be8","updated":"2019-09-09 07:49:22.000000000","message":"Good catch, if there are no other updates, I hope to update it via follow-up.\n\nAdd ...\n\n        primitive \u003d data(mig.obj_to_primitive(target_version\u003d\u00271.6\u0027))\n        self.assertIn(\u0027cross_cell_move\u0027, primitive)\n        self.assertNotIn(\u0027user_id\u0027, primitive)\n        self.assertNotIn(\u0027project_id\u0027, primitive)","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"0f19925767c6d0e47ffe5df839ec2fae36b5db5f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        mig \u003d objects.Migration.get_by_id(self.context, db_mig.id)"},{"line_number":293,"context_line":"        self.assertEqual(uuid, mig.uuid)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":296,"context_line":"        mig \u003d objects.Migration("},{"line_number":297,"context_line":"            cross_cell_move\u003dTrue,                                # added in 1.6"},{"line_number":298,"context_line":"            uuid\u003duuidsentinel.migration,                         # added in 1.5"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_c8bd4669","line":295,"range":{"start_line":295,"start_character":0,"end_line":295,"end_character":32},"in_reply_to":"5faad753_a89d6a5a","updated":"2019-09-09 07:51:59.000000000","message":"You can do it in a follow-up patch if there are no other updates.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"892976abbc1508fa138ba17e8767e16be39a4aee","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        mig \u003d objects.Migration.get_by_id(self.context, db_mig.id)"},{"line_number":293,"context_line":"        self.assertEqual(uuid, mig.uuid)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":296,"context_line":"        mig \u003d objects.Migration("},{"line_number":297,"context_line":"            cross_cell_move\u003dTrue,                                # added in 1.6"},{"line_number":298,"context_line":"            uuid\u003duuidsentinel.migration,                         # added in 1.5"}],"source_content_type":"text/x-python","patch_set":18,"id":"5faad753_544be8ae","line":295,"range":{"start_line":295,"start_character":0,"end_line":295,"end_character":32},"in_reply_to":"5faad753_c8bd4669","updated":"2019-09-12 00:49:45.000000000","message":"Added.","commit_id":"7f854df9f76b1b79c1a6361dc54ef9166053316b"}]}
