)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"966253fbf07395688cc65e65b01e54bb8964f604","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Colin Leavett-Brown \u003ccrlb@uvic.ca\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-31 15:09:32 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: 1728732"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifba445e29f11ee2be65ea1682e8b2a62876ed2a2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_68e646eb","line":7,"updated":"2017-10-31 22:47:50.000000000","message":"Your commit message needs a little work. Please see this guide for an example of how to write a commit message:\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"d632060181d7d24b3650cfdc95e9bea3c3233944"}],"nova/api/openstack/compute/routes.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3740fc13df707797c8e2d49cc557a28e323cc90b","unresolved":false,"context_lines":[{"line_number":406,"context_line":"ROUTE_LIST \u003d ("},{"line_number":407,"context_line":"    # The following 3 lines of code replaces a redirect specification that caused erroneous URLs"},{"line_number":408,"context_line":"    # and additional network traffic and load. See bug #1728732"},{"line_number":409,"context_line":"    (\u0027\u0027, {"},{"line_number":410,"context_line":"        \u0027GET\u0027: [version_controller, \u0027show\u0027]"},{"line_number":411,"context_line":"    }),"},{"line_number":412,"context_line":"    (\u0027/\u0027, {"},{"line_number":413,"context_line":"        \u0027GET\u0027: [version_controller, \u0027show\u0027]"},{"line_number":414,"context_line":"    }),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_84e1622d","line":411,"range":{"start_line":409,"start_character":0,"end_line":411,"end_character":7},"updated":"2017-11-01 07:50:30.000000000","message":"I guess we need some test cases for this as well","commit_id":"d632060181d7d24b3650cfdc95e9bea3c3233944"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f47d9b4714d0f1fccd5df32a659c5849c3afb538","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    # NOTE: This is a redirection from \u0027\u0027 to \u0027/\u0027. The request to the \u0027/v2.1\u0027"},{"line_number":408,"context_line":"    # or \u0027/2.0\u0027 without the ending \u0027/\u0027 will get a response with status code"},{"line_number":409,"context_line":"    # \u0027302\u0027 returned."},{"line_number":410,"context_line":"    (\u0027\u0027, \u0027/\u0027),"},{"line_number":411,"context_line":"    (\u0027/\u0027, {"},{"line_number":412,"context_line":"        \u0027GET\u0027: [version_controller, \u0027show\u0027]"},{"line_number":413,"context_line":"    }),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_dd8f0f28","side":"PARENT","line":410,"range":{"start_line":410,"start_character":4,"end_line":410,"end_character":14},"updated":"2017-11-02 05:56:17.000000000","message":"The endpoint in the catalog should be the version API, I don\u0027t know why we have redirect at here. This looks like being there long time.","commit_id":"39e7ca322626f4b197de54e1ed83ce046c5fef26"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"85a8c1b10efdb350ffadca4417629f9e3b0e3fe7","unresolved":false,"context_lines":[{"line_number":404,"context_line":"# should be in the front of \u0027/servers/{id}\u0027, otherwise the request to"},{"line_number":405,"context_line":"# \u0027/servers/detail\u0027 always matches to \u0027/servers/{id}\u0027 as the id is \u0027detail\u0027."},{"line_number":406,"context_line":"ROUTE_LIST \u003d ("},{"line_number":407,"context_line":"    # The following 3 lines of code replaces a redirect specification that caused erroneous URLs"},{"line_number":408,"context_line":"    # and additional network traffic and load. See bug #1728732"},{"line_number":409,"context_line":"    (\u0027\u0027, {"},{"line_number":410,"context_line":"        \u0027GET\u0027: [version_controller, \u0027show\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_7fcffa7e","line":407,"updated":"2017-11-01 21:42:27.000000000","message":"The pep8 CI failure is because this line is too long (need to wrap at 79 characters) [1]. You can run the check locally using \u0027tox -e fast8\u0027\n\n[1] https://www.python.org/dev/peps/pep-0008/#maximum-line-length","commit_id":"fb537e439bdfd2bc5bf448bde06568912dd32ffa"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f47d9b4714d0f1fccd5df32a659c5849c3afb538","unresolved":false,"context_lines":[{"line_number":890,"context_line":"            custom_routes \u003d tuple()"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"        for path, methods in ROUTE_LIST + custom_routes:"},{"line_number":893,"context_line":"            # NOTE(alex_xu): The variable \u0027methods\u0027 is a dict in normal, since"},{"line_number":894,"context_line":"            # the dict includes all the methods supported in the path. But"},{"line_number":895,"context_line":"            # if the variable \u0027method\u0027 is a string, it means a redirection."},{"line_number":896,"context_line":"            # For example, the request to the \u0027\u0027 will be redirect to the \u0027/\u0027 in"},{"line_number":897,"context_line":"            # the Nova API. To indicate that, using the target path instead of"},{"line_number":898,"context_line":"            # a dict. The route entry just writes as \"(\u0027\u0027, \u0027/)\"."},{"line_number":899,"context_line":"            if isinstance(methods, str):"},{"line_number":900,"context_line":"                self.map.redirect(path, methods)"},{"line_number":901,"context_line":"                continue"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"            for method, controller_info in methods.items():"},{"line_number":904,"context_line":"                # TODO(alex_xu): In the end, I want to create single controller"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_7d95bb3f","line":901,"range":{"start_line":893,"start_character":12,"end_line":901,"end_character":24},"updated":"2017-11-02 05:56:17.000000000","message":"If we are going to remove that redirect code, those code can be removed also, since that is the only place to use redirect.","commit_id":"fb537e439bdfd2bc5bf448bde06568912dd32ffa"}]}
