)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2051a42d79b6ffc45f0b458b8925ef26025a1e8f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jamie Lennox \u003cjamielennox@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-24 12:30:42 +1000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support local config options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some services such as Swift does not use Oslo (global) config. In that"},{"line_number":10,"context_line":"case, make sure we can pass the options via local config instead. This is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3aaa91ec_06b97279","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":28},"updated":"2016-06-24 03:39:42.000000000","message":"can we reword this as it\u0027s no longer true\n\n\"use local config options if available for audit middleware\"","commit_id":"7f18ee24dbd124d647cb644125539072ead9a795"}],"keystonemiddleware/audit.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2051a42d79b6ffc45f0b458b8925ef26025a1e8f","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        if messaging:"},{"line_number":383,"context_line":"            transport \u003d oslo_messaging.get_transport("},{"line_number":384,"context_line":"                cfg.CONF,"},{"line_number":385,"context_line":"                url\u003dself._conf.get(\u0027transport_url\u0027),"},{"line_number":386,"context_line":"                aliases\u003dtransport_aliases)"},{"line_number":387,"context_line":"            self._notifier \u003d oslo_messaging.Notifier("},{"line_number":388,"context_line":"                transport,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_067052db","line":385,"range":{"start_line":385,"start_character":36,"end_line":385,"end_character":49},"updated":"2016-06-24 03:39:42.000000000","message":"these options are under the \"audit_middleware_notifications\" option group, not the default one","commit_id":"7f18ee24dbd124d647cb644125539072ead9a795"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"12bf899f9d4ef7ed20f2ab0d4e8049e3aff8a068","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        if messaging:"},{"line_number":383,"context_line":"            transport \u003d oslo_messaging.get_transport("},{"line_number":384,"context_line":"                cfg.CONF,"},{"line_number":385,"context_line":"                url\u003dself._conf.get(\u0027transport_url\u0027),"},{"line_number":386,"context_line":"                aliases\u003dtransport_aliases)"},{"line_number":387,"context_line":"            self._notifier \u003d oslo_messaging.Notifier("},{"line_number":388,"context_line":"                transport,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_e64b8685","line":385,"range":{"start_line":385,"start_character":36,"end_line":385,"end_character":49},"in_reply_to":"3aaa91ec_067052db","updated":"2016-06-24 03:40:32.000000000","message":"hmm, it\u0027s already specified on line 369","commit_id":"7f18ee24dbd124d647cb644125539072ead9a795"}],"keystonemiddleware/tests/unit/test_audit_middleware.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_conf_middleware_log_and_default_as_messaging(self, t):"},{"line_number":300,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":301,"context_line":"                   \"notification_driver \u003d messaging\\n\""},{"line_number":302,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":303,"context_line":"                   \"driver \u003d log\\n\")"},{"line_number":304,"context_line":"        self._setup_oslo_global_conf(content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_567d19e6","line":301,"range":{"start_line":301,"start_character":42,"end_line":301,"end_character":51},"updated":"2016-05-30 23:42:49.000000000","message":"this is specifyng a list, right?","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_conf_middleware_log_and_default_as_messaging(self, t):"},{"line_number":300,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":301,"context_line":"                   \"notification_driver \u003d messaging\\n\""},{"line_number":302,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":303,"context_line":"                   \"driver \u003d log\\n\")"},{"line_number":304,"context_line":"        self._setup_oslo_global_conf(content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_fb14c34d","line":301,"range":{"start_line":301,"start_character":42,"end_line":301,"end_character":51},"in_reply_to":"9abb7d3a_567d19e6","updated":"2016-05-31 17:12:28.000000000","message":"yes it is a list. In the conf file, we can specific this option multiple times. But in this case, we only care about one option.","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":317,"context_line":"            self.assertTrue(driver.called)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def test_conf_middleware_log_and_oslo_msg_as_messaging(self, t):"},{"line_number":320,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":321,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":322,"context_line":"                   \"driver \u003d messaging\\n\""},{"line_number":323,"context_line":"                   \"[audit_middleware_notifications]\\n\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_367975f7","line":320,"range":{"start_line":320,"start_character":20,"end_line":320,"end_character":32},"updated":"2016-05-30 23:42:49.000000000","message":"don\u0027t we need to specify notification_driver as None ?\n\nif not, why do we need to add [default] at all?","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"            self.assertTrue(driver.called)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def test_conf_middleware_log_and_oslo_msg_as_messaging(self, t):"},{"line_number":320,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":321,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":322,"context_line":"                   \"driver \u003d messaging\\n\""},{"line_number":323,"context_line":"                   \"[audit_middleware_notifications]\\n\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9eb76539","line":320,"range":{"start_line":320,"start_character":20,"end_line":320,"end_character":32},"in_reply_to":"9abb7d3a_367975f7","updated":"2016-05-31 17:12:28.000000000","message":"It is None by default. But sure I can remove the redundant [default] section.","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            self.assertTrue(driver.called)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_conf_middleware_messaging_and_oslo_msg_as_log(self, t):"},{"line_number":341,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":342,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":343,"context_line":"                   \"driver \u003d log\\n\""},{"line_number":344,"context_line":"                   \"[audit_middleware_notifications]\\n\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_76613d39","line":341,"range":{"start_line":341,"start_character":19,"end_line":341,"end_character":32},"updated":"2016-05-30 23:42:49.000000000","message":"same","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            self.assertTrue(driver.called)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_conf_middleware_messaging_and_oslo_msg_as_log(self, t):"},{"line_number":341,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":342,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":343,"context_line":"                   \"driver \u003d log\\n\""},{"line_number":344,"context_line":"                   \"[audit_middleware_notifications]\\n\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_de83ad54","line":341,"range":{"start_line":341,"start_character":19,"end_line":341,"end_character":32},"in_reply_to":"9abb7d3a_76613d39","updated":"2016-05-31 17:12:28.000000000","message":"Done","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            self.assertTrue(driver.called)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_with_no_middleware_notification_conf(self, t):"},{"line_number":363,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":364,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":365,"context_line":"                   \"driver \u003d messaging\\n\")"},{"line_number":366,"context_line":"        self._setup_oslo_global_conf(content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_f6552d50","line":363,"range":{"start_line":363,"start_character":20,"end_line":363,"end_character":32},"updated":"2016-05-30 23:42:49.000000000","message":"same","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            self.assertTrue(driver.called)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_with_no_middleware_notification_conf(self, t):"},{"line_number":363,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":364,"context_line":"                   \"[oslo_messaging_notifications]\\n\""},{"line_number":365,"context_line":"                   \"driver \u003d messaging\\n\")"},{"line_number":366,"context_line":"        self._setup_oslo_global_conf(content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_deea8d0e","line":363,"range":{"start_line":363,"start_character":20,"end_line":363,"end_character":32},"in_reply_to":"9abb7d3a_f6552d50","updated":"2016-05-31 17:12:28.000000000","message":"Done","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def test_conf_middleware_messaging_and_transport_set(self, mock_transport):"},{"line_number":383,"context_line":"        transport_url \u003d \u0027rabbit://me:passwd@host:5672/virtual_host\u0027"},{"line_number":384,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":385,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":386,"context_line":"                   \"driver \u003d messaging\\n\""},{"line_number":387,"context_line":"                   \"transport_url \u003d %s\\n\" % (transport_url))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_d650e960","line":384,"range":{"start_line":384,"start_character":20,"end_line":384,"end_character":32},"updated":"2016-05-30 23:42:49.000000000","message":"why do we need to specify this at all?","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def test_conf_middleware_messaging_and_transport_set(self, mock_transport):"},{"line_number":383,"context_line":"        transport_url \u003d \u0027rabbit://me:passwd@host:5672/virtual_host\u0027"},{"line_number":384,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":385,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":386,"context_line":"                   \"driver \u003d messaging\\n\""},{"line_number":387,"context_line":"                   \"transport_url \u003d %s\\n\" % (transport_url))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_1ef1b501","line":384,"range":{"start_line":384,"start_character":20,"end_line":384,"end_character":32},"in_reply_to":"9abb7d3a_d650e960","updated":"2016-05-31 17:12:28.000000000","message":"Done","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"27ad9d393de5aa9e3e7f4b5f3bbc6c3d4b83221f","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                 default_config_files\u003d[conf_file_fixture.path])"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_conf_middleware_log_and_default_as_messaging(self, t):"},{"line_number":300,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":301,"context_line":"                   \"notification_driver \u003d messaging\\n\""},{"line_number":302,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":303,"context_line":"                   \"driver \u003d log\\n\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_cf1e596f","line":300,"updated":"2016-05-31 18:25:38.000000000","message":"The config file typically has [DEFAULT] in upper case, does that matter here?","commit_id":"f2ff9bbb955cc8dbef51058d30d60bfb1c5c480f"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7eb9be33b861586dac183991bd49bfc71422bc82","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                 default_config_files\u003d[conf_file_fixture.path])"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_conf_middleware_log_and_default_as_messaging(self, t):"},{"line_number":300,"context_line":"        content \u003d (\"[default]\\n\""},{"line_number":301,"context_line":"                   \"notification_driver \u003d messaging\\n\""},{"line_number":302,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":303,"context_line":"                   \"driver \u003d log\\n\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_56dbfd1a","line":300,"in_reply_to":"9abb7d3a_cf1e596f","updated":"2016-06-01 12:04:38.000000000","message":"Nice catch, indeed it\u0027s [DEFAULT] in the sample [1]. I am not sure it needs to be in uppercase, I will update it just in the case\n\n[1] https://github.com/openstack/keystone/blob/9f4943c/etc/keystone.conf.sample#L1","commit_id":"f2ff9bbb955cc8dbef51058d30d60bfb1c5c480f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fad3c00146f3f922bed660fab67c8c0e7f247d5","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                   \"notification_driver \u003d messaging\\n\""},{"line_number":302,"context_line":"                   \"[audit_middleware_notifications]\\n\""},{"line_number":303,"context_line":"                   \"driver \u003d log\\n\")"},{"line_number":304,"context_line":"        self._setup_oslo_global_conf(content)"},{"line_number":305,"context_line":"        middleware \u003d audit.AuditMiddleware("},{"line_number":306,"context_line":"            FakeApp(),"},{"line_number":307,"context_line":"            audit_map_file\u003dself.audit_map,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_09f4a158","line":304,"updated":"2016-06-08 20:46:49.000000000","message":"Instead of rewriting all these tests to use a different configuration approach that suits your needs, it seems it would be preferable to make these tests re-usable with two different approaches to configuration setup. The same tests should pass in both cases.","commit_id":"30557358facbc4d3d3ae03f6a23034df389fcd64"}],"releasenotes/notes/bug-1583702-a4469dc1556878b9.yaml":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1583702 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583702\u003e`_]"},{"line_number":5,"context_line":"    Some services such as Swift does not use Oslo (global) config. In that"},{"line_number":6,"context_line":"    case, make sure we can pass the options via local config instead. This is"},{"line_number":7,"context_line":"    consistent with how auth_token middleware handle global and local config"},{"line_number":8,"context_line":"    options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9abb7d3a_f6408da7","line":6,"range":{"start_line":6,"start_character":10,"end_line":6,"end_character":27},"updated":"2016-05-30 23:42:49.000000000","message":"remove this part, \"make sure we can \" is what the patch does, the release note should be clear about how to do it","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1583702 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583702\u003e`_]"},{"line_number":5,"context_line":"    Some services such as Swift does not use Oslo (global) config. In that"},{"line_number":6,"context_line":"    case, make sure we can pass the options via local config instead. This is"},{"line_number":7,"context_line":"    consistent with how auth_token middleware handle global and local config"},{"line_number":8,"context_line":"    options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9abb7d3a_1efc1571","line":6,"range":{"start_line":6,"start_character":10,"end_line":6,"end_character":27},"in_reply_to":"9abb7d3a_f6408da7","updated":"2016-05-31 17:12:28.000000000","message":"Done","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c3e51dee9c3fe48a62f3fc8a3d51a69645b0b33f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1583702 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583702\u003e`_]"},{"line_number":5,"context_line":"    Some services such as Swift does not use Oslo (global) config. In that"},{"line_number":6,"context_line":"    case, make sure we can pass the options via local config instead. This is"},{"line_number":7,"context_line":"    consistent with how auth_token middleware handle global and local config"},{"line_number":8,"context_line":"    options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9abb7d3a_7613fdb8","line":7,"range":{"start_line":6,"start_character":68,"end_line":7,"end_character":19},"updated":"2016-05-30 23:42:49.000000000","message":"what about replacing this by \", similar to\"","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"67f2cef1b20c55f385a2639317d962c3b04f52a2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1583702 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583702\u003e`_]"},{"line_number":5,"context_line":"    Some services such as Swift does not use Oslo (global) config. In that"},{"line_number":6,"context_line":"    case, make sure we can pass the options via local config instead. This is"},{"line_number":7,"context_line":"    consistent with how auth_token middleware handle global and local config"},{"line_number":8,"context_line":"    options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9abb7d3a_fe003168","line":7,"range":{"start_line":6,"start_character":68,"end_line":7,"end_character":19},"in_reply_to":"9abb7d3a_7613fdb8","updated":"2016-05-31 17:12:28.000000000","message":"Done","commit_id":"9fdee8393a4bdba5186c7bb656ef686345200a55"}]}
