)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3293e2bd2064deafebff457462bcb9fa22938da4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jolie \u003cguoshan@awcloud.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-24 16:21:06 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"log.error use _LE of i18n"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"log.error should be translated with _LE"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2fb8249c0f5c0460f3f3f61a2dde516e775667da"},{"line_number":12,"context_line":"closes-bug:#1635162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da6895a0_8cdcdc13","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":39},"updated":"2016-10-25 01:29:11.000000000","message":"commit message should be updated.","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"24dde9c6186fd7c191f25502888b81fa79ad4d82","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jolie \u003cguoshan@awcloud.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-24 16:21:06 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"log.error use _LE of i18n"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"log.error should be translated with _LE"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2fb8249c0f5c0460f3f3f61a2dde516e775667da"},{"line_number":12,"context_line":"closes-bug:#1635162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da6895a0_871bd71a","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":39},"in_reply_to":"da6895a0_8cdcdc13","updated":"2016-10-25 02:43:45.000000000","message":"Done","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3293e2bd2064deafebff457462bcb9fa22938da4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"log.error should be translated with _LE"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2fb8249c0f5c0460f3f3f61a2dde516e775667da"},{"line_number":12,"context_line":"closes-bug:#1635162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da6895a0_acd7e0eb","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":19},"updated":"2016-10-25 01:29:11.000000000","message":"Closes-Bug: #1635162","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"24dde9c6186fd7c191f25502888b81fa79ad4d82","unresolved":false,"context_lines":[{"line_number":9,"context_line":"log.error should be translated with _LE"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2fb8249c0f5c0460f3f3f61a2dde516e775667da"},{"line_number":12,"context_line":"closes-bug:#1635162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da6895a0_a7161bef","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":19},"in_reply_to":"da6895a0_acd7e0eb","updated":"2016-10-25 02:43:45.000000000","message":"Done","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"}],"keystone/credential/providers/fernet/core.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"9413836f92551c0e626a2655784b5b1cbcc6f42b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                credential \u003d credential.encode(\u0027utf-8\u0027)"},{"line_number":102,"context_line":"            return crypto.decrypt(credential).decode(\u0027utf-8\u0027)"},{"line_number":103,"context_line":"        except (fernet.InvalidToken, TypeError, ValueError):"},{"line_number":104,"context_line":"            msg \u003d _LE(\u0027Credential could not be decrypted. Please contact the \u0027"},{"line_number":105,"context_line":"                      \u0027administrator\u0027)"},{"line_number":106,"context_line":"            LOG.error(msg)"},{"line_number":107,"context_line":"            raise exception.CredentialEncryptionError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_2ae82bb4","line":106,"range":{"start_line":104,"start_character":12,"end_line":106,"end_character":26},"updated":"2016-10-24 03:21:19.000000000","message":"pls see the i18n guideline on how to use them,\n\n    # Log and Raise\n    msg \u003d _(\u0027Unexpected error message\u0027)\n    LOG.exception(msg)\n    raise RuntimeError(msg)\n\nsee: http://docs.openstack.org/developer/oslo.i18n/usage.html\n\nI bet these code was wrote as this intentionally.","commit_id":"7a1faca57f908116d6620d581dd668d6e78148d5"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"fc0f60d9013ccb89585617d1947b7f8da4c8c0c8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                credential \u003d credential.encode(\u0027utf-8\u0027)"},{"line_number":102,"context_line":"            return crypto.decrypt(credential).decode(\u0027utf-8\u0027)"},{"line_number":103,"context_line":"        except (fernet.InvalidToken, TypeError, ValueError):"},{"line_number":104,"context_line":"            msg \u003d _LE(\u0027Credential could not be decrypted. Please contact the \u0027"},{"line_number":105,"context_line":"                      \u0027administrator\u0027)"},{"line_number":106,"context_line":"            LOG.error(msg)"},{"line_number":107,"context_line":"            raise exception.CredentialEncryptionError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_36b7b687","line":106,"range":{"start_line":104,"start_character":12,"end_line":106,"end_character":26},"in_reply_to":"da6895a0_2ae82bb4","updated":"2016-10-24 08:34:09.000000000","message":"Thanks for review. May be that\u0027s why I failed pep8 test TAT","commit_id":"7a1faca57f908116d6620d581dd668d6e78148d5"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"afdaea3fb8ee896960db2e36e28328d56e792a3b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                crypto.encrypt(credential.encode(\u0027utf-8\u0027)),"},{"line_number":81,"context_line":"                primary_key_hash(keys))"},{"line_number":82,"context_line":"        except (TypeError, ValueError) as e:"},{"line_number":83,"context_line":"            msg \u003d _(\u0027Credential could not be encrypted: %s\u0027) % str(e)"},{"line_number":84,"context_line":"            LOG.error(msg)"},{"line_number":85,"context_line":"            raise exception.CredentialEncryptionError(msg)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def decrypt(self, credential):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_b8a64251","line":84,"range":{"start_line":83,"start_character":12,"end_line":84,"end_character":26},"updated":"2016-10-24 18:42:53.000000000","message":"Just curious why the error msg is done this way, compared to how it is done in the other two files with using _ vs _LE:\n\nmsg \u003d _LE(\u0027%(host)s is not a trusted dashboard host\u0027)\nmsg \u003d msg % {\u0027host\u0027: host}\nLOG.error(msg)","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"24dde9c6186fd7c191f25502888b81fa79ad4d82","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                crypto.encrypt(credential.encode(\u0027utf-8\u0027)),"},{"line_number":81,"context_line":"                primary_key_hash(keys))"},{"line_number":82,"context_line":"        except (TypeError, ValueError) as e:"},{"line_number":83,"context_line":"            msg \u003d _(\u0027Credential could not be encrypted: %s\u0027) % str(e)"},{"line_number":84,"context_line":"            LOG.error(msg)"},{"line_number":85,"context_line":"            raise exception.CredentialEncryptionError(msg)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def decrypt(self, credential):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_67f5e3c9","line":84,"range":{"start_line":83,"start_character":12,"end_line":84,"end_character":26},"in_reply_to":"da6895a0_b8a64251","updated":"2016-10-25 02:43:45.000000000","message":"# Log and Raise\n    msg \u003d _(\u0027Unexpected error message\u0027)\n    LOG.exception(msg)\n    raise RuntimeError(msg)\n\nWhen log and raise the msg, should use _","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"}],"keystone/federation/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6ff2d0b29170cf2ebeb1822dcb2035a33f270e2e","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                              for trusted in CONF.federation.trusted_dashboard]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if host not in trusted_dashboards:"},{"line_number":289,"context_line":"            msg \u003d _LE(\u0027%(host)s is not a trusted dashboard host\u0027)"},{"line_number":290,"context_line":"            msg \u003d msg % {\u0027host\u0027: host}"},{"line_number":291,"context_line":"            LOG.error(msg)"},{"line_number":292,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        return host"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_ece0f8ce","line":291,"range":{"start_line":289,"start_character":12,"end_line":291,"end_character":26},"updated":"2016-10-25 01:27:24.000000000","message":"same comment here, pls revert the change here.","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"24dde9c6186fd7c191f25502888b81fa79ad4d82","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                              for trusted in CONF.federation.trusted_dashboard]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if host not in trusted_dashboards:"},{"line_number":289,"context_line":"            msg \u003d _LE(\u0027%(host)s is not a trusted dashboard host\u0027)"},{"line_number":290,"context_line":"            msg \u003d msg % {\u0027host\u0027: host}"},{"line_number":291,"context_line":"            LOG.error(msg)"},{"line_number":292,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        return host"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_c7d30f37","line":291,"range":{"start_line":289,"start_character":12,"end_line":291,"end_character":26},"in_reply_to":"da6895a0_ece0f8ce","updated":"2016-10-25 02:43:45.000000000","message":"Done","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"}],"keystone/federation/idp.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6ff2d0b29170cf2ebeb1822dcb2035a33f270e2e","unresolved":false,"context_lines":[{"line_number":489,"context_line":"            try:"},{"line_number":490,"context_line":"                return sigver.read_cert_from_file(CONF.saml.certfile, \u0027pem\u0027)"},{"line_number":491,"context_line":"            except (IOError, sigver.CertificateError) as e:"},{"line_number":492,"context_line":"                msg \u003d _LE(\u0027Cannot open certificate %(cert_file)s. \u0027"},{"line_number":493,"context_line":"                          \u0027Reason: %(reason)s\u0027)"},{"line_number":494,"context_line":"                msg \u003d msg % {\u0027cert_file\u0027: CONF.saml.certfile, \u0027reason\u0027: e}"},{"line_number":495,"context_line":"                LOG.error(msg)"},{"line_number":496,"context_line":"                raise IOError(msg)"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"        def key_descriptor():"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_2cebd0b1","line":495,"range":{"start_line":492,"start_character":16,"end_line":495,"end_character":30},"updated":"2016-10-25 01:27:24.000000000","message":"revert the change here to follow the i18n guideline.","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"24dde9c6186fd7c191f25502888b81fa79ad4d82","unresolved":false,"context_lines":[{"line_number":489,"context_line":"            try:"},{"line_number":490,"context_line":"                return sigver.read_cert_from_file(CONF.saml.certfile, \u0027pem\u0027)"},{"line_number":491,"context_line":"            except (IOError, sigver.CertificateError) as e:"},{"line_number":492,"context_line":"                msg \u003d _LE(\u0027Cannot open certificate %(cert_file)s. \u0027"},{"line_number":493,"context_line":"                          \u0027Reason: %(reason)s\u0027)"},{"line_number":494,"context_line":"                msg \u003d msg % {\u0027cert_file\u0027: CONF.saml.certfile, \u0027reason\u0027: e}"},{"line_number":495,"context_line":"                LOG.error(msg)"},{"line_number":496,"context_line":"                raise IOError(msg)"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"        def key_descriptor():"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_e7d65326","line":495,"range":{"start_line":492,"start_character":16,"end_line":495,"end_character":30},"in_reply_to":"da6895a0_2cebd0b1","updated":"2016-10-25 02:43:45.000000000","message":"Done","commit_id":"03c4751129d3a159f1ff582fc0fdb0771e388032"}]}
