)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34201,"name":"Mounika Sreeram","email":"sreeram.mounika@ibm.com","username":"sreerammounika"},"change_message_id":"1ded4f20cc6235cb85a67b12bde67f29a9bc2256","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"eb52607f_5749f61b","updated":"2022-08-22 05:16:23.000000000","message":"Code changes looks good. Zuul and CI passed.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"20769504_0b46c5f5","updated":"2022-08-23 12:45:43.000000000","message":"Since this is a feature, it would be great if you can check with core team ...\nShould this patch be added in the list:\nhttps://etherpad.opendev.org/p/cinder-zed-features\n\nFor Zed features, deadline is 02sep.\n\nFew comments inline.\n","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"404c3162deb2dd0f70d1fda0a7f7304afb293ff6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cc14c902_23ef2835","updated":"2022-08-12 11:48:39.000000000","message":"run-IBM Storage CI","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"95784c5a4e2f0cb2cd748cf386d9cde3d4c1881f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d53f7dca_9fb18f30","updated":"2022-08-12 06:57:52.000000000","message":"run-IBM Storage CI","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"b143ca65f6e90442d667b2d7eac1b2c65f5243f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"712495b0_1fc9af7c","in_reply_to":"20769504_0b46c5f5","updated":"2022-08-26 08:06:11.000000000","message":"Added it to etherpad doc","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"63fa0aae_cac699c4","updated":"2022-08-27 06:01:17.000000000","message":"Hi Harsh Ailani, please see my comments inline.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b83d6dca913057fe2963aad7eaa10f7607018de0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d08c5de1_32a37527","updated":"2022-08-26 10:11:38.000000000","message":"My comments from previous patchset have been addressed. So +1.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd39c252db32e3cbfa4b39ec76baed6e5d0e1016","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8de95f0c_1707cbc2","updated":"2023-01-04 15:25:39.000000000","message":"CI has passed and it appears that the comments have been addressed.  Thanks!","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73c489bb89b170e59406bb8684c6e17e09d12a9f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"899c8eb2_a70e77c5","updated":"2022-09-05 20:26:37.000000000","message":"Few comments inline but overall LGTM.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7ff6f378217a6cdc033bbd406f8fb50fd15e0fc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5a5be514_7511b00f","updated":"2022-09-07 10:45:38.000000000","message":"Hi Harsh,\n\nThe IBM CI hasn\u0027t responded to my comment since yesterday, can you check upon it?","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"e6035e72760837b758c4ccdfdba3e247de2884bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"246442df_066d3593","updated":"2022-09-08 14:49:59.000000000","message":"I think there is an issue with update_group","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f7800cf430f47d99ad0ac3fb57408b453f37611e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"65517294_cca174ed","updated":"2022-12-21 18:04:40.000000000","message":"IBM CI has passed. LGTM.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32425,"name":"saikrishnagk","email":"gopalakrishna.krishna@ibm.com","username":"gksk"},"change_message_id":"183251ba013b12f34603705d96a4c5ca4bf3068e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4e65c850_4400eb41","updated":"2022-12-26 08:22:22.000000000","message":"LGTM","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a1298c1afa4a82fe2d5ea8dbc2abdbd8ef40eb04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e8400da7_bcb5726c","updated":"2022-09-09 07:02:28.000000000","message":"This code is tested and there were no exceptions in update_group.\nFor reference you may check code for _update_replication_grp() @\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py#L6653\n\nPlease let me know if this is good.\n","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"2c9d19685388419ba22acb9dd8b584ca770fa914","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"32ff4e2f_f66c21ce","updated":"2022-12-15 15:25:59.000000000","message":"run-IBM Storage CI","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"347acd38b2e5eac00d724857eaabb646781f89d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"36434a22_d130b6a7","updated":"2022-09-05 20:26:42.000000000","message":"run-IBM Storage CI\n","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"c22d77fddde33990312e359ad6afd3599dbdf5e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6fb217f2_8e9e24de","in_reply_to":"5a5be514_7511b00f","updated":"2022-09-07 10:51:35.000000000","message":"Yes we are currently checking on the CI configuration.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"36b88addb6a04b8e0cb52752b25b9daa7a037731","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cbaf72d6_3759da5b","in_reply_to":"6fb217f2_8e9e24de","updated":"2022-09-07 20:32:13.000000000","message":"Ack, please fix it as soon as possible since this is last week of feature merge.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":true,"context_lines":[{"line_number":6176,"context_line":"                    return model_update"},{"line_number":6177,"context_line":""},{"line_number":6178,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6179,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6180,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6181,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"},{"line_number":6182,"context_line":"                         \u0027The supported code level for this group type spec \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"c36ce2c1_ed5f7625","line":6179,"range":{"start_line":6179,"start_character":50,"end_line":6179,"end_character":60},"updated":"2022-08-23 12:45:43.000000000","message":"This code_level 8,5,1,0 is used at two other places i.e lines 6237 and 6310.\nCan this be declared as constant \u0026 re-used.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"b143ca65f6e90442d667b2d7eac1b2c65f5243f8","unresolved":false,"context_lines":[{"line_number":6176,"context_line":"                    return model_update"},{"line_number":6177,"context_line":""},{"line_number":6178,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6179,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6180,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6181,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"},{"line_number":6182,"context_line":"                         \u0027The supported code level for this group type spec \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"cfee978e_95da9572","line":6179,"range":{"start_line":6179,"start_character":50,"end_line":6179,"end_character":60},"in_reply_to":"c36ce2c1_ed5f7625","updated":"2022-08-26 08:06:11.000000000","message":"As the entire code design is such that everywhere code levels are used directly and not in constants, hence i have followed the same design. In future during entire code optimization, we will consider to keep all the code levels in a different constants file.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":true,"context_lines":[{"line_number":6233,"context_line":"            model_update, volumes_model_update \u003d self._delete_hyperswap_grp("},{"line_number":6234,"context_line":"                group, volumes)"},{"line_number":6235,"context_line":""},{"line_number":6236,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6237,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6238,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6239,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"98f8d3b9_109b95ec","line":6236,"updated":"2022-08-23 12:45:43.000000000","message":"This code block is same as lines 6178 to 6187.\nCan it be kept in a subroutine.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"b143ca65f6e90442d667b2d7eac1b2c65f5243f8","unresolved":false,"context_lines":[{"line_number":6233,"context_line":"            model_update, volumes_model_update \u003d self._delete_hyperswap_grp("},{"line_number":6234,"context_line":"                group, volumes)"},{"line_number":6235,"context_line":""},{"line_number":6236,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6237,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6238,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6239,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"c3b717ce_0e63756a","line":6236,"in_reply_to":"98f8d3b9_109b95ec","updated":"2022-08-26 08:06:11.000000000","message":"Fixed.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":true,"context_lines":[{"line_number":6306,"context_line":"        if volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":6307,"context_line":"            return None, None, None"},{"line_number":6308,"context_line":""},{"line_number":6309,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6310,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6311,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6312,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"2acfdfdc_0555f777","line":6309,"updated":"2022-08-23 12:45:43.000000000","message":"Same comment as for line 6236. Use subroutine ?","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"b143ca65f6e90442d667b2d7eac1b2c65f5243f8","unresolved":false,"context_lines":[{"line_number":6306,"context_line":"        if volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":6307,"context_line":"            return None, None, None"},{"line_number":6308,"context_line":""},{"line_number":6309,"context_line":"        if volume_utils.is_group_a_type(group, \"volume_group_enabled\"):"},{"line_number":6310,"context_line":"            if not (self._state[\u0027code_level\u0027] \u003e\u003d (8, 5, 1, 0)):"},{"line_number":6311,"context_line":"                msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":6312,"context_line":"                         \u0027\"volume_group_enabled\".\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"fd2a10d9_4fcd7e94","line":6309,"in_reply_to":"2acfdfdc_0555f777","updated":"2022-08-26 08:06:11.000000000","message":"Fixed.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":true,"context_lines":[{"line_number":6928,"context_line":"            volumegroup_id \u003d volumegroup[\"id\"]"},{"line_number":6929,"context_line":"        except Exception as ex:"},{"line_number":6930,"context_line":"            if len(add_volumes) \u003e 0:"},{"line_number":6931,"context_line":"                LOG.exception(\"Unable to retrieve volume group\""},{"line_number":6932,"context_line":"                              \"information. Failed with exception \""},{"line_number":6933,"context_line":"                              \"%(ex)s\", ex)"},{"line_number":6934,"context_line":"        if not volumegroup and len(add_volumes) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"634b5b9d_e48c2e6f","line":6931,"range":{"start_line":6931,"start_character":57,"end_line":6931,"end_character":63},"updated":"2022-08-23 12:45:43.000000000","message":"nit: need to add space just before double quotes","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"b143ca65f6e90442d667b2d7eac1b2c65f5243f8","unresolved":false,"context_lines":[{"line_number":6928,"context_line":"            volumegroup_id \u003d volumegroup[\"id\"]"},{"line_number":6929,"context_line":"        except Exception as ex:"},{"line_number":6930,"context_line":"            if len(add_volumes) \u003e 0:"},{"line_number":6931,"context_line":"                LOG.exception(\"Unable to retrieve volume group\""},{"line_number":6932,"context_line":"                              \"information. Failed with exception \""},{"line_number":6933,"context_line":"                              \"%(ex)s\", ex)"},{"line_number":6934,"context_line":"        if not volumegroup and len(add_volumes) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"559629d7_a68d1bdf","line":6931,"range":{"start_line":6931,"start_character":57,"end_line":6931,"end_character":63},"in_reply_to":"634b5b9d_e48c2e6f","updated":"2022-08-26 08:06:11.000000000","message":"Fixed.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":true,"context_lines":[{"line_number":547,"context_line":"        try:"},{"line_number":548,"context_line":"            return self.run_ssh_check_created(ssh_cmd)"},{"line_number":549,"context_line":"        except Exception as ex:"},{"line_number":550,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC6035E\u0027 in ex.msg:"},{"line_number":551,"context_line":"                msg \u003d (_(\u0027CMMVC6372W Action failed because volume group \u0027"},{"line_number":552,"context_line":"                         \u0027with the name provided already exists.\u0027))"},{"line_number":553,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"761672a3_5a021900","line":550,"updated":"2022-08-27 06:01:17.000000000","message":"-1: mkvolumegroup function will fail silently if run_ssh_check_created raises something different than CMMVC6035E. Is that the expected behavior? I\u0027m asking because there are other functions like mkvdisk that will error is reraised in case of an unthreaded exception.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a213566194b90590ead9df4e97322adaa404e361","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        try:"},{"line_number":548,"context_line":"            return self.run_ssh_check_created(ssh_cmd)"},{"line_number":549,"context_line":"        except Exception as ex:"},{"line_number":550,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC6035E\u0027 in ex.msg:"},{"line_number":551,"context_line":"                msg \u003d (_(\u0027CMMVC6372W Action failed because volume group \u0027"},{"line_number":552,"context_line":"                         \u0027with the name provided already exists.\u0027))"},{"line_number":553,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"32341d55_cb000316","line":550,"in_reply_to":"761672a3_5a021900","updated":"2022-09-04 15:27:10.000000000","message":"Addressed","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":true,"context_lines":[{"line_number":578,"context_line":"            self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":579,"context_line":"        except Exception as ex:"},{"line_number":580,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC8749E\u0027 in ex.msg:"},{"line_number":581,"context_line":"                msg \u003d _(\u0027rmvolumegroup: specified volume group is not empty.\u0027)"},{"line_number":582,"context_line":"                LOG.error(msg)"},{"line_number":583,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5d5f4f09_76b23df3","line":581,"updated":"2022-08-27 06:01:17.000000000","message":"Same as above. Function will fail silently if error is not CMMVC8749E. Maybe the best approach would be raise the unexpected error and let the upper calls to decide if it should be ignored.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a213566194b90590ead9df4e97322adaa404e361","unresolved":false,"context_lines":[{"line_number":578,"context_line":"            self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":579,"context_line":"        except Exception as ex:"},{"line_number":580,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC8749E\u0027 in ex.msg:"},{"line_number":581,"context_line":"                msg \u003d _(\u0027rmvolumegroup: specified volume group is not empty.\u0027)"},{"line_number":582,"context_line":"                LOG.error(msg)"},{"line_number":583,"context_line":"                raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cce14926_5972d168","line":581,"in_reply_to":"5d5f4f09_76b23df3","updated":"2022-09-04 15:27:10.000000000","message":"Addressed","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":true,"context_lines":[{"line_number":2835,"context_line":"                     \u0027The supported code level for this group type spec \u0027"},{"line_number":2836,"context_line":"                     \u0027is 8.5.1.0 \u0027"},{"line_number":2837,"context_line":"                     \u0027The current storage code level is %(code_level)s.\u0027)"},{"line_number":2838,"context_line":"                   % {\u0027code_level\u0027: self.code_level})"},{"line_number":2839,"context_line":"            LOG.error(msg)"},{"line_number":2840,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2841,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"59c8e9f3_19d652ae","line":2838,"updated":"2022-08-27 06:01:17.000000000","message":"-1: shouldn\u0027t the function parameter code_level be used instead of a class attribute?","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a213566194b90590ead9df4e97322adaa404e361","unresolved":false,"context_lines":[{"line_number":2835,"context_line":"                     \u0027The supported code level for this group type spec \u0027"},{"line_number":2836,"context_line":"                     \u0027is 8.5.1.0 \u0027"},{"line_number":2837,"context_line":"                     \u0027The current storage code level is %(code_level)s.\u0027)"},{"line_number":2838,"context_line":"                   % {\u0027code_level\u0027: self.code_level})"},{"line_number":2839,"context_line":"            LOG.error(msg)"},{"line_number":2840,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":2841,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"87f1d0dc_3d9cbb14","line":2838,"in_reply_to":"59c8e9f3_19d652ae","updated":"2022-09-04 15:27:10.000000000","message":"Addressed","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":true,"context_lines":[{"line_number":6069,"context_line":""},{"line_number":6070,"context_line":"    @staticmethod"},{"line_number":6071,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6072,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6073,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6074,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6075,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"28f6e515_6642794b","line":6072,"updated":"2022-08-27 06:01:17.000000000","message":"group and grp_id can\u0027t be None at the same time, otherwise the later access to group_id[0:4] and group_id[-5:] will raise a exception. Wouldn\u0027t be simpler to just expect \u0027grp_id\u0027 and skip this checking? Another option would be to add a docstring for this function.\n\nAlso, looks like you never call this function with grp_id so the parameter does not seems to be necessary.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a213566194b90590ead9df4e97322adaa404e361","unresolved":false,"context_lines":[{"line_number":6069,"context_line":""},{"line_number":6070,"context_line":"    @staticmethod"},{"line_number":6071,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6072,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6073,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6074,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6075,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a1931_8f60a9c6","line":6072,"in_reply_to":"28f6e515_6642794b","updated":"2022-09-04 15:27:10.000000000","message":"group and grp_id together will never be none.\nThe use-case of this function is already there in this current review. In the upcoming code patch for the other half of this feature, grp_id is also used. Hence it was necessary to merge it in this review itself.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3df24879af804c86ee0058bbeba4146c796a45fe","unresolved":true,"context_lines":[{"line_number":6245,"context_line":"        else:"},{"line_number":6246,"context_line":"            for volume in volumes:"},{"line_number":6247,"context_line":"                try:"},{"line_number":6248,"context_line":"                    self._helpers.delete_vdisk("},{"line_number":6249,"context_line":"                        volume[\u0027name\u0027],"},{"line_number":6250,"context_line":"                        force_unmap\u003dFalse,"},{"line_number":6251,"context_line":"                        force_delete\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"f23e2912_017cbeb5","line":6248,"updated":"2022-08-27 06:01:17.000000000","message":"-1: Including this \u0027if\u0027 statement will make the code to enter the loop for hyperswap groups, which changes previous behavior.","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a213566194b90590ead9df4e97322adaa404e361","unresolved":false,"context_lines":[{"line_number":6245,"context_line":"        else:"},{"line_number":6246,"context_line":"            for volume in volumes:"},{"line_number":6247,"context_line":"                try:"},{"line_number":6248,"context_line":"                    self._helpers.delete_vdisk("},{"line_number":6249,"context_line":"                        volume[\u0027name\u0027],"},{"line_number":6250,"context_line":"                        force_unmap\u003dFalse,"},{"line_number":6251,"context_line":"                        force_delete\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a58afdf_2c39159a","line":6248,"in_reply_to":"f23e2912_017cbeb5","updated":"2022-09-04 15:27:10.000000000","message":"Addressed","commit_id":"23f30a5620fe605359ed040e542ee18121b2716f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73c489bb89b170e59406bb8684c6e17e09d12a9f","unresolved":true,"context_lines":[{"line_number":548,"context_line":"            return self.run_ssh_check_created(ssh_cmd)"},{"line_number":549,"context_line":"        except Exception as ex:"},{"line_number":550,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC6035E\u0027 in ex.msg:"},{"line_number":551,"context_line":"                msg \u003d (_(\u0027CMMVC6372W Action failed because volume group \u0027"},{"line_number":552,"context_line":"                         \u0027with the name provided already exists.\u0027))"},{"line_number":553,"context_line":"                LOG.error(msg)"},{"line_number":554,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c1e990c7_e80c8c77","line":551,"range":{"start_line":551,"start_character":26,"end_line":551,"end_character":36},"updated":"2022-09-05 20:26:37.000000000","message":"This is different from what we are checking in the exception message above, is this intentional?\nAlso are the cloud operators aware what this value means?","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"d2c94fbcb9faeb06091d0d0f9a37f7c1d3a6b546","unresolved":false,"context_lines":[{"line_number":548,"context_line":"            return self.run_ssh_check_created(ssh_cmd)"},{"line_number":549,"context_line":"        except Exception as ex:"},{"line_number":550,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC6035E\u0027 in ex.msg:"},{"line_number":551,"context_line":"                msg \u003d (_(\u0027CMMVC6372W Action failed because volume group \u0027"},{"line_number":552,"context_line":"                         \u0027with the name provided already exists.\u0027))"},{"line_number":553,"context_line":"                LOG.error(msg)"},{"line_number":554,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c476490b_932d31ae","line":551,"range":{"start_line":551,"start_character":26,"end_line":551,"end_character":36},"in_reply_to":"c1e990c7_e80c8c77","updated":"2022-09-06 08:57:58.000000000","message":"This is the only error code mentioned in the wiki for this feature that we need to check. hence mentioned it specifically.\n\nYes the cloud operator know this code value.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f7800cf430f47d99ad0ac3fb57408b453f37611e","unresolved":false,"context_lines":[{"line_number":548,"context_line":"            return self.run_ssh_check_created(ssh_cmd)"},{"line_number":549,"context_line":"        except Exception as ex:"},{"line_number":550,"context_line":"            if hasattr(ex, \u0027msg\u0027) and \u0027CMMVC6035E\u0027 in ex.msg:"},{"line_number":551,"context_line":"                msg \u003d (_(\u0027CMMVC6372W Action failed because volume group \u0027"},{"line_number":552,"context_line":"                         \u0027with the name provided already exists.\u0027))"},{"line_number":553,"context_line":"                LOG.error(msg)"},{"line_number":554,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c82a8159_143a8aa4","line":551,"range":{"start_line":551,"start_character":26,"end_line":551,"end_character":36},"in_reply_to":"c476490b_932d31ae","updated":"2022-12-21 18:04:40.000000000","message":"Ack","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73c489bb89b170e59406bb8684c6e17e09d12a9f","unresolved":true,"context_lines":[{"line_number":2833,"context_line":"        self.ssh.chvdisk(vol_name, [\u0027-novolumegroup\u0027])"},{"line_number":2834,"context_line":""},{"line_number":2835,"context_line":"    def check_codelevel_for_volumegroup(self, code_level):"},{"line_number":2836,"context_line":"        if not (code_level \u003e\u003d (8, 5, 1, 0)):"},{"line_number":2837,"context_line":"            msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":2838,"context_line":"                     \u0027\"volume_group_enabled\". \u0027"},{"line_number":2839,"context_line":"                     \u0027The supported code level for this group type spec \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9742f9dc_1cc88d2c","line":2836,"range":{"start_line":2836,"start_character":8,"end_line":2836,"end_character":44},"updated":"2022-09-05 20:26:37.000000000","message":"nit: better to just reverse the comparison?\n\nif code_level \u003c (8, 5, 1, 0):","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"d2c94fbcb9faeb06091d0d0f9a37f7c1d3a6b546","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"        self.ssh.chvdisk(vol_name, [\u0027-novolumegroup\u0027])"},{"line_number":2834,"context_line":""},{"line_number":2835,"context_line":"    def check_codelevel_for_volumegroup(self, code_level):"},{"line_number":2836,"context_line":"        if not (code_level \u003e\u003d (8, 5, 1, 0)):"},{"line_number":2837,"context_line":"            msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":2838,"context_line":"                     \u0027\"volume_group_enabled\". \u0027"},{"line_number":2839,"context_line":"                     \u0027The supported code level for this group type spec \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"cee81c51_7c564fe8","line":2836,"range":{"start_line":2836,"start_character":8,"end_line":2836,"end_character":44},"in_reply_to":"9742f9dc_1cc88d2c","updated":"2022-09-06 08:57:58.000000000","message":"Kept this comparison for code uniformity as we are comparing the code greater than or equal to for version 8.5.1.0 in the rest of the code as well.\n\nIf still required, i can reverse it.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f7800cf430f47d99ad0ac3fb57408b453f37611e","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"        self.ssh.chvdisk(vol_name, [\u0027-novolumegroup\u0027])"},{"line_number":2834,"context_line":""},{"line_number":2835,"context_line":"    def check_codelevel_for_volumegroup(self, code_level):"},{"line_number":2836,"context_line":"        if not (code_level \u003e\u003d (8, 5, 1, 0)):"},{"line_number":2837,"context_line":"            msg \u003d (_(\u0027The configured group type spec is \u0027"},{"line_number":2838,"context_line":"                     \u0027\"volume_group_enabled\". \u0027"},{"line_number":2839,"context_line":"                     \u0027The supported code level for this group type spec \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"4765b260_97d6a847","line":2836,"range":{"start_line":2836,"start_character":8,"end_line":2836,"end_character":44},"in_reply_to":"cee81c51_7c564fe8","updated":"2022-12-21 18:04:40.000000000","message":"No, looks good.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"73c489bb89b170e59406bb8684c6e17e09d12a9f","unresolved":true,"context_lines":[{"line_number":6075,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6076,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6077,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6078,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6079,"context_line":""},{"line_number":6080,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":6081,"context_line":"    def create_group(self, context, group):"}],"source_content_type":"text/x-python","patch_set":6,"id":"821be5f6_15be6cc5","line":6078,"range":{"start_line":6078,"start_character":20,"end_line":6078,"end_character":55},"updated":"2022-09-05 20:26:37.000000000","message":"This will generate keyerror if group_id is not supplied (default\u003dNone)","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7ff6f378217a6cdc033bbd406f8fb50fd15e0fc1","unresolved":false,"context_lines":[{"line_number":6075,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6076,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6077,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6078,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6079,"context_line":""},{"line_number":6080,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":6081,"context_line":"    def create_group(self, context, group):"}],"source_content_type":"text/x-python","patch_set":6,"id":"6f8ed738_8756543a","line":6078,"range":{"start_line":6078,"start_character":20,"end_line":6078,"end_character":55},"in_reply_to":"296a805f_07538f9d","updated":"2022-09-07 10:45:38.000000000","message":"If we\u0027re guaranteed to get a group ID either by existing group or by manually passing it, we\u0027re good here.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f7800cf430f47d99ad0ac3fb57408b453f37611e","unresolved":false,"context_lines":[{"line_number":6075,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6076,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6077,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6078,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6079,"context_line":""},{"line_number":6080,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":6081,"context_line":"    def create_group(self, context, group):"}],"source_content_type":"text/x-python","patch_set":6,"id":"f1df5573_14e4c3e8","line":6078,"range":{"start_line":6078,"start_character":20,"end_line":6078,"end_character":55},"in_reply_to":"514eb2c6_4012d4f3","updated":"2022-12-21 18:04:40.000000000","message":"Ack","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"c22d77fddde33990312e359ad6afd3599dbdf5e3","unresolved":false,"context_lines":[{"line_number":6075,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6076,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6077,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6078,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6079,"context_line":""},{"line_number":6080,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":6081,"context_line":"    def create_group(self, context, group):"}],"source_content_type":"text/x-python","patch_set":6,"id":"514eb2c6_4012d4f3","line":6078,"range":{"start_line":6078,"start_character":20,"end_line":6078,"end_character":55},"in_reply_to":"6f8ed738_8756543a","updated":"2022-09-07 10:51:35.000000000","message":"Yes, the group_id is guaranteed.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"d2c94fbcb9faeb06091d0d0f9a37f7c1d3a6b546","unresolved":false,"context_lines":[{"line_number":6075,"context_line":"    def _get_volumegroup_name(group, grp_id\u003dNone):"},{"line_number":6076,"context_line":"        group_id \u003d group.id if group else grp_id"},{"line_number":6077,"context_line":"        vg \u003d storwize_const.VG_PREFIX"},{"line_number":6078,"context_line":"        return vg + group_id[0:4] + \u0027-\u0027 + group_id[-5:]"},{"line_number":6079,"context_line":""},{"line_number":6080,"context_line":"    # Add CG capability to generic volume groups"},{"line_number":6081,"context_line":"    def create_group(self, context, group):"}],"source_content_type":"text/x-python","patch_set":6,"id":"296a805f_07538f9d","line":6078,"range":{"start_line":6078,"start_character":20,"end_line":6078,"end_character":55},"in_reply_to":"821be5f6_15be6cc5","updated":"2022-09-06 08:57:58.000000000","message":"group_id will always be there as we are fetching it from the group object directly or in other case we are passing the grp_id.\nDuring regression testing i didn\u0027t come across any scenario where group object didn\u0027t have group_id.\n\nLet me know if still i need to put a try-except block.","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"e6035e72760837b758c4ccdfdba3e247de2884bb","unresolved":true,"context_lines":[{"line_number":6934,"context_line":""},{"line_number":6935,"context_line":"        # Add volume(s) to the volume group"},{"line_number":6936,"context_line":"        added_vols \u003d []"},{"line_number":6937,"context_line":"        for volume in add_volumes:"},{"line_number":6938,"context_line":"            vol_name \u003d volume.name"},{"line_number":6939,"context_line":"            try:"},{"line_number":6940,"context_line":"                self._helpers.add_vdisk_to_volumegroup(vol_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"d6376e51_6163f11f","line":6937,"updated":"2022-09-08 14:49:59.000000000","message":"you will get an exception here if add_volumes is None\nand update_group have add_volumes\u003dNone as default value","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a1298c1afa4a82fe2d5ea8dbc2abdbd8ef40eb04","unresolved":false,"context_lines":[{"line_number":6934,"context_line":""},{"line_number":6935,"context_line":"        # Add volume(s) to the volume group"},{"line_number":6936,"context_line":"        added_vols \u003d []"},{"line_number":6937,"context_line":"        for volume in add_volumes:"},{"line_number":6938,"context_line":"            vol_name \u003d volume.name"},{"line_number":6939,"context_line":"            try:"},{"line_number":6940,"context_line":"                self._helpers.add_vdisk_to_volumegroup(vol_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"e5faf049_63d1f3b4","line":6937,"in_reply_to":"d6376e51_6163f11f","updated":"2022-09-09 07:02:28.000000000","message":"This update_group() is being called from manager.py:\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L3997\n\nFrom manager.py, it is always passing list in add_volumes or remove_volumes.\n\nIn case of adding volume to the group, it will pass a list of volume objects in add_volumes and an empty list in remove_volumes.\n\nHence it will not give error/exception in the for loop for remove_volumes","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"74655d07a917dcd7b521c64154be69cb6461ea71","unresolved":false,"context_lines":[{"line_number":6934,"context_line":""},{"line_number":6935,"context_line":"        # Add volume(s) to the volume group"},{"line_number":6936,"context_line":"        added_vols \u003d []"},{"line_number":6937,"context_line":"        for volume in add_volumes:"},{"line_number":6938,"context_line":"            vol_name \u003d volume.name"},{"line_number":6939,"context_line":"            try:"},{"line_number":6940,"context_line":"                self._helpers.add_vdisk_to_volumegroup(vol_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"c35f3e04_02ceeb52","line":6937,"in_reply_to":"e5faf049_63d1f3b4","updated":"2022-09-11 14:34:44.000000000","message":"got it","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"e6035e72760837b758c4ccdfdba3e247de2884bb","unresolved":true,"context_lines":[{"line_number":6950,"context_line":""},{"line_number":6951,"context_line":"        # Remove volume(s) from the volume group"},{"line_number":6952,"context_line":"        removed_vols \u003d []"},{"line_number":6953,"context_line":"        for volume in remove_volumes:"},{"line_number":6954,"context_line":"            vol_name \u003d volume.name"},{"line_number":6955,"context_line":"            try:"},{"line_number":6956,"context_line":"                self._helpers.remove_vdisk_from_volumegroup(vol_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0e582860_74d7cd48","line":6953,"updated":"2022-09-08 14:49:59.000000000","message":"same here","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"a1298c1afa4a82fe2d5ea8dbc2abdbd8ef40eb04","unresolved":false,"context_lines":[{"line_number":6950,"context_line":""},{"line_number":6951,"context_line":"        # Remove volume(s) from the volume group"},{"line_number":6952,"context_line":"        removed_vols \u003d []"},{"line_number":6953,"context_line":"        for volume in remove_volumes:"},{"line_number":6954,"context_line":"            vol_name \u003d volume.name"},{"line_number":6955,"context_line":"            try:"},{"line_number":6956,"context_line":"                self._helpers.remove_vdisk_from_volumegroup(vol_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0a5775d0_bda509ac","line":6953,"in_reply_to":"0e582860_74d7cd48","updated":"2022-09-09 07:02:28.000000000","message":"This update_group() is being called from manager.py:\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L3997\n\nFrom manager.py, it is always passing list in add_volumes or remove_volumes.\n\nIn case of removing volume to the group, it will pass a list of volume objects in remove_volumes and an empty list in add_volumes.\n\nHence it will not give error/exception in the for loop for add_volumes","commit_id":"ac9debdf3590b12b1699e38ba48bb310bb0fed1f"}],"releasenotes/notes/ibm-svf-volumegroup-support-134fc2194ad092bd.yaml":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e36f3366705b4bcbddbc77df1d3b96148a10477a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    IBM Spectrum Virtualize Family driver: Added support for volumegroup."},{"line_number":5,"context_line":"    User can now create, modify and delete volumegroup using the exising"},{"line_number":6,"context_line":"    cinder CLI for group operations."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5efee4b9_8a9ab2cc","line":4,"range":{"start_line":4,"start_character":43,"end_line":4,"end_character":72},"updated":"2022-08-23 12:45:43.000000000","message":"for version 8.5.1.0 and above ?","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"},{"author":{"_account_id":32074,"name":"Harsh Ailani","email":"haailani@in.ibm.com","username":"haailani"},"change_message_id":"9270572c7736ea1936a0e8c00d0a5d62dc58047b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    IBM Spectrum Virtualize Family driver: Added support for volumegroup."},{"line_number":5,"context_line":"    User can now create, modify and delete volumegroup using the exising"},{"line_number":6,"context_line":"    cinder CLI for group operations."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"26ddfb43_9ecf685a","line":4,"range":{"start_line":4,"start_character":43,"end_line":4,"end_character":72},"in_reply_to":"5efee4b9_8a9ab2cc","updated":"2022-08-26 08:08:46.000000000","message":"Fixed.","commit_id":"f136e047ca6b78161591a31be47bd761c8ffa1e0"}]}
