)]}'
{"nova/cells/messaging.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        next_hop_num \u003d current_hops + 1"},{"line_number":356,"context_line":"        dest_hops \u003d target_cell.count(_PATH_CELL_SEP)"},{"line_number":357,"context_line":"        if dest_hops \u003c current_hops:"},{"line_number":358,"context_line":"            reason_args \u003d {\u0027target_cell\u0027: target_cell,"},{"line_number":359,"context_line":"                           \u0027routing_path\u0027: routing_path}"},{"line_number":360,"context_line":"            reason \u003d _(\"destination is %(target_cell)s but routing_path \""},{"line_number":361,"context_line":"                       \"is %(routing_path)s\") % reason_args"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8V0%3D","line":358,"updated":"2013-05-18 10:57:44.000000000","message":"you are using reason_args only one time. Probably you should put it inline?","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        if (_PATH_CELL_SEP.join(dest_name_parts[:next_hop_num]) !\u003d"},{"line_number":365,"context_line":"                routing_path):"},{"line_number":366,"context_line":"            reason_args \u003d {\u0027target_cell\u0027: target_cell,"},{"line_number":367,"context_line":"                           \u0027routing_path\u0027: routing_path}"},{"line_number":368,"context_line":"            reason \u003d _(\"destination is %(target_cell)s but routing_path \""},{"line_number":369,"context_line":"                       \"is %(routing_path)s\") % reason_args"},{"line_number":370,"context_line":"            raise exception.CellRoutingInconsistency(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vw%3D","line":367,"updated":"2013-05-18 10:57:44.000000000","message":"same here","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"1368a60d0069a4fe25cd21a3c3a2df64d2af9e3b","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        if (_PATH_CELL_SEP.join(dest_name_parts[:next_hop_num]) !\u003d"},{"line_number":365,"context_line":"                routing_path):"},{"line_number":366,"context_line":"            reason_args \u003d {\u0027target_cell\u0027: target_cell,"},{"line_number":367,"context_line":"                           \u0027routing_path\u0027: routing_path}"},{"line_number":368,"context_line":"            reason \u003d _(\"destination is %(target_cell)s but routing_path \""},{"line_number":369,"context_line":"                       \"is %(routing_path)s\") % reason_args"},{"line_number":370,"context_line":"            raise exception.CellRoutingInconsistency(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Cs%3D","line":367,"in_reply_to":"AAAAPH%2F%2F8Vw%3D","updated":"2013-05-18 18:00:30.000000000","message":"Mixing them into the same line as \u0027reason\u0027 made the line a lot nastier, so it is split up for this reason.  Since these are in error conditions, there\u0027s also no need to consider performance of this extra assignment.","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        if not next_hop:"},{"line_number":377,"context_line":"            cell_type \u003d \u0027parent\u0027 if self.direction \u003d\u003d \u0027up\u0027 else \u0027child\u0027"},{"line_number":378,"context_line":"            reason_args \u003d {\u0027cell_type\u0027: cell_type,"},{"line_number":379,"context_line":"                           \u0027target_cell\u0027: target_cell}"},{"line_number":380,"context_line":"            reason \u003d _(\"Unknown %(cell_type)s when routing to \""},{"line_number":381,"context_line":"                       \"%(target_cell)s\") % reason_args"},{"line_number":382,"context_line":"            raise exception.CellRoutingInconsistency(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vs%3D","line":379,"updated":"2013-05-18 10:57:44.000000000","message":"same","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            next_hop \u003d self._get_next_hop()"},{"line_number":402,"context_line":"        except Exception as exc:"},{"line_number":403,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":404,"context_line":"            LOG.exception(_(\"Error locating next hop for message: %(exc)s\"),"},{"line_number":405,"context_line":"                          {\u0027exc\u0027: exc})"},{"line_number":406,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vo%3D","line":404,"updated":"2013-05-18 10:57:44.000000000","message":"you shouldn\u0027t use here named parameter, you have only one..\nSo it is better something like this:\n\n  LOG.exception(_(\"Error locating next hop for message: %s\", exc)","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"1368a60d0069a4fe25cd21a3c3a2df64d2af9e3b","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            next_hop \u003d self._get_next_hop()"},{"line_number":402,"context_line":"        except Exception as exc:"},{"line_number":403,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":404,"context_line":"            LOG.exception(_(\"Error locating next hop for message: %(exc)s\"),"},{"line_number":405,"context_line":"                          {\u0027exc\u0027: exc})"},{"line_number":406,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Ck%3D","line":404,"in_reply_to":"AAAAPH%2F%2F8Vo%3D","updated":"2013-05-18 18:00:30.000000000","message":"I have seen in past reviews where keywords were recommended  even for single argument.  Either way, I don\u0027t think these are -1 worthy.  There\u0027s much larger things to pick on.","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            next_hop.send_message(self)"},{"line_number":429,"context_line":"        except Exception as exc:"},{"line_number":430,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":431,"context_line":"            err_str \u003d _(\"Failed to send message to cell: %(next_hop)s: \""},{"line_number":432,"context_line":"                        \"%(exc)s\")"},{"line_number":433,"context_line":"            LOG.exception(err_str, {\u0027exc\u0027: exc, \u0027next_hop\u0027: next_hop})"},{"line_number":434,"context_line":"            self._cleanup_response_queue()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vk%3D","line":431,"updated":"2013-05-18 10:57:44.000000000","message":"remove local variable","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"1368a60d0069a4fe25cd21a3c3a2df64d2af9e3b","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            next_hop.send_message(self)"},{"line_number":429,"context_line":"        except Exception as exc:"},{"line_number":430,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":431,"context_line":"            err_str \u003d _(\"Failed to send message to cell: %(next_hop)s: \""},{"line_number":432,"context_line":"                        \"%(exc)s\")"},{"line_number":433,"context_line":"            LOG.exception(err_str, {\u0027exc\u0027: exc, \u0027next_hop\u0027: next_hop})"},{"line_number":434,"context_line":"            self._cleanup_response_queue()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Cc%3D","line":431,"in_reply_to":"AAAAPH%2F%2F8Vk%3D","updated":"2013-05-18 18:00:30.000000000","message":"I can change this to match the other LOG calls that don\u0027t use temporary variables, however that was not the goal of this patch.  The goal of the patch was to remove use of locals().","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        except Exception as exc:"},{"line_number":509,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":510,"context_line":"            LOG.exception(_(\"Error locating next hops for message: %(exc)s\"),"},{"line_number":511,"context_line":"                          {\u0027exc\u0027: exc})"},{"line_number":512,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        # Short circuit if we don\u0027t need to respond"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vg%3D","line":511,"updated":"2013-05-18 10:57:44.000000000","message":"same as in 404","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":528,"context_line":"            # with the failure."},{"line_number":529,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":530,"context_line":"            LOG.exception(_(\"Error sending message to next hops: %(exc)s\"),"},{"line_number":531,"context_line":"                          {\u0027exc\u0027: exc})"},{"line_number":532,"context_line":"            self._cleanup_response_queue()"},{"line_number":533,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":534,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8Vc%3D","line":531,"updated":"2013-05-18 10:57:44.000000000","message":"ditto","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            # Send a single response back with the failure."},{"line_number":547,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":548,"context_line":"            err_str \u003d _(\"Error waiting for responses from neighbor cells: \""},{"line_number":549,"context_line":"                        \"%(exc)s\")"},{"line_number":550,"context_line":"            LOG.exception(err_str, {\u0027exc\u0027: exc})"},{"line_number":551,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":552,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8VY%3D","line":549,"updated":"2013-05-18 10:57:44.000000000","message":"remove local variable","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":548,"context_line":"            err_str \u003d _(\"Error waiting for responses from neighbor cells: \""},{"line_number":549,"context_line":"                        \"%(exc)s\")"},{"line_number":550,"context_line":"            LOG.exception(err_str, {\u0027exc\u0027: exc})"},{"line_number":551,"context_line":"            return self._send_response_from_exception(exc_info)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if local_response:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8VU%3D","line":550,"updated":"2013-05-18 10:57:44.000000000","message":"use %s","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":656,"context_line":"        method \u003d method_info[\u0027method\u0027]"},{"line_number":657,"context_line":"        fn \u003d getattr(self.compute_api, method, None)"},{"line_number":658,"context_line":"        if not fn:"},{"line_number":659,"context_line":"            detail \u003d _(\"Unknown method \u0027%(method)s\u0027 in compute API\")"},{"line_number":660,"context_line":"            raise exception.CellServiceAPIMethodNotFound("},{"line_number":661,"context_line":"                    detail\u003ddetail % {\u0027method\u0027: method})"},{"line_number":662,"context_line":"        args \u003d list(method_info[\u0027method_args\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8VQ%3D","line":659,"updated":"2013-05-18 10:57:44.000000000","message":"%s","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8db05a34d28bf44fd36b07439a14bbe1df989c15","unresolved":false,"context_lines":[{"line_number":658,"context_line":"        if not fn:"},{"line_number":659,"context_line":"            detail \u003d _(\"Unknown method \u0027%(method)s\u0027 in compute API\")"},{"line_number":660,"context_line":"            raise exception.CellServiceAPIMethodNotFound("},{"line_number":661,"context_line":"                    detail\u003ddetail % {\u0027method\u0027: method})"},{"line_number":662,"context_line":"        args \u003d list(method_info[\u0027method_args\u0027])"},{"line_number":663,"context_line":"        # 1st arg is instance_uuid that we need to turn into the"},{"line_number":664,"context_line":"        # instance object."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8VM%3D","line":661,"updated":"2013-05-18 10:57:44.000000000","message":"%s","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"}],"nova/cells/scheduler.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"1368a60d0069a4fe25cd21a3c3a2df64d2af9e3b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        target_cell \u003d cells[0]"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        LOG.debug(_(\"Scheduling with routing_path\u003d%(routing_path)s\"),"},{"line_number":107,"context_line":"                  {\u0027routing_path\u0027: message.routing_path})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if target_cell.is_me:"},{"line_number":110,"context_line":"            # Need to create instance DB entries as the host scheduler"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F8CU%3D","line":107,"updated":"2013-05-18 18:00:30.000000000","message":"Side node: removing locals() caught this bug here. :)","commit_id":"585311bfe1ef333e5a24b9eaa2d0b6084eecb598"}]}
