)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e79c84d2a15ad426a5d5f423bc3c537bf9793c43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"aff699b2_328e182e","updated":"2022-01-18 17:38:57.000000000","message":"A minor improvement in test for assert_not_called and one query inline.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":32036,"name":"katari manoj kumar","email":"katkumar@in.ibm.com","username":"katarimanojkumar"},"change_message_id":"e7e53cdc557abec85d142d6de63789c64bd5bde2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"218d0081_30bcc3fa","updated":"2022-01-10 10:15:50.000000000","message":"IBM Storage CI is green, LGTM","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"daf1ec444f39c56101859aa31e8b71f8ecc70166","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8958ba54_e940ba10","updated":"2022-01-05 01:41:46.000000000","message":"run-IBM Storage CI","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"fee174f8a07479cc041ceccac00fb3a2e7334092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"053b3d89_ce5f7d94","updated":"2022-01-19 14:51:07.000000000","message":"run-IBM Storage CI","commit_id":"e615dd6ecc5e39cd45a0c6a117dedf590ca4e796"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"01524f4aee4622eefc3f0c81ac4f740608262931","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c0c5c832_cba7c6ba","updated":"2022-01-20 08:59:43.000000000","message":"run-IBM Storage CI","commit_id":"3ed9b7a51c5b1329e4722db13d33d10beb7ad5d2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4334ed18679c6238fab6164e271a0b70ccf1b0cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3e5dbf11_5dfe9927","updated":"2022-01-25 10:52:06.000000000","message":"Few comments inline","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"38b5e4fbea440c004a291c9106191f0bcf3e29a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a90f8d9f_e693df9d","updated":"2022-01-21 11:55:18.000000000","message":"run-IBM Storage CI","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9604c467e28f67f42c329a06b44d6efb2269bf5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4c25aaa2_3452b239","updated":"2022-02-08 12:28:09.000000000","message":"Zuul and IBM Storage CI have passed. Unit tests look good.\nJust one minor comment.","commit_id":"87db5fa9572f24454b0e5a4167052bf4da64841d"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"3a42afe42c8a246d06cce70c4664b6a0adac2e91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3db15c03_914ba828","updated":"2022-02-08 09:33:24.000000000","message":"run-IBM Storage CI","commit_id":"87db5fa9572f24454b0e5a4167052bf4da64841d"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"6ca9f9acbca1d50e14b2e4fe9b690be173424071","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bd2dcbe8_7c90454e","updated":"2022-02-09 09:26:30.000000000","message":"My comment from previous patchset [PS 9] has been addressed. So +1.","commit_id":"ea07317f08ac02b03f8dc638ec70869c0ceed228"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"5b17cfdd9f69dc8e8fbaf7e33722b644ba5a9ac7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"aac6de9c_906e25c9","updated":"2022-02-22 14:14:14.000000000","message":"Passing CI.  Looks like this should be ok.","commit_id":"ea07317f08ac02b03f8dc638ec70869c0ceed228"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a7840a93d9a8a2617cf3f1863bf4bb7ce2f05ea5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d9c36694_5319aa4f","updated":"2022-02-16 06:44:27.000000000","message":"The storwize CI is reporting green. LGTM.","commit_id":"ea07317f08ac02b03f8dc638ec70869c0ceed228"},{"author":{"_account_id":34541,"name":"Manish","email":"manish.laddha@ibm.com","username":"manishladdha"},"change_message_id":"fe25bf4c8fb3a3c33026bf5cffa1382ed3830ade","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8202696d_5e5de169","updated":"2022-02-22 04:21:06.000000000","message":"looks good to me","commit_id":"ea07317f08ac02b03f8dc638ec70869c0ceed228"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"1e6dc568cf8efc53c6af1c935e808760e140c6a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8b29e4ca_2b474bb5","updated":"2022-02-08 15:46:30.000000000","message":"run-IBM Storage CI","commit_id":"ea07317f08ac02b03f8dc638ec70869c0ceed228"}],"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e79c84d2a15ad426a5d5f423bc3c537bf9793c43","unresolved":true,"context_lines":[{"line_number":10255,"context_line":"        rccg_name \u003d self.storwize_svc_common.get_rccg_name_by_volume_name("},{"line_number":10256,"context_line":"            opts[\u0027name\u0027])"},{"line_number":10257,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10258,"context_line":"        if opts[\u0027RC_name\u0027]:"},{"line_number":10259,"context_line":"            lsrcrelationship.assert_called_with(opts[\u0027RC_name\u0027])"},{"line_number":10260,"context_line":"            self.assertEqual(rccg_name, opts[\u0027consistency_group_name\u0027])"},{"line_number":10261,"context_line":""},{"line_number":10262,"context_line":"    @ddt.data(({\u0027RC_name\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"8443b077_00dd0e20","line":10259,"range":{"start_line":10258,"start_character":8,"end_line":10259,"end_character":64},"updated":"2022-01-18 17:38:57.000000000","message":"i think an else case would be better to avoid future regression (if code starts accepting this method without \u0027RC_name\u0027 in future)\n\n    else:\n        lsrcrelationship.assert_not_called()","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"58cd7f3f264c6050994caf0316b183e5bc22cf27","unresolved":false,"context_lines":[{"line_number":10255,"context_line":"        rccg_name \u003d self.storwize_svc_common.get_rccg_name_by_volume_name("},{"line_number":10256,"context_line":"            opts[\u0027name\u0027])"},{"line_number":10257,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10258,"context_line":"        if opts[\u0027RC_name\u0027]:"},{"line_number":10259,"context_line":"            lsrcrelationship.assert_called_with(opts[\u0027RC_name\u0027])"},{"line_number":10260,"context_line":"            self.assertEqual(rccg_name, opts[\u0027consistency_group_name\u0027])"},{"line_number":10261,"context_line":""},{"line_number":10262,"context_line":"    @ddt.data(({\u0027RC_name\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"d76738c6_acd78acc","line":10259,"range":{"start_line":10258,"start_character":8,"end_line":10259,"end_character":64},"in_reply_to":"8443b077_00dd0e20","updated":"2022-01-19 17:44:27.000000000","message":"As get_rccg_name_by_volume_name function will call only if the volume is replicated-type. \nSince there is no chance of missing \u0027RC_name\u0027 for a replicated volume, I have removed the case \"RC_name: None\". \n\nAlso added \"lsrcrelationship.assert_not_called()\" if get_vdisk_attributes() returns None by any chance due to the load on the storage.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e79c84d2a15ad426a5d5f423bc3c537bf9793c43","unresolved":true,"context_lines":[{"line_number":10257,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10258,"context_line":"        if opts[\u0027RC_name\u0027]:"},{"line_number":10259,"context_line":"            lsrcrelationship.assert_called_with(opts[\u0027RC_name\u0027])"},{"line_number":10260,"context_line":"            self.assertEqual(rccg_name, opts[\u0027consistency_group_name\u0027])"},{"line_number":10261,"context_line":""},{"line_number":10262,"context_line":"    @ddt.data(({\u0027RC_name\u0027: None,"},{"line_number":10263,"context_line":"                \u0027name\u0027: \u0027volume-12d-7\u0027}, \u0027multi\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"cba9bdc5_b64cde5b","line":10260,"range":{"start_line":10260,"start_character":12,"end_line":10260,"end_character":71},"updated":"2022-01-18 17:38:57.000000000","message":"this doesn\u0027t need to be inside if\nif the RC_name doesn\u0027t exist, get_rccg_name_by_volume_name will return None which we\u0027ve provided the same value in L#10244","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"58cd7f3f264c6050994caf0316b183e5bc22cf27","unresolved":false,"context_lines":[{"line_number":10257,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10258,"context_line":"        if opts[\u0027RC_name\u0027]:"},{"line_number":10259,"context_line":"            lsrcrelationship.assert_called_with(opts[\u0027RC_name\u0027])"},{"line_number":10260,"context_line":"            self.assertEqual(rccg_name, opts[\u0027consistency_group_name\u0027])"},{"line_number":10261,"context_line":""},{"line_number":10262,"context_line":"    @ddt.data(({\u0027RC_name\u0027: None,"},{"line_number":10263,"context_line":"                \u0027name\u0027: \u0027volume-12d-7\u0027}, \u0027multi\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"fba6b737_3c8d34d1","line":10260,"range":{"start_line":10260,"start_character":12,"end_line":10260,"end_character":71},"in_reply_to":"cba9bdc5_b64cde5b","updated":"2022-01-19 17:44:27.000000000","message":"Thanks for the comment. Addressed it.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4334ed18679c6238fab6164e271a0b70ccf1b0cd","unresolved":true,"context_lines":[{"line_number":10247,"context_line":"                       \u0027lsrcrelationship\u0027)"},{"line_number":10248,"context_line":"    def test_get_rccg_name_by_volume_name(self, opts, lsrcrelationship,"},{"line_number":10249,"context_line":"                                          get_vdisk_attributes):"},{"line_number":10250,"context_line":"        get_vdisk_attributes.side_effect \u003d [None]"},{"line_number":10251,"context_line":"        rccg_name \u003d self.storwize_svc_common.get_rccg_name_by_volume_name("},{"line_number":10252,"context_line":"            opts[\u0027name\u0027])"},{"line_number":10253,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10254,"context_line":"        lsrcrelationship.assert_not_called()"},{"line_number":10255,"context_line":"        self.assertIsNone(rccg_name)"},{"line_number":10256,"context_line":""},{"line_number":10257,"context_line":"        get_vdisk_attributes.side_effect \u003d [{\u0027RC_name\u0027: opts[\u0027RC_name\u0027]}]"},{"line_number":10258,"context_line":"        lsrcrelationship.side_effect \u003d \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"d1b80cf7_e9c1412c","line":10255,"range":{"start_line":10250,"start_character":0,"end_line":10255,"end_character":36},"updated":"2022-01-25 10:52:06.000000000","message":"I think this is better as a separate test case","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"244170a2b8085d6f42de6878b701659ce7d86bd5","unresolved":false,"context_lines":[{"line_number":10247,"context_line":"                       \u0027lsrcrelationship\u0027)"},{"line_number":10248,"context_line":"    def test_get_rccg_name_by_volume_name(self, opts, lsrcrelationship,"},{"line_number":10249,"context_line":"                                          get_vdisk_attributes):"},{"line_number":10250,"context_line":"        get_vdisk_attributes.side_effect \u003d [None]"},{"line_number":10251,"context_line":"        rccg_name \u003d self.storwize_svc_common.get_rccg_name_by_volume_name("},{"line_number":10252,"context_line":"            opts[\u0027name\u0027])"},{"line_number":10253,"context_line":"        get_vdisk_attributes.assert_called_with(opts[\u0027name\u0027])"},{"line_number":10254,"context_line":"        lsrcrelationship.assert_not_called()"},{"line_number":10255,"context_line":"        self.assertIsNone(rccg_name)"},{"line_number":10256,"context_line":""},{"line_number":10257,"context_line":"        get_vdisk_attributes.side_effect \u003d [{\u0027RC_name\u0027: opts[\u0027RC_name\u0027]}]"},{"line_number":10258,"context_line":"        lsrcrelationship.side_effect \u003d \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"357a6756_392c98cb","line":10255,"range":{"start_line":10250,"start_character":0,"end_line":10255,"end_character":36},"in_reply_to":"d1b80cf7_e9c1412c","updated":"2022-02-07 12:25:47.000000000","message":"Addressed the comment.","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"406afc4e3b1dfec4613efbf58053e40a859abd7c","unresolved":true,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"15128006_42e8a7c0","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"updated":"2022-01-13 18:24:42.000000000","message":"?: Isn\u0027t this kind of an error? Because if it is then we shouldn\u0027t treat it the same as L2655.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"1b3c7cd13c1f2c76e9e9d82706d0ecaecefe5f6f","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"40e101fa_1cd50ca9","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"15128006_42e8a7c0","updated":"2022-01-17 06:13:41.000000000","message":"No. This is not an error case. We just need to warn the user and return if volume information is incomplete by any chance.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"a2e1eb110846875df53b0db297d25847e0c28515","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"944fed77_7d5e5355","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"38dbef67_4c2a5112","updated":"2022-01-21 10:34:31.000000000","message":"In such a case, stop_relationship will fail and an exception is raised at L6218.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":32036,"name":"katari manoj kumar","email":"katkumar@in.ibm.com","username":"katarimanojkumar"},"change_message_id":"bf4c6c50a74e071efdf376a7e7a238070b6654e2","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"826005be_d4ef4ed9","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"3aece4da_b23c537f","updated":"2022-01-19 06:38:16.000000000","message":"only case possible here is get_vdisk_attributes() failure, i.e there is a rare chance that lsvdisk command fails due to the load on the storage. we saw such issues during bulk operations. \nIn this case, suppose if the volume is actually part of rccg, we return none which internally executes stop_relationship , but revert_to_snapshot will anyway handle further command failures.\n\nI agree that second part of the if condition wont hit as this function call is made only for replicated volume. i mean, there is no chance of missing \u0027RC_name\u0027 for a replicated volume.\nI think it can be removed.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e79c84d2a15ad426a5d5f423bc3c537bf9793c43","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aece4da_b23c537f","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"40e101fa_1cd50ca9","updated":"2022-01-18 17:38:57.000000000","message":"When can this case occur and who is responsible for this missing information?\nIs a case possible that a volume is actually part of CG and missing the \u0027RC_name\u0027 attribute?","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"58cd7f3f264c6050994caf0316b183e5bc22cf27","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"be9888a9_1947bedb","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"826005be_d4ef4ed9","updated":"2022-01-19 17:44:27.000000000","message":"Removed the second part of if condition.","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d32c19801b3d65a7f425403758dc10b167a2a38","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"38dbef67_4c2a5112","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"be9888a9_1947bedb","updated":"2022-01-20 12:45:45.000000000","message":"Apologies, I still don\u0027t see it.  :-(\n\nIf the call to \"get_vdisk_attributes\" can fail under storage load and not return anything (instead of raising an exception) and this method returns `None` here, that would make revert to snapshot call \"stop_relationship\" instead of \"stop_rccg\". Wouldn\u0027t that be a problem if there was actually an RC_name that we just didn\u0027t get?","commit_id":"7ea4ed558d7de9e5bff5bcef9d25095a98f1f5a8"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"af6587db2526a1bd4119711c43b6f40c9cc53d86","unresolved":true,"context_lines":[{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"73e65165_e8586872","line":2647,"updated":"2022-01-20 11:45:14.000000000","message":"why remote copy message is there if no vol_attrs are found, volume attrs will be for any volumes","commit_id":"3ed9b7a51c5b1329e4722db13d33d10beb7ad5d2"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"670a32750fc7abd72b5465ee1d7b3c386c42d6e7","unresolved":false,"context_lines":[{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get remote copy information for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fb1aba3_e76ac00a","line":2647,"in_reply_to":"73e65165_e8586872","updated":"2022-01-21 09:25:44.000000000","message":"Changed the warning message as \"Unable to get volume attributes for\".\nJust to cover the rare chance of lsvdisk command failures during bulk operations, we have added this check.","commit_id":"3ed9b7a51c5b1329e4722db13d33d10beb7ad5d2"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"af6587db2526a1bd4119711c43b6f40c9cc53d86","unresolved":true,"context_lines":[{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"},{"line_number":2653,"context_line":"            return rcrel[0][\u0027consistency_group_name\u0027]"},{"line_number":2654,"context_line":"        else:"},{"line_number":2655,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":5,"id":"56c871f6_8fbaafa5","line":2652,"updated":"2022-01-20 11:45:14.000000000","message":"can we first check if the rcrel[0].get(\u0027consistency_group_name\u0027) to avoid null type error","commit_id":"3ed9b7a51c5b1329e4722db13d33d10beb7ad5d2"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"670a32750fc7abd72b5465ee1d7b3c386c42d6e7","unresolved":false,"context_lines":[{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0][\u0027consistency_group_name\u0027]:"},{"line_number":2653,"context_line":"            return rcrel[0][\u0027consistency_group_name\u0027]"},{"line_number":2654,"context_line":"        else:"},{"line_number":2655,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":5,"id":"ddfca225_1f6a4d0f","line":2652,"in_reply_to":"56c871f6_8fbaafa5","updated":"2022-01-21 09:25:44.000000000","message":"Addressed the comment.","commit_id":"3ed9b7a51c5b1329e4722db13d33d10beb7ad5d2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4334ed18679c6238fab6164e271a0b70ccf1b0cd","unresolved":true,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get volume attributes for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0].get(\u0027consistency_group_name\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5e972a83_1fe5cd13","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"updated":"2022-01-25 10:52:06.000000000","message":"IIUC, if we don\u0027t get volume attributes, we will call stop_relationship on L#6212 and the stop_relationship method checks for RC_name key[1] which will raise a KeyError. Is this the expected flow?\n\n[1] https://github.com/openstack/cinder/blob/0c1694785ccd8d21128f31a80690c4309548c836/cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py#L2497-L2498","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a7840a93d9a8a2617cf3f1863bf4bb7ce2f05ea5","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get volume attributes for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0].get(\u0027consistency_group_name\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"77ec0af8_45f505e0","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"1d7b6ca8_6d1a28fb","updated":"2022-02-16 06:44:27.000000000","message":"if the RC_name is an expected argument in volume attributes, we should know the reason why it didn\u0027t exist rather than raising keyerror (which doesn\u0027t seem like the smart handling of the issue).","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"244170a2b8085d6f42de6878b701659ce7d86bd5","unresolved":false,"context_lines":[{"line_number":2643,"context_line":""},{"line_number":2644,"context_line":"    def get_rccg_name_by_volume_name(self, volume_name):"},{"line_number":2645,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume_name)"},{"line_number":2646,"context_line":"        if not vol_attrs:"},{"line_number":2647,"context_line":"            LOG.warning(\"Unable to get volume attributes for \""},{"line_number":2648,"context_line":"                        \"volume %s\", volume_name)"},{"line_number":2649,"context_line":"            return None"},{"line_number":2650,"context_line":""},{"line_number":2651,"context_line":"        rcrel \u003d self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])"},{"line_number":2652,"context_line":"        if len(rcrel) \u003e 0 and rcrel[0].get(\u0027consistency_group_name\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1d7b6ca8_6d1a28fb","line":2649,"range":{"start_line":2646,"start_character":0,"end_line":2649,"end_character":23},"in_reply_to":"5e972a83_1fe5cd13","updated":"2022-02-07 12:25:47.000000000","message":"Yes, this is the expected flow. KeyError will be handled at L6213.","commit_id":"2866024b0e2bee2bd6885e2a4aed416119651b3b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9604c467e28f67f42c329a06b44d6efb2269bf5e","unresolved":true,"context_lines":[{"line_number":6241,"context_line":"                else:"},{"line_number":6242,"context_line":"                    self._helpers.stop_relationship(volume.name, access\u003dFalse)"},{"line_number":6243,"context_line":"            except Exception as err:"},{"line_number":6244,"context_line":"                msg \u003d (_(\"Stop RC or rccg relationship has failed for %(vol)s\""},{"line_number":6245,"context_line":"                         \"due to: %(err)s.\")"},{"line_number":6246,"context_line":"                       % {\"vol\": volume.name, \"err\": err})"},{"line_number":6247,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"a3ca6267_0749ddb4","line":6244,"range":{"start_line":6244,"start_character":70,"end_line":6244,"end_character":78},"updated":"2022-02-08 12:28:09.000000000","message":"nit: a space can be added before ending double quote.","commit_id":"87db5fa9572f24454b0e5a4167052bf4da64841d"},{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"c9d0dec54af1b707bde745b40a4ff60dcca58144","unresolved":false,"context_lines":[{"line_number":6241,"context_line":"                else:"},{"line_number":6242,"context_line":"                    self._helpers.stop_relationship(volume.name, access\u003dFalse)"},{"line_number":6243,"context_line":"            except Exception as err:"},{"line_number":6244,"context_line":"                msg \u003d (_(\"Stop RC or rccg relationship has failed for %(vol)s\""},{"line_number":6245,"context_line":"                         \"due to: %(err)s.\")"},{"line_number":6246,"context_line":"                       % {\"vol\": volume.name, \"err\": err})"},{"line_number":6247,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"855ebef1_39a08a22","line":6244,"range":{"start_line":6244,"start_character":70,"end_line":6244,"end_character":78},"in_reply_to":"a3ca6267_0749ddb4","updated":"2022-02-08 13:13:49.000000000","message":"Thanks for the comment. Addressed it.","commit_id":"87db5fa9572f24454b0e5a4167052bf4da64841d"}]}
