)]}'
{"etc/keystone.conf.sample":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6bc85a153cb6b41aabaa4bec979079e072f3ddd0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"# Logging driver example (not enabled by default)"},{"line_number":110,"context_line":"# notification_driver \u003d log"},{"line_number":111,"context_line":"# RPC driver example (not enabled by default)"},{"line_number":112,"context_line":"# notification_driver \u003d messaging  # messagingv2"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"# Default publisher_id for outgoing notifications; included in the payload."},{"line_number":115,"context_line":"# default_publisher_id \u003d"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAUX%2F%2FvGY%3D","line":112,"updated":"2014-02-11 06:01:48.000000000","message":"what is messagingv2? i assume that should be removed?","commit_id":"aeacf2853ed4d71ebc8800686816b6dc1f3efbf3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"# Do nothing driver (the default)"},{"line_number":122,"context_line":"# notification_driver \u003d noop"},{"line_number":123,"context_line":"# Logging driver example (not enabled by default)"},{"line_number":124,"context_line":"# notification_driver \u003d log"},{"line_number":125,"context_line":"# RPC driver example (not enabled by default)"},{"line_number":126,"context_line":"# notification_driver \u003d messaging  # messagingv2"},{"line_number":127,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAUX%2F%2FIlk%3D","line":124,"updated":"2014-02-16 14:59:34.000000000","message":"we need to find a way to make this backwards-compatible, so that if someone was using keystone.openstack.common.notifier.log_notifier then it will continue to work as expected for the deprecation period.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"# Logging driver example (not enabled by default)"},{"line_number":124,"context_line":"# notification_driver \u003d log"},{"line_number":125,"context_line":"# RPC driver example (not enabled by default)"},{"line_number":126,"context_line":"# notification_driver \u003d messaging  # messagingv2"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# Default publisher_id for outgoing notifications; included in the payload."},{"line_number":129,"context_line":"# default_publisher_id \u003d"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAUX%2F%2FIn4%3D","line":126,"updated":"2014-02-16 14:59:34.000000000","message":"this one has an odd format -- what\u0027s with #messagingv2?","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":132,"context_line":"# Multiple values can be specified by separating with commas."},{"line_number":133,"context_line":"# notification_topics \u003d notifications"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# A URL representing the messaging driver to use and its \u0027 full configuration."},{"line_number":136,"context_line":"# If not set, we fall back to the \u0027 rpc_backend option and driver specific"},{"line_number":137,"context_line":"# configuration.\u0027),"},{"line_number":138,"context_line":"# transport_url \u003d"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAUX%2F%2FIn0%3D","line":135,"updated":"2014-02-16 14:59:34.000000000","message":"remove \u0027","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":133,"context_line":"# notification_topics \u003d notifications"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# A URL representing the messaging driver to use and its \u0027 full configuration."},{"line_number":136,"context_line":"# If not set, we fall back to the \u0027 rpc_backend option and driver specific"},{"line_number":137,"context_line":"# configuration.\u0027),"},{"line_number":138,"context_line":"# transport_url \u003d"},{"line_number":139,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAUX%2F%2FInw%3D","line":136,"updated":"2014-02-16 14:59:34.000000000","message":"remove \u0027","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# A URL representing the messaging driver to use and its \u0027 full configuration."},{"line_number":136,"context_line":"# If not set, we fall back to the \u0027 rpc_backend option and driver specific"},{"line_number":137,"context_line":"# configuration.\u0027),"},{"line_number":138,"context_line":"# transport_url \u003d"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# The default exchange under which topics are scoped. May"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAUX%2F%2FIns%3D","line":137,"updated":"2014-02-16 14:59:34.000000000","message":"remove \u0027),","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"}],"keystone/notifications.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6bc85a153cb6b41aabaa4bec979079e072f3ddd0","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                cb(service, resource_type, operation, payload)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"_notifier \u003d None"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"def _get_notifier():"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2FvGE%3D","line":142,"updated":"2014-02-11 06:01:48.000000000","message":"module level variables should be defined at the top of the module","commit_id":"aeacf2853ed4d71ebc8800686816b6dc1f3efbf3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6bc85a153cb6b41aabaa4bec979079e072f3ddd0","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    notify_event_callbacks(service, resource_type, operation, payload)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    try:"},{"line_number":181,"context_line":"        notifier \u003d _get_notifier()"},{"line_number":182,"context_line":"        notifier.info(context, event_type, payload)"},{"line_number":183,"context_line":"    except Exception:"},{"line_number":184,"context_line":"        LOG.exception("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2FvFg%3D","line":181,"updated":"2014-02-11 06:01:48.000000000","message":"L181 should be moved outside of the try block","commit_id":"aeacf2853ed4d71ebc8800686816b6dc1f3efbf3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"notifier_opts \u003d ["},{"line_number":26,"context_line":"    cfg.StrOpt(\u0027default_publisher_id\u0027,"},{"line_number":27,"context_line":"               default\u003dNone,"},{"line_number":28,"context_line":"               help\u003d\u0027Default publisher_id for outgoing notifications\u0027),"},{"line_number":29,"context_line":"]"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FInk%3D","line":27,"updated":"2014-02-16 14:59:34.000000000","message":"this is the default so remove this line.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"notifier_opts \u003d ["},{"line_number":26,"context_line":"    cfg.StrOpt(\u0027default_publisher_id\u0027,"},{"line_number":27,"context_line":"               default\u003dNone,"},{"line_number":28,"context_line":"               help\u003d\u0027Default publisher_id for outgoing notifications\u0027),"},{"line_number":29,"context_line":"]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FInU%3D","line":28,"updated":"2014-02-16 14:59:34.000000000","message":"the help text here doesn\u0027t match the sample config. \"; included in the payload.\" \n\nAlso, should document that the hostname will be used by default.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                                \u0027notification\u0027), msg_data)"},{"line_number":214,"context_line":"        else:"},{"line_number":215,"context_line":"            LOG.info(_(\u0027Skip sending notification %(res_id)s %(event_type)s as\u0027"},{"line_number":216,"context_line":"                       \u0027 notifier configuration previously failed.\u0027), msg_data)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FImk%3D","line":216,"updated":"2014-02-16 14:59:34.000000000","message":"This is never going to be corrected so might as well only log it once.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"}],"keystone/tests/test_notifications.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        \"\"\"Test the private method _send_notification to ensure event_type,"},{"line_number":131,"context_line":"           payload, and context are built and passed properly."},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        notifications._reset_notifier()"},{"line_number":134,"context_line":"        CONF.rpc_backend \u003d \u0027fake\u0027"},{"line_number":135,"context_line":"        CONF.notification_driver \u003d [\u0027fake\u0027]"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FImg%3D","line":133,"updated":"2014-02-16 14:59:34.000000000","message":"a test shouldn\u0027t have to clean up after what other tests are doing. Those tests should clean up after themselves. This could be done in tests.TestCase cleanUp.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"19a01b28d6e42ab3c400bcea7f96ccb9495450f1","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        notifications._reset_notifier()"},{"line_number":134,"context_line":"        CONF.rpc_backend \u003d \u0027fake\u0027"},{"line_number":135,"context_line":"        CONF.notification_driver \u003d [\u0027fake\u0027]"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        resource \u003d uuid.uuid4().hex"},{"line_number":138,"context_line":"        resource_type \u003d EXP_RESOURCE_TYPE"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FImU%3D","line":135,"updated":"2014-02-16 14:59:34.000000000","message":"use self.opt() for these.","commit_id":"ec06ed11e77a8bc9402a4313a1485e6d03204e3a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"625ec2d7bc0f33817622918c5708df2cf5fd0937","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        fixture \u003d self.useFixture(moxstubout.MoxStubout())"},{"line_number":127,"context_line":"        self.stubs \u003d fixture.stubs"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        # these should use self.opt(), but they haven\u0027t been registered yet"},{"line_number":130,"context_line":"        CONF.rpc_backend \u003d \u0027fake\u0027"},{"line_number":131,"context_line":"        CONF.notification_driver \u003d [\u0027fake\u0027]"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B9Ko%3D","line":129,"updated":"2014-02-18 00:58:55.000000000","message":"++ for adding this","commit_id":"de812c5e5def063011ffb2fc7b555c1d3521e8e6"}]}
