)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"e4a4e7723ee0a480ae467f75ae3e80cc0ee3c57b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5c3a038f_c0b1b0d8","updated":"2022-06-16 09:50:09.000000000","message":"run-storpoolci","commit_id":"54d84d2cc33ce70ab189a81ef03ff088482f0ba6"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"956382a764292aba8e7a875a3abc38c29cb166ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8a570ac3_5b4986d0","updated":"2023-03-03 23:44:06.000000000","message":"Thanks for the review! But see my replies inline.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8b030deed0c5befa8eef4656a5ba4aa4c1a0bc4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"f8b7e59c_b4e224ca","updated":"2023-05-11 10:36:51.000000000","message":"Overall code changes look good.\nCouple of minor queries inline.","commit_id":"a699c1ba2c51b0ce9c874831d32e7b1e4b76d7c0"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"81b39da264ab6fec19846cb5b18f6db3eb1df96e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"e8e34f8d_0a096b4c","updated":"2023-12-06 14:31:12.000000000","message":"run-storpoolci","commit_id":"842b39e2e8e73ea2dda84955d3ab99d9efbfa527"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5eb14769605af7623079c1c62c5c38f388451a0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"27392b56_417c6a9f","updated":"2024-06-12 06:57:25.000000000","message":"Code changes look good. Zuul has passed.\nHopefully StorPool CI would pass soon.","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c281c9f3865eedb0afd8897a6775ec50d5211311","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3de2ccbc_ad6ffd8b","updated":"2024-06-12 06:13:01.000000000","message":"Small query: When latest patchset was uploaded (i.e PS_20) on June 11, was a rebase performed ?\ni am asking because, previous PS i.e PS_19 was uploaded on Jan 19 (few months ago).","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9bf9c3d4de690b64aed3272ea16440ad230c17e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3ee2a3aa_e9d434f2","updated":"2024-06-12 02:42:09.000000000","message":"run-storpoolci","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":35429,"name":"Biser Milanov","email":"biser.milanov@storpool.com","username":"sp-bmilanov"},"change_message_id":"0a6cb0c02bf6d72d94bfa7d9a245b61b86df142f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"4d274e12_800ed161","updated":"2024-06-12 12:08:49.000000000","message":"run-storpoolci","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":35429,"name":"Biser Milanov","email":"biser.milanov@storpool.com","username":"sp-bmilanov"},"change_message_id":"ac47df8f86184b066bdae4629e443a267720107e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"75e09143_be96a790","updated":"2024-06-12 18:20:18.000000000","message":"run-storpoolci","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ba169b17bf80daf2fd8b07de0ef160e5ce0684d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e0b47a21_275354a5","updated":"2024-06-12 13:59:15.000000000","message":"run-storpoolci","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f067f05f482bf8877fdc73e990b02e320726f48f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"7755bdb7_71384fb9","in_reply_to":"3de2ccbc_ad6ffd8b","updated":"2024-06-12 06:27:53.000000000","message":"yes, its rebased on latest master. After https://review.opendev.org/c/openstack/cinder/+/870551 is merged","commit_id":"a265ca43d33ab9fbaea87d7e4bfb8231f3a7d877"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc2517871cd0742c2e134ea1fe7c3e4fe65618b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"76ec4c0d_ac00ae86","updated":"2024-06-24 12:28:11.000000000","message":"See comment inline.  I still need to look at code \u0026 tests; releasenote looks fine.","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"},{"author":{"_account_id":35429,"name":"Biser Milanov","email":"biser.milanov@storpool.com","username":"sp-bmilanov"},"change_message_id":"2a1648c028acffb4261b2ab22a22a51da5d1dffe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"630bc3ee_9979a867","updated":"2024-06-24 07:19:15.000000000","message":"run-storpoolci","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c5016b6079b1981a5e488e2f50e49797aaa642c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"e3cc56ca_6fbe0730","updated":"2024-06-26 14:48:38.000000000","message":"Other than Eric\u0027s comments, this looks ok.  Sounds like those will be addressed in a follow-up patch.","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f9cc7d7510a30329cc6fc3f0cea46df33466be81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"cf8b849a_860b49f4","updated":"2024-06-27 12:51:40.000000000","message":"See comment inline about a followup.  Otherwise, LGTM and Storpool CI is showing green on the latest patch set.","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"22399cdb835535e72df22f6e21e5aaf46ba2483d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"18ddb0c0_f3d992a2","updated":"2024-06-24 16:55:17.000000000","message":"recheck","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f04fdef99cb9e5a1a0680a912e2f3420fa3f2af6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"f0a7b8e6_18421ca7","updated":"2024-06-28 03:31:43.000000000","message":"recheck","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"af8c3a09e9ae83c7ebfa5f4eac5cab91493cf3df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"b9febec4_341e9160","updated":"2024-06-25 05:16:35.000000000","message":"run-storpoolci","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"}],"cinder/tests/unit/volume/drivers/test_storpool.py":[{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"c4d3f22a1c0c14fbe76f4c225a53d6c6c3164935","unresolved":true,"context_lines":[{"line_number":357,"context_line":"        v \u003d volumes[volumeName(\u00273\u0027)]"},{"line_number":358,"context_line":"        self.assertEqual(4 * units.Gi, v[\u0027size\u0027])"},{"line_number":359,"context_line":"        self.assertEqual(\u0027ssd\u0027, v[\u0027template\u0027])"},{"line_number":360,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.driver.create_volume({\u0027id\u0027: \u00274\u0027, \u0027name\u0027: \u0027v2\u0027, \u0027size\u0027: 5,"},{"line_number":363,"context_line":"                                   \u0027volume_type\u0027: {\u0027id\u0027: 3}})"}],"source_content_type":"text/x-python","patch_set":14,"id":"5065e65f_def05169","line":360,"updated":"2023-03-03 11:13:14.000000000","message":"this one","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"956382a764292aba8e7a875a3abc38c29cb166ef","unresolved":true,"context_lines":[{"line_number":357,"context_line":"        v \u003d volumes[volumeName(\u00273\u0027)]"},{"line_number":358,"context_line":"        self.assertEqual(4 * units.Gi, v[\u0027size\u0027])"},{"line_number":359,"context_line":"        self.assertEqual(\u0027ssd\u0027, v[\u0027template\u0027])"},{"line_number":360,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.driver.create_volume({\u0027id\u0027: \u00274\u0027, \u0027name\u0027: \u0027v2\u0027, \u0027size\u0027: 5,"},{"line_number":363,"context_line":"                                   \u0027volume_type\u0027: {\u0027id\u0027: 3}})"}],"source_content_type":"text/x-python","patch_set":14,"id":"df0e8d6f_ec528220","line":360,"in_reply_to":"5065e65f_def05169","updated":"2023-03-03 23:44:06.000000000","message":"I\u0027m not sure I understand this comment. If you mean that this \"assertNotIn\" check is not changed to \"assertIsNone\" like the ones for the \"template\" parameter in the previous chunks, that is correct: in the test suite, a volume or snapshot will always have a \"template\" property (it may be null), while it may not have a \"replication\" property at all. If a test suite volume or snapshot has a \"replication\" property, that means that an explicit change has been made that sets its replication, not its template, and this is a bug (except in the specific case when that is what is tested): so, if there is a \"replication\" property, something has gone wrong.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"7d6f4d77aeedc9c7b5f547bc8b3eaec5917ff4f0","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        v \u003d volumes[volumeName(\u00273\u0027)]"},{"line_number":358,"context_line":"        self.assertEqual(4 * units.Gi, v[\u0027size\u0027])"},{"line_number":359,"context_line":"        self.assertEqual(\u0027ssd\u0027, v[\u0027template\u0027])"},{"line_number":360,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.driver.create_volume({\u0027id\u0027: \u00274\u0027, \u0027name\u0027: \u0027v2\u0027, \u0027size\u0027: 5,"},{"line_number":363,"context_line":"                                   \u0027volume_type\u0027: {\u0027id\u0027: 3}})"}],"source_content_type":"text/x-python","patch_set":14,"id":"a9297088_f4c75493","line":360,"in_reply_to":"df0e8d6f_ec528220","updated":"2023-03-08 21:43:26.000000000","message":"Marking this comment thread as resolved. Thanks again for the review!","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"c4d3f22a1c0c14fbe76f4c225a53d6c6c3164935","unresolved":true,"context_lines":[{"line_number":365,"context_line":"        v \u003d volumes[volumeName(\u00274\u0027)]"},{"line_number":366,"context_line":"        self.assertEqual(5 * units.Gi, v[\u0027size\u0027])"},{"line_number":367,"context_line":"        self.assertEqual(\u0027hdd\u0027, v[\u0027template\u0027])"},{"line_number":368,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        # Make sure the dictionary is not corrupted somehow..."},{"line_number":371,"context_line":"        v \u003d volumes[volumeName(\u00271\u0027)]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9ededa8b_eeb75b62","line":368,"updated":"2023-03-03 11:13:14.000000000","message":"this one missed","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"7d6f4d77aeedc9c7b5f547bc8b3eaec5917ff4f0","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        v \u003d volumes[volumeName(\u00274\u0027)]"},{"line_number":366,"context_line":"        self.assertEqual(5 * units.Gi, v[\u0027size\u0027])"},{"line_number":367,"context_line":"        self.assertEqual(\u0027hdd\u0027, v[\u0027template\u0027])"},{"line_number":368,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        # Make sure the dictionary is not corrupted somehow..."},{"line_number":371,"context_line":"        v \u003d volumes[volumeName(\u00271\u0027)]"}],"source_content_type":"text/x-python","patch_set":14,"id":"7925966b_cbf4cb55","line":368,"in_reply_to":"22fffd94_00b1315c","updated":"2023-03-08 21:43:26.000000000","message":"Marking as resolved.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"956382a764292aba8e7a875a3abc38c29cb166ef","unresolved":true,"context_lines":[{"line_number":365,"context_line":"        v \u003d volumes[volumeName(\u00274\u0027)]"},{"line_number":366,"context_line":"        self.assertEqual(5 * units.Gi, v[\u0027size\u0027])"},{"line_number":367,"context_line":"        self.assertEqual(\u0027hdd\u0027, v[\u0027template\u0027])"},{"line_number":368,"context_line":"        self.assertNotIn(\u0027replication\u0027, v.keys())"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        # Make sure the dictionary is not corrupted somehow..."},{"line_number":371,"context_line":"        v \u003d volumes[volumeName(\u00271\u0027)]"}],"source_content_type":"text/x-python","patch_set":14,"id":"22fffd94_00b1315c","line":368,"in_reply_to":"9ededa8b_eeb75b62","updated":"2023-03-03 23:44:06.000000000","message":"See the above answer.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8b030deed0c5befa8eef4656a5ba4aa4c1a0bc4b","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    def snapshotDelete(self, name):"},{"line_number":119,"context_line":"        del snapshots[name]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def volumeCreate(self, v):"},{"line_number":122,"context_line":"        name \u003d v[\u0027name\u0027]"},{"line_number":123,"context_line":"        if name in volumes:"},{"line_number":124,"context_line":"            raise MockApiError(\u0027volume already exists\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"87fdea55_890f0c73","line":121,"range":{"start_line":121,"start_character":27,"end_line":121,"end_character":28},"updated":"2023-05-11 10:36:51.000000000","message":"nit: instead of using single character (\u0027v\u0027) for variable,\ncan we use \u0027volume\u0027 or \u0027vol\u0027.","commit_id":"a699c1ba2c51b0ce9c874831d32e7b1e4b76d7c0"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9816f3c4fe2f9fc995f120ca8660016d3d940cf8","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    def snapshotDelete(self, name):"},{"line_number":119,"context_line":"        del snapshots[name]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def volumeCreate(self, v):"},{"line_number":122,"context_line":"        name \u003d v[\u0027name\u0027]"},{"line_number":123,"context_line":"        if name in volumes:"},{"line_number":124,"context_line":"            raise MockApiError(\u0027volume already exists\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"29da4d5a_f0ff9ba8","line":121,"range":{"start_line":121,"start_character":27,"end_line":121,"end_character":28},"in_reply_to":"87fdea55_890f0c73","updated":"2024-06-11 17:03:27.000000000","message":"Done","commit_id":"a699c1ba2c51b0ce9c874831d32e7b1e4b76d7c0"}],"cinder/volume/drivers/storpool.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"71ecbf332c04bcad934782d4c73d7187815b9c35","unresolved":true,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027clone volume id %(vol_id)s template %(template)s\u0027, {"},{"line_number":213,"context_line":"            \u0027vol_id\u0027: repr(volume[\u0027id\u0027]),"},{"line_number":214,"context_line":"            \u0027template\u0027: repr(template),"},{"line_number":215,"context_line":"        })"},{"line_number":216,"context_line":"        if template \u003d\u003d src_template:"},{"line_number":217,"context_line":"            LOG.info(\u0027Using baseOn to clone a volume into the same template\u0027)"},{"line_number":218,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"65460890_20b5e636","line":215,"updated":"2023-03-16 02:26:00.000000000","message":"Not sure why not just use %(template)r here, but okay.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"c5c545a0c4788604613e6476a3e1d748c0a0d1dc","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027clone volume id %(vol_id)s template %(template)s\u0027, {"},{"line_number":213,"context_line":"            \u0027vol_id\u0027: repr(volume[\u0027id\u0027]),"},{"line_number":214,"context_line":"            \u0027template\u0027: repr(template),"},{"line_number":215,"context_line":"        })"},{"line_number":216,"context_line":"        if template \u003d\u003d src_template:"},{"line_number":217,"context_line":"            LOG.info(\u0027Using baseOn to clone a volume into the same template\u0027)"},{"line_number":218,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"620da3d2_da64c81f","line":215,"in_reply_to":"0f2c5a52_1995da96","updated":"2023-03-20 16:08:23.000000000","message":"Fixed in patchset 16. Thanks!","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"529bdd75fe0a548d2d2317b980a3a39a72f27ed2","unresolved":true,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027clone volume id %(vol_id)s template %(template)s\u0027, {"},{"line_number":213,"context_line":"            \u0027vol_id\u0027: repr(volume[\u0027id\u0027]),"},{"line_number":214,"context_line":"            \u0027template\u0027: repr(template),"},{"line_number":215,"context_line":"        })"},{"line_number":216,"context_line":"        if template \u003d\u003d src_template:"},{"line_number":217,"context_line":"            LOG.info(\u0027Using baseOn to clone a volume into the same template\u0027)"},{"line_number":218,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"0f2c5a52_1995da96","line":215,"in_reply_to":"65460890_20b5e636","updated":"2023-03-20 15:39:06.000000000","message":"Well, part of the reason was that I was not really familiar with Python\u0027s logging framework when I first wrote that :) Thanks, fixed in an upcoming patchset.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"71ecbf332c04bcad934782d4c73d7187815b9c35","unresolved":true,"context_lines":[{"line_number":261,"context_line":"                )"},{"line_number":262,"context_line":"            except spapi.ApiError as e:"},{"line_number":263,"context_line":"                raise self._backendException(e)"},{"line_number":264,"context_line":"        except Exception:"},{"line_number":265,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":266,"context_line":"                try:"},{"line_number":267,"context_line":"                    LOG.warning("}],"source_content_type":"text/x-python","patch_set":14,"id":"e45866e8_2864f752","line":264,"updated":"2023-03-16 02:26:00.000000000","message":"Do you really need to catch everything here? Would _backendException be enough?","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"529bdd75fe0a548d2d2317b980a3a39a72f27ed2","unresolved":true,"context_lines":[{"line_number":261,"context_line":"                )"},{"line_number":262,"context_line":"            except spapi.ApiError as e:"},{"line_number":263,"context_line":"                raise self._backendException(e)"},{"line_number":264,"context_line":"        except Exception:"},{"line_number":265,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":266,"context_line":"                try:"},{"line_number":267,"context_line":"                    LOG.warning("}],"source_content_type":"text/x-python","patch_set":14,"id":"f0c1613a_a05d53eb","line":264,"in_reply_to":"e45866e8_2864f752","updated":"2023-03-20 15:39:06.000000000","message":"The idea is to be certain that the clean-up code will be executed even if an unexpected exception occurs. I think this use of `except Exception` is, well, not necessarily \"common\", but certainly also used in other parts of the Cinder code.","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9816f3c4fe2f9fc995f120ca8660016d3d940cf8","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                )"},{"line_number":262,"context_line":"            except spapi.ApiError as e:"},{"line_number":263,"context_line":"                raise self._backendException(e)"},{"line_number":264,"context_line":"        except Exception:"},{"line_number":265,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":266,"context_line":"                try:"},{"line_number":267,"context_line":"                    LOG.warning("}],"source_content_type":"text/x-python","patch_set":14,"id":"43f64887_ffead812","line":264,"in_reply_to":"f0c1613a_a05d53eb","updated":"2024-06-11 17:03:27.000000000","message":"Done","commit_id":"b3cd2632e8461e9c18b0f4d0aabff69faa9c554c"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8b030deed0c5befa8eef4656a5ba4aa4c1a0bc4b","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                  fix the docstring formatting"},{"line_number":93,"context_line":"        1.2.2   - Reintroduce the driver into OpenStack Queens,"},{"line_number":94,"context_line":"                  add ignore_errors to the internal _detach_volume() method"},{"line_number":95,"context_line":"        1.2.3   - Advertise some more driver capabilities."},{"line_number":96,"context_line":"    \"\"\""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    VERSION \u003d \u00271.2.3\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"41518dce_a68dcbbe","line":95,"updated":"2023-05-11 10:36:51.000000000","message":"If it helps, can we increment version ?\n1.2.4 - create_cloned_volume() improvements","commit_id":"a699c1ba2c51b0ce9c874831d32e7b1e4b76d7c0"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9816f3c4fe2f9fc995f120ca8660016d3d940cf8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                  fix the docstring formatting"},{"line_number":93,"context_line":"        1.2.2   - Reintroduce the driver into OpenStack Queens,"},{"line_number":94,"context_line":"                  add ignore_errors to the internal _detach_volume() method"},{"line_number":95,"context_line":"        1.2.3   - Advertise some more driver capabilities."},{"line_number":96,"context_line":"    \"\"\""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    VERSION \u003d \u00271.2.3\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"34886b00_ae5832ec","line":95,"in_reply_to":"41518dce_a68dcbbe","updated":"2024-06-11 17:03:27.000000000","message":"since we are not changing interface neither introducing/removing capabilities, version is not needed.","commit_id":"a699c1ba2c51b0ce9c874831d32e7b1e4b76d7c0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b3e4d126a62eadc893e644302756f511b1476c09","unresolved":true,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("}],"source_content_type":"text/x-python","patch_set":22,"id":"ae95347d_2235054e","line":202,"range":{"start_line":202,"start_character":15,"end_line":202,"end_character":34},"updated":"2024-06-25 11:07:19.000000000","message":"Can use volume.size instead, casting to int not needed.\n```suggestion\n        size \u003d volume.size * units.Gi\n```","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"fde13b7879f29ef7029d0cf93132130b2cc4fef5","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("}],"source_content_type":"text/x-python","patch_set":22,"id":"ba53490a_b11c68e8","line":202,"range":{"start_line":202,"start_character":15,"end_line":202,"end_character":34},"in_reply_to":"27d69471_f6c044f8","updated":"2024-06-28 08:36:35.000000000","message":"https://bugs.launchpad.net/cinder/+bug/2071440 filed to track this work.","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f9cc7d7510a30329cc6fc3f0cea46df33466be81","unresolved":true,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("}],"source_content_type":"text/x-python","patch_set":22,"id":"27d69471_f6c044f8","line":202,"range":{"start_line":202,"start_character":15,"end_line":202,"end_character":34},"in_reply_to":"77f92340_91655a8b","updated":"2024-06-27 12:51:40.000000000","message":"Sounds like the tests may be using a dict in mocks instead of a fake volume object.  There\u0027s code in cinder/tests/unit that you can use to create the \"real\" fake volume objects.  Since the volume objects implement a dict interface for compatibility, when you refactor, you should be able to replace dicts with fake objects anywhere a mock volume is being created, and the tests should still pass.  Then on a second pass, you can replace the dict member references with object member references, which will be tricky, because any assert_called_with kind of statements will be sensitive to whether the code is using a dict-style reference vs. an object-style reference.  But you should definitely convince your manager to give you time to do the refactoring, it will result in much safer code.","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b3b185d6d887a31ff11d92a493225435d69977a9","unresolved":true,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("}],"source_content_type":"text/x-python","patch_set":22,"id":"77f92340_91655a8b","line":202,"range":{"start_line":202,"start_character":15,"end_line":202,"end_character":34},"in_reply_to":"ae95347d_2235054e","updated":"2024-06-25 12:04:41.000000000","message":"might be single cleaup patch to change everything within file later. Also lot of tests are failing if we change from dict to object kind reference.","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b3e4d126a62eadc893e644302756f511b1476c09","unresolved":true,"context_lines":[{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("},{"line_number":206,"context_line":"            context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":22,"id":"aa543af9_ec3186da","line":203,"range":{"start_line":203,"start_character":42,"end_line":203,"end_character":54},"updated":"2024-06-25 11:07:19.000000000","message":"volume.id","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b3b185d6d887a31ff11d92a493225435d69977a9","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":201,"context_line":"        refname \u003d self._attach.volumeName(src_vref[\u0027id\u0027])"},{"line_number":202,"context_line":"        size \u003d int(volume[\u0027size\u0027]) * units.Gi"},{"line_number":203,"context_line":"        volname \u003d self._attach.volumeName(volume[\u0027id\u0027])"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("},{"line_number":206,"context_line":"            context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":22,"id":"b523d6d7_0129948c","line":203,"range":{"start_line":203,"start_character":42,"end_line":203,"end_character":54},"in_reply_to":"aa543af9_ec3186da","updated":"2024-06-25 12:04:41.000000000","message":"Acknowledged","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b3e4d126a62eadc893e644302756f511b1476c09","unresolved":true,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("},{"line_number":206,"context_line":"            context.get_admin_context(),"},{"line_number":207,"context_line":"            src_vref[\u0027id\u0027],"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        src_template \u003d self._template_from_volume(src_volume)"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"6cf88b29_749cde69","line":207,"range":{"start_line":207,"start_character":12,"end_line":207,"end_character":26},"updated":"2024-06-25 11:07:19.000000000","message":"src_vref.id","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b3b185d6d887a31ff11d92a493225435d69977a9","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        src_volume \u003d self.db.volume_get("},{"line_number":206,"context_line":"            context.get_admin_context(),"},{"line_number":207,"context_line":"            src_vref[\u0027id\u0027],"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        src_template \u003d self._template_from_volume(src_volume)"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"70b0ce16_25c500da","line":207,"range":{"start_line":207,"start_character":12,"end_line":207,"end_character":26},"in_reply_to":"6cf88b29_749cde69","updated":"2024-06-25 12:04:41.000000000","message":"Acknowledged","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b3e4d126a62eadc893e644302756f511b1476c09","unresolved":true,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        template \u003d self._template_from_volume(volume)"},{"line_number":212,"context_line":"        LOG.debug(\u0027clone volume id %(vol_id)r template %(template)r\u0027, {"},{"line_number":213,"context_line":"            \u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":214,"context_line":"            \u0027template\u0027: template,"},{"line_number":215,"context_line":"        })"},{"line_number":216,"context_line":"        if template \u003d\u003d src_template:"}],"source_content_type":"text/x-python","patch_set":22,"id":"66796136_15ca7f89","line":213,"range":{"start_line":213,"start_character":22,"end_line":213,"end_character":34},"updated":"2024-06-25 11:07:19.000000000","message":"volume.id","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b3b185d6d887a31ff11d92a493225435d69977a9","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        template \u003d self._template_from_volume(volume)"},{"line_number":212,"context_line":"        LOG.debug(\u0027clone volume id %(vol_id)r template %(template)r\u0027, {"},{"line_number":213,"context_line":"            \u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":214,"context_line":"            \u0027template\u0027: template,"},{"line_number":215,"context_line":"        })"},{"line_number":216,"context_line":"        if template \u003d\u003d src_template:"}],"source_content_type":"text/x-python","patch_set":22,"id":"ce4f5b38_f64e5359","line":213,"range":{"start_line":213,"start_character":22,"end_line":213,"end_character":34},"in_reply_to":"66796136_15ca7f89","updated":"2024-06-25 12:04:41.000000000","message":"Acknowledged","commit_id":"7a19f6f5bd90168a944fd81900aee36a1764b4b5"}],"driver-requirements.txt":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc2517871cd0742c2e134ea1fe7c3e4fe65618b5","unresolved":true,"context_lines":[{"line_number":42,"context_line":"infi.dtypes.iqn # PSF"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# Storpool"},{"line_number":45,"context_line":"storpool\u003e\u003d7.1.0 # Apache-2.0"},{"line_number":46,"context_line":"storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Datera"}],"source_content_type":"text/plain","patch_set":21,"id":"eb04b82b_09a466f5","line":45,"updated":"2024-06-24 12:28:11.000000000","message":"You also need to change this in setup.cfg","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"469706cc1f810a830127aa6a3c881315e6de0c90","unresolved":false,"context_lines":[{"line_number":42,"context_line":"infi.dtypes.iqn # PSF"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# Storpool"},{"line_number":45,"context_line":"storpool\u003e\u003d7.1.0 # Apache-2.0"},{"line_number":46,"context_line":"storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Datera"}],"source_content_type":"text/plain","patch_set":21,"id":"571535d9_694c6aa6","line":45,"in_reply_to":"eb04b82b_09a466f5","updated":"2024-06-24 13:37:45.000000000","message":"Done","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"}],"setup.cfg":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc2517871cd0742c2e134ea1fe7c3e4fe65618b5","unresolved":true,"context_lines":[{"line_number":86,"context_line":"    infinisdk\u003e\u003d103.0.1 # BSD-3"},{"line_number":87,"context_line":"    py-pure-client\u003e\u003d1.47.0 # BSD"},{"line_number":88,"context_line":"    rsd-lib\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":89,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":90,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":91,"context_line":"    dfs-sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":92,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"7dbc311f_4bdda0dd","line":89,"range":{"start_line":89,"start_character":14,"end_line":89,"end_character":19},"updated":"2024-06-24 12:28:11.000000000","message":"need to update this, and also line 117","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"469706cc1f810a830127aa6a3c881315e6de0c90","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    infinisdk\u003e\u003d103.0.1 # BSD-3"},{"line_number":87,"context_line":"    py-pure-client\u003e\u003d1.47.0 # BSD"},{"line_number":88,"context_line":"    rsd-lib\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":89,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":90,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":91,"context_line":"    dfs-sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":92,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"1993dd57_d6f58c36","line":89,"range":{"start_line":89,"start_character":14,"end_line":89,"end_character":19},"in_reply_to":"7dbc311f_4bdda0dd","updated":"2024-06-24 13:37:45.000000000","message":"Done","commit_id":"028aa995d312b5defb8d3986fd3d490e0d6beaf1"}]}
