)]}'
{"ironicclient/common/http.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"78f05b9ab52ac51b479c87359787d1d8833626ba","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    LOG.error(msg)"},{"line_number":190,"context_line":"                    raise"},{"line_number":191,"context_line":"                else:"},{"line_number":192,"context_line":"                    LOG.warning(msg)"},{"line_number":193,"context_line":"                    time.sleep(self.conflict_retry_interval)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_6c2330a8","line":192,"updated":"2015-11-18 14:36:16.000000000","message":"If it is a warning it should be translated with _LW instead of _LE, maybe instead do smth like LOG.error(_LE(msg)) and LOG.warning(_LW(msg)) and do not modify msg itself?","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"1e9908422031ac6392b82b6b4f621614aaff355d","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    LOG.error(msg)"},{"line_number":190,"context_line":"                    raise"},{"line_number":191,"context_line":"                else:"},{"line_number":192,"context_line":"                    LOG.warning(msg)"},{"line_number":193,"context_line":"                    time.sleep(self.conflict_retry_interval)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_9bcd65b9","line":192,"in_reply_to":"ba8a016a_3829dfe6","updated":"2015-11-18 15:33:17.000000000","message":"not sure I get it, markers it\u0027s only prioritize question, so same msg with 2 markers, what does it mean?","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7ca04a237085834cb78a4ad40f4ce36f80e86025","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    LOG.error(msg)"},{"line_number":190,"context_line":"                    raise"},{"line_number":191,"context_line":"                else:"},{"line_number":192,"context_line":"                    LOG.warning(msg)"},{"line_number":193,"context_line":"                    time.sleep(self.conflict_retry_interval)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ecf72057","line":192,"in_reply_to":"ba8a016a_6c2330a8","updated":"2015-11-18 14:43:22.000000000","message":"In your case would be two translated msg with same string, not sure it\u0027s good idea, what a problem with increasing to LE warning msg in some cases?","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6fc0dae6c2a4635d4d9b21b63e73fb74e662645a","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    LOG.error(msg)"},{"line_number":190,"context_line":"                    raise"},{"line_number":191,"context_line":"                else:"},{"line_number":192,"context_line":"                    LOG.warning(msg)"},{"line_number":193,"context_line":"                    time.sleep(self.conflict_retry_interval)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_b856085a","line":192,"in_reply_to":"ba8a016a_9bcd65b9","updated":"2015-11-19 09:24:07.000000000","message":"Disagree with Vladyslav, it\u0027s a bad idea to pass a value to the Marker Function. See: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#using-a-marker-function","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"87c972f558facf626d34a2fea871ee7b8deaff57","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                    LOG.error(msg)"},{"line_number":190,"context_line":"                    raise"},{"line_number":191,"context_line":"                else:"},{"line_number":192,"context_line":"                    LOG.warning(msg)"},{"line_number":193,"context_line":"                    time.sleep(self.conflict_retry_interval)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_3829dfe6","line":192,"in_reply_to":"ba8a016a_ecf72057","updated":"2015-11-18 15:26:57.000000000","message":"Erm, no it will be one :) here is what I mean (also I missed that there should be comma instead of %):\n\nmsg \u003d \"Error contacting Ironic server: %(error)s. \"\t\n      \"Attempt %(attempt)d of %(total)d\"\nvalues \u003d {\u0027attempt\u0027: attempt,\n          \u0027total\u0027: num_attempts,\n          \u0027error\u0027: error}\nif attempt \u003d\u003d num_attempts:\n    LOG.error(_LE(msg), values)\n    raise\nelse:\n    LOG.warning(_LW(msg), values)","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"78f05b9ab52ac51b479c87359787d1d8833626ba","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            _kwargs[\u0027insecure\u0027] \u003d kwargs.get(\u0027insecure\u0027, False)"},{"line_number":231,"context_line":"        elif parts.scheme \u003d\u003d \u0027http\u0027:"},{"line_number":232,"context_line":"            _class \u003d six.moves.http_client.HTTPConnection"},{"line_number":233,"context_line":"        else:"},{"line_number":234,"context_line":"            msg \u003d \u0027Unsupported scheme: %s\u0027 % parts.scheme"},{"line_number":235,"context_line":"            raise exc.EndpointException(msg)"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ccb7bc38","line":233,"updated":"2015-11-18 14:36:16.000000000","message":"not translated too.","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7ca04a237085834cb78a4ad40f4ce36f80e86025","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            _kwargs[\u0027insecure\u0027] \u003d kwargs.get(\u0027insecure\u0027, False)"},{"line_number":231,"context_line":"        elif parts.scheme \u003d\u003d \u0027http\u0027:"},{"line_number":232,"context_line":"            _class \u003d six.moves.http_client.HTTPConnection"},{"line_number":233,"context_line":"        else:"},{"line_number":234,"context_line":"            msg \u003d \u0027Unsupported scheme: %s\u0027 % parts.scheme"},{"line_number":235,"context_line":"            raise exc.EndpointException(msg)"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_4cae6c82","line":233,"in_reply_to":"ba8a016a_ccb7bc38","updated":"2015-11-18 14:43:22.000000000","message":"missed, thanks","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"78f05b9ab52ac51b479c87359787d1d8833626ba","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            self.log_http_response(resp)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        if 400 \u003c\u003d resp.status \u003c 600:"},{"line_number":351,"context_line":"            LOG.warning(\"Request returned failure status.\")"},{"line_number":352,"context_line":"            error_json \u003d _extract_error_json(body_str)"},{"line_number":353,"context_line":"            raise exc.from_response("},{"line_number":354,"context_line":"                resp, error_json.get(\u0027faultstring\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_0c44e447","line":351,"updated":"2015-11-18 14:36:16.000000000","message":"_LW","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"78f05b9ab52ac51b479c87359787d1d8833626ba","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            body \u003d \u0027\u0027.join([chunk for chunk in body_iter])"},{"line_number":380,"context_line":"            try:"},{"line_number":381,"context_line":"                body \u003d json.loads(body)"},{"line_number":382,"context_line":"            except ValueError:"},{"line_number":383,"context_line":"                LOG.error(\u0027Could not decode response body as JSON\u0027)"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            body \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ac7b588b","line":382,"updated":"2015-11-18 14:36:16.000000000","message":"_LE","commit_id":"d4274e37946ca570b1552ed44b3030a1ad1ea5c3"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"abd02ef4bddbdfb169bb465d2f60f10abffb693b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            try:"},{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\") %"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_4b3388ab","line":183,"updated":"2015-11-19 09:23:31.000000000","message":"I am not quire sure, but using _LE for warning is a little strange. What about use a different message for warning?\n.","commit_id":"35509cacbbe20c9b4e17a794d4738bbe7a150636"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"3aaf2e4c17286db9506956f757ff36ca5e41dd4a","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            try:"},{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\") %"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_6bfa0c45","line":183,"in_reply_to":"ba8a016a_4b3388ab","updated":"2015-11-19 09:28:52.000000000","message":"The purpose of the different marker is to separate the translatable messages into different catalogs, which the translation teams can prioritize translating, it\u0027s not a problem if it will be marker as LE","commit_id":"35509cacbbe20c9b4e17a794d4738bbe7a150636"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"abd02ef4bddbdfb169bb465d2f60f10abffb693b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\") %"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"},{"line_number":187,"context_line":"                        \u0027error\u0027: error})"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_6be52c36","line":184,"updated":"2015-11-19 09:23:31.000000000","message":"if you are using _LE, it\u0027s better to do interpolation later, s/%/,/\n http://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-log-messages","commit_id":"35509cacbbe20c9b4e17a794d4738bbe7a150636"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"3aaf2e4c17286db9506956f757ff36ca5e41dd4a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\") %"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"},{"line_number":187,"context_line":"                        \u0027error\u0027: error})"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_8b72d00f","line":184,"in_reply_to":"ba8a016a_6be52c36","updated":"2015-11-19 09:28:52.000000000","message":"sure","commit_id":"35509cacbbe20c9b4e17a794d4738bbe7a150636"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2cf8eb57f4e32ee94ed09120ccfe948cdcea19d9","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\"),"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"},{"line_number":187,"context_line":"                        \u0027error\u0027: error})"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_e93e048a","line":184,"updated":"2015-11-19 09:54:03.000000000","message":"please do not replace % with , in this context, it only works as an argument to LOG.xxx functions","commit_id":"084cba6f215a81d00ef179720ae5d364e7cf74c7"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"7c7b23981eb71966eaf8c4c28b7b070d6ff3992f","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\"),"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"},{"line_number":187,"context_line":"                        \u0027error\u0027: error})"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_0d7a3888","line":184,"in_reply_to":"ba8a016a_49c15053","updated":"2015-11-20 06:38:07.000000000","message":"Thanks Dmitry, I also make a mistake here.","commit_id":"084cba6f215a81d00ef179720ae5d364e7cf74c7"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"6281995ae4e7627f6eb106e99766f6bcbdec74d0","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                return func(self, url, method, **kwargs)"},{"line_number":182,"context_line":"            except _RETRY_EXCEPTIONS as error:"},{"line_number":183,"context_line":"                msg \u003d (_LE(\"Error contacting Ironic server: %(error)s. \""},{"line_number":184,"context_line":"                           \"Attempt %(attempt)d of %(total)d\"),"},{"line_number":185,"context_line":"                       {\u0027attempt\u0027: attempt,"},{"line_number":186,"context_line":"                        \u0027total\u0027: num_attempts,"},{"line_number":187,"context_line":"                        \u0027error\u0027: error})"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_49c15053","line":184,"in_reply_to":"ba8a016a_e93e048a","updated":"2015-11-19 09:56:31.000000000","message":"yes you right, I need wake up(","commit_id":"084cba6f215a81d00ef179720ae5d364e7cf74c7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2cf8eb57f4e32ee94ed09120ccfe948cdcea19d9","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            self.log_http_response(resp)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        if 400 \u003c\u003d resp.status \u003c 600:"},{"line_number":351,"context_line":"            LOG.warning(_LW(\"Request returned failure status.\"))"},{"line_number":352,"context_line":"            error_json \u003d _extract_error_json(body_str)"},{"line_number":353,"context_line":"            raise exc.from_response("},{"line_number":354,"context_line":"                resp, error_json.get(\u0027faultstring\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_0944a818","line":351,"updated":"2015-11-19 09:54:03.000000000","message":"nit: seems like we don\u0027t usually put dot in the end, could you please remove it?","commit_id":"084cba6f215a81d00ef179720ae5d364e7cf74c7"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"6281995ae4e7627f6eb106e99766f6bcbdec74d0","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            self.log_http_response(resp)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        if 400 \u003c\u003d resp.status \u003c 600:"},{"line_number":351,"context_line":"            LOG.warning(_LW(\"Request returned failure status.\"))"},{"line_number":352,"context_line":"            error_json \u003d _extract_error_json(body_str)"},{"line_number":353,"context_line":"            raise exc.from_response("},{"line_number":354,"context_line":"                resp, error_json.get(\u0027faultstring\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_6918d41e","line":351,"in_reply_to":"ba8a016a_0944a818","updated":"2015-11-19 09:56:31.000000000","message":"ok","commit_id":"084cba6f215a81d00ef179720ae5d364e7cf74c7"}]}
