)]}'
{"cinder/volume/drivers/nimble.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"be8e10132fb74efc6d9ec1099c6f623a8f0d68cd","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class NimbleVolumeBusyException(exception.VolumeIsBusy):"},{"line_number":110,"context_line":"    message \u003d _(\"Nimble Cinder Driver Volume Busy exception\")"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class NimbleBaseVolumeDriver(san.SanDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_5a223a54","line":110,"range":{"start_line":110,"start_character":50,"end_line":110,"end_character":59},"updated":"2017-09-25 19:27:33.000000000","message":"Don\u0027t really need to state that this is an exception.","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"be8e10132fb74efc6d9ec1099c6f623a8f0d68cd","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class NimbleVolumeBusyException(exception.VolumeIsBusy):"},{"line_number":110,"context_line":"    message \u003d _(\"Nimble Cinder Driver Volume Busy exception\")"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class NimbleBaseVolumeDriver(san.SanDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_9add5244","line":110,"range":{"start_line":110,"start_character":17,"end_line":110,"end_character":49},"updated":"2017-09-25 19:27:33.000000000","message":"This message isn\u0027t very clear.  Suggest:  \"Nimble Cinder Driver:  Volume Busy\"","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":16668,"name":"Raunak Kumar","email":"rkumar@nimblestorage.com","username":"rkumar"},"change_message_id":"11a0447fff99b1d466eb973a9f17fc09c08097ca","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class NimbleVolumeBusyException(exception.VolumeIsBusy):"},{"line_number":110,"context_line":"    message \u003d _(\"Nimble Cinder Driver Volume Busy exception\")"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class NimbleBaseVolumeDriver(san.SanDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_5f790991","line":110,"range":{"start_line":110,"start_character":17,"end_line":110,"end_character":49},"in_reply_to":"7f515b1d_9add5244","updated":"2017-09-25 20:39:36.000000000","message":"Done","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a21fdaa8c87c76bab2c318fcb3bab4555ffc1bf9","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            self.APIExecutor.delete_vol(volume[\u0027name\u0027])"},{"line_number":221,"context_line":"        except NimbleAPIException as ex:"},{"line_number":222,"context_line":"            LOG.debug(\"delete volume exception: %s\", ex)"},{"line_number":223,"context_line":"            if SM_OBJ_HAS_CLONE in six.text_type(ex):"},{"line_number":224,"context_line":"                LOG.warning(\u0027Volume %(vol)s : %(state)s\u0027,"},{"line_number":225,"context_line":"                            {\u0027vol\u0027: volume[\u0027name\u0027],"},{"line_number":226,"context_line":"                             \u0027state\u0027: SM_OBJ_HAS_CLONE})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_7af616fc","line":223,"updated":"2017-09-25 19:16:05.000000000","message":"So if it failed for a different reason you just want to ignore it and move on? Seems like it should reraise the exception.","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":16668,"name":"Raunak Kumar","email":"rkumar@nimblestorage.com","username":"rkumar"},"change_message_id":"11a0447fff99b1d466eb973a9f17fc09c08097ca","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            self.APIExecutor.delete_vol(volume[\u0027name\u0027])"},{"line_number":221,"context_line":"        except NimbleAPIException as ex:"},{"line_number":222,"context_line":"            LOG.debug(\"delete volume exception: %s\", ex)"},{"line_number":223,"context_line":"            if SM_OBJ_HAS_CLONE in six.text_type(ex):"},{"line_number":224,"context_line":"                LOG.warning(\u0027Volume %(vol)s : %(state)s\u0027,"},{"line_number":225,"context_line":"                            {\u0027vol\u0027: volume[\u0027name\u0027],"},{"line_number":226,"context_line":"                             \u0027state\u0027: SM_OBJ_HAS_CLONE})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_ffae75e5","line":223,"in_reply_to":"7f515b1d_7af616fc","updated":"2017-09-25 20:39:36.000000000","message":"Done, Will change for the rest in a separate review","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a21fdaa8c87c76bab2c318fcb3bab4555ffc1bf9","unresolved":false,"context_lines":[{"line_number":1678,"context_line":"        url \u003d self.uri + api"},{"line_number":1679,"context_line":"        r \u003d requests.delete(url, headers\u003dself.headers, verify\u003dself.verify)"},{"line_number":1680,"context_line":"        if r.status_code !\u003d 201 and r.status_code !\u003d 200:"},{"line_number":1681,"context_line":"            base \u003d \"Failed to execute api %(api)s : Error Code :%(code)s\" % {"},{"line_number":1682,"context_line":"                \u0027api\u0027: api,"},{"line_number":1683,"context_line":"                \u0027code\u0027: r.status_code}"},{"line_number":1684,"context_line":"            LOG.debug(\"Base error : %(base)s\", {\u0027base\u0027: base})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_1a92829f","line":1681,"range":{"start_line":1681,"start_character":63,"end_line":1681,"end_character":64},"updated":"2017-09-25 19:16:05.000000000","message":"Space on the wrong side of the :, but looks like there is odd spacing used throughout here.","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":16668,"name":"Raunak Kumar","email":"rkumar@nimblestorage.com","username":"rkumar"},"change_message_id":"11a0447fff99b1d466eb973a9f17fc09c08097ca","unresolved":false,"context_lines":[{"line_number":1678,"context_line":"        url \u003d self.uri + api"},{"line_number":1679,"context_line":"        r \u003d requests.delete(url, headers\u003dself.headers, verify\u003dself.verify)"},{"line_number":1680,"context_line":"        if r.status_code !\u003d 201 and r.status_code !\u003d 200:"},{"line_number":1681,"context_line":"            base \u003d \"Failed to execute api %(api)s : Error Code :%(code)s\" % {"},{"line_number":1682,"context_line":"                \u0027api\u0027: api,"},{"line_number":1683,"context_line":"                \u0027code\u0027: r.status_code}"},{"line_number":1684,"context_line":"            LOG.debug(\"Base error : %(base)s\", {\u0027base\u0027: base})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_dfc0597f","line":1681,"range":{"start_line":1681,"start_character":63,"end_line":1681,"end_character":64},"in_reply_to":"7f515b1d_1a92829f","updated":"2017-09-25 20:39:36.000000000","message":"Done","commit_id":"888265d678eed9fb0cbecb0fb88d9ae84194e1e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebfa3fd970d020401687394afa41c605306a1362","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                # set the volume back to be online and raise busy exception"},{"line_number":228,"context_line":"                self.APIExecutor.online_vol(volume[\u0027name\u0027], True)"},{"line_number":229,"context_line":"                raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":230,"context_line":"            raise ex"},{"line_number":231,"context_line":"        # Nimble backend does not delete the snapshot from the parent volume"},{"line_number":232,"context_line":"        # if there is a dependent clone. So the deletes need to be in reverse"},{"line_number":233,"context_line":"        # order i.e."}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_90164ef1","line":230,"updated":"2017-09-25 22:38:54.000000000","message":"Should just be \"raise\", not \"raise ex\".","commit_id":"52203c7971299a1b6975a040378770d633b60c6b"},{"author":{"_account_id":16668,"name":"Raunak Kumar","email":"rkumar@nimblestorage.com","username":"rkumar"},"change_message_id":"cffe544b0c01a5416dfcc428e31f43ff0b52c119","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                # set the volume back to be online and raise busy exception"},{"line_number":228,"context_line":"                self.APIExecutor.online_vol(volume[\u0027name\u0027], True)"},{"line_number":229,"context_line":"                raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":230,"context_line":"            raise ex"},{"line_number":231,"context_line":"        # Nimble backend does not delete the snapshot from the parent volume"},{"line_number":232,"context_line":"        # if there is a dependent clone. So the deletes need to be in reverse"},{"line_number":233,"context_line":"        # order i.e."}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_d0ca866c","line":230,"in_reply_to":"7f515b1d_90164ef1","updated":"2017-09-25 22:44:20.000000000","message":"Done","commit_id":"52203c7971299a1b6975a040378770d633b60c6b"}]}
