)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a1291efa8d3222ce6a769ed1d0b47db517acf396","unresolved":false,"context_lines":[{"line_number":12,"context_line":"passes on this information so that ceilometer events finally"},{"line_number":13,"context_line":"pick this information up as an Event Trait"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially Closes-Bug: 1461767"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ic997fa876e463bb003f8f9d8e3395d94421989ca"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_39486e87","line":15,"updated":"2015-07-06 05:47:19.000000000","message":"Change this to:\n\n  Partial-Bug: 1461767","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"}],"keystonemiddleware/audit.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d03780c2ef9ef712e88ab46138314f69c1ad3214","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        action \u003d self._cadf_audit.get_action(req)"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        initiator \u003d ClientResource("},{"line_number":361,"context_line":"            typeURI\u003dtaxonomy.ACCOUNT_USER,"},{"line_number":362,"context_line":"            id\u003didentifier.norm_ns(str(req.environ[\u0027HTTP_X_USER_ID\u0027])),"},{"line_number":363,"context_line":"            name\u003dreq.environ[\u0027HTTP_X_USER_NAME\u0027],"},{"line_number":364,"context_line":"            host\u003dhost.Host(address\u003dreq.client_addr, agent\u003dreq.user_agent),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_43dd226f","line":361,"updated":"2015-07-06 17:06:48.000000000","message":"also, it seems like the user is saved here, in the initiator","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d03780c2ef9ef712e88ab46138314f69c1ad3214","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            host\u003dhost.Host(address\u003dreq.client_addr, agent\u003dreq.user_agent),"},{"line_number":365,"context_line":"            credential\u003dKeystoneCredential("},{"line_number":366,"context_line":"                token\u003dreq.environ[\u0027HTTP_X_AUTH_TOKEN\u0027],"},{"line_number":367,"context_line":"                identity_status\u003dreq.environ[\u0027HTTP_X_IDENTITY_STATUS\u0027]),"},{"line_number":368,"context_line":"            project_id\u003didentifier.norm_ns(req.environ[\u0027HTTP_X_PROJECT_ID\u0027]))"},{"line_number":369,"context_line":"        target \u003d self._cadf_audit.get_target_resource(req)"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_a3f74ef4","line":367,"updated":"2015-07-06 17:06:48.000000000","message":"also, it seems like the project is saved here, in the initiator","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"974c2482a331231cf4014220559664b3fccfb05b","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        req.environ[\u0027cadf_event\u0027] \u003d event"},{"line_number":383,"context_line":"        return event"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    def _add_event_owner(self, event):"},{"line_number":386,"context_line":"        event[\u0027user_id\u0027] \u003d req.environ[\u0027HTTP_X_USER_ID\u0027]"},{"line_number":387,"context_line":"        event[\u0027project_id\u0027] \u003d req.environ[\u0027HTTP_X_PROJECT_ID\u0027]"},{"line_number":388,"context_line":"        return event.to_dict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_599452e7","line":385,"updated":"2015-07-06 05:42:43.000000000","message":"maybe something like:\n\n  def _add_details_to_event(self, request, event):\n      event[\u0027user_id\u0027] \u003d req.environ.get(\u0027HTTP_X_USER_ID\u0027)\n      event[\u0027project_id\u0027] \u003d req.environ.get(\u0027HTTP_X_PROJECT_ID\u0027)","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"974c2482a331231cf4014220559664b3fccfb05b","unresolved":false,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    def _add_event_owner(self, event):"},{"line_number":386,"context_line":"        event[\u0027user_id\u0027] \u003d req.environ[\u0027HTTP_X_USER_ID\u0027]"},{"line_number":387,"context_line":"        event[\u0027project_id\u0027] \u003d req.environ[\u0027HTTP_X_PROJECT_ID\u0027]"},{"line_number":388,"context_line":"        return event.to_dict()"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_39a38e51","line":387,"updated":"2015-07-06 05:42:43.000000000","message":"suggest using .get() since it\u0027ll set event[\u0027x\u0027] to None gracefully if the env. var does not exist","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"974c2482a331231cf4014220559664b3fccfb05b","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @_log_and_ignore_error"},{"line_number":392,"context_line":"    def _process_request(self, request):"},{"line_number":393,"context_line":"        event \u003d self._create_event(request)"},{"line_number":394,"context_line":"        self._emit_audit(context.get_admin_context().to_dict(),"},{"line_number":395,"context_line":"                         \u0027audit.http.request\u0027, self._add_event_owner(event))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_b9e1de9c","line":392,"updated":"2015-07-06 05:42:43.000000000","message":"maybe something like:\n\n  event \u003d self._create_event(request)\n  self._add_details_to_event(request, event)\n  self._emit_audit(context.get_admin_context().to_dict(),\n                             \u0027audit.http.request\u0027, event.as_dict())","commit_id":"64a163965410f99a672a83faa51e68b6f12176ea"}]}
