)]}'
{"cinder/volume/drivers/san/hp/hp_lefthand_rest_proxy.py":[{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8e4b4659a1ce5f4228ccf3109a976ffc220d972c","unresolved":false,"context_lines":[{"line_number":826,"context_line":""},{"line_number":827,"context_line":"    def _check_api_version(self):"},{"line_number":828,"context_line":"        \"\"\"Checks that the API version is correct.\"\"\""},{"line_number":829,"context_line":"        if (self.api_version \u003c MIN_API_VERSION):"},{"line_number":830,"context_line":"            ex_msg \u003d (_(\u0027Invalid HPLeftHand API version found: %(found)s. \u0027"},{"line_number":831,"context_line":"                        \u0027Version %(minimum)s or greater required for \u0027"},{"line_number":832,"context_line":"                        \u0027manage/unmanage support.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_f1f6348e","line":829,"updated":"2015-03-26 05:08:27.000000000","message":"use \u0027_LE\u0027 instead of \"_\"","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"},{"author":{"_account_id":11592,"name":"Julie Gravel","email":"julie.gravel@suse.com","username":"jgravel"},"change_message_id":"f11089c275872a8bb60acd6d15f88d46bf6ee26f","unresolved":false,"context_lines":[{"line_number":826,"context_line":""},{"line_number":827,"context_line":"    def _check_api_version(self):"},{"line_number":828,"context_line":"        \"\"\"Checks that the API version is correct.\"\"\""},{"line_number":829,"context_line":"        if (self.api_version \u003c MIN_API_VERSION):"},{"line_number":830,"context_line":"            ex_msg \u003d (_(\u0027Invalid HPLeftHand API version found: %(found)s. \u0027"},{"line_number":831,"context_line":"                        \u0027Version %(minimum)s or greater required for \u0027"},{"line_number":832,"context_line":"                        \u0027manage/unmanage support.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa963961_a7e2d3d3","line":829,"in_reply_to":"1a6ced46_f1f6348e","updated":"2015-03-27 20:35:10.000000000","message":"Please note that this line is not in the scope of the patch. And I think using \u0027_\u0027 is correct in this case because ex_msg is not only used in the LOG statement but in the raise statement also (according to the guidelines here: http://docs.openstack.org/developer/oslo.i18n/guidelines.html).","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8e4b4659a1ce5f4228ccf3109a976ffc220d972c","unresolved":false,"context_lines":[{"line_number":841,"context_line":""},{"line_number":842,"context_line":"    def validate_vol_type_extra_spec(self, extra_spec):"},{"line_number":843,"context_line":"        spec_key, spec_value \u003d extra_spec"},{"line_number":844,"context_line":"        LOG.debug(\u0027Validate volume type extra spec: key\u003d%(key)s, value\u003d%(\u0027"},{"line_number":845,"context_line":"                  \u0027value)s\u0027 % {\u0027key\u0027: spec_key, \u0027value\u0027: spec_value})"},{"line_number":846,"context_line":"        tokens \u003d spec_key.split(\u0027:\u0027)"},{"line_number":847,"context_line":"        scope \u003d tokens[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_5114689f","line":844,"updated":"2015-03-26 05:08:27.000000000","message":"the same as above","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"},{"author":{"_account_id":11592,"name":"Julie Gravel","email":"julie.gravel@suse.com","username":"jgravel"},"change_message_id":"f11089c275872a8bb60acd6d15f88d46bf6ee26f","unresolved":false,"context_lines":[{"line_number":841,"context_line":""},{"line_number":842,"context_line":"    def validate_vol_type_extra_spec(self, extra_spec):"},{"line_number":843,"context_line":"        spec_key, spec_value \u003d extra_spec"},{"line_number":844,"context_line":"        LOG.debug(\u0027Validate volume type extra spec: key\u003d%(key)s, value\u003d%(\u0027"},{"line_number":845,"context_line":"                  \u0027value)s\u0027 % {\u0027key\u0027: spec_key, \u0027value\u0027: spec_value})"},{"line_number":846,"context_line":"        tokens \u003d spec_key.split(\u0027:\u0027)"},{"line_number":847,"context_line":"        scope \u003d tokens[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa963961_276b6320","line":844,"in_reply_to":"1a6ced46_5114689f","updated":"2015-03-27 20:35:10.000000000","message":"This is a debug message which doesn\u0027t need to be translated, according to the guidelines.","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8e4b4659a1ce5f4228ccf3109a976ffc220d972c","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        spec_key, spec_value \u003d extra_spec"},{"line_number":844,"context_line":"        LOG.debug(\u0027Validate volume type extra spec: key\u003d%(key)s, value\u003d%(\u0027"},{"line_number":845,"context_line":"                  \u0027value)s\u0027 % {\u0027key\u0027: spec_key, \u0027value\u0027: spec_value})"},{"line_number":846,"context_line":"        tokens \u003d spec_key.split(\u0027:\u0027)"},{"line_number":847,"context_line":"        scope \u003d tokens[0]"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        if scope \u003d\u003d \u0027hplh\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_918180c5","line":846,"updated":"2015-03-26 05:08:27.000000000","message":"why not consider spec_key is None","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"},{"author":{"_account_id":11592,"name":"Julie Gravel","email":"julie.gravel@suse.com","username":"jgravel"},"change_message_id":"f11089c275872a8bb60acd6d15f88d46bf6ee26f","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        spec_key, spec_value \u003d extra_spec"},{"line_number":844,"context_line":"        LOG.debug(\u0027Validate volume type extra spec: key\u003d%(key)s, value\u003d%(\u0027"},{"line_number":845,"context_line":"                  \u0027value)s\u0027 % {\u0027key\u0027: spec_key, \u0027value\u0027: spec_value})"},{"line_number":846,"context_line":"        tokens \u003d spec_key.split(\u0027:\u0027)"},{"line_number":847,"context_line":"        scope \u003d tokens[0]"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        if scope \u003d\u003d \u0027hplh\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa963961_22ad91e9","line":846,"in_reply_to":"1a6ced46_918180c5","updated":"2015-03-27 20:35:10.000000000","message":"Hope I understand your comment correctly. Please see the parent patch: https://review.openstack.org/161480. If the spec_key of None is passed in, the API result should be a \u0027Malformed request body\u0027 error right away. It should never get to this code.","commit_id":"4b1630a90bb89c1000ac8a61d280eb921fd8fc9f"}]}
