)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"25c41b0dc31860d83d95f8c3b7d0a3f6c93ae2ea","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify the operator id by context user_id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If operator id is always the owner of volume, snapshot and bakcup,"},{"line_number":10,"context_line":"which will confuse the customer"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I851abab9e10e07861c3a708e5bb9c2e02aa32be9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_299807be","line":9,"updated":"2018-08-24 04:40:34.000000000","message":"NIT: fix typo \u0027backup\u0027","commit_id":"0dae4fdd0f664a7678dc4c4c2f68512f061a23e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5fc3dbed327b61a7dfd0cb94f624ccb9532e5647","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     dengxiafubi \u003chongwei.xu@easystack.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-10-18 10:24:58 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extract user_id from context as the operator id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Owner id is who created the resource(such as volume, snapshot,"},{"line_number":10,"context_line":"bakcup), and operator id is who modifies the resource later. Now"},{"line_number":11,"context_line":"the notification shows the operator id is always the owner of"},{"line_number":12,"context_line":"the resource when deleting it, which will confuse the customer."},{"line_number":13,"context_line":"Extract user_id from context as the operator id can solve this"},{"line_number":14,"context_line":"problem."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"A simple example as follows:"},{"line_number":17,"context_line":"The owner of a volume is the user of test1, and the user of test2"},{"line_number":18,"context_line":"deletes the volume later. If we does not commit this patch, the"},{"line_number":19,"context_line":"notification will show the volume is deleted by the user of test1,"},{"line_number":20,"context_line":"and this is wrong."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I851abab9e10e07861c3a708e5bb9c2e02aa32be9"},{"line_number":23,"context_line":"Closes-Bug: #1788147"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3f79a3b5_fe0803d9","line":20,"range":{"start_line":7,"start_character":0,"end_line":20,"end_character":18},"updated":"2018-10-19 01:02:52.000000000","message":"I suggest reframing this as:\n\n \n\n Reflect user performing operations in Telemetry notifications\n\n \n\n A project/tenant in OpenStack may have multiple users. Cinder\n reports a \"usage_info\" bundle to Telemetry consumers (often Ceilometer)\n with a \"user_id\" field. This is the ID of the user within the project\n that first created the resource. \n\n \n\n Over the lifetime of the resource, other users within the project\n may change the resource - ex: extend a volume, take a snapshot,\n delete the volume, etc. The request context has the ID of the user\n initiating the action; this ID needs to be included in the Telemetry\n notifications raised by Cinder.","commit_id":"b06d869428ddbac47de5a0e194178bb772f10afe"}],"cinder/volume/utils.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"25c41b0dc31860d83d95f8c3b7d0a3f6c93ae2ea","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    usage_info \u003d _usage_from_volume(context, volume, **extra_usage_info)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    usage_info[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    rpc.get_notifier(\"volume\", host).info(context, \u0027volume.%s\u0027 % event_suffix,"},{"line_number":146,"context_line":"                                          usage_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_49954386","line":143,"updated":"2018-08-24 04:40:34.000000000","message":"use usage_info.get(\u0027user_id\u0027) to avoid NULL condition error","commit_id":"0dae4fdd0f664a7678dc4c4c2f68512f061a23e3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"569d2110e7b5782d321e92bb49b3cd88638ccc0e","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    usage_info \u003d _usage_from_volume(context, volume, **extra_usage_info)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    usage_info[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    rpc.get_notifier(\"volume\", host).info(context, \u0027volume.%s\u0027 % event_suffix,"},{"line_number":146,"context_line":"                                          usage_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0f718b44","line":143,"in_reply_to":"3f79a3b5_49954386","updated":"2018-08-24 06:54:43.000000000","message":"I mentioned the wrong side of assignment mistakely. Thanks for the change.","commit_id":"0dae4fdd0f664a7678dc4c4c2f68512f061a23e3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"25c41b0dc31860d83d95f8c3b7d0a3f6c93ae2ea","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    usage_info \u003d _usage_from_backup(backup, **extra_usage_info)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    usage_info[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    rpc.get_notifier(\"backup\", host).info(context, \u0027backup.%s\u0027 % event_suffix,"},{"line_number":164,"context_line":"                                          usage_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_a9e9771a","line":161,"updated":"2018-08-24 04:40:34.000000000","message":"ditto","commit_id":"0dae4fdd0f664a7678dc4c4c2f68512f061a23e3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"25c41b0dc31860d83d95f8c3b7d0a3f6c93ae2ea","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    usage_info \u003d _usage_from_snapshot(snapshot, context, **extra_usage_info)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    usage_info[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    rpc.get_notifier(\u0027snapshot\u0027, host).info(context,"},{"line_number":206,"context_line":"                                            \u0027snapshot.%s\u0027 % event_suffix,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_69efdf1c","line":203,"updated":"2018-08-24 04:40:34.000000000","message":"ditto","commit_id":"0dae4fdd0f664a7678dc4c4c2f68512f061a23e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5fc3dbed327b61a7dfd0cb94f624ccb9532e5647","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    usage_info \u003d _usage_from_volume(context, volume, **extra_usage_info)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    usage_info[\u0027user_id\u0027] \u003d getattr(context, \u0027user_id\u0027, None)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    rpc.get_notifier(\"volume\", host).info(context, \u0027volume.%s\u0027 % event_suffix,"},{"line_number":146,"context_line":"                                          usage_info)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_9e122ffd","line":143,"range":{"start_line":143,"start_character":4,"end_line":143,"end_character":61},"updated":"2018-10-19 01:02:52.000000000","message":"Cinder\u0027s already sending the request context to the RPC (See line #145 below), so the enhancement you want to make can be made on ceilometer (or whichever Telemetry backend you have)?\n\nFor example: Here\u0027s how neutron\u0027s parsing the request context to grab the \"user_id\": https://github.com/openstack/ceilometer/blob/be22389/ceilometer/pipeline/data/event_definitions.yaml#L308","commit_id":"b06d869428ddbac47de5a0e194178bb772f10afe"}]}
