)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a6d4fb55f55deb50299692138c0a5df297310074","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"44754855_1f9ed15d","updated":"2024-08-06 20:40:24.000000000","message":"@silvan@quobyte.com Your proposal sounds good to me, and I see that you are from quobyte!  Why don\u0027t you take over this patch and re-work it?  I didn\u0027t want to make any invasive changes to the driver code, but presumably you have access to a quobyte backend, so that\u0027s not an issue for you.","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"de8a8f9f409c420616cd584c06629e679f99755a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"afddfcb7_e975e352","updated":"2024-08-05 15:37:38.000000000","message":"I\u0027d propose to remove the psutil call (and dependency) altogether from the driver instead of setting up a driver specific dependency.\n\nAs psutil is used for listing the local mounts and analyzing them this should be doable by reading /proc/mounts and parsing the mount data from there.\nWould that be an acceptable approach?\n\n(Apologies for being late to the party.)","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"3c5a1229d2a7a012cb692460578f031a0b1f8a91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"41d67cf3_eb4984e6","updated":"2025-02-22 02:03:05.000000000","message":"This looks good to me, everyone seems to be on board and followup fixes from Quobyte are coming.","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"56e9aa4b1bd400dbc828d48fa501f3fe324bf9aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ad5242b0_263ef533","updated":"2024-11-20 13:09:29.000000000","message":"This was proposed before[1] and is also superior in handling the quobyte case. LGTM.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/927717","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"30066875eea5f5ae671fa79ed6bc0f5d522a6de0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3375eedf_7310fd6f","updated":"2024-08-06 20:36:22.000000000","message":"recheck cinder-tempest-plugin-lvm-lio-barbican - logs are gone, don\u0027t know what happened","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"5dcc5a122db666e3b704c85f8aa08011d705f5f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ef986294_b82a84af","in_reply_to":"44754855_1f9ed15d","updated":"2024-08-07 16:02:50.000000000","message":"@rosmaita.fossdev@gmail.com Will do! 😊","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"27a92171fe52d43822d8f3e81b870de21019f685","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fd8d702e_61b131d3","in_reply_to":"73f17ddf_fb4cec04","updated":"2025-02-16 08:36:11.000000000","message":"psutil is now installed as a dependency of oslo.utils (it was added to get rid of netifaces) and I\u0027m not really sure what is the benefit of removing it now. Maintaining","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"a608f80c1e09047a3f9136230ca5de95798f3955","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"73f17ddf_fb4cec04","in_reply_to":"ad5242b0_263ef533","updated":"2024-11-20 14:05:22.000000000","message":"Hi! I\u0027d prefer to run the solution mentioned in the earlier comments (psutil removal) and am still planning to submit that (it\u0027s just that I\u0027m currently focusing on re-building the quobyte ci). Would that be ok?","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"ad25ac87ad83236a2757e71ccee8732264f73c35","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"15c02ebc_d1ac3f14","in_reply_to":"c223e61b_7f50b694","updated":"2025-02-20 15:31:29.000000000","message":"That sounds sane as I haven\u0027t been able to provide the other approach so far.\nSo I\u0027ll follow up with a fix. Thanks for the hint.","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"94b913f6a72edd8c6ce0d3b5f9e83e8cc8ff32e1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c223e61b_7f50b694","in_reply_to":"fd8d702e_61b131d3","updated":"2025-02-16 08:38:42.000000000","message":"I clicked SAVE too early.\nIf you are very worried about maintaining additional driver dependency then you can try removing it but because psutil has been used in the driver code I think replacement can be done in a separate change, instead of blocking this for a quite long time.","commit_id":"3057445fc968afec5fafd632e523d9a0caaef2c7"}],"cinder/tests/unit/volume/drivers/test_quobyte.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ec497bcf013c534c6f8337d7a4cf6baa5d9f90f0","unresolved":true,"context_lines":[{"line_number":438,"context_line":"                                          any_order\u003dFalse)"},{"line_number":439,"context_line":"            mock_validate.assert_called_once_with(self.TEST_MNT_POINT)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    @mock.patch.object(quobyte, \u0027psutil\u0027)"},{"line_number":442,"context_line":"    def test_mount_quobyte_should_reraise_already_mounted_error(self,"},{"line_number":443,"context_line":"                                                                ps_mock):"},{"line_number":444,"context_line":"        \"\"\"test_mount_quobyte_should_reraise_already_mounted_error"}],"source_content_type":"text/x-python","patch_set":1,"id":"43d5f406_afc91448","line":441,"updated":"2024-04-18 13:40:07.000000000","message":"nit: why not\n\n```\n@mock.patch.object(quobyte.psutils, \u0027disk_partitions\u0027)\n```","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"44906b591c0076d146366f623a23cc2bf716d133","unresolved":true,"context_lines":[{"line_number":438,"context_line":"                                          any_order\u003dFalse)"},{"line_number":439,"context_line":"            mock_validate.assert_called_once_with(self.TEST_MNT_POINT)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    @mock.patch.object(quobyte, \u0027psutil\u0027)"},{"line_number":442,"context_line":"    def test_mount_quobyte_should_reraise_already_mounted_error(self,"},{"line_number":443,"context_line":"                                                                ps_mock):"},{"line_number":444,"context_line":"        \"\"\"test_mount_quobyte_should_reraise_already_mounted_error"}],"source_content_type":"text/x-python","patch_set":1,"id":"f25db2a8_3c74b9c0","line":441,"in_reply_to":"43d5f406_afc91448","updated":"2024-04-18 13:49:17.000000000","message":"Oh, because it doesn\u0027t exist!","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5a43d12e7de9060c3a6d1f5647ab1170215dd285","unresolved":false,"context_lines":[{"line_number":438,"context_line":"                                          any_order\u003dFalse)"},{"line_number":439,"context_line":"            mock_validate.assert_called_once_with(self.TEST_MNT_POINT)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    @mock.patch.object(quobyte, \u0027psutil\u0027)"},{"line_number":442,"context_line":"    def test_mount_quobyte_should_reraise_already_mounted_error(self,"},{"line_number":443,"context_line":"                                                                ps_mock):"},{"line_number":444,"context_line":"        \"\"\"test_mount_quobyte_should_reraise_already_mounted_error"}],"source_content_type":"text/x-python","patch_set":1,"id":"9660d67b_278e066a","line":441,"in_reply_to":"f25db2a8_3c74b9c0","updated":"2025-02-21 14:05:38.000000000","message":"Acknowledged","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5fb7f7149c292560e7b75809de3f2b3a8e320939","unresolved":true,"context_lines":[{"line_number":446,"context_line":"        Like test_mount_quobyte_should_suppress_already_mounted_error"},{"line_number":447,"context_line":"        but with ensure\u003dFalse."},{"line_number":448,"context_line":"        \"\"\""},{"line_number":449,"context_line":"        ps_mock.disk_partitions \u003d part_mock \u003d mock.MagicMock()"},{"line_number":450,"context_line":"        part_mock.return_value \u003d []  # no quobyte@ devices"},{"line_number":451,"context_line":"        with mock.patch.object(self._driver, \u0027_execute\u0027) as mock_execute, \\"},{"line_number":452,"context_line":"                mock.patch(\u0027oslo_utils.fileutils.ensure_tree\u0027) as mock_mkdir, \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"c6539a3d_4eb95b0c","line":449,"updated":"2024-04-18 13:50:37.000000000","message":"You don\u0027t need to do this, because `psmock.disk_partitions` is already a mock, so you can do:\n\n```\npart_mock \u003d ps_mock.disk_partitions\n```","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5a43d12e7de9060c3a6d1f5647ab1170215dd285","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        Like test_mount_quobyte_should_suppress_already_mounted_error"},{"line_number":447,"context_line":"        but with ensure\u003dFalse."},{"line_number":448,"context_line":"        \"\"\""},{"line_number":449,"context_line":"        ps_mock.disk_partitions \u003d part_mock \u003d mock.MagicMock()"},{"line_number":450,"context_line":"        part_mock.return_value \u003d []  # no quobyte@ devices"},{"line_number":451,"context_line":"        with mock.patch.object(self._driver, \u0027_execute\u0027) as mock_execute, \\"},{"line_number":452,"context_line":"                mock.patch(\u0027oslo_utils.fileutils.ensure_tree\u0027) as mock_mkdir, \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa7235_eb3438c5","line":449,"in_reply_to":"c6539a3d_4eb95b0c","updated":"2025-02-21 14:05:38.000000000","message":"Done","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"}],"cinder/volume/drivers/quobyte.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ec497bcf013c534c6f8337d7a4cf6baa5d9f90f0","unresolved":true,"context_lines":[{"line_number":36,"context_line":"from cinder.volume.drivers import remotefs as remotefs_drv"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# this will be set in check_for_setup_error()"},{"line_number":39,"context_line":"psutil \u003d None"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"VERSION \u003d \u00271.1.13\u0027"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a4de51f1_aefb54fe","line":39,"updated":"2024-04-18 13:40:07.000000000","message":"We usually do this like:\n\n````\ntry:\n    import psutil\nexcept ImportError:\n    psutil \u003d None\n```\n\nYou can check the rbd driver","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5a43d12e7de9060c3a6d1f5647ab1170215dd285","unresolved":false,"context_lines":[{"line_number":36,"context_line":"from cinder.volume.drivers import remotefs as remotefs_drv"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# this will be set in check_for_setup_error()"},{"line_number":39,"context_line":"psutil \u003d None"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"VERSION \u003d \u00271.1.13\u0027"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d246ded8_166ba428","line":39,"in_reply_to":"a4de51f1_aefb54fe","updated":"2025-02-21 14:05:38.000000000","message":"Done","commit_id":"4e80310d6730de9a7387dba8fb411c791ec23d1a"}]}
