)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43e5c1aec41042b7a989410ce90d3e915bda3001","unresolved":false,"context_lines":[{"line_number":1891,"context_line":"    model_query(context, models.BlockDeviceMapping).\\"},{"line_number":1892,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1893,"context_line":"            soft_delete()"},{"line_number":1894,"context_line":"    model_query(context, models.Migration).\\"},{"line_number":1895,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1896,"context_line":"            soft_delete()"},{"line_number":1897,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1898,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1899,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_7f99a81d","line":1896,"range":{"start_line":1894,"start_character":4,"end_line":1896,"end_character":25},"updated":"2017-10-18 13:41:25.000000000","message":"migrations get soft deleted when the instance is soft deleted, so you\u0027d have to copy this code into the test to delete a migration for testing that read_deleted path.","commit_id":"346392802989b5ca985f759b620e66203f4bc98d"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"67b0b801d83fa5af058465abdb6305da080cdcca","unresolved":false,"context_lines":[{"line_number":1891,"context_line":"    model_query(context, models.BlockDeviceMapping).\\"},{"line_number":1892,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1893,"context_line":"            soft_delete()"},{"line_number":1894,"context_line":"    model_query(context, models.Migration).\\"},{"line_number":1895,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1896,"context_line":"            soft_delete()"},{"line_number":1897,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1898,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1899,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_97462f21","line":1896,"range":{"start_line":1894,"start_character":4,"end_line":1896,"end_character":25},"in_reply_to":"3f4b6375_7f99a81d","updated":"2017-10-23 01:35:41.000000000","message":"Yes, got it. Sorry, I didn\u0027t notice this before.\n\nI will plus the test case. Thanks, : )","commit_id":"346392802989b5ca985f759b620e66203f4bc98d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c1a1e3cb2e8e83c5a236214f17d818423d3de0fe","unresolved":false,"context_lines":[{"line_number":2612,"context_line":"    if host:"},{"line_number":2613,"context_line":"        query \u003d query.filter_by(host\u003dhost)"},{"line_number":2614,"context_line":""},{"line_number":2615,"context_line":"    if marker is not None:"},{"line_number":2616,"context_line":"        try:"},{"line_number":2617,"context_line":"            marker \u003d _instance_get_by_uuid("},{"line_number":2618,"context_line":"                context.elevated(read_deleted\u003d\u0027yes\u0027), marker)"},{"line_number":2619,"context_line":"        except exception.InstanceNotFound:"},{"line_number":2620,"context_line":"            raise exception.MarkerNotFound(marker\u003dmarker)"},{"line_number":2621,"context_line":""},{"line_number":2622,"context_line":"    query \u003d sqlalchemyutils.paginate_query("},{"line_number":2623,"context_line":"        query, models.Instance, limit, [\u0027project_id\u0027, \u0027uuid\u0027], marker\u003dmarker)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_6a5c9aec","line":2620,"range":{"start_line":2615,"start_character":4,"end_line":2620,"end_character":57},"updated":"2017-10-25 13:31:06.000000000","message":"OK I suppose the new method will be used like this when a migration uuid marker is specified.","commit_id":"0535d9f9e16ea58a90262404b26341ed3f867f10"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ff5c0635a6a41c67bd4e8321af89672ca5bd3d87","unresolved":false,"context_lines":[{"line_number":2612,"context_line":"    if host:"},{"line_number":2613,"context_line":"        query \u003d query.filter_by(host\u003dhost)"},{"line_number":2614,"context_line":""},{"line_number":2615,"context_line":"    if marker is not None:"},{"line_number":2616,"context_line":"        try:"},{"line_number":2617,"context_line":"            marker \u003d _instance_get_by_uuid("},{"line_number":2618,"context_line":"                context.elevated(read_deleted\u003d\u0027yes\u0027), marker)"},{"line_number":2619,"context_line":"        except exception.InstanceNotFound:"},{"line_number":2620,"context_line":"            raise exception.MarkerNotFound(marker\u003dmarker)"},{"line_number":2621,"context_line":""},{"line_number":2622,"context_line":"    query \u003d sqlalchemyutils.paginate_query("},{"line_number":2623,"context_line":"        query, models.Instance, limit, [\u0027project_id\u0027, \u0027uuid\u0027], marker\u003dmarker)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_ee075e17","line":2620,"range":{"start_line":2615,"start_character":4,"end_line":2620,"end_character":57},"in_reply_to":"3f4b6375_6a5c9aec","updated":"2017-10-26 12:03:12.000000000","message":"Yeah, sure.","commit_id":"0535d9f9e16ea58a90262404b26341ed3f867f10"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"b3e33d8c280c2f3dab2d5a21e9e9b2434a50c188","unresolved":false,"context_lines":[{"line_number":1544,"context_line":"        self._assertEqualObjects(migration1, real_migration1)"},{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":"    def test_migration_get_by_uuid_not_found(self):"},{"line_number":1547,"context_line":"        \"\"\"Asserts that MigrationNotFound is raised if a migration is not "},{"line_number":1548,"context_line":"        found by a given uuid."},{"line_number":1549,"context_line":"        \"\"\""},{"line_number":1550,"context_line":"        self.assertRaises(exception.MigrationNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f4e5783_d0d7244f","line":1547,"range":{"start_line":1547,"start_character":73,"end_line":1547,"end_character":74},"updated":"2017-10-12 08:45:49.000000000","message":"white space","commit_id":"03277e89e463393775335d7169532acffe748513"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2330d791329410905553dcbf1d30eb3ddc9aeace","unresolved":false,"context_lines":[{"line_number":1544,"context_line":"        self._assertEqualObjects(migration1, real_migration1)"},{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":"    def test_migration_get_by_uuid_not_found(self):"},{"line_number":1547,"context_line":"        \"\"\"Asserts that MigrationNotFound is raised if a migration is not "},{"line_number":1548,"context_line":"        found by a given uuid."},{"line_number":1549,"context_line":"        \"\"\""},{"line_number":1550,"context_line":"        self.assertRaises(exception.MigrationNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f4e5783_90fd2cb3","line":1547,"range":{"start_line":1547,"start_character":73,"end_line":1547,"end_character":74},"in_reply_to":"5f4e5783_d0d7244f","updated":"2017-10-12 08:49:06.000000000","message":"Done","commit_id":"03277e89e463393775335d7169532acffe748513"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f9ea0201ca10f0c751bd4aef3e0386f347fe4417","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            instance \u003d migration[\u0027instance\u0027]"},{"line_number":1537,"context_line":"            self.assertEqual(migration[\u0027instance_uuid\u0027], instance[\u0027uuid\u0027])"},{"line_number":1538,"context_line":""},{"line_number":1539,"context_line":"    def test_migration_get_by_uuid(self):"},{"line_number":1540,"context_line":"        migration1 \u003d self._create(uuid\u003duuidsentinel.migration1_uuid)"},{"line_number":1541,"context_line":"        self._create(uuid\u003duuidsentinel.other_uuid)"},{"line_number":1542,"context_line":"        real_migration1 \u003d db.migration_get_by_uuid("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_2642b011","line":1539,"updated":"2017-10-12 18:29:00.000000000","message":"You should probably add a check to this test that you can get a deleted migration by uuid since we have read_deleted\u003d\u0027yes\u0027 as part of the query.","commit_id":"346392802989b5ca985f759b620e66203f4bc98d"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"878cb958be375fb629e01905080575d0b86e9def","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            instance \u003d migration[\u0027instance\u0027]"},{"line_number":1537,"context_line":"            self.assertEqual(migration[\u0027instance_uuid\u0027], instance[\u0027uuid\u0027])"},{"line_number":1538,"context_line":""},{"line_number":1539,"context_line":"    def test_migration_get_by_uuid(self):"},{"line_number":1540,"context_line":"        migration1 \u003d self._create(uuid\u003duuidsentinel.migration1_uuid)"},{"line_number":1541,"context_line":"        self._create(uuid\u003duuidsentinel.other_uuid)"},{"line_number":1542,"context_line":"        real_migration1 \u003d db.migration_get_by_uuid("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_1e46ca50","line":1539,"in_reply_to":"5f4e5783_2642b011","updated":"2017-10-13 08:34:55.000000000","message":"@matt Sorry, really reasonable but I couldn\u0027t found migration_destroy method in db api.\n\nhttps://github.com/openstack/nova/blob/219c2660cdc936c9d1469d7629645e05a511fbf0/nova/db/sqlalchemy/api.py#L4787 \n\nthat means, currently, seems migration deleted case doesn\u0027t exist.","commit_id":"346392802989b5ca985f759b620e66203f4bc98d"}]}
