)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"40d8eddd9635cc5a856c293bbdc129546db4a24f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not spam the log with uncritical stacktraces"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change will hopefully reduce the amount of stacktrace spam in the"},{"line_number":10,"context_line":"keystone logs due to authentication attempts with identifiers that point"},{"line_number":11,"context_line":"to non existant objects (users, domains, projects)."},{"line_number":12,"context_line":"IMHO these events do not justify a stacktrace and polute the log, which"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_5b1a0c18","line":9,"range":{"start_line":9,"start_character":27,"end_line":9,"end_character":33},"updated":"2016-06-24 17:58:49.000000000","message":"how, I see more logs being added","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"42ef01665f15718c4d895113fb85e5642d68f9ab","unresolved":false,"context_lines":[{"line_number":12,"context_line":"IMHO these events do not justify a stacktrace and polute the log, which"},{"line_number":13,"context_line":"makes finding the real issues more difficult."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In addition, the change will log some authentication issues that where"},{"line_number":16,"context_line":"not logged before, but usefull to be aware of when diagnosing"},{"line_number":17,"context_line":"authentication issues."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_d4cd5032","line":15,"range":{"start_line":15,"start_character":65,"end_line":15,"end_character":70},"updated":"2016-06-24 15:27:22.000000000","message":"were*","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"}],"keystone/auth/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e37b94b80632028a4561ae10b9865069458c7d48","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            if domain_name:"},{"line_number":184,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":185,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":186,"context_line":"                    msg \u003d _LW("},{"line_number":187,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":188,"context_line":"                    LOG.warning(msg)"},{"line_number":189,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_9711ee06","line":186,"updated":"2016-06-24 15:29:27.000000000","message":"This is wrong, leave it the was it was: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#choosing-a-marker-function","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fb09782fe3ce6af9cbf9f81e6a95f67910fae159","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            if domain_name:"},{"line_number":184,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":185,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":186,"context_line":"                    msg \u003d _LW("},{"line_number":187,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":188,"context_line":"                    LOG.warning(msg)"},{"line_number":189,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4df4c786","line":186,"in_reply_to":"3aaa91ec_33aa9c85","updated":"2016-06-27 17:24:14.000000000","message":"That has be be a bug in the check. I\u0027ll look at that today.","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":18115,"name":"Rudolf Vriend","email":"rudolf.vriend@sap.com","username":"rudolf"},"change_message_id":"4a1f3ac9435dc8b13bdb202ff7cb9d0d1009d361","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            if domain_name:"},{"line_number":184,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":185,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":186,"context_line":"                    msg \u003d _LW("},{"line_number":187,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":188,"context_line":"                    LOG.warning(msg)"},{"line_number":189,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_33aa9c85","line":186,"in_reply_to":"3aaa91ec_9711ee06","updated":"2016-06-27 08:09:04.000000000","message":"Without it, the PEP8 test-suite complains about \u0027K006 Not using translating helper for logging\u0027 ??","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e37b94b80632028a4561ae10b9865069458c7d48","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":186,"context_line":"                    msg \u003d _LW("},{"line_number":187,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":188,"context_line":"                    LOG.warning(msg)"},{"line_number":189,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"},{"line_number":190,"context_line":"                domain_ref \u003d self.resource_api.get_domain_by_name("},{"line_number":191,"context_line":"                    domain_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_d7937659","line":188,"updated":"2016-06-24 15:29:27.000000000","message":"Does this actually have any value for the operator of the cloud?","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"40d8eddd9635cc5a856c293bbdc129546db4a24f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":186,"context_line":"                    msg \u003d _LW("},{"line_number":187,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":188,"context_line":"                    LOG.warning(msg)"},{"line_number":189,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"},{"line_number":190,"context_line":"                domain_ref \u003d self.resource_api.get_domain_by_name("},{"line_number":191,"context_line":"                    domain_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_3bb90016","line":188,"in_reply_to":"3aaa91ec_d7937659","updated":"2016-06-24 17:58:49.000000000","message":"++ I don\u0027t think they need this info at all","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e37b94b80632028a4561ae10b9865069458c7d48","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            if project_name:"},{"line_number":212,"context_line":"                if (CONF.resource.project_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":213,"context_line":"                        utils.is_not_url_safe(project_name)):"},{"line_number":214,"context_line":"                    msg \u003d _LW("},{"line_number":215,"context_line":"                        \u0027Project name cannot contain reserved characters.\u0027)"},{"line_number":216,"context_line":"                    LOG.warning(msg)"},{"line_number":217,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_77d60229","line":214,"updated":"2016-06-24 15:29:27.000000000","message":"Same as above","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e37b94b80632028a4561ae10b9865069458c7d48","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                        utils.is_not_url_safe(project_name)):"},{"line_number":214,"context_line":"                    msg \u003d _LW("},{"line_number":215,"context_line":"                        \u0027Project name cannot contain reserved characters.\u0027)"},{"line_number":216,"context_line":"                    LOG.warning(msg)"},{"line_number":217,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"},{"line_number":218,"context_line":"                if \u0027domain\u0027 not in project_info:"},{"line_number":219,"context_line":"                    raise exception.ValidationError(attribute\u003d\u0027domain\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_d7cc168b","line":216,"updated":"2016-06-24 15:29:27.000000000","message":"Does this message have any value for the operator of the cloud?","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"42ef01665f15718c4d895113fb85e5642d68f9ab","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                # disabled."},{"line_number":229,"context_line":"                self._lookup_domain({\u0027id\u0027: project_ref[\u0027domain_id\u0027]})"},{"line_number":230,"context_line":"        except exception.ProjectNotFound as e:"},{"line_number":231,"context_line":"            LOG.warning(six.text_type(e))"},{"line_number":232,"context_line":"            raise exception.Unauthorized(e)"},{"line_number":233,"context_line":"        self._assert_project_is_enabled(project_ref)"},{"line_number":234,"context_line":"        return project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_b7b34a09","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":41},"updated":"2016-06-24 15:27:22.000000000","message":"i don\u0027t like logging a stacktrace, same goes for line 195 and the two below","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"3c16075157a102c7fa018e7dbfaa2c6df305c315","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                # disabled."},{"line_number":229,"context_line":"                self._lookup_domain({\u0027id\u0027: project_ref[\u0027domain_id\u0027]})"},{"line_number":230,"context_line":"        except exception.ProjectNotFound as e:"},{"line_number":231,"context_line":"            LOG.warning(six.text_type(e))"},{"line_number":232,"context_line":"            raise exception.Unauthorized(e)"},{"line_number":233,"context_line":"        self._assert_project_is_enabled(project_ref)"},{"line_number":234,"context_line":"        return project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4c7694d9","line":231,"in_reply_to":"3aaa91ec_81da0816","updated":"2016-06-27 14:51:53.000000000","message":"I don\u0027t see you anything it from LOG.exception to LOG.warning. I only see you adding new LOGs here","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"40d8eddd9635cc5a856c293bbdc129546db4a24f","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                # disabled."},{"line_number":229,"context_line":"                self._lookup_domain({\u0027id\u0027: project_ref[\u0027domain_id\u0027]})"},{"line_number":230,"context_line":"        except exception.ProjectNotFound as e:"},{"line_number":231,"context_line":"            LOG.warning(six.text_type(e))"},{"line_number":232,"context_line":"            raise exception.Unauthorized(e)"},{"line_number":233,"context_line":"        self._assert_project_is_enabled(project_ref)"},{"line_number":234,"context_line":"        return project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_1be1a42d","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":41},"in_reply_to":"3aaa91ec_b7b34a09","updated":"2016-06-24 17:58:49.000000000","message":"++ I don\u0027t think it\u0027s useful for cloud operators","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":18115,"name":"Rudolf Vriend","email":"rudolf.vriend@sap.com","username":"rudolf"},"change_message_id":"dd1488fd25ad20563f0eaba49f62ac9ae0ea8659","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                # disabled."},{"line_number":229,"context_line":"                self._lookup_domain({\u0027id\u0027: project_ref[\u0027domain_id\u0027]})"},{"line_number":230,"context_line":"        except exception.ProjectNotFound as e:"},{"line_number":231,"context_line":"            LOG.warning(six.text_type(e))"},{"line_number":232,"context_line":"            raise exception.Unauthorized(e)"},{"line_number":233,"context_line":"        self._assert_project_is_enabled(project_ref)"},{"line_number":234,"context_line":"        return project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_81da0816","line":231,"in_reply_to":"3aaa91ec_b7b34a09","updated":"2016-06-27 13:52:04.000000000","message":"I don\u0027t get it. That is exactly the reason why I changed the logging from LOG.exception (with traceback) to LOG.warning (no traceback and just a warning level).\nAnd the exceptions message does (can?) contain valuable information that is worth logging","commit_id":"eb7a0178bf251789b907b5821d554d2eaac6768d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6e1376ba954ccfe810bf2e91647d9e85d28cde22","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if domain_name:"},{"line_number":183,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":184,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":185,"context_line":"                    msg \u003d _LW("},{"line_number":186,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":187,"context_line":"                    LOG.warning(msg)"},{"line_number":188,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_c78a5d1a","line":185,"range":{"start_line":185,"start_character":26,"end_line":185,"end_character":30},"updated":"2016-07-01 16:52:48.000000000","message":"I think this is country to the guidelines - if you are going to raise an exception with the message, then you should use _() - which is whit is written the way it is.\n\nSee: http://docs.openstack.org/developer/oslo.i18n/guidelines.html","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e8559bd05e96d80e0e63aee66646d80a094c705b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if domain_name:"},{"line_number":183,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":184,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":185,"context_line":"                    msg \u003d _LW("},{"line_number":186,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":187,"context_line":"                    LOG.warning(msg)"},{"line_number":188,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_817afe23","line":185,"range":{"start_line":185,"start_character":26,"end_line":185,"end_character":30},"in_reply_to":"3aaa91ec_1eb94b7a","updated":"2016-11-01 13:23:01.000000000","message":"Submitted a patch to fix the issue: https://review.openstack.org/336708\n\nThis has been merged already.","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f750a4a2bd0eb5830a766ba26ae72e5add02938c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if domain_name:"},{"line_number":183,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":184,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":185,"context_line":"                    msg \u003d _LW("},{"line_number":186,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":187,"context_line":"                    LOG.warning(msg)"},{"line_number":188,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_b7f8e2c4","line":185,"range":{"start_line":185,"start_character":26,"end_line":185,"end_character":30},"in_reply_to":"3aaa91ec_817afe23","updated":"2016-11-01 14:04:45.000000000","message":"Done","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"35790d53e8a46868c5272d06bc3bea301fb44d41","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if domain_name:"},{"line_number":183,"context_line":"                if (CONF.resource.domain_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":184,"context_line":"                        utils.is_not_url_safe(domain_name)):"},{"line_number":185,"context_line":"                    msg \u003d _LW("},{"line_number":186,"context_line":"                        \u0027Domain name cannot contain reserved characters.\u0027)"},{"line_number":187,"context_line":"                    LOG.warning(msg)"},{"line_number":188,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_1eb94b7a","line":185,"range":{"start_line":185,"start_character":26,"end_line":185,"end_character":30},"in_reply_to":"3aaa91ec_c78a5d1a","updated":"2016-07-01 18:50:21.000000000","message":"I mentioned this is the previous review and I think the reason it\u0027s done this way is a deficiency in my hacking checks. I think the fact that line 188 uses a kwarg makes the check fail and require a _LW. I\u0027ll look into this now and fix in a different patch.","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6e1376ba954ccfe810bf2e91647d9e85d28cde22","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            if project_name:"},{"line_number":211,"context_line":"                if (CONF.resource.project_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":212,"context_line":"                        utils.is_not_url_safe(project_name)):"},{"line_number":213,"context_line":"                    msg \u003d _LW("},{"line_number":214,"context_line":"                        \u0027Project name cannot contain reserved characters.\u0027)"},{"line_number":215,"context_line":"                    LOG.warning(msg)"},{"line_number":216,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_e78cb930","line":213,"range":{"start_line":213,"start_character":26,"end_line":213,"end_character":30},"updated":"2016-07-01 16:52:48.000000000","message":"ditto","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f750a4a2bd0eb5830a766ba26ae72e5add02938c","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            if project_name:"},{"line_number":211,"context_line":"                if (CONF.resource.project_name_url_safe \u003d\u003d \u0027strict\u0027 and"},{"line_number":212,"context_line":"                        utils.is_not_url_safe(project_name)):"},{"line_number":213,"context_line":"                    msg \u003d _LW("},{"line_number":214,"context_line":"                        \u0027Project name cannot contain reserved characters.\u0027)"},{"line_number":215,"context_line":"                    LOG.warning(msg)"},{"line_number":216,"context_line":"                    raise exception.Unauthorized(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_f7fedaac","line":213,"range":{"start_line":213,"start_character":26,"end_line":213,"end_character":30},"in_reply_to":"3aaa91ec_e78cb930","updated":"2016-11-01 14:04:45.000000000","message":"Done","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d270ef2be8026d88051057e6c511166f4795a7ee","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        if \u0027user_id\u0027 not in auth_context:"},{"line_number":546,"context_line":"            msg \u003d _(\u0027User not found\u0027)"},{"line_number":547,"context_line":"            LOG.warning(msg)"},{"line_number":548,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_fa9b2870","line":547,"range":{"start_line":547,"start_character":12,"end_line":547,"end_character":28},"updated":"2016-11-01 11:19:08.000000000","message":"I can\u0027t see any benefit from this to operators. There is no ID logged, nothing else than \u0027User not found\u0027 (from where ??). They won\u0027t be able to identify what\u0027s wrong at all here.","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f750a4a2bd0eb5830a766ba26ae72e5add02938c","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        if \u0027user_id\u0027 not in auth_context:"},{"line_number":546,"context_line":"            msg \u003d _(\u0027User not found\u0027)"},{"line_number":547,"context_line":"            LOG.warning(msg)"},{"line_number":548,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_62b20a08","line":547,"range":{"start_line":547,"start_character":12,"end_line":547,"end_character":28},"in_reply_to":"ba5da102_1c91b547","updated":"2016-11-01 14:04:45.000000000","message":"Done","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e8559bd05e96d80e0e63aee66646d80a094c705b","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        if \u0027user_id\u0027 not in auth_context:"},{"line_number":546,"context_line":"            msg \u003d _(\u0027User not found\u0027)"},{"line_number":547,"context_line":"            LOG.warning(msg)"},{"line_number":548,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_1c91b547","line":547,"range":{"start_line":547,"start_character":12,"end_line":547,"end_character":28},"in_reply_to":"ba5da102_fa9b2870","updated":"2016-11-01 13:23:01.000000000","message":"++","commit_id":"5697f983a97f6586e454afc229c7800a70545a37"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1f443c345e4e3e0b93d7d12e3201e6cc1bd778ca","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            raise exception.AdditionalAuthRequired(auth_response)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        if \u0027user_id\u0027 not in auth_context:"},{"line_number":540,"context_line":"            msg \u003d _(\u0027User not found by auth plugin; authentication failed\u0027)"},{"line_number":541,"context_line":"            LOG.warning(msg)"},{"line_number":542,"context_line":"            raise exception.Unauthorized(msg)"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_62392af2","line":540,"updated":"2016-11-01 14:05:36.000000000","message":"I\u0027m not particularly fond of this phrasing, but it\u0027s the best I could come up with.","commit_id":"e4989793ab1fadeeb6797bc21023cefa91d00926"}]}
