)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jay Rubenstein \u003cjay.rubenstein@netapp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-03-27 16:07:58 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF handle DuplicateSfVolumeNames exception"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the cinder solidfire driver is used in a high availability"},{"line_number":10,"context_line":"environment that is set to active/active with multiple"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_f258fd31","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":42},"updated":"2019-04-04 13:52:02.000000000","message":"NetApp SolidFire: Handle ...\nIts easier like this to browse through our changes","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF handle DuplicateSfVolumeNames exception"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the cinder solidfire driver is used in a high availability"},{"line_number":10,"context_line":"environment that is set to active/active with multiple"},{"line_number":11,"context_line":"c-volume-solidfires services running, multiple solidfire template image"},{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_722f2d88","line":9,"range":{"start_line":9,"start_character":9,"end_line":9,"end_character":15},"updated":"2019-04-04 13:52:02.000000000","message":"Cinder","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF handle DuplicateSfVolumeNames exception"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the cinder solidfire driver is used in a high availability"},{"line_number":10,"context_line":"environment that is set to active/active with multiple"},{"line_number":11,"context_line":"c-volume-solidfires services running, multiple solidfire template image"},{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_72440d48","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":25},"updated":"2019-04-04 13:52:02.000000000","message":"SolidFire","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the cinder solidfire driver is used in a high availability"},{"line_number":10,"context_line":"environment that is set to active/active with multiple"},{"line_number":11,"context_line":"c-volume-solidfires services running, multiple solidfire template image"},{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"},{"line_number":13,"context_line":"openstack/cinder create volume from image command."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_b26355dd","line":11,"range":{"start_line":11,"start_character":47,"end_line":11,"end_character":56},"updated":"2019-04-04 13:52:02.000000000","message":"SolidFire","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When the cinder solidfire driver is used in a high availability"},{"line_number":10,"context_line":"environment that is set to active/active with multiple"},{"line_number":11,"context_line":"c-volume-solidfires services running, multiple solidfire template image"},{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"},{"line_number":13,"context_line":"openstack/cinder create volume from image command."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When this is discovered the DuplicateSfVolumeNames exception is thrown,"},{"line_number":16,"context_line":"the cinder-scheduler will retry the operation unsuccessfully. The work"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_32868567","line":13,"range":{"start_line":12,"start_character":44,"end_line":13,"end_character":50},"updated":"2019-04-04 13:52:02.000000000","message":"This part (at least to me) is not helping to understand the problem. Just saying the above its enough. May be:\n\n\"multiple SolidFire template image volumes may be created for the same image in the volume creation.\"","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"},{"line_number":13,"context_line":"openstack/cinder create volume from image command."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When this is discovered the DuplicateSfVolumeNames exception is thrown,"},{"line_number":16,"context_line":"the cinder-scheduler will retry the operation unsuccessfully. The work"},{"line_number":17,"context_line":"around is to use the solidfire interface/api and remove the duplicate"},{"line_number":18,"context_line":"template."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_d2f14103","line":15,"range":{"start_line":15,"start_character":70,"end_line":15,"end_character":71},"updated":"2019-04-04 13:52:02.000000000","message":"and","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":12,"context_line":"volumes may be created for the same image.  This happens on a"},{"line_number":13,"context_line":"openstack/cinder create volume from image command."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When this is discovered the DuplicateSfVolumeNames exception is thrown,"},{"line_number":16,"context_line":"the cinder-scheduler will retry the operation unsuccessfully. The work"},{"line_number":17,"context_line":"around is to use the solidfire interface/api and remove the duplicate"},{"line_number":18,"context_line":"template."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_728bad67","line":15,"range":{"start_line":15,"start_character":10,"end_line":15,"end_character":23},"updated":"2019-04-04 13:52:02.000000000","message":"happens,","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When this is discovered the DuplicateSfVolumeNames exception is thrown,"},{"line_number":16,"context_line":"the cinder-scheduler will retry the operation unsuccessfully. The work"},{"line_number":17,"context_line":"around is to use the solidfire interface/api and remove the duplicate"},{"line_number":18,"context_line":"template."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"On the unpatched queens release this may cause volumes in the same"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_52e55137","line":17,"range":{"start_line":17,"start_character":21,"end_line":17,"end_character":30},"updated":"2019-04-04 13:52:02.000000000","message":"SolidFire","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":17,"context_line":"around is to use the solidfire interface/api and remove the duplicate"},{"line_number":18,"context_line":"template."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"On the unpatched queens release this may cause volumes in the same"},{"line_number":21,"context_line":"account to be deleted(that has a separate fix that is in the field)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This fixes the DuplicateSfVolumesName by catching the exception and"},{"line_number":24,"context_line":"deleting the newer template duplicate images, keep the oldest one."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_72eacdd8","line":21,"range":{"start_line":20,"start_character":0,"end_line":21,"end_character":67},"updated":"2019-04-04 13:52:02.000000000","message":"This reference to a patch that might not make sense for readers that are not familiar with the history of this problem.","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":20,"context_line":"On the unpatched queens release this may cause volumes in the same"},{"line_number":21,"context_line":"account to be deleted(that has a separate fix that is in the field)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This fixes the DuplicateSfVolumesName by catching the exception and"},{"line_number":24,"context_line":"deleting the newer template duplicate images, keep the oldest one."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I6204aabcafa3b7b77167238d4344355370dc4567"},{"line_number":27,"context_line":"Closes-Bug:1813210"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_d2a94190","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":66},"updated":"2019-04-04 13:52:02.000000000","message":"Shouldn\u0027t we delete the older and keep the newer? It\u0027s very unlikely that they will be different, but if they are, i.e. the glance image was updated, we should keep the newer.","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"}],"cinder/volume/drivers/solidfire.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":950,"context_line":"            if meta:"},{"line_number":951,"context_line":"                alt_id \u003d meta.get(\u0027uuid\u0027, \u0027\u0027)"},{"line_number":952,"context_line":"                if meta.get(\u0027image_info\u0027, None) is not None:"},{"line_number":953,"context_line":"                    self.duplicate_image_vols.append(v)"},{"line_number":954,"context_line":"            if uuid in v[\u0027name\u0027] or uuid in alt_id:"},{"line_number":955,"context_line":"                found_count +\u003d 1"},{"line_number":956,"context_line":"                sf_volref \u003d v"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_b2f3559f","line":953,"range":{"start_line":953,"start_character":20,"end_line":953,"end_character":55},"updated":"2019-04-04 13:52:02.000000000","message":"What if I have 2 volume images referring from different images? You will still add them here.","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"76a99493f2274e1683c86963a6e6381b1f0493b1","unresolved":false,"context_lines":[{"line_number":950,"context_line":"            if meta:"},{"line_number":951,"context_line":"                alt_id \u003d meta.get(\u0027uuid\u0027, \u0027\u0027)"},{"line_number":952,"context_line":"                if meta.get(\u0027image_info\u0027, None) is not None:"},{"line_number":953,"context_line":"                    self.duplicate_image_vols.append(v)"},{"line_number":954,"context_line":"            if uuid in v[\u0027name\u0027] or uuid in alt_id:"},{"line_number":955,"context_line":"                found_count +\u003d 1"},{"line_number":956,"context_line":"                sf_volref \u003d v"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_3ddd1242","line":953,"range":{"start_line":953,"start_character":20,"end_line":953,"end_character":55},"in_reply_to":"5fc1f717_b2f3559f","updated":"2019-04-25 13:41:31.000000000","message":"yes this needs to be enhanced to check on maching image-uuid","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":968,"context_line":"            LOG.error(\"Found %(count)s volumes mapped to id: %(uuid)s.\","},{"line_number":969,"context_line":"                      {\u0027count\u0027: found_count,"},{"line_number":970,"context_line":"                       \u0027uuid\u0027: uuid})"},{"line_number":971,"context_line":"            raise exception.DuplicateSfVolumeNames(vol_name\u003duuid)"},{"line_number":972,"context_line":"        else:"},{"line_number":973,"context_line":"            self.duplicate_image_vols[:] \u003d []"},{"line_number":974,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_15fed304","line":971,"range":{"start_line":971,"start_character":12,"end_line":971,"end_character":65},"updated":"2019-04-04 13:52:02.000000000","message":"You don\u0027t need to raise this here. Just warn, and remove the duplicate.","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"76a99493f2274e1683c86963a6e6381b1f0493b1","unresolved":false,"context_lines":[{"line_number":968,"context_line":"            LOG.error(\"Found %(count)s volumes mapped to id: %(uuid)s.\","},{"line_number":969,"context_line":"                      {\u0027count\u0027: found_count,"},{"line_number":970,"context_line":"                       \u0027uuid\u0027: uuid})"},{"line_number":971,"context_line":"            raise exception.DuplicateSfVolumeNames(vol_name\u003duuid)"},{"line_number":972,"context_line":"        else:"},{"line_number":973,"context_line":"            self.duplicate_image_vols[:] \u003d []"},{"line_number":974,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_bd9ee260","line":971,"range":{"start_line":971,"start_character":12,"end_line":971,"end_character":65},"in_reply_to":"5fc1f717_15fed304","updated":"2019-04-25 13:41:31.000000000","message":"If there is no external lock  then when this is called in _verify_image and it keeps the latest then newest image there is a chance that the image will be incomplete as verify image only checks the image_imfo updated_image time  against what was written on the iso which is written when the template volume is created and not after the image is put on the template volume,.   (the check could be enhanced to crc but I\u0027m not sure if that would hit some timeout threshold or we could change when the updated time is written)","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                       \u0027uuid\u0027: uuid})"},{"line_number":971,"context_line":"            raise exception.DuplicateSfVolumeNames(vol_name\u003duuid)"},{"line_number":972,"context_line":"        else:"},{"line_number":973,"context_line":"            self.duplicate_image_vols[:] \u003d []"},{"line_number":974,"context_line":""},{"line_number":975,"context_line":"        return sf_volref"},{"line_number":976,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_121349ba","line":973,"range":{"start_line":973,"start_character":12,"end_line":973,"end_character":45},"updated":"2019-04-04 13:52:02.000000000","message":"What are you trying to do here?","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"76a99493f2274e1683c86963a6e6381b1f0493b1","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                       \u0027uuid\u0027: uuid})"},{"line_number":971,"context_line":"            raise exception.DuplicateSfVolumeNames(vol_name\u003duuid)"},{"line_number":972,"context_line":"        else:"},{"line_number":973,"context_line":"            self.duplicate_image_vols[:] \u003d []"},{"line_number":974,"context_line":""},{"line_number":975,"context_line":"        return sf_volref"},{"line_number":976,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_1de28e02","line":973,"range":{"start_line":973,"start_character":12,"end_line":973,"end_character":45},"in_reply_to":"5fc1f717_121349ba","updated":"2019-04-25 13:41:31.000000000","message":"zero the array","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"            template_vol \u003d self._do_volume_create(sf_account, params)"},{"line_number":1027,"context_line":"            # check for duplicate sf template image-volumes"},{"line_number":1028,"context_line":"            try:"},{"line_number":1029,"context_line":"                self._get_sf_volume(image_id, params)"},{"line_number":1030,"context_line":"            except exception.DuplicateSfVolumeNames:"},{"line_number":1031,"context_line":"                self._cleanup_duplicate_template_image_volumes(template_vol)"},{"line_number":1032,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_551bfb71","line":1029,"range":{"start_line":1029,"start_character":16,"end_line":1029,"end_character":53},"updated":"2019-04-04 13:52:02.000000000","message":"If something is returned here, then we can just return from the function as we already have the image.","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"58723cc9b490e1a96d3506051a6b3d802c1c7e35","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"                return"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"        self._detach_volume(context, attach_info, tvol, properties)"},{"line_number":1073,"context_line":"        attributes[\u0027image_info\u0027][\u0027image_ready\u0027] \u003d True"},{"line_number":1074,"context_line":"        t_params \u003d {\u0027volumeID\u0027: template_vol[\u0027provider_id\u0027].split(\u0027 \u0027, 1)[0],"},{"line_number":1075,"context_line":"                    \"setCreateTime\": False,"},{"line_number":1076,"context_line":"                    \"attributes\": attributes}"},{"line_number":1077,"context_line":"        self._issue_api_request(\u0027ModifyVolume\u0027, t_params)"},{"line_number":1078,"context_line":"        sf_vol \u003d self._get_sf_volume(image_id, params)"},{"line_number":1079,"context_line":"        LOG.debug(\u0027Successfully created SolidFire Image Template \u0027"},{"line_number":1080,"context_line":"                  \u0027for image-id: %s\u0027, image_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_3578af8d","line":1077,"range":{"start_line":1073,"start_character":0,"end_line":1077,"end_character":57},"updated":"2019-04-04 13:52:02.000000000","message":"This time checking will not work if you costumer is coming from an upgrade and his cluster already have duplicated volumes. Can\u0027t you just use the volume creation time?","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"76a99493f2274e1683c86963a6e6381b1f0493b1","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"                return"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"        self._detach_volume(context, attach_info, tvol, properties)"},{"line_number":1073,"context_line":"        attributes[\u0027image_info\u0027][\u0027image_ready\u0027] \u003d True"},{"line_number":1074,"context_line":"        t_params \u003d {\u0027volumeID\u0027: template_vol[\u0027provider_id\u0027].split(\u0027 \u0027, 1)[0],"},{"line_number":1075,"context_line":"                    \"setCreateTime\": False,"},{"line_number":1076,"context_line":"                    \"attributes\": attributes}"},{"line_number":1077,"context_line":"        self._issue_api_request(\u0027ModifyVolume\u0027, t_params)"},{"line_number":1078,"context_line":"        sf_vol \u003d self._get_sf_volume(image_id, params)"},{"line_number":1079,"context_line":"        LOG.debug(\u0027Successfully created SolidFire Image Template \u0027"},{"line_number":1080,"context_line":"                  \u0027for image-id: %s\u0027, image_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_7d794afa","line":1077,"range":{"start_line":1073,"start_character":0,"end_line":1077,"end_character":57},"in_reply_to":"5fc1f717_3578af8d","updated":"2019-04-25 13:41:31.000000000","message":"This was abandoned after meeting with Erlon","commit_id":"4bf1fa8185bfb00627a3262ef4c6a0658bc9188c"}]}
