)]}'
{"cinder/api/contrib/volume_actions.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9c0e3a5abe7c6704cb9963d27c745b88da736900","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                                                         connector)"},{"line_number":189,"context_line":"        except exception.InvalidInput as err:"},{"line_number":190,"context_line":"            raise webob.exc.HTTPBadRequest("},{"line_number":191,"context_line":"                explanation\u003derr.msg)"},{"line_number":192,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":193,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":194,"context_line":"            raise webob.exc.HTTPInternalServerError(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_d90e77e4","line":191,"updated":"2017-06-21 13:59:38.000000000","message":"-1: Please just remove L189-L191 and let our wsgi middleware handle the exception.","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4e0c827c608b653ca3834712c255b14d84f884c9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                                                         connector)"},{"line_number":189,"context_line":"        except exception.InvalidInput as err:"},{"line_number":190,"context_line":"            raise webob.exc.HTTPBadRequest("},{"line_number":191,"context_line":"                explanation\u003derr.msg)"},{"line_number":192,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":193,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":194,"context_line":"            raise webob.exc.HTTPInternalServerError(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_f1649fbb","line":191,"in_reply_to":"5f201791_d90e77e4","updated":"2017-06-21 16:38:46.000000000","message":"I reckon both ways could work, so just leave the exception.msg here and try to refactor these cases with another patch?","commit_id":"ae364378046db872494c66c453f750e1d157240f"}],"cinder/api/openstack/wsgi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f32d0efe9dc3bf37ae17f826e8f513159f3fedfc","unresolved":false,"context_lines":[{"line_number":594,"context_line":"            return True"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        if isinstance(ex_value, exception.NotAuthorized):"},{"line_number":597,"context_line":"            raise Fault(webob.exc.HTTPForbidden(explanation\u003dex_value.msg))"},{"line_number":598,"context_line":"        elif isinstance(ex_value, exception.VersionNotFoundForAPIMethod):"},{"line_number":599,"context_line":"            raise"},{"line_number":600,"context_line":"        elif isinstance(ex_value, (exception.Invalid, exception.NotFound)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_33ece68d","line":597,"updated":"2017-06-15 12:50:27.000000000","message":"These won\u0027t be translated anyway. Is there a difference between getting the msg and getting the string representation of an exception? In most cases I\u0027ve seen before, these end up being the same thing.","commit_id":"8cb47a10a502b4fee49b2a548279a8e8ae0e6abd"}],"cinder/exception.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9c0e3a5abe7c6704cb9963d27c745b88da736900","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for k, v in self.kwargs.items():"},{"line_number":100,"context_line":"            if isinstance(v, Exception):"},{"line_number":101,"context_line":"                self.kwargs[k] \u003d six.text_type(v)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if self._should_format():"},{"line_number":104,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_2e8ab71a","line":101,"updated":"2017-06-21 13:59:38.000000000","message":"nit: Add a comment here:  If this a cinder exception it will return the same object, so we won\u0027t be preventing translations.","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4e0c827c608b653ca3834712c255b14d84f884c9","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for k, v in self.kwargs.items():"},{"line_number":100,"context_line":"            if isinstance(v, Exception):"},{"line_number":101,"context_line":"                self.kwargs[k] \u003d six.text_type(v)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if self._should_format():"},{"line_number":104,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_31bc5704","line":101,"in_reply_to":"5f201791_2e8ab71a","updated":"2017-06-21 16:38:46.000000000","message":"Done","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9c0e3a5abe7c6704cb9963d27c745b88da736900","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                # at least get the core message out if something happened"},{"line_number":118,"context_line":"                message \u003d self.message"},{"line_number":119,"context_line":"        elif isinstance(message, Exception):"},{"line_number":120,"context_line":"            message \u003d six.text_type(message)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # NOTE(luisg): We put the actual message in \u0027msg\u0027 so that we can access"},{"line_number":123,"context_line":"        # it, because if we try to access the message via \u0027message\u0027 it will be"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_ee839f03","line":120,"updated":"2017-06-21 13:59:38.000000000","message":"ditto","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4e0c827c608b653ca3834712c255b14d84f884c9","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                # at least get the core message out if something happened"},{"line_number":118,"context_line":"                message \u003d self.message"},{"line_number":119,"context_line":"        elif isinstance(message, Exception):"},{"line_number":120,"context_line":"            message \u003d six.text_type(message)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # NOTE(luisg): We put the actual message in \u0027msg\u0027 so that we can access"},{"line_number":123,"context_line":"        # it, because if we try to access the message via \u0027message\u0027 it will be"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_11371bb3","line":120,"in_reply_to":"5f201791_ee839f03","updated":"2017-06-21 16:38:46.000000000","message":"Done","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9c0e3a5abe7c6704cb9963d27c745b88da736900","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # NOTE(tommylikehu): This method can be used to"},{"line_number":132,"context_line":"    # translate translatable variables (Message object here), do not"},{"line_number":133,"context_line":"    # wrap it with str(), unicode(), six.text_type()."},{"line_number":134,"context_line":"    def __unicode__(self):"},{"line_number":135,"context_line":"        return self.msg"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_b95e1be4","line":133,"updated":"2017-06-21 13:59:38.000000000","message":"-1: This message is not clear enough, maybe you should rephrase it in the lines of: self.msg is already a unicode compatible object as the __init__ method ensures of it, and we should not be modifying it in any way with str(), unicode(), or six.text_type() as we would be preventing translations from happening.","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4e0c827c608b653ca3834712c255b14d84f884c9","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # NOTE(tommylikehu): This method can be used to"},{"line_number":132,"context_line":"    # translate translatable variables (Message object here), do not"},{"line_number":133,"context_line":"    # wrap it with str(), unicode(), six.text_type()."},{"line_number":134,"context_line":"    def __unicode__(self):"},{"line_number":135,"context_line":"        return self.msg"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_b1a987e0","line":133,"in_reply_to":"5f201791_b95e1be4","updated":"2017-06-21 16:38:46.000000000","message":"Done","commit_id":"ae364378046db872494c66c453f750e1d157240f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dbe54dd14bed1a740052a125d72f6c1ad2ba8be4","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for k, v in self.kwargs.items():"},{"line_number":100,"context_line":"            if isinstance(v, Exception):"},{"line_number":101,"context_line":"                # NOTE(tommylikehu): If this a cinder exception it will"},{"line_number":102,"context_line":"                # return the msg object, so we won\u0027t be preventing"},{"line_number":103,"context_line":"                # translations."},{"line_number":104,"context_line":"                self.kwargs[k] \u003d six.text_type(v)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_1ea00843","line":101,"range":{"start_line":101,"start_character":40,"end_line":101,"end_character":44},"updated":"2017-06-23 11:47:56.000000000","message":"nit: this is","commit_id":"b2bbbe13244dc1caa984eef0a06b2bb041630599"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dbe54dd14bed1a740052a125d72f6c1ad2ba8be4","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                # at least get the core message out if something happened"},{"line_number":121,"context_line":"                message \u003d self.message"},{"line_number":122,"context_line":"        elif isinstance(message, Exception):"},{"line_number":123,"context_line":"            # NOTE(tommylikehu): If this a cinder exception it will"},{"line_number":124,"context_line":"            # return the msg object, so we won\u0027t be preventing"},{"line_number":125,"context_line":"            # translations."},{"line_number":126,"context_line":"            message \u003d six.text_type(message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_fea2ec4a","line":123,"range":{"start_line":123,"start_character":36,"end_line":123,"end_character":40},"updated":"2017-06-23 11:47:56.000000000","message":"nit: this is","commit_id":"b2bbbe13244dc1caa984eef0a06b2bb041630599"}]}
