)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"ba9aba58740d2ede6d60bbef3dd9281dccce51c8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from that ceilometer file.)"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I92dad5bb77f4834604e61c28303ee8b0acc60ea1"},{"line_number":16,"context_line":"Closes-Bug: #1193666"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BxQQ%3D","line":16,"updated":"2013-11-20 12:56:46.000000000","message":"Ruby, I think this should be Partial-Bug, because we have more fix for 1193666 from Ceilometer project.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"a3eb5f9795c0802a2182c0705157c6679d8f4e81","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from that ceilometer file.)"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I92dad5bb77f4834604e61c28303ee8b0acc60ea1"},{"line_number":16,"context_line":"Closes-Bug: #1193666"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BusQ%3D","line":16,"in_reply_to":"AAAATn%2F%2BvCs%3D","updated":"2013-11-21 00:16:37.000000000","message":"OK, if we make sure we can close the defect with this patch, we can use Closes-Bug.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8aed3052146f326a450e5415402750c72b56f1c9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from that ceilometer file.)"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I92dad5bb77f4834604e61c28303ee8b0acc60ea1"},{"line_number":16,"context_line":"Closes-Bug: #1193666"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BvCs%3D","line":16,"in_reply_to":"AAAATn%2F%2BxQQ%3D","updated":"2013-11-20 22:41:32.000000000","message":"Hmm. I see this description for Partial-Bug: \"use \u0027Partial-Bug\u0027 if the commit is only a partial fix and more work is needed.\" Is that your understanding?\n\nCeilometer has added docstrings -- that\u0027s where I copied it from. Other than these changes, the bug talks about oslo-ifying, but I think that ought to be a different bug.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"}],"ironic/tests/api/base.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9c2041b96018dd20aeb33e53b4c8def20ce0a4fb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"Base classes for API tests.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE: Ported from ceilometer/tests/api.py (subsequently moved to"},{"line_number":21,"context_line":"#       ceilometer/tests/api/__init__.py)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"import pecan"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bxbg%3D","line":21,"updated":"2013-11-20 12:04:36.000000000","message":"Wondering if this NOTE is really necessary or should just be deleted.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b69894c62574da6df749b81ee54734f2265f5f37","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"Base classes for API tests.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE: Ported from ceilometer/tests/api.py (subsequently moved to"},{"line_number":21,"context_line":"#       ceilometer/tests/api/__init__.py)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"import pecan"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BZRE%3D","line":21,"in_reply_to":"AAAATn%2F%2BvHg%3D","updated":"2013-11-26 15:26:26.000000000","message":"I am guessing that this was added here to indicate that it ought to be oslo\u0027ified, so I clarified the comment.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8aed3052146f326a450e5415402750c72b56f1c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"Base classes for API tests.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE: Ported from ceilometer/tests/api.py (subsequently moved to"},{"line_number":21,"context_line":"#       ceilometer/tests/api/__init__.py)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"import pecan"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BvHg%3D","line":21,"in_reply_to":"AAAATn%2F%2BxRE%3D","updated":"2013-11-20 22:41:32.000000000","message":"The bug mentions that this code was ported from ceilometer, and \"Also, this file should be oslo\u0027ified at some point.\".  If indeed, it should be oslo\u0027ified, it would probably be useful to include this NOTE. I did remove the reference to the bug -- perhaps that\u0027s why the bug was mentioned. And/or perhaps I ought to add a comment about this file being oslo\u0027ified? Or do we even want it to be oslo\u0027ified?","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"ba9aba58740d2ede6d60bbef3dd9281dccce51c8","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"Base classes for API tests.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE: Ported from ceilometer/tests/api.py (subsequently moved to"},{"line_number":21,"context_line":"#       ceilometer/tests/api/__init__.py)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"import pecan"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BxRE%3D","line":21,"in_reply_to":"AAAATn%2F%2Bxbg%3D","updated":"2013-11-20 12:56:46.000000000","message":"I think we can delete this reference, this is just a reference, no need to note here clearly. Ruby, how do you think.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9c2041b96018dd20aeb33e53b4c8def20ce0a4fb","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                      along with the request"},{"line_number":113,"context_line":"                       status: expected status code of response"},{"line_number":114,"context_line":"                       path_prefix: prefix of the url path"},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        kwargs[\u0027method\u0027] \u003d \u0027put\u0027"},{"line_number":117,"context_line":"        return self.post_json(*args, **kwargs)"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BxdA%3D","line":115,"updated":"2013-11-20 12:04:36.000000000","message":"I think we should change the logic around the put_json() and patch_json() around here. It looks very complicated to document the kwargs parameter expecting a number of well-defined keys.\n\nI think we should change the put/patch_json() methods to accept almost the same parameters as the post_json() (the difference is that it doesn\u0027t contain the \u0027method\u0027 parameter), and then we can have a proper docstrng for these methods, e.g:\n\n    def put_json(self, self, path, params, expect_errors\u003dFalse, headers\u003dNone,\n                       extra_environ\u003dNone, status\u003dNone, path_prefix\u003dPATH_PREFIX):\n        \"\"\"Sends simulated HTTP PUT request to Pecan test app.\n\n        :param path: url path of target service\n        :param params: content for wsgi.input of request\n        ....\n\n        \"\"\"\n        return self.post_json(path\u003dpath, params\u003dparams,                         \n                              expect_errors\u003dexpect_errors,                      \n                              headers\u003dheaders, extra_environ\u003dextra_environ,     \n                              status\u003dstatus, path_prefix\u003dpath_prefix,\n                              method\u003d\"put\")","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b69894c62574da6df749b81ee54734f2265f5f37","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                      along with the request"},{"line_number":113,"context_line":"                       status: expected status code of response"},{"line_number":114,"context_line":"                       path_prefix: prefix of the url path"},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        kwargs[\u0027method\u0027] \u003d \u0027put\u0027"},{"line_number":117,"context_line":"        return self.post_json(*args, **kwargs)"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BZPk%3D","line":115,"in_reply_to":"AAAATn%2F%2BfnA%3D","updated":"2013-11-26 15:26:26.000000000","message":"Fine with me. I undid the older change (Lucas, you had been one of the approvers of that change, ha ha), and added a _request_json() method. Let me know what you think.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1ba661c4cb9389322c9ef0efb698b9c49fd37309","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                      along with the request"},{"line_number":113,"context_line":"                       status: expected status code of response"},{"line_number":114,"context_line":"                       path_prefix: prefix of the url path"},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        kwargs[\u0027method\u0027] \u003d \u0027put\u0027"},{"line_number":117,"context_line":"        return self.post_json(*args, **kwargs)"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BfnA%3D","line":115,"in_reply_to":"AAAATn%2F%2BvE8%3D","updated":"2013-11-25 14:32:36.000000000","message":"I see. I agree about oslo\u0027fing this file, but the currently ceilometer version looks more like I described (or like the previous version of this file) than as it\u0027s right now [1].\n\nAlso, I agree that having a \"method\" parameter on post_json() looks a bit odd and a _request() function would make more sense.\n\nSo I still think we need some re factor on this code.\n\n~~~\n\n[1] https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/api/__init__.py","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8aed3052146f326a450e5415402750c72b56f1c9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                      along with the request"},{"line_number":113,"context_line":"                       status: expected status code of response"},{"line_number":114,"context_line":"                       path_prefix: prefix of the url path"},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        kwargs[\u0027method\u0027] \u003d \u0027put\u0027"},{"line_number":117,"context_line":"        return self.post_json(*args, **kwargs)"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BvE8%3D","line":115,"in_reply_to":"AAAATn%2F%2BxdA%3D","updated":"2013-11-20 22:41:32.000000000","message":"Ha. Lucas, I looked at the history of this file, and in fact, it used to be as you describe how you\u0027d like it here. But then someone changed it to what we have now (\"make api test code more readable\":https://github.com/openstack/ironic/commit/6ea4670ef2991dc512b0a6989d65fbed509ccb19I)\n\nSorry, maybe I should have mentioned all this in the review.\n\nI would think that if we want this oslo\u0027ified, it makes sense NOT to change it too much from the ceilometer version, but I don\u0027t really know if there is a rule-of-thumb for this.\n\nI would actually like to change post_json() -- move most of it to eg _request(), so that post_json() is a POST.\n\nAnyway, I\u0027m open to whatever suggestions. I just really wanted to address the doc strings part of the bug. So not sure if all this is outside the scope or not. Let me know what you think.","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9c2041b96018dd20aeb33e53b4c8def20ce0a4fb","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                                      along with the request"},{"line_number":131,"context_line":"                       status: expected status code of response"},{"line_number":132,"context_line":"                       path_prefix: prefix of the url path"},{"line_number":133,"context_line":"        \"\"\""},{"line_number":134,"context_line":"        kwargs[\u0027method\u0027] \u003d \u0027patch\u0027"},{"line_number":135,"context_line":"        return self.post_json(*args, **kwargs)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BxcM%3D","line":133,"updated":"2013-11-20 12:04:36.000000000","message":"ditto","commit_id":"6d89151c5e82b329b23d9283e4c588cb14514fce"}]}
