)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b260c62c33d85e1ff84f31bb14388528b8dde49a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF ensure the correct volume is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Author: Jay Rubenstein jay.rubenstein@netapp.com"},{"line_number":10,"context_line":"Date: 2018-07-18 11:42 -0600"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"When two management systems are available openstack/cinder and"},{"line_number":13,"context_line":"SolidFire-API/GUI  a volume can be deleted though either interface. Thus"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_2a502b2c","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":28},"updated":"2018-09-28 13:07:58.000000000","message":"Remove this.","commit_id":"f68ebff97cd0abda95311bc36658640808378afa"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"05321ddb35eccc6ebc42696afd4b63a5da42e3d4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"returned object/volumes-id matchs the requested volume-id with a"},{"line_number":24,"context_line":"comparison of svol[\u0027volumeID\u0027] to int(sf_vid)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":" review comment line 597"},{"line_number":27,"context_line":" sf_vid variable value is not assigned when provider_id is None due to"},{"line_number":28,"context_line":" which gate is failing"},{"line_number":29,"context_line":" this has been changed to correctly deal with the no provider_id case"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":" take care of a couple of pep8 extra spaces"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Closes-Bug: #1782373"},{"line_number":34,"context_line":"Change-Id: I92a8e76c64c4e23dd185875e009132938ace5091"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_caedf78e","line":31,"range":{"start_line":26,"start_character":0,"end_line":31,"end_character":43},"updated":"2018-09-28 13:04:55.000000000","message":"These notes should probably be removed.","commit_id":"f68ebff97cd0abda95311bc36658640808378afa"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2d470c14101d65be929463d8d6e7f0fae168b444","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF ensure the correct volume is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When two management systems are available openstack/cinder and"},{"line_number":10,"context_line":"SolidFire-API/GUI  a volume can be deleted though either interface. Thus"},{"line_number":11,"context_line":"if a volume is deleted through the SolidFire-interface and then again"},{"line_number":12,"context_line":"through the openstack/cinder interface it was possible to delete another"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_9b834c56","line":9,"updated":"2018-10-04 20:44:22.000000000","message":"I\u0027m not sure this actually has anything to do with the bug you\u0027re seeing; I think the problem is on the fall-back attempt to get volumes we do a \"list-by-account\" and just always grab the first item, that\u0027s no good at all.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"f07da12958ed424a1392793aadae7ff1dc2277d8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SF ensure the correct volume is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When two management systems are available openstack/cinder and"},{"line_number":10,"context_line":"SolidFire-API/GUI  a volume can be deleted though either interface. Thus"},{"line_number":11,"context_line":"if a volume is deleted through the SolidFire-interface and then again"},{"line_number":12,"context_line":"through the openstack/cinder interface it was possible to delete another"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_95b8ec78","line":9,"in_reply_to":"3f79a3b5_9b834c56","updated":"2018-10-05 12:18:25.000000000","message":"This is a description of the symptom observed and seems accurate to me. The cause is what you mentioned, and is definitely a rather dangerous behavior.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"}],"cinder/tests/unit/volume/drivers/solidfire/test_solidfire.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7c3fe8929f388d28c5f45cc33fdfa532a6af52e9","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                            \u0027packageName\u0027: \u0027\u0027,"},{"line_number":143,"context_line":"                                            \u0027currentVersion\u0027: \u00278.2.1.4\u0027,"},{"line_number":144,"context_line":"                                            \u0027nodeID\u0027: 0, \u0027startTime\u0027: \u0027\u0027},"},{"line_number":145,"context_line":"                                            \u0027clusterVersion\u0027: \u00278.2.1.4\u0027,"},{"line_number":146,"context_line":"                                            \u0027clusterAPIVersion\u0027: \u00278.2\u0027}}"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif method is \u0027AddAccount\u0027 and version \u003d\u003d \u00271.0\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a5482c8a","line":145,"range":{"start_line":145,"start_character":43,"end_line":145,"end_character":44},"updated":"2018-09-28 06:22:24.000000000","message":"remove this space","commit_id":"1593e3d8696117801eae94625e475c5ab26d7ec2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7c3fe8929f388d28c5f45cc33fdfa532a6af52e9","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                            \u0027currentVersion\u0027: \u00278.2.1.4\u0027,"},{"line_number":144,"context_line":"                                            \u0027nodeID\u0027: 0, \u0027startTime\u0027: \u0027\u0027},"},{"line_number":145,"context_line":"                                            \u0027clusterVersion\u0027: \u00278.2.1.4\u0027,"},{"line_number":146,"context_line":"                                            \u0027clusterAPIVersion\u0027: \u00278.2\u0027}}"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif method is \u0027AddAccount\u0027 and version \u003d\u003d \u00271.0\u0027:"},{"line_number":149,"context_line":"            return {\u0027result\u0027: {\u0027accountID\u0027: 25}, \u0027id\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_6542146b","line":146,"range":{"start_line":146,"start_character":43,"end_line":146,"end_character":44},"updated":"2018-09-28 06:22:24.000000000","message":"ditto","commit_id":"1593e3d8696117801eae94625e475c5ab26d7ec2"}],"cinder/volume/drivers/solidfire.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"09da44368bd8cbb238c590bdb6928a99c249ba31","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                # Bug 1782373  match single sf_vid as the above call will"},{"line_number":595,"context_line":"                # return a list for the account"},{"line_number":596,"context_line":"                for sfv in sfvols:"},{"line_number":597,"context_line":"                    if sfv[\u0027volumeID\u0027] \u003d\u003d int(sf_vid):"},{"line_number":598,"context_line":"                        sfvol \u003d sfv"},{"line_number":599,"context_line":"                        break"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_da06c585","line":597,"updated":"2018-07-20 05:21:23.000000000","message":"sf_vid variable value is not assigned when provider_id is None due to which gate is failing","commit_id":"65ddd883c50fe2dd7d17fc59801d8b37d953332c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"4b7fe64a1222df5251c4d4de3736d0f148013ad5","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        self.cluster_pairs \u003d []"},{"line_number":251,"context_line":"        self.replication_enabled \u003d False"},{"line_number":252,"context_line":"        self.failed_over \u003d False"},{"line_number":253,"context_line":"        self.verify_ssl \u003d self.configuration.driver_ssl_cert_verify"},{"line_number":254,"context_line":"        self.target_driver \u003d SolidFireISCSI(solidfire_driver\u003dself,"},{"line_number":255,"context_line":"                                            configuration\u003dself.configuration)"},{"line_number":256,"context_line":"        self.default_cluster \u003d self._create_cluster_reference()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0a168f4b","line":253,"range":{"start_line":253,"start_character":8,"end_line":253,"end_character":67},"updated":"2018-09-28 12:50:19.000000000","message":"This was another bug and is already fixed on master. Please rebase this patch and it will be there.","commit_id":"1593e3d8696117801eae94625e475c5ab26d7ec2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7c3fe8929f388d28c5f45cc33fdfa532a6af52e9","unresolved":false,"context_lines":[{"line_number":579,"context_line":"                        {\u0027startVolumeID\u0027: sf_vid,"},{"line_number":580,"context_line":"                         \u0027limit\u0027: 1},"},{"line_number":581,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":582,"context_line":"                    # Bug 1782373 validate the list returned has what we asked "},{"line_number":583,"context_line":"                    # for, check if there was no match"},{"line_number":584,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"},{"line_number":585,"context_line":"                        sfvol \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0551e030","line":582,"range":{"start_line":582,"start_character":78,"end_line":582,"end_character":79},"updated":"2018-09-28 06:22:24.000000000","message":"remove this space","commit_id":"1593e3d8696117801eae94625e475c5ab26d7ec2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b260c62c33d85e1ff84f31bb14388528b8dde49a","unresolved":false,"context_lines":[{"line_number":516,"context_line":"            req \u003d requests.post(url,"},{"line_number":517,"context_line":"                                data\u003djson.dumps(payload),"},{"line_number":518,"context_line":"                                auth\u003d(endpoint[\u0027login\u0027], endpoint[\u0027passwd\u0027]),"},{"line_number":519,"context_line":"                                verify\u003dself.verify_ssl,"},{"line_number":520,"context_line":"                                timeout\u003d30)"},{"line_number":521,"context_line":"        response \u003d req.json()"},{"line_number":522,"context_line":"        req.close()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0a7a0fba","line":519,"updated":"2018-09-28 13:07:58.000000000","message":"This is great to add ssl verification, but that should be done in its own patch.","commit_id":"f68ebff97cd0abda95311bc36658640808378afa"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b260c62c33d85e1ff84f31bb14388528b8dde49a","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                sfvols \u003d self._issue_api_request("},{"line_number":593,"context_line":"                    \u0027ListVolumesForAccount\u0027,"},{"line_number":594,"context_line":"                    {\u0027accountID\u0027: account[\u0027accountID\u0027]})[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":595,"context_line":"                # Bug 1782373  match single vref.id encase no provider as the"},{"line_number":596,"context_line":"                # above call will return a list for the account"},{"line_number":597,"context_line":"                for sfv in sfvols:"},{"line_number":598,"context_line":"                    if sfv[\u0027attributes\u0027].get(\u0027uuid\u0027, None) \u003d\u003d vref.id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_4aafa72a","line":595,"range":{"start_line":595,"start_character":52,"end_line":595,"end_character":58},"updated":"2018-09-28 13:07:58.000000000","message":"If you do an update - s/encase/in case/","commit_id":"f68ebff97cd0abda95311bc36658640808378afa"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"b9f08feee5e4ef0f8e91787732bdbcb28e833c0f","unresolved":false,"context_lines":[{"line_number":578,"context_line":"                        {\u0027startVolumeID\u0027: sf_vid,"},{"line_number":579,"context_line":"                         \u0027limit\u0027: 1},"},{"line_number":580,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":581,"context_line":"                    # Bug 1782373 validate the list returned has what we asked"},{"line_number":582,"context_line":"                    # for, check if there was no match"},{"line_number":583,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"},{"line_number":584,"context_line":"                        sfvol \u003d None"},{"line_number":585,"context_line":"                except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_f086395f","line":582,"range":{"start_line":581,"start_character":20,"end_line":582,"end_character":54},"updated":"2018-10-03 20:12:02.000000000","message":"There\u0027s no much gain in leaving a reference for a bug that will be closed. We usually do that when the bug is somehow related to the problem being fixed.","commit_id":"783a2bb0d5ac9226286dfd6391f2ee921ce93a44"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2d470c14101d65be929463d8d6e7f0fae168b444","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                sfvols \u003d self._issue_api_request("},{"line_number":583,"context_line":"                    \u0027ListVolumesForAccount\u0027,"},{"line_number":584,"context_line":"                    {\u0027accountID\u0027: account[\u0027accountID\u0027]})[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":585,"context_line":"                if len(sfvols) \u003e\u003d 1:"},{"line_number":586,"context_line":"                    sfvol \u003d sfvols[0]"},{"line_number":587,"context_line":"                    break"},{"line_number":588,"context_line":"        if not sfvol:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_3b6a38b5","side":"PARENT","line":585,"updated":"2018-10-04 20:44:22.000000000","message":"Here\u0027s your bug I\u0027m pretty sure.  This is going to be wrong pretty much any time it gets hit.You request a lit of all volumes for the account and just grab the first one if it\u0027s response is \u003e\u003d1? That needs to drop into your check loop if there\u0027s \u003e1 objects in the response.","commit_id":"5246d383e7f4221e8bcf8e99e760cab5f6426a40"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"f07da12958ed424a1392793aadae7ff1dc2277d8","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                sfvols \u003d self._issue_api_request("},{"line_number":583,"context_line":"                    \u0027ListVolumesForAccount\u0027,"},{"line_number":584,"context_line":"                    {\u0027accountID\u0027: account[\u0027accountID\u0027]})[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":585,"context_line":"                if len(sfvols) \u003e\u003d 1:"},{"line_number":586,"context_line":"                    sfvol \u003d sfvols[0]"},{"line_number":587,"context_line":"                    break"},{"line_number":588,"context_line":"        if not sfvol:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_60ed5023","side":"PARENT","line":585,"in_reply_to":"3f79a3b5_3b6a38b5","updated":"2018-10-05 12:18:25.000000000","message":"Agreed. This was likely inducted given the that the function ListVolumes is only returning 1 volume.","commit_id":"5246d383e7f4221e8bcf8e99e760cab5f6426a40"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"cbbd996e848702bf60364cf1b21d6d3d6f4ac987","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                sfvols \u003d self._issue_api_request("},{"line_number":583,"context_line":"                    \u0027ListVolumesForAccount\u0027,"},{"line_number":584,"context_line":"                    {\u0027accountID\u0027: account[\u0027accountID\u0027]})[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":585,"context_line":"                if len(sfvols) \u003e\u003d 1:"},{"line_number":586,"context_line":"                    sfvol \u003d sfvols[0]"},{"line_number":587,"context_line":"                    break"},{"line_number":588,"context_line":"        if not sfvol:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_d54e6438","side":"PARENT","line":585,"in_reply_to":"3f79a3b5_3b6a38b5","updated":"2018-10-05 12:01:54.000000000","message":"you are correct ListVolumesForAccount if it has an element will always return that element and it may not be what you requested.","commit_id":"5246d383e7f4221e8bcf8e99e760cab5f6426a40"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"f07da12958ed424a1392793aadae7ff1dc2277d8","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                        \u0027ListVolumes\u0027,"},{"line_number":578,"context_line":"                        {\u0027startVolumeID\u0027: sf_vid,"},{"line_number":579,"context_line":"                         \u0027limit\u0027: 1},"},{"line_number":580,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":581,"context_line":"                    # Bug 1782373 validate the list returned has what we asked"},{"line_number":582,"context_line":"                    # for, check if there was no match"},{"line_number":583,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_a02288a5","line":580,"range":{"start_line":580,"start_character":59,"end_line":580,"end_character":62},"updated":"2018-10-05 12:18:25.000000000","message":"This will throw \"IndexError: list index out of range\" if you are deleting a volume removed outside Cinder.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2d470c14101d65be929463d8d6e7f0fae168b444","unresolved":false,"context_lines":[{"line_number":580,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":581,"context_line":"                    # Bug 1782373 validate the list returned has what we asked"},{"line_number":582,"context_line":"                    # for, check if there was no match"},{"line_number":583,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"},{"line_number":584,"context_line":"                        sfvol \u003d None"},{"line_number":585,"context_line":"                except Exception:"},{"line_number":586,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_4913b166","line":583,"updated":"2018-10-04 20:44:22.000000000","message":"I\u0027m confused, if you request the sf_vid and a length of 1; the API should never return anything other than the requested ID. You might want to log that if it happens and figure out what\u0027s going on.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"f07da12958ed424a1392793aadae7ff1dc2277d8","unresolved":false,"context_lines":[{"line_number":580,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":581,"context_line":"                    # Bug 1782373 validate the list returned has what we asked"},{"line_number":582,"context_line":"                    # for, check if there was no match"},{"line_number":583,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"},{"line_number":584,"context_line":"                        sfvol \u003d None"},{"line_number":585,"context_line":"                except Exception:"},{"line_number":586,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8008ac27","line":583,"in_reply_to":"3f79a3b5_4913b166","updated":"2018-10-05 12:18:25.000000000","message":"I hadn\u0027t noticed the limit:1, and I think that Jay must have foreseen it too.  This block should handle the case where the volume is not present in the backend. The way it its still do, but a better way would be just to check to the array len:\n\nsfvols \u003d self._issue_api_request(\n                        \u0027ListVolumes\u0027,\n                        {\u0027startVolumeID\u0027: sf_vid,\n                         \u0027limit\u0027: 1},\n                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027]\n\nif len(sfvols) \u003d\u003d 0:\n    LOG.warning(\u0027Trying to fetch a non-existing volume\u0027)\n    sfvol \u003d None","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"cbbd996e848702bf60364cf1b21d6d3d6f4ac987","unresolved":false,"context_lines":[{"line_number":580,"context_line":"                        version\u003d\u00278.0\u0027)[\u0027result\u0027][\u0027volumes\u0027][0]"},{"line_number":581,"context_line":"                    # Bug 1782373 validate the list returned has what we asked"},{"line_number":582,"context_line":"                    # for, check if there was no match"},{"line_number":583,"context_line":"                    if sfvol[\u0027volumeID\u0027] !\u003d int(sf_vid):"},{"line_number":584,"context_line":"                        sfvol \u003d None"},{"line_number":585,"context_line":"                except Exception:"},{"line_number":586,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b50408c7","line":583,"in_reply_to":"3f79a3b5_4913b166","updated":"2018-10-05 12:01:54.000000000","message":"You are correct that ListVolumes with a starting volID and limit of 1 should return the correct element.  The check may be overkill but I wanted to be sure everything that was returned was the intended value.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2d470c14101d65be929463d8d6e7f0fae168b444","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                # Bug 1782373  match single vref.id encase no provider as the"},{"line_number":595,"context_line":"                # above call will return a list for the account"},{"line_number":596,"context_line":"                for sfv in sfvols:"},{"line_number":597,"context_line":"                    if sfv[\u0027attributes\u0027].get(\u0027uuid\u0027, None) \u003d\u003d vref.id:"},{"line_number":598,"context_line":"                        sfvol \u003d sfv"},{"line_number":599,"context_line":"                        break"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_499e5107","line":597,"updated":"2018-10-04 20:44:22.000000000","message":"This is a good safety to have in here, for sure.  One thing I\u0027d be worried about though is how we\u0027re getting multiple volumes with the same UUID attribute on them (I don\u0027t know how your example of deleting from the API ties in to this).\n\nMaybe you already have a good handle on that, but it might be worth logging it as it could be rather troublesome in the future (we\u0027ve had similar issues in the past).","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"f07da12958ed424a1392793aadae7ff1dc2277d8","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                # Bug 1782373  match single vref.id encase no provider as the"},{"line_number":595,"context_line":"                # above call will return a list for the account"},{"line_number":596,"context_line":"                for sfv in sfvols:"},{"line_number":597,"context_line":"                    if sfv[\u0027attributes\u0027].get(\u0027uuid\u0027, None) \u003d\u003d vref.id:"},{"line_number":598,"context_line":"                        sfvol \u003d sfv"},{"line_number":599,"context_line":"                        break"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_c036a4b4","line":597,"in_reply_to":"3f79a3b5_499e5107","updated":"2018-10-05 12:18:25.000000000","message":"Really don\u0027t understand what is you concern here.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"},{"author":{"_account_id":28710,"name":"Jay Rubenstein","email":"jay.rubenstein@netapp.com","username":"jarbassaidai"},"change_message_id":"cbbd996e848702bf60364cf1b21d6d3d6f4ac987","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                # Bug 1782373  match single vref.id encase no provider as the"},{"line_number":595,"context_line":"                # above call will return a list for the account"},{"line_number":596,"context_line":"                for sfv in sfvols:"},{"line_number":597,"context_line":"                    if sfv[\u0027attributes\u0027].get(\u0027uuid\u0027, None) \u003d\u003d vref.id:"},{"line_number":598,"context_line":"                        sfvol \u003d sfv"},{"line_number":599,"context_line":"                        break"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b5b728d8","line":597,"in_reply_to":"3f79a3b5_499e5107","updated":"2018-10-05 12:01:54.000000000","message":"This falls back on the fact that the ListVolumesForAccount always return an element for the account if there is one.  Since multiple volumes may be returned you must pick the correct one.   I don\u0027t believe this is multiple volumes with the same UUID it is multiple volumes for the same account, and to verify the verf.id you need the \u0027uuid\u0027  \n\nAs for the example of recreation If an Administrator uses either the Soliidfire API or the GUI (not openstack) they are not going through this  code and will delete the volume.   Then when the cinder command to delete the volume happens and there are multiple volumes that cinder created at some point for the account.  LIstVolumesForAccount will return an element, it may not be the element you want.","commit_id":"d1b3adfbe471ad99ddf0dd2b483b77435c157aea"}],"releasenotes/notes/bug-reno-69539ecb9b0b5464.yaml":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"39a7bb28afc66a7d062769272d30fa35db8dbb90","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The Solidfire cinder driver has been fixed to ensure delete happens"},{"line_number":5,"context_line":"    on the correct volume."},{"line_number":6,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3f79a3b5_6e38fa9d","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":4},"updated":"2018-10-04 18:02:01.000000000","message":"Have to remove these trailings.","commit_id":"1b541c2525cc5b6e6cfb87e582f6b44d3f06006d"}]}
