)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33807,"name":"Jacob Wang","email":"jacob_wang1@dell.com","username":"jacob0522"},"change_message_id":"64fd7fabb60275714ea44bfc7778b8a7b7097eb4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"91f1b97b_433093d8","updated":"2022-02-17 10:53:03.000000000","message":"run-DellEMC SC CI","commit_id":"59aa9ef0bec6a865a22b61b85bdd0a7693a70cd8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"60d19344_e71af092","updated":"2022-09-13 18:47:00.000000000","message":"This looks good.  Most of the comments voice my agreement with your changes.  The only thing I think you need to address is in cinder/tests/unit/api/fakes.py (line 74), which will cause problems for mypy eventually.  (I\u0027d say do it in a followup except that you\u0027ve made the change everywhere else already on this patch, so it should be part of this change.)","commit_id":"36934f2facbfa8c2a63d71ddc402f3ebad82b115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1e4f9e249f63c618bd4483b414364ba371697079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"92ae64c4_f4b0d189","updated":"2022-09-13 19:15:36.000000000","message":"Revision LGTM.","commit_id":"5168cd214b385f93502ff2aeaad66a8ea563bb07"}],"cinder/tests/unit/api/contrib/test_extended_snapshot_attributes.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    def setUp(self):"},{"line_number":64,"context_line":"        super(ExtendedSnapshotAttributesTest, self).setUp()"},{"line_number":65,"context_line":"        self.user_ctxt \u003d context.RequestContext("},{"line_number":66,"context_line":"            fake.USER_ID, fake.PROJECT_ID, auth_token\u003dTrue)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _make_request(self, url):"},{"line_number":69,"context_line":"        req \u003d webob.Request.blank(url)"}],"source_content_type":"text/x-python","patch_set":5,"id":"d8a76293_64ba25c2","side":"PARENT","line":66,"range":{"start_line":66,"start_character":43,"end_line":66,"end_character":58},"updated":"2022-09-13 18:47:00.000000000","message":"At first I thought you missed something, but the cinder.context.RC doesn\u0027t have this as a parameter, so it would be passed in the kwargs to the superclass, but there it\u0027s annotated to be an Optional[str] type [0].  I\u0027m not sure what we thought this was supposed to do, but I agree with your decision to remove it.\n\n\n[0] https://opendev.org/openstack/oslo.context/src/commit/926dd4d9811792e3b247a7f6bf8ce04a14b99c59/oslo_context/context.py#L192","commit_id":"2aa4922bdd171143bc2346f180d1ddfc2d0cbbce"}],"cinder/tests/unit/api/contrib/test_volume_transfer.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":42,"context_line":"        self.volume_transfer_api \u003d cinder.transfer.API()"},{"line_number":43,"context_line":"        self.controller \u003d volume_transfer.VolumeTransferController()"},{"line_number":44,"context_line":"        self.user_ctxt \u003d context.RequestContext("},{"line_number":45,"context_line":"            fake.USER_ID, fake.PROJECT_ID, auth_token\u003dTrue, is_admin\u003dTrue)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _create_transfer(self, volume_id\u003dfake.VOLUME_ID,"},{"line_number":48,"context_line":"                         display_name\u003d\u0027test_transfer\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"867ce9fa_2f65660e","side":"PARENT","line":45,"range":{"start_line":45,"start_character":60,"end_line":45,"end_character":73},"updated":"2022-09-13 18:47:00.000000000","message":"Looks like we weren\u0027t really working with a user context here!  Glad to see that the tests still passed using only a user context.","commit_id":"2aa4922bdd171143bc2346f180d1ddfc2d0cbbce"}],"cinder/tests/unit/api/fakes.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":71,"context_line":"            ctxt \u003d fake_auth_context"},{"line_number":72,"context_line":"        else:"},{"line_number":73,"context_line":"            ctxt \u003d context.RequestContext(fake.USER_ID, fake.PROJECT_ID,"},{"line_number":74,"context_line":"                                          auth_token\u003dTrue,"},{"line_number":75,"context_line":"                                          roles\u003d[\u0027member\u0027, \u0027reader\u0027])"},{"line_number":76,"context_line":"        api_v3 \u003d fault.FaultWrapper(auth.InjectContext(ctxt,"},{"line_number":77,"context_line":"                                                       inner_app_v3))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aace36d_7ca1b9e8","line":74,"range":{"start_line":74,"start_character":42,"end_line":74,"end_character":58},"updated":"2022-09-13 18:47:00.000000000","message":"I think you should remove this (like you have everywhere else so far).  See my comment at https://review.opendev.org/c/openstack/cinder/+/828805/5/cinder/tests/unit/api/contrib/test_extended_snapshot_attributes.py#b66","commit_id":"36934f2facbfa8c2a63d71ddc402f3ebad82b115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class FakeRequestContext(context.RequestContext):"},{"line_number":105,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":106,"context_line":"        kwargs[\u0027auth_token\u0027] \u003d kwargs.get(fake.USER_ID, fake.PROJECT_ID)"},{"line_number":107,"context_line":"        super(FakeRequestContext, self).__init__(*args, **kwargs)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"be8fc3d6_48315a9b","line":106,"range":{"start_line":106,"start_character":8,"end_line":106,"end_character":72},"updated":"2022-09-13 18:47:00.000000000","message":"Not part of your change, but this is super-weird.  fake.USER_ID is a string representation of a UUID in canonical form (very unlikely to be a key in kwargs!), so this is just going to set the auth token in the context to fake.PROJECT_ID.","commit_id":"36934f2facbfa8c2a63d71ddc402f3ebad82b115"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4fdd3d17cde920beef8897036171264e9e449425","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class FakeRequestContext(context.RequestContext):"},{"line_number":105,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":106,"context_line":"        kwargs[\u0027auth_token\u0027] \u003d kwargs.get(fake.USER_ID, fake.PROJECT_ID)"},{"line_number":107,"context_line":"        super(FakeRequestContext, self).__init__(*args, **kwargs)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f3442617_2da1b568","line":106,"range":{"start_line":106,"start_character":8,"end_line":106,"end_character":72},"in_reply_to":"be8fc3d6_48315a9b","updated":"2022-09-13 19:03:30.000000000","message":"Done","commit_id":"36934f2facbfa8c2a63d71ddc402f3ebad82b115"}],"cinder/tests/unit/api/v3/test_snapshots.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        test_utils.create_snapshot(self.user_ctxt, volume1.id)"},{"line_number":192,"context_line":"        other_ctxt \u003d test_utils.get_test_user_context("},{"line_number":193,"context_line":"            project_id\u003dfake.PROJECT2_ID)"},{"line_number":194,"context_line":"        volume2 \u003d test_utils.create_volume(other_ctxt,"},{"line_number":195,"context_line":"                                           project\u003dfake.PROJECT2_ID)"},{"line_number":196,"context_line":"        test_utils.create_snapshot(other_ctxt, volume2.id)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"41d67ad3_108e2e98","line":194,"range":{"start_line":194,"start_character":43,"end_line":194,"end_character":53},"updated":"2022-09-13 18:47:00.000000000","message":"This is slightly different because volume2 was created with an admin context in the base patch, but the way you\u0027re doing it here makes more sense.","commit_id":"36934f2facbfa8c2a63d71ddc402f3ebad82b115"}],"cinder/tests/unit/api/v3/test_volume_transfer.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        self.controller \u003d volume_transfer.VolumeTransferController()"},{"line_number":54,"context_line":"        self.v3_controller \u003d volume_transfer_v3.VolumeTransferController()"},{"line_number":55,"context_line":"        self.user_ctxt \u003d context.RequestContext("},{"line_number":56,"context_line":"            fake.USER_ID, fake.PROJECT_ID, auth_token\u003dTrue, is_admin\u003dTrue)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _create_transfer(self, volume_id\u003dfake.VOLUME_ID,"},{"line_number":59,"context_line":"                         display_name\u003d\u0027test_transfer\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"af1cd6a8_6da027c9","side":"PARENT","line":56,"range":{"start_line":56,"start_character":60,"end_line":56,"end_character":73},"updated":"2022-09-13 18:47:00.000000000","message":"Another one of these things called user_ctxt that is really an admin context!","commit_id":"2aa4922bdd171143bc2346f180d1ddfc2d0cbbce"}],"cinder/tests/unit/backup/test_backup.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"366e17600fdc5ea3e453873d1bdd4b4009b3b2ca","unresolved":true,"context_lines":[{"line_number":1976,"context_line":""},{"line_number":1977,"context_line":"    @mock.patch.object(objects, \u0027BackupList\u0027)"},{"line_number":1978,"context_line":"    def test_get_all_true_value_all_tenants_non_admin(self, mock_backuplist):"},{"line_number":1979,"context_line":"        ctxt \u003d context.RequestContext(uuid.uuid4(), uuid.uuid4())"},{"line_number":1980,"context_line":"        result \u003d self.api.get_all(ctxt, {\u0027all_tenants\u0027: \u00271\u0027,"},{"line_number":1981,"context_line":"                                         \u0027key\u0027: \u0027value\u0027})"},{"line_number":1982,"context_line":"        self.assertFalse(mock_backuplist.get_all.called)"}],"source_content_type":"text/x-python","patch_set":5,"id":"e78f3cdf_f2920602","side":"PARENT","line":1979,"range":{"start_line":1979,"start_character":38,"end_line":1979,"end_character":64},"updated":"2022-09-13 18:47:00.000000000","message":"The random user/project ids don\u0027t bring anything to this test, good call to remove them.","commit_id":"2aa4922bdd171143bc2346f180d1ddfc2d0cbbce"}]}
