)]}'
{"novaclient/tests/unit/v2/fakes.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d207e7a4935b57fdf92975c82e20e755de3876bf","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        return True"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def post_servers_1234_action(self, body, **kw):"},{"line_number":724,"context_line":"        _headers \u003d dict()"},{"line_number":725,"context_line":"        _body \u003d None"},{"line_number":726,"context_line":"        resp \u003d 202"},{"line_number":727,"context_line":"        assert len(body.keys()) \u003d\u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_1976f73e","line":724,"updated":"2015-12-29 18:39:06.000000000","message":"It would be nice to fix the broken convention here.  Traditionally, variable names prefixed by an underscore are \"don\u0027t care\" variables, typically used to throw away values from unpacking a tuple (e.g., in \"key, _eq, value \u003d \u0027foo\u003dbar\u0027.partition(\u0027\u003d\u0027)\" where you don\u0027t care about the \"_eq\" variable).  As such, \"_headers\" and \"_body\" should never have been prefixed as is done here.  That said, such a change is beyond the scope of your patch…","commit_id":"6ff5524fb020a1045a429b8a66e2944507e24092"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b463b8d96b44a67946195e3f7b602297f3ceddb","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        return True"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"    def post_servers_1234_action(self, body, **kw):"},{"line_number":724,"context_line":"        _headers \u003d dict()"},{"line_number":725,"context_line":"        _body \u003d None"},{"line_number":726,"context_line":"        resp \u003d 202"},{"line_number":727,"context_line":"        assert len(body.keys()) \u003d\u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_2e1e8b5f","line":724,"in_reply_to":"fa69d971_1976f73e","updated":"2016-01-13 23:46:17.000000000","message":"Thank you for your advice.\nBut it should be done in another patch.","commit_id":"6ff5524fb020a1045a429b8a66e2944507e24092"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"85b91c4d44e6a4fe1ab9e5f1dec339a3ab00a87a","unresolved":false,"context_lines":[{"line_number":725,"context_line":"        return True"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    def post_servers_1234_action(self, body, **kw):"},{"line_number":728,"context_line":"        _headers \u003d dict()"},{"line_number":729,"context_line":"        _body \u003d None"},{"line_number":730,"context_line":"        resp \u003d 202"},{"line_number":731,"context_line":"        assert len(body.keys()) \u003d\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a5de9d1_7bc4b23f","line":728,"range":{"start_line":728,"start_character":19,"end_line":728,"end_character":25},"updated":"2016-01-27 16:30:52.000000000","message":"This could be just \"{}\" instead of calling the dict constructor.  For this case, I don\u0027t think it makes any performance difference, but {} is in general more efficient than dict()…","commit_id":"f9aa277c62a05648e030dfeaf21d653ec6a388f3"}],"novaclient/v2/servers.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d207e7a4935b57fdf92975c82e20e755de3876bf","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\""},{"line_number":46,"context_line":"        Delete (i.e. shut down and delete the image) this server."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return self.manager.delete(self)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def update(self, name\u003dNone):"},{"line_number":51,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_f91683a6","line":48,"updated":"2015-12-29 18:39:06.000000000","message":"It would be nice to update the docstrings to document the return values, particularly given that we\u0027re now returning something from these methods.","commit_id":"6ff5524fb020a1045a429b8a66e2944507e24092"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b463b8d96b44a67946195e3f7b602297f3ceddb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\""},{"line_number":46,"context_line":"        Delete (i.e. shut down and delete the image) this server."},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        return self.manager.delete(self)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def update(self, name\u003dNone):"},{"line_number":51,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_0e3aa7cc","line":48,"in_reply_to":"fa69d971_f91683a6","updated":"2016-01-13 23:46:17.000000000","message":"Done","commit_id":"6ff5524fb020a1045a429b8a66e2944507e24092"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d207e7a4935b57fdf92975c82e20e755de3876bf","unresolved":false,"context_lines":[{"line_number":898,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027rescue\u0027, server,"},{"line_number":899,"context_line":"                                                       info or None)"},{"line_number":900,"context_line":"        # For compatibility, return Response object as a first return value"},{"line_number":901,"context_line":"        return resp, self.convert_into_with_meta(body, resp)"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"    def unrescue(self, server):"},{"line_number":904,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_99e667e7","line":901,"updated":"2015-12-29 18:39:06.000000000","message":"This still appears to break backwards compatibility, as now you\u0027ll be returning a tuple instead of a response object.","commit_id":"6ff5524fb020a1045a429b8a66e2944507e24092"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8d471b8645ce923b35f05b3542ae6336ddf5471f","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027rescue\u0027, server,"},{"line_number":1023,"context_line":"                                                       info or None)"},{"line_number":1024,"context_line":"        # For compatibility, return Response object as a first return value"},{"line_number":1025,"context_line":"        return resp, base.DictWithMeta(body, resp)"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"    def unrescue(self, server):"},{"line_number":1028,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_41a08843","line":1025,"range":{"start_line":1025,"start_character":15,"end_line":1025,"end_character":50},"updated":"2016-01-13 17:03:04.000000000","message":"You\u0027re still returning a tuple instead of a response object, so I\u0027m still concerned about breaking backwards compatibility here…","commit_id":"21d715cf63ff591222e68d40aab4b6b8f2ea46de"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"5da890a05b58066ae2bc83f05049d2ff9db335f4","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027rescue\u0027, server,"},{"line_number":1023,"context_line":"                                                       info or None)"},{"line_number":1024,"context_line":"        # For compatibility, return Response object as a first return value"},{"line_number":1025,"context_line":"        return resp, base.DictWithMeta(body, resp)"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"    def unrescue(self, server):"},{"line_number":1028,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_d3019c07","line":1025,"range":{"start_line":1025,"start_character":15,"end_line":1025,"end_character":50},"in_reply_to":"da6ed579_41a08843","updated":"2016-01-13 23:44:51.000000000","message":"Kevin,\n\nThank you for your review.\n\nBefore a rescue method returned resp(a response object) and a body.\n(self._action method returned resp and body.)\nNow a rescue method returns resp(a response object) and a body in a wrapper class.\nSo this change does not break backwards compatibility.","commit_id":"21d715cf63ff591222e68d40aab4b6b8f2ea46de"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6eaf5b0300572ba3afc2c6c70ac8a5def869c397","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027rescue\u0027, server,"},{"line_number":1023,"context_line":"                                                       info or None)"},{"line_number":1024,"context_line":"        # For compatibility, return Response object as a first return value"},{"line_number":1025,"context_line":"        return resp, base.DictWithMeta(body, resp)"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"    def unrescue(self, server):"},{"line_number":1028,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_12b94079","line":1025,"range":{"start_line":1025,"start_character":15,"end_line":1025,"end_character":50},"in_reply_to":"da6ed579_d3019c07","updated":"2016-01-14 16:40:56.000000000","message":"OK, I didn\u0027t realize that\u0027s what the post() method being called by _action() was returning.","commit_id":"21d715cf63ff591222e68d40aab4b6b8f2ea46de"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"dd4b1d08f2bee68569e6103907237ce0edb00298","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        Stop -- Stop the running server."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        :returns: A Response object and an instance of"},{"line_number":161,"context_line":"                  novaclient.base.TupleWithMeta"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        return self.manager.stop(self)"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_5d8fc929","line":161,"updated":"2016-01-14 16:40:28.000000000","message":"It would be more precise to say \"A tuple of a Response object and an instance of ___\", but that\u0027s a femtonit.","commit_id":"d1b7ea71b45fb1dbe3eb52bd7ff354a521fb362e"}]}
