)]}'
{"neutron/plugins/bigswitch/plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f63ad2fd11e41736b15570e76b73bf03241e1b3f","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B3Hc%3D","line":327,"updated":"2014-01-21 10:46:16.000000000","message":"This looks strange. LOG.error takes two variables but the string contains only one substitution. I think the original author tries to log both variables.","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7996,"name":"Luis A. Garcia","email":"luis@linux.vnet.ibm.com","username":"luisg"},"change_message_id":"1882f896591acb52113154192197e7be6efe20be","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bt%2BY%3D","line":327,"in_reply_to":"AAAAUH%2F%2B2e0%3D","updated":"2014-01-22 20:41:46.000000000","message":"Ihar, Thanks for clarifying.","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"852c021e12f4d291479a085bc68ec61d4769fb21","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B2e0%3D","line":327,"in_reply_to":"AAAAUH%2F%2B3Hc%3D","updated":"2014-01-21 12:49:21.000000000","message":"Here, errstr is itself a translation template which is expected to contain %s (and this is the default value for errstr, see line 315).","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7996,"name":"Luis A. Garcia","email":"luis@linux.vnet.ibm.com","username":"luisg"},"change_message_id":"1882f896591acb52113154192197e7be6efe20be","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bt%2BU%3D","line":327,"in_reply_to":"AAAAUH%2F%2B3Hc%3D","updated":"2014-01-22 20:41:46.000000000","message":"Hi Akihiro, I think because of the reason that Ihar mentions above, this is actually not a problem. They expect the errstr to contain a %s and the result will be interpolated with resp[2]. The patch is just trying to remove concatenations with +, and if it worked with + it should work with % too. Thank you,","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"7403a3b202692c1ddfd0981e88e0dc11e2f1f847","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F97Us%3D","line":327,"in_reply_to":"AAAAUH%2F%2Bt%2BU%3D","updated":"2014-02-01 00:08:32.000000000","message":"Still a little strange that we\u0027re only translating half of of the error string.  Maybe we can get the BigSwitch team to clean this up the proper way.","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7996,"name":"Luis A. Garcia","email":"luis@linux.vnet.ibm.com","username":"luisg"},"change_message_id":"3188d3d0a336f2c666e950ff7ba06a3baf169d0b","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9zMI%3D","line":327,"in_reply_to":"AAAAUH%2F97Us%3D","updated":"2014-02-03 20:12:56.000000000","message":"Yeah, I think this can be improved. As part of this patch I just wanted to make sure there were no uses of + since the new Message class no longer supports it. So, while the BigSwitch team cleans this up what do you think I should do in this patch for now, so I can get the rest of the changes in? Thank you,","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7996,"name":"Luis A. Garcia","email":"luis@linux.vnet.ibm.com","username":"luisg"},"change_message_id":"1bb63aa897d13a4c2d89759f30df6fcf30b86ab9","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F%2FEk%3D","line":327,"in_reply_to":"AAAAUH%2F9aSQ%3D","updated":"2014-02-07 23:02:19.000000000","message":"Apparently all errstr messages come with an %s so it is not redundant. Anyway, the intention of this patch is simply to remove usage of + in message creation. I think all enhancements to the actual mechanism used to construct the actual error messages should be addressed by the BigSwitch team.","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"de63b5800ef58197f33a6d93b6e83fb9f02348e5","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9aSQ%3D","line":327,"in_reply_to":"AAAAUH%2F9zMI%3D","updated":"2014-02-07 04:01:10.000000000","message":"Actually errstr is already translated before it gets passed to this function. Also, NeutronRestProxyV2 seems to be redundant here. We can perhaps just make this:\n  LOG.error(errstr, resp[2])","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7996,"name":"Luis A. Garcia","email":"luis@linux.vnet.ibm.com","username":"luisg"},"change_message_id":"3d3985b7a81af28e09b6dbada6d645691370e79d","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fyxg%3D","line":327,"in_reply_to":"AAAAUX%2F%2F%2FBg%3D","updated":"2014-02-10 19:22:56.000000000","message":"Hi Kevin, Thanks for clarifying, I will address Sumit\u0027s comment in the next PS. Thank you,","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"dab123526f6a623ef2db90e715d1ec026db3b154","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            ignore_codes \u003d [404]"},{"line_number":325,"context_line":"        resp \u003d self.rest_call(action, resource, data, headers, ignore_codes)"},{"line_number":326,"context_line":"        if self.server_failure(resp, ignore_codes):"},{"line_number":327,"context_line":"            LOG.error(_(\"NeutronRestProxyV2: %s\") % errstr, resp[2])"},{"line_number":328,"context_line":"            raise RemoteRestError(reason\u003dresp[2])"},{"line_number":329,"context_line":"        if resp[0] in ignore_codes:"},{"line_number":330,"context_line":"            LOG.warning(_(\"NeutronRestProxyV2: Received and ignored error \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F%2FBg%3D","line":327,"in_reply_to":"AAAAUX%2F%2F%2FEk%3D","updated":"2014-02-07 23:18:39.000000000","message":"Hi Luis, \n\nI think he meant \"NeutronRestProxyV2\" is redundant since that will already be added by the logging library. So you can just remove that completely and make it:\n\n LOG.error(errstr, resp[2])","commit_id":"02ad6b784a2da1a720e56db91e15be63755c4d19"}]}
