)]}'
{"cinder/volume/drivers/nec/volume.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c7e0259b14a51b309fd16a12fc0b5002c0f42971","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                 Fixed bug #1778669: LUNs of detached volumes are never reused."},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    VERSION \u003d \u00271.10.3\u0027"},{"line_number":53,"context_line":"    CI_WIKI_NAME \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_c7cafa18","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":22},"updated":"2019-09-10 10:32:47.000000000","message":"what is the criteria for bumping versions?\nI see version bump for bug fixes but not for this multi-attach feature.","commit_id":"e4ee4e953f8f6b1575b37ed50fc22d210a04cd82"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"1945b77ca6ce270412dfdfbad8ac1b465eb790d7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                 Fixed bug #1778669: LUNs of detached volumes are never reused."},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    VERSION \u003d \u00271.10.3\u0027"},{"line_number":53,"context_line":"    CI_WIKI_NAME \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_abe2092e","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":22},"in_reply_to":"5faad753_c7cafa18","updated":"2019-09-11 11:38:17.000000000","message":"We would like to use same version number until first release. The 1.11.1 for the first Train release.","commit_id":"e4ee4e953f8f6b1575b37ed50fc22d210a04cd82"}],"cinder/volume/drivers/nec/volume_helper.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"dca17f68877fded4d1913a3a531563376b77ebc8","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"            return"},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        if self._is_multi_attachment(volume, connector):"},{"line_number":1170,"context_line":"            return"},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"        # delete unused access control setting."},{"line_number":1173,"context_line":"        xml \u003d self._cli.view_all(self._properties[\u0027ismview_path\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_be88a6c5","line":1170,"updated":"2019-09-04 14:39:44.000000000","message":"Since this driver doesn\u0027t have any locks around terminate_connection, I think this is racy and will not behave as intended if two terminate_connection calls occur at the same time for the same volume, resulting in the volume attachments never being fully torn down on the backend.","commit_id":"bc62fd9ea4a2598c6382fbc8d7ec922decd043e3"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"            return"},{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        if self._is_multi_attachment(volume, connector):"},{"line_number":1170,"context_line":"            return"},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"        # delete unused access control setting."},{"line_number":1173,"context_line":"        xml \u003d self._cli.view_all(self._properties[\u0027ismview_path\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_8488bb71","line":1170,"in_reply_to":"7faddb67_be88a6c5","updated":"2019-09-06 09:26:22.000000000","message":"Done","commit_id":"bc62fd9ea4a2598c6382fbc8d7ec922decd043e3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"50307bf2b40f5cd55cc8bd1e063be21a406135c8","unresolved":false,"context_lines":[{"line_number":1405,"context_line":"    def _is_multi_attachment(self, volume, connector):"},{"line_number":1406,"context_line":"        \"\"\"Check the number of attached instances."},{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"        Returns true if the attached is multiple instances."},{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_0b1de1bc","line":1408,"range":{"start_line":1408,"start_character":28,"end_line":1408,"end_character":39},"updated":"2019-09-05 14:25:15.000000000","message":"volume is attached to","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":1405,"context_line":"    def _is_multi_attachment(self, volume, connector):"},{"line_number":1406,"context_line":"        \"\"\"Check the number of attached instances."},{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"        Returns true if the attached is multiple instances."},{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_4482c351","line":1408,"range":{"start_line":1408,"start_character":28,"end_line":1408,"end_character":39},"in_reply_to":"7faddb67_0b1de1bc","updated":"2019-09-06 09:26:22.000000000","message":"Done","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"50307bf2b40f5cd55cc8bd1e063be21a406135c8","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"        \"\"\"Check the number of attached instances."},{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"        Returns true if the attached is multiple instances."},{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"},{"line_number":1412,"context_line":"        attach_list \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_4b6c3935","line":1409,"range":{"start_line":1409,"start_character":29,"end_line":1409,"end_character":40},"updated":"2019-09-05 14:25:15.000000000","message":"same","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"        \"\"\"Check the number of attached instances."},{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"        Returns true if the attached is multiple instances."},{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"},{"line_number":1412,"context_line":"        attach_list \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_e4964f95","line":1409,"range":{"start_line":1409,"start_character":29,"end_line":1409,"end_character":40},"in_reply_to":"7faddb67_4b6c3935","updated":"2019-09-06 09:26:22.000000000","message":"Done","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"50307bf2b40f5cd55cc8bd1e063be21a406135c8","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"},{"line_number":1412,"context_line":"        attach_list \u003d None"},{"line_number":1413,"context_line":"        if hasattr(volume, \u0027volume_attachment\u0027):"},{"line_number":1414,"context_line":"            attach_list \u003d volume.get(\u0027volume_attachment\u0027)"},{"line_number":1415,"context_line":""},{"line_number":1416,"context_line":"        if attach_list is None:"},{"line_number":1417,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_31412e37","line":1414,"range":{"start_line":1412,"start_character":0,"end_line":1414,"end_character":57},"updated":"2019-09-05 14:25:15.000000000","message":"is this needed?\nwe can write it as\nattach_list \u003d volume.volume_attachment","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"        Returns false if the attached is a single instance."},{"line_number":1410,"context_line":"        \"\"\""},{"line_number":1411,"context_line":"        host \u003d connector[\u0027host\u0027]"},{"line_number":1412,"context_line":"        attach_list \u003d None"},{"line_number":1413,"context_line":"        if hasattr(volume, \u0027volume_attachment\u0027):"},{"line_number":1414,"context_line":"            attach_list \u003d volume.get(\u0027volume_attachment\u0027)"},{"line_number":1415,"context_line":""},{"line_number":1416,"context_line":"        if attach_list is None:"},{"line_number":1417,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_e4c40f95","line":1414,"range":{"start_line":1412,"start_character":0,"end_line":1414,"end_character":57},"in_reply_to":"7faddb67_31412e37","updated":"2019-09-06 09:26:22.000000000","message":"Done","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"50307bf2b40f5cd55cc8bd1e063be21a406135c8","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        if attach_list is None:"},{"line_number":1417,"context_line":"            return False"},{"line_number":1418,"context_line":""},{"line_number":1419,"context_line":"        host_list \u003d [att.connector[\u0027host\u0027] for att in attach_list if"},{"line_number":1420,"context_line":"                     att is not None and att.connector is not None]"},{"line_number":1421,"context_line":"        if host_list.count(host) \u003e 1:"},{"line_number":1422,"context_line":"            LOG.info(\"Volume is attached to multiple instances on \""},{"line_number":1423,"context_line":"                     \"this host.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_3c410537","line":1420,"range":{"start_line":1419,"start_character":0,"end_line":1420,"end_character":67},"updated":"2019-09-05 14:25:15.000000000","message":"or it can be done by comparing att.connector[\u0027initiator\u0027] with connector[\u0027initiator\u0027] but this is also right","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        if attach_list is None:"},{"line_number":1417,"context_line":"            return False"},{"line_number":1418,"context_line":""},{"line_number":1419,"context_line":"        host_list \u003d [att.connector[\u0027host\u0027] for att in attach_list if"},{"line_number":1420,"context_line":"                     att is not None and att.connector is not None]"},{"line_number":1421,"context_line":"        if host_list.count(host) \u003e 1:"},{"line_number":1422,"context_line":"            LOG.info(\"Volume is attached to multiple instances on \""},{"line_number":1423,"context_line":"                     \"this host.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_a4905797","line":1420,"range":{"start_line":1419,"start_character":0,"end_line":1420,"end_character":67},"in_reply_to":"7faddb67_3c410537","updated":"2019-09-06 09:26:22.000000000","message":"I will consider next time.","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0930bc8bc33f92670f012ee9d559fd9207058776","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class MStorageDriver(volume_common.MStorageVolumeCommon):"},{"line_number":36,"context_line":"    \"\"\"M-Series Storage helper class.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _convert_id2name(self, volume):"},{"line_number":39,"context_line":"        ldname \u003d (self.get_ldname(volume.id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_724a0a28","line":36,"updated":"2019-09-08 04:02:32.000000000","message":"This class should have a version and a version history comment block","commit_id":"19cd37b0f1e8b0a8f9a732444d80c457bf994fe4"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"2e2726b01199eecf9d15b8121f783dcf5a982c0e","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class MStorageDriver(volume_common.MStorageVolumeCommon):"},{"line_number":36,"context_line":"    \"\"\"M-Series Storage helper class.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _convert_id2name(self, volume):"},{"line_number":39,"context_line":"        ldname \u003d (self.get_ldname(volume.id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_bceb6cae","line":36,"in_reply_to":"5faad753_724a0a28","updated":"2019-09-09 12:02:21.000000000","message":"Done.\nI added the version history to the MStorageFCDriver and the  MStorageISCSIDriver.","commit_id":"19cd37b0f1e8b0a8f9a732444d80c457bf994fe4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"571389fcf1c0c55810d111e0b7cd0dcab21d4234","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class MStorageDriver(volume_common.MStorageVolumeCommon):"},{"line_number":36,"context_line":"    \"\"\"M-Series Storage helper class.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _convert_id2name(self, volume):"},{"line_number":39,"context_line":"        ldname \u003d (self.get_ldname(volume.id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_f819f987","line":36,"in_reply_to":"5faad753_724a0a28","updated":"2019-09-08 17:43:54.000000000","message":"This seems to be a helper class and the versioning is done here [1]\nThe inheritance structure is,\nMStorageVolumeCommon -\u003e MStorageDriver -\u003e MStorageDSVDriver -\u003e MStorageISCSIDriver\n[1] https://github.com/openstack/cinder/blob/master/cinder/volume/drivers/nec/volume.py#L31-L32","commit_id":"19cd37b0f1e8b0a8f9a732444d80c457bf994fe4"}],"doc/source/configuration/block-storage/drivers/nec-storage-m-series-driver.rst":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"50307bf2b40f5cd55cc8bd1e063be21a406135c8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- Efficient non-disruptive volume backup."},{"line_number":53,"context_line":"- Manage and unmanage a volume."},{"line_number":54,"context_line":"- Manage and unmanage a snapshot."},{"line_number":55,"context_line":"- Attach a volume to multiple instances as once(multi-attach)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Preparation"},{"line_number":58,"context_line":"~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_9ca039f5","line":55,"range":{"start_line":55,"start_character":40,"end_line":55,"end_character":42},"updated":"2019-09-05 14:25:15.000000000","message":"at","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"7968d7ecc627a70c4bdc3ebd781e1b661fbc1cb5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- Efficient non-disruptive volume backup."},{"line_number":53,"context_line":"- Manage and unmanage a volume."},{"line_number":54,"context_line":"- Manage and unmanage a snapshot."},{"line_number":55,"context_line":"- Attach a volume to multiple instances as once(multi-attach)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Preparation"},{"line_number":58,"context_line":"~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_c48d537c","line":55,"range":{"start_line":55,"start_character":40,"end_line":55,"end_character":42},"in_reply_to":"7faddb67_9ca039f5","updated":"2019-09-06 09:26:22.000000000","message":"Done","commit_id":"70f97cdc39b3e8d7dd3aca2a20ffbc9c7a749b3e"}]}
