)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4bafe7f3a6d7242c89873a1977c4526da9a6ed8e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a hacking rule for consistent HTTP501 message"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is raise_feature_not_supported() for returing a HTTP501"},{"line_number":10,"context_line":"response with consistent error message, and this patch adds a rule"},{"line_number":11,"context_line":"for enforcing to use the method on v2.1 API."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5afe65bd_6b7cd520","line":9,"updated":"2015-06-01 16:30:04.000000000","message":"s/returing/returning/","commit_id":"bf645ab6e7c86b7d4af1ceb584c25f463dba8f87"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"28b6b137676454015f557dabf993db0a03e0b1fe","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is raise_feature_not_supported() for returning a HTTP501"},{"line_number":10,"context_line":"response with consistent error message, and this patch adds a rule"},{"line_number":11,"context_line":"for enforcing to use the method on v2.1 API."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially implements blueprint v2-on-v3-api"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_7d47b04b","line":11,"updated":"2015-06-08 08:27:03.000000000","message":"So, this common function should always be used on v2.1 code. Do I understand correctly?","commit_id":"198a3bea231883251ef00596ddda625f33219efd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"220314cbb0f10c31004232d1f04df515f0474c87","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is raise_feature_not_supported() for returning a HTTP501"},{"line_number":10,"context_line":"response with consistent error message, and this patch adds a rule"},{"line_number":11,"context_line":"for enforcing to use the method on v2.1 API."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially implements blueprint v2-on-v3-api"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_27b5a230","line":11,"in_reply_to":"3afb71cf_7d47b04b","updated":"2015-06-08 10:18:22.000000000","message":"Yes, right.","commit_id":"198a3bea231883251ef00596ddda625f33219efd"}],"nova/api/openstack/compute/plugins/v3/certificates.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"90b25d0f8fefde14e1e90341adcc88ce5df3982f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            # TODO(oomichi): This seems a HTTPBadRequest case because of the"},{"line_number":51,"context_line":"            # above message. So at this time, raise_feature_not_supported is"},{"line_number":52,"context_line":"            # not used here."},{"line_number":53,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)    # noqa"},{"line_number":54,"context_line":"        try:"},{"line_number":55,"context_line":"            cert \u003d self.cert_rpcapi.fetch_ca(context,"},{"line_number":56,"context_line":"                                             project_id\u003dcontext.project_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5afe65bd_1897d591","line":53,"updated":"2015-06-02 12:33:54.000000000","message":"I think it\u0027s neater here if we use the common function to raise NotImplemented, and leave the TODO to change it to BadRequest later on.","commit_id":"48f045a23b5d1e7979512659fc0f06b6d5964b07"}],"nova/hacking/checks.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"28b6b137676454015f557dabf993db0a03e0b1fe","unresolved":false,"context_lines":[{"line_number":548,"context_line":"    if \"nova/api/openstack/compute/plugins/v3\" not in filename:"},{"line_number":549,"context_line":"        return"},{"line_number":550,"context_line":"    if re.match(http_not_implemented_re, logical_line):"},{"line_number":551,"context_line":"        yield(0, msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_9d914c9c","line":551,"updated":"2015-06-08 08:27:03.000000000","message":"Because of the if-statement on #548, we can only yield this error message while checking v3 code. So this does the opposite of what is said in the commit message.","commit_id":"198a3bea231883251ef00596ddda625f33219efd"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"b30bd32ed5d26d40a4b8d1d40190be62b768de8d","unresolved":false,"context_lines":[{"line_number":548,"context_line":"    if \"nova/api/openstack/compute/plugins/v3\" not in filename:"},{"line_number":549,"context_line":"        return"},{"line_number":550,"context_line":"    if re.match(http_not_implemented_re, logical_line):"},{"line_number":551,"context_line":"        yield(0, msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_87fa16bc","line":551,"in_reply_to":"3afb71cf_07eaa60f","updated":"2015-06-08 10:21:07.000000000","message":"See: https://review.openstack.org/#/c/189218/1","commit_id":"198a3bea231883251ef00596ddda625f33219efd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"220314cbb0f10c31004232d1f04df515f0474c87","unresolved":false,"context_lines":[{"line_number":548,"context_line":"    if \"nova/api/openstack/compute/plugins/v3\" not in filename:"},{"line_number":549,"context_line":"        return"},{"line_number":550,"context_line":"    if re.match(http_not_implemented_re, logical_line):"},{"line_number":551,"context_line":"        yield(0, msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_07eaa60f","line":551,"in_reply_to":"3afb71cf_2454801f","updated":"2015-06-08 10:18:22.000000000","message":"Yeah, right. that is a nice point.\nIf we will change the directory name from v3 to v2.1 , we need to this check also.\n\"v3\" is making confusions now..","commit_id":"198a3bea231883251ef00596ddda625f33219efd"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"69707ab4c4264680e1cefe58e8c604710659c5b2","unresolved":false,"context_lines":[{"line_number":548,"context_line":"    if \"nova/api/openstack/compute/plugins/v3\" not in filename:"},{"line_number":549,"context_line":"        return"},{"line_number":550,"context_line":"    if re.match(http_not_implemented_re, logical_line):"},{"line_number":551,"context_line":"        yield(0, msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_2454801f","line":551,"in_reply_to":"3afb71cf_9d914c9c","updated":"2015-06-08 10:11:41.000000000","message":"Oh wait, sorry I got the v3/v2.1 mixed up in my head, sorry.  if \"v3\" is in the filename, then it *is* v2.1 code, isn\u0027t it?","commit_id":"198a3bea231883251ef00596ddda625f33219efd"}]}
