)]}'
{"keystone/tests/unit/test_exception.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2adbf4ed257e1c1fd80507f096f5e2bee67952dc","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    rendering the exception object as a string. If not provided the object\u0027s"},{"line_number":288,"context_line":"    message_format attribute is used instead. ``SecurityError``s are a little"},{"line_number":289,"context_line":"    different in that they only use the message provided to the initializer"},{"line_number":290,"context_line":"    when keystone is in insecure_debug mode. Instead they will use the message"},{"line_number":291,"context_line":"    format.  This is to ensure that sensitive details are not leaked back to"},{"line_number":292,"context_line":"    the caller in a production deployment."},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_a7e72be3","line":290,"updated":"2016-07-28 13:59:17.000000000","message":"nit: We could put insecure_debud in backticks here as well.","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2adbf4ed257e1c1fd80507f096f5e2bee67952dc","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    is because the code tries to use the ``message_format`` in secure mode,"},{"line_number":302,"context_line":"    but the required kwargs are not in the deep copy."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    The end result is not an error because when the KeyError is cause the"},{"line_number":305,"context_line":"    instance\u0027s ``message`` is used instead and this has the properly"},{"line_number":306,"context_line":"    translated message. The only indication that something is wonky is a"},{"line_number":307,"context_line":"    message in the warning log."}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_a783abcb","line":304,"updated":"2016-07-28 13:59:17.000000000","message":"s/cause/caught/","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ec43448411ee1ebe75140ce552d07dad3f0c6871","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def setUp(self):"},{"line_number":311,"context_line":"        super(TestSecurityErrorTranslation, self).setUp()"},{"line_number":312,"context_line":"        self.config_fixture \u003d self.useFixture(config_fixture.Config(CONF))"},{"line_number":313,"context_line":"        self.config_fixture.config(insecure_debug\u003dFalse)"},{"line_number":314,"context_line":"        self.warning_log \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        exception._FATAL_EXCEPTION_FORMAT_ERRORS \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_66e4350d","line":313,"updated":"2016-07-28 01:49:25.000000000","message":"Looks like this is already defaulted to False: \n\nhttps://github.com/openstack/keystone/blob/9d54eb33c1d74ff39c947af6ff984ef2e0bf4be4/keystone/conf/default.py#L185","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a121eace3407f959e70aa2053d28704bd3604d84","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def setUp(self):"},{"line_number":311,"context_line":"        super(TestSecurityErrorTranslation, self).setUp()"},{"line_number":312,"context_line":"        self.config_fixture \u003d self.useFixture(config_fixture.Config(CONF))"},{"line_number":313,"context_line":"        self.config_fixture.config(insecure_debug\u003dFalse)"},{"line_number":314,"context_line":"        self.warning_log \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        exception._FATAL_EXCEPTION_FORMAT_ERRORS \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_ca5ec344","line":313,"in_reply_to":"bacf61ea_66e4350d","updated":"2016-07-28 04:11:51.000000000","message":"This was intentional. I just wanted to make sure the test couldn\u0027t be broken from outside changes. Unlikely this particular default would change, but meh.","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2adbf4ed257e1c1fd80507f096f5e2bee67952dc","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def setUp(self):"},{"line_number":311,"context_line":"        super(TestSecurityErrorTranslation, self).setUp()"},{"line_number":312,"context_line":"        self.config_fixture \u003d self.useFixture(config_fixture.Config(CONF))"},{"line_number":313,"context_line":"        self.config_fixture.config(insecure_debug\u003dFalse)"},{"line_number":314,"context_line":"        self.warning_log \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        exception._FATAL_EXCEPTION_FORMAT_ERRORS \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_07743733","line":313,"in_reply_to":"bacf61ea_ca5ec344","updated":"2016-07-28 13:59:17.000000000","message":"Ah - makes sense. Thanks!","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ec43448411ee1ebe75140ce552d07dad3f0c6871","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        self.warning_log \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        exception._FATAL_EXCEPTION_FORMAT_ERRORS \u003d False"},{"line_number":317,"context_line":"        self.addCleanup(setattr, exception, \u0027_FATAL_EXCEPTION_FORMAT_ERRORS\u0027, True)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    class CustomSecurityError(exception.SecurityError):"},{"line_number":320,"context_line":"        message_format \u003d _LE(\u0027We had a failure in the %(place)r\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_26b99dea","line":317,"updated":"2016-07-28 01:49:25.000000000","message":"Looks like this is False out of the box as well: \n\nhttps://github.com/openstack/keystone/blob/9d54eb33c1d74ff39c947af6ff984ef2e0bf4be4/keystone/exception.py#L27\n\nAlso looks like this line is just a hair too long.","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a121eace3407f959e70aa2053d28704bd3604d84","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        self.warning_log \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        exception._FATAL_EXCEPTION_FORMAT_ERRORS \u003d False"},{"line_number":317,"context_line":"        self.addCleanup(setattr, exception, \u0027_FATAL_EXCEPTION_FORMAT_ERRORS\u0027, True)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    class CustomSecurityError(exception.SecurityError):"},{"line_number":320,"context_line":"        message_format \u003d _LE(\u0027We had a failure in the %(place)r\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_0a30db00","line":317,"in_reply_to":"bacf61ea_26b99dea","updated":"2016-07-28 04:11:51.000000000","message":"keystone.tests.unit.core actually changes this value to True for the test runs. This kind of highlights my reasoning above.","commit_id":"064d0f257d2f244539e4055eb12cf773b73fc021"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"054e0448541d594356355cfc8abd7640aff4560d","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    rendering the exception object as a string. If not provided the object\u0027s"},{"line_number":288,"context_line":"    message_format attribute is used instead. ``SecurityError``s are a little"},{"line_number":289,"context_line":"    different in that they only use the message provided to the initializer"},{"line_number":290,"context_line":"    when keystone is in insecure_debug mode. Instead they will use the message"},{"line_number":291,"context_line":"    format.  This is to ensure that sensitive details are not leaked back to"},{"line_number":292,"context_line":"    the caller in a production deployment."},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_c7d85ff2","line":290,"updated":"2016-07-28 14:02:05.000000000","message":"nit: we could probably throw insecure_debug in backticks here as well.","commit_id":"fd861dca5fb91adbf812c36df07917bd806dfdfa"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"054e0448541d594356355cfc8abd7640aff4560d","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    is because the code tries to use the ``message_format`` in secure mode,"},{"line_number":302,"context_line":"    but the required kwargs are not in the deep copy."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    The end result is not an error because when the KeyError is cause the"},{"line_number":305,"context_line":"    instance\u0027s ``message`` is used instead and this has the properly"},{"line_number":306,"context_line":"    translated message. The only indication that something is wonky is a"},{"line_number":307,"context_line":"    message in the warning log."}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_274fbbbe","line":304,"updated":"2016-07-28 14:02:05.000000000","message":"s/cause/caught/","commit_id":"fd861dca5fb91adbf812c36df07917bd806dfdfa"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"07a5beaacd57bf48cb51aba8e554d8e26a085403","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    is because the code tries to use the ``message_format`` in secure mode,"},{"line_number":302,"context_line":"    but the required kwargs are not in the deep copy."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    The end result is not an error because when the KeyError is cause the"},{"line_number":305,"context_line":"    instance\u0027s ``message`` is used instead and this has the properly"},{"line_number":306,"context_line":"    translated message. The only indication that something is wonky is a"},{"line_number":307,"context_line":"    message in the warning log."}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_7c912f99","line":304,"in_reply_to":"bacf61ea_274fbbbe","updated":"2016-07-29 17:57:36.000000000","message":"Done","commit_id":"fd861dca5fb91adbf812c36df07917bd806dfdfa"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"054e0448541d594356355cfc8abd7640aff4560d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    The end result is not an error because when the KeyError is cause the"},{"line_number":305,"context_line":"    instance\u0027s ``message`` is used instead and this has the properly"},{"line_number":306,"context_line":"    translated message. The only indication that something is wonky is a"},{"line_number":307,"context_line":"    message in the warning log."},{"line_number":308,"context_line":"    \"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_a7b60b88","line":307,"updated":"2016-07-28 14:02:05.000000000","message":"s/message/``programmer error`` message/","commit_id":"fd861dca5fb91adbf812c36df07917bd806dfdfa"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"07a5beaacd57bf48cb51aba8e554d8e26a085403","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    The end result is not an error because when the KeyError is cause the"},{"line_number":305,"context_line":"    instance\u0027s ``message`` is used instead and this has the properly"},{"line_number":306,"context_line":"    translated message. The only indication that something is wonky is a"},{"line_number":307,"context_line":"    message in the warning log."},{"line_number":308,"context_line":"    \"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_7c564fd3","line":307,"in_reply_to":"bacf61ea_a7b60b88","updated":"2016-07-29 17:57:36.000000000","message":"Done","commit_id":"fd861dca5fb91adbf812c36df07917bd806dfdfa"}]}
