)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1248c272c82902ebd6b8bfbf985825e86b239480","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Lin Tan \u003ctan.lin.good@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-01-07 21:25:23 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Regard \u0027method\u0027 as a mandatory argument for VendorInterface.validate()"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Method should be a manadatory argument for validate()."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_03e280d4","line":7,"updated":"2015-01-07 16:55:45.000000000","message":"it isn\u0027t mandatory any more","commit_id":"78e5091e043d42901041fbc961db27e9aad955c2"}],"ironic/drivers/utils.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b78bc468bddce10f436c447935364ea7a1cc22c3","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param method: The name of the vendor method."},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        if method is None:"},{"line_number":77,"context_line":"            raise exception.MissingParameterValue("},{"line_number":78,"context_line":"                _(\"Method not specified when calling vendor extension.\"))"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ebeb1fda","line":76,"updated":"2015-01-12 16:49:40.000000000","message":"Not sure, but I think if we want this to be backwards compatible, you might need to have _get_route(self, method\u003dNone, **kwargs), and here, do something like \n    method \u003d method or kwargs.get(\u0027method\u0027)\n    if not method: ...","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"501d5319f1c6eccf24d38ea36bb4fb5ea376ba2c","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param method: The name of the vendor method."},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        if method is None:"},{"line_number":77,"context_line":"            raise exception.MissingParameterValue("},{"line_number":78,"context_line":"                _(\"Method not specified when calling vendor extension.\"))"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ca282bf1","line":76,"updated":"2015-01-12 11:36:47.000000000","message":"nit:\n\n If not method:","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"071d64119323e9118b93e377672f662113dc60a1","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param method: The name of the vendor method."},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        if method is None:"},{"line_number":77,"context_line":"            raise exception.MissingParameterValue("},{"line_number":78,"context_line":"                _(\"Method not specified when calling vendor extension.\"))"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_0a03e5be","line":76,"in_reply_to":"3a961159_ca282bf1","updated":"2015-01-13 13:02:47.000000000","message":"Hi Lucas, I didn\u0027t really see the difference. It\u0027s our code style? Thanks","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"535a517b5ccf138189efce2b1b7009ea2de39ade","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param method: The name of the vendor method."},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        if method is None:"},{"line_number":77,"context_line":"            raise exception.MissingParameterValue("},{"line_number":78,"context_line":"                _(\"Method not specified when calling vendor extension.\"))"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_aa65714a","line":76,"in_reply_to":"3a961159_ebeb1fda","updated":"2015-01-13 13:09:15.000000000","message":"@Tan Lin,\n\nYes it\u0027s just style (that\u0027s why I still +2\u0027ed it).","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"071d64119323e9118b93e377672f662113dc60a1","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                 in kwargs."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        route \u003d self._get_route(method)"},{"line_number":111,"context_line":"        route.validate(task, method\u003dmethod, **kwargs)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_1f5ec579","line":110,"updated":"2015-01-13 13:02:47.000000000","message":"Hi Ruby, _get_route is an internal method, which only called by validate method. The validate() can handle the backward compatible issue.","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"26a257b32d8ca574df51d83862ff0e99114f981e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                 in kwargs."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        route \u003d self._get_route(method)"},{"line_number":111,"context_line":"        route.validate(task, method\u003dmethod, **kwargs)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_2b5fc3e5","line":110,"in_reply_to":"3a961159_1f5ec579","updated":"2015-01-13 14:54:53.000000000","message":"Right, _get_route is internal. I think what threw me was that method defaults to None. Maybe we should change it so that method is a required argument above?","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"1436aba0283f3a710ac2dff5bfda860b00acfbec","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                 in kwargs."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        route \u003d self._get_route(method)"},{"line_number":111,"context_line":"        route.validate(task, method\u003dmethod, **kwargs)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_70518f2f","line":110,"in_reply_to":"3a961159_2b5fc3e5","updated":"2015-01-14 12:54:29.000000000","message":"Thanks Ruby, I am not quite sure for this.but I take your advice.","commit_id":"2ff34b4039272b7a8c5df3ff330960ab4ec3b627"}]}
