)]}'
{"nova/volume/cinder.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2b3cf4d00d475a29046c66da4a2c1aa80b4fe69e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                            \u0027vol_zone\u0027: volume[\u0027availability_zone\u0027]}"},{"line_number":334,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"    def check_detach(self, context, volume):"},{"line_number":337,"context_line":"        # TODO(vish): abstract status checking?"},{"line_number":338,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \"available\" and \\"},{"line_number":339,"context_line":"                volume[\u0027attach_status\u0027] \u003d\u003d \"detached\":"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6ced46_c3935b4d","line":336,"updated":"2015-03-25 08:46:08.000000000","message":"IMHO this method should never be used - it is racy (it\u0027s checking a status without consulting the cinder API) and has caused us a number of bugs in the past.\n\nIf you want to fix it then the only thing to do is replace it with test-and-set api calls to cinder.","commit_id":"1e95b2a6589b14a610ce6135ec32da6b6068c272"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6d697408848ca945e677c06038154a85ed6457cd","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":"    def check_detach(self, context, volume):"},{"line_number":337,"context_line":"        # TODO(vish): abstract status checking?"},{"line_number":338,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \"available\" and \\"},{"line_number":339,"context_line":"                volume[\u0027attach_status\u0027] \u003d\u003d \"detached\":"},{"line_number":340,"context_line":"            msg \u003d _(\"volume %s already detached\") % volume[\u0027id\u0027]"},{"line_number":341,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da9b358b_bb9334fa","line":338,"updated":"2015-03-30 05:33:21.000000000","message":"please write this without the \\\nif (volume[\u0027status\u0027] \u003d\u003d \"available\" and\n        volume[\u0027attach_status\u0027] \u003d\u003d \"detached\"):","commit_id":"1e95b2a6589b14a610ce6135ec32da6b6068c272"}]}
