)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0741dd909c82b11a287db1387d5710f0d823f196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"aa98e034_bf44b581","updated":"2023-05-30 09:37:27.000000000","message":"Obviously needs the SDK change first but this LGTM otherwise. Will hold off +2 til that is merged.","commit_id":"7f4f4e2ec747237baff64af6a04553b716027da2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b2b038a188d20b06ce10db8656557dbc8627fa29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"84540363_cb31a050","updated":"2023-06-07 09:18:56.000000000","message":"One other nit here. Could you address?","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01d2e0faa098953809063ee4078b301acec528ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d99e4ba6_6c9a6fdb","updated":"2023-06-07 09:20:11.000000000","message":"Sorry, make that two","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96e9f5b0ad3d4a88572a611ad15e3dbf8e1d4278","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c4b624fc_3513c302","updated":"2023-06-09 13:40:59.000000000","message":"Thanks Stephen!","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a81ad2fb7a8e8fa6d88627d1513222f72d1ae3f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"787872fb_64357fcc","updated":"2023-06-14 09:40:16.000000000","message":"SDK checked out the change but still can\u0027t find block storage file, strange\n\n2023-06-14 06:52:24.316958 | ubuntu-jammy | opendev.org/openstack/openstacksdk checked out to:\n2023-06-14 06:52:24.317017 | ubuntu-jammy | 12e90645f5992beb6a5734c1d4771e0d10eb3419 Merge commit \u0027refs/changes/97/884397/3\u0027 of ssh://review.opendev.org:29418/openstack/openstacksdk into HEAD","commit_id":"70db0c8f150a18e23508d2f1c58f74144f13bc9b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a27829f2221109ce60ef20547b9083699fca190f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4d7f164c_7053373e","updated":"2023-07-05 10:05:16.000000000","message":"We\u0027ve released a new build of SDK so this should pass CI now 🤞","commit_id":"4dfbc5011efe6b5cd30d5eac20b8cf29003004b2"}],"openstackclient/tests/unit/volume/v3/fakes.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f5d807762861047f51b529370fccf6d0ca999be1","unresolved":true,"context_lines":[{"line_number":540,"context_line":"    }"},{"line_number":541,"context_line":"    if metadata:"},{"line_number":542,"context_line":"        summary_dict[\u0027metadata\u0027] \u003d metadata"},{"line_number":543,"context_line":"    block_storage_summary \u003d fakes.FakeResource(None, summary_dict, loaded\u003dTrue)"},{"line_number":544,"context_line":"    return block_storage_summary"}],"source_content_type":"text/x-python","patch_set":5,"id":"f81fb661_7a1b3eed","line":543,"updated":"2023-06-09 17:19:00.000000000","message":"This isn\u0027t it either. You want to import the class you added:\n\n```\nfrom openstack.block_storage.v3 import summary as _summary\n```\n\nthen in this method\n\n```\nblock_storage_summary \u003d _summary.Summary(**summary_dict)\nreturn block_storage_summary\n```","commit_id":"f129deeea9d1fc647831bffe8c30f8ee7b45c38a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79bebb0bbc94c0781b7ba4575cf3e62f34f55b70","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    }"},{"line_number":541,"context_line":"    if metadata:"},{"line_number":542,"context_line":"        summary_dict[\u0027metadata\u0027] \u003d metadata"},{"line_number":543,"context_line":"    block_storage_summary \u003d fakes.FakeResource(None, summary_dict, loaded\u003dTrue)"},{"line_number":544,"context_line":"    return block_storage_summary"}],"source_content_type":"text/x-python","patch_set":5,"id":"fd3364b9_060bb162","line":543,"in_reply_to":"f81fb661_7a1b3eed","updated":"2023-06-14 06:53:14.000000000","message":"Done\nnot sure if the depends on will make this work or we might need OSC release for this to pass but tested it locally (adding patched OSC to tox venv) and it passes.\n{5} openstackclient.tests.unit.volume.v3.test_volume.TestVolumeSummary.test_volume_summary [0.035182s] ... ok\n{5} openstackclient.tests.unit.volume.v3.test_volume.TestVolumeSummary.test_volume_summary_pre_312 [0.007870s] ... ok\n{5} openstackclient.tests.unit.volume.v3.test_volume.TestVolumeSummary.test_volume_summary_with_metadata [0.007557s] ... ok","commit_id":"f129deeea9d1fc647831bffe8c30f8ee7b45c38a"}],"openstackclient/tests/unit/volume/v3/test_volume.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b2b038a188d20b06ce10db8656557dbc8627fa29","unresolved":true,"context_lines":[{"line_number":31,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":32,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":33,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":34,"context_line":"        self.sdk_client.reset_mock()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        patcher \u003d mock.patch.object("},{"line_number":37,"context_line":"            sdk_utils, \u0027supports_microversion\u0027, return_value\u003dTrue"}],"source_content_type":"text/x-python","patch_set":4,"id":"d0f0d4ee_c2cd436e","line":34,"updated":"2023-06-07 09:18:56.000000000","message":"nit: I suspect this is cargo culted. Since this is a newly created mock that gets recreated for each test, we don\u0027t need this","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96e9f5b0ad3d4a88572a611ad15e3dbf8e1d4278","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":32,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":33,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":34,"context_line":"        self.sdk_client.reset_mock()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        patcher \u003d mock.patch.object("},{"line_number":37,"context_line":"            sdk_utils, \u0027supports_microversion\u0027, return_value\u003dTrue"}],"source_content_type":"text/x-python","patch_set":4,"id":"18ea8f01_33d6e34b","line":34,"in_reply_to":"d0f0d4ee_c2cd436e","updated":"2023-06-09 13:40:59.000000000","message":"Done","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01d2e0faa098953809063ee4078b301acec528ed","unresolved":true,"context_lines":[{"line_number":66,"context_line":"            \u0027total_count\u0027: 2,"},{"line_number":67,"context_line":"            \u0027total_size\u0027: self.mock_vol_1.size + self.mock_vol_2.size,"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":"        self.sdk_client.summary.return_value \u003d self.return_dict"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # Get the command object to test"},{"line_number":72,"context_line":"        self.cmd \u003d volume.VolumeSummary(self.app, None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"457c27f8_99595b65","line":69,"updated":"2023-06-07 09:20:11.000000000","message":"Instead of returning a dict, you should return a `BlockStorageSummary` object. You\u0027ll probably want to add a `get_one_block_storage_summary` method to `openstackclient.tests.unit.volume.v3.fakes` for that.","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96e9f5b0ad3d4a88572a611ad15e3dbf8e1d4278","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u0027total_count\u0027: 2,"},{"line_number":67,"context_line":"            \u0027total_size\u0027: self.mock_vol_1.size + self.mock_vol_2.size,"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":"        self.sdk_client.summary.return_value \u003d self.return_dict"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # Get the command object to test"},{"line_number":72,"context_line":"        self.cmd \u003d volume.VolumeSummary(self.app, None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"a1741f7b_1f988c23","line":69,"in_reply_to":"457c27f8_99595b65","updated":"2023-06-09 13:40:59.000000000","message":"Done","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"}],"openstackclient/volume/v3/volume.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b2b038a188d20b06ce10db8656557dbc8627fa29","unresolved":true,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        return ("},{"line_number":72,"context_line":"            column_headers,"},{"line_number":73,"context_line":"            utils.get_dict_properties("},{"line_number":74,"context_line":"                vol_summary,"},{"line_number":75,"context_line":"                columns,"},{"line_number":76,"context_line":"                formatters\u003d{\u0027metadata\u0027: format_columns.DictColumn},"}],"source_content_type":"text/x-python","patch_set":4,"id":"115d0685_913a6dd1","line":73,"updated":"2023-06-07 09:18:56.000000000","message":"You probably want to use `utils.get_item_properties` here now instead, which uses `getattr` instead of","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96e9f5b0ad3d4a88572a611ad15e3dbf8e1d4278","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        return ("},{"line_number":72,"context_line":"            column_headers,"},{"line_number":73,"context_line":"            utils.get_dict_properties("},{"line_number":74,"context_line":"                vol_summary,"},{"line_number":75,"context_line":"                columns,"},{"line_number":76,"context_line":"                formatters\u003d{\u0027metadata\u0027: format_columns.DictColumn},"}],"source_content_type":"text/x-python","patch_set":4,"id":"49de145f_08b95cbf","line":73,"in_reply_to":"115d0685_913a6dd1","updated":"2023-06-09 13:40:59.000000000","message":"Done","commit_id":"4831a2657f9997bbb2c7cfbad5ad41face72580a"}]}
