)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1252b2cac9e3bf0907421e8b832a3593196c733b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The current initiator object for CADF notifications does not include"},{"line_number":10,"context_line":"the username of the user who initiated the action, which leads to"},{"line_number":11,"context_line":"issues when using an LDAP backend and not having a direct way to"},{"line_number":12,"context_line":"map a username to a user id."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This change makes it so that the initiator object for CADF"},{"line_number":15,"context_line":"notifications always contains the username for a user as well"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_48cf6d53","line":12,"range":{"start_line":11,"start_character":34,"end_line":12,"end_character":28},"updated":"2020-01-08 19:13:21.000000000","message":"You should be able to query keystone (`openstack user show/list`) and map the generated ID to the LDAP username (but I agree this is a good change anyway).","commit_id":"43a2ebb58f19a635fb5875c7fbd7d587c47b8678"}],"keystone/notifications.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1252b2cac9e3bf0907421e8b832a3593196c733b","unresolved":false,"context_lines":[{"line_number":825,"context_line":"    return False"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"def _add_user_name_to_initiator(initiator):"},{"line_number":829,"context_line":"    \"\"\"Add the username to the initiator if missing.\"\"\""},{"line_number":830,"context_line":"    if hasattr(initiator, \u0027username\u0027):"},{"line_number":831,"context_line":"        return initiator"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_486c4d6a","line":828,"range":{"start_line":828,"start_character":9,"end_line":828,"end_character":18},"updated":"2020-01-08 19:13:21.000000000","message":"unimportant nitpick: username","commit_id":"43a2ebb58f19a635fb5875c7fbd7d587c47b8678"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"1360d9ec4e252d183427cb642139a3f95e6703ad","unresolved":false,"context_lines":[{"line_number":825,"context_line":"    return False"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"def _add_user_name_to_initiator(initiator):"},{"line_number":829,"context_line":"    \"\"\"Add the username to the initiator if missing.\"\"\""},{"line_number":830,"context_line":"    if hasattr(initiator, \u0027username\u0027):"},{"line_number":831,"context_line":"        return initiator"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_8e71ea79","line":828,"range":{"start_line":828,"start_character":9,"end_line":828,"end_character":18},"in_reply_to":"3fa7e38b_486c4d6a","updated":"2020-01-08 21:56:58.000000000","message":"Done","commit_id":"43a2ebb58f19a635fb5875c7fbd7d587c47b8678"}],"keystone/tests/unit/common/test_notifications.py":[{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"33750c00de8f3468988e1f19f1ec9c212032ba81","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        An example event, as a dictionary is seen below:"},{"line_number":1153,"context_line":"            {"},{"line_number":1154,"context_line":"                \u0027typeURI\u0027: \u0027http://schemas.dmtf.org/cloud/audit/1.0/event\u0027,"},{"line_number":1155,"context_line":"                \u0027initiator\u0027: {"},{"line_number":1156,"context_line":"                    \u0027typeURI\u0027: \u0027service/security/account/user\u0027,"},{"line_number":1157,"context_line":"                    \u0027host\u0027: {\u0027address\u0027: \u0027localhost\u0027},"},{"line_number":1158,"context_line":"                    \u0027id\u0027: \u0027openstack:0a90d95d-582c-4efb-9cbc-e2ca7ca9c341\u0027,"},{"line_number":1159,"context_line":"                    \u0027name\u0027: u\u0027bccc2d9bfc2a46fd9e33bcf82f0b5c21\u0027"},{"line_number":1160,"context_line":"                },"},{"line_number":1161,"context_line":"                \u0027target\u0027: {"},{"line_number":1162,"context_line":"                    \u0027typeURI\u0027: \u0027service/security/account/user\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_1aa210ae","line":1159,"range":{"start_line":1155,"start_character":16,"end_line":1159,"end_character":63},"updated":"2020-01-09 06:59:14.000000000","message":"Shouldn\u0027t we update the following example with username attribute?","commit_id":"4486d7b0108dd63e19000168d9bffe680508be5c"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"7aa11fd5b661693f8e8303dd853152b7c6dd9fb4","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        An example event, as a dictionary is seen below:"},{"line_number":1153,"context_line":"            {"},{"line_number":1154,"context_line":"                \u0027typeURI\u0027: \u0027http://schemas.dmtf.org/cloud/audit/1.0/event\u0027,"},{"line_number":1155,"context_line":"                \u0027initiator\u0027: {"},{"line_number":1156,"context_line":"                    \u0027typeURI\u0027: \u0027service/security/account/user\u0027,"},{"line_number":1157,"context_line":"                    \u0027host\u0027: {\u0027address\u0027: \u0027localhost\u0027},"},{"line_number":1158,"context_line":"                    \u0027id\u0027: \u0027openstack:0a90d95d-582c-4efb-9cbc-e2ca7ca9c341\u0027,"},{"line_number":1159,"context_line":"                    \u0027name\u0027: u\u0027bccc2d9bfc2a46fd9e33bcf82f0b5c21\u0027"},{"line_number":1160,"context_line":"                },"},{"line_number":1161,"context_line":"                \u0027target\u0027: {"},{"line_number":1162,"context_line":"                    \u0027typeURI\u0027: \u0027service/security/account/user\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_55c93257","line":1159,"range":{"start_line":1155,"start_character":16,"end_line":1159,"end_character":63},"in_reply_to":"3fa7e38b_1aa210ae","updated":"2020-01-09 15:56:12.000000000","message":"Yup, done","commit_id":"4486d7b0108dd63e19000168d9bffe680508be5c"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"33750c00de8f3468988e1f19f1ec9c212032ba81","unresolved":false,"context_lines":[{"line_number":1202,"context_line":"        self.assertEqual(self.user_id, initiator.id)"},{"line_number":1203,"context_line":"        self.assertEqual(self.user_id, initiator.user_id)"},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"    def test_initiator_always_contains_user_name(self):"},{"line_number":1206,"context_line":"        # Clear notifications"},{"line_number":1207,"context_line":"        while self._notifications:"},{"line_number":1208,"context_line":"            self._notifications.pop()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_ba53bcdd","line":1205,"range":{"start_line":1205,"start_character":38,"end_line":1205,"end_character":48},"updated":"2020-01-09 06:59:14.000000000","message":"\u0027username\u0027 just for the consistency.","commit_id":"4486d7b0108dd63e19000168d9bffe680508be5c"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"7aa11fd5b661693f8e8303dd853152b7c6dd9fb4","unresolved":false,"context_lines":[{"line_number":1202,"context_line":"        self.assertEqual(self.user_id, initiator.id)"},{"line_number":1203,"context_line":"        self.assertEqual(self.user_id, initiator.user_id)"},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"    def test_initiator_always_contains_user_name(self):"},{"line_number":1206,"context_line":"        # Clear notifications"},{"line_number":1207,"context_line":"        while self._notifications:"},{"line_number":1208,"context_line":"            self._notifications.pop()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_35ba76b9","line":1205,"range":{"start_line":1205,"start_character":38,"end_line":1205,"end_character":48},"in_reply_to":"3fa7e38b_ba53bcdd","updated":"2020-01-09 15:56:12.000000000","message":"Done","commit_id":"4486d7b0108dd63e19000168d9bffe680508be5c"}]}
