)]}'
{"ceilometer/identity/notifications.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba987a1912f3f832b167c10b7f59d40bcb8380e6","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # NOTE(stevemar): action is created.role_assignment"},{"line_number":148,"context_line":"        action \u003d message[\u0027payload\u0027][\u0027action\u0027]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # NOTE(stevemar): meter_name is identity.created.role_assignment"},{"line_number":151,"context_line":"        meter_name \u003d \u0027%s.%s\u0027 % (SERVICE, action)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        yield sample.Sample.from_notification("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_fb47fca0","line":150,"updated":"2014-09-12 05:44:29.000000000","message":"So here\u0027s the lay of the land:\n\naction has to start with the substring \u0027create\u0027 (created.role_assignment)\n\nKeystone (for CADF events) automatically emits the event type value to be: \u0027identity\u0027 + action\n\nSince we generally just take the meter name to be the event type value, this causes some issues, since the current convention is: \n\n  identity.\u003ctarget\u003e.\u003caction\u003e\n\nand we\u0027re clearly using:\n\n  identity.\u003caction\u003e.\u003ctarget\u003e\n\nWe could fix this issue in either Keystone or in Ceilometer\n\n1) In Keystone, when we emit a CADF notification, we would have to specifically look out for role_assignment events, then knowingly mangle the event_type to be:\n\n  \u0027identity.role_assignment.created\u0027\n\ninstead of\n\n  \u0027identity.created.role_assignment\u0027\n\nOR\n\n2) In Ceilometer I could just split the event_type value, and call the meter the correct name.\n\nNote the action would always be `created.role_assignment`.\n\nMy vote is for #2. Since I already have the patch in flight :)","commit_id":"554d336847b25cf9bd3d09008049f30c2f0ec7d6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"00248cd970d58c7c77b1f146b9e7786ecdc6d56c","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # NOTE(stevemar): action is created.role_assignment"},{"line_number":148,"context_line":"        action \u003d message[\u0027payload\u0027][\u0027action\u0027]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # NOTE(stevemar): meter_name is identity.created.role_assignment"},{"line_number":151,"context_line":"        meter_name \u003d \u0027%s.%s\u0027 % (SERVICE, action)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        yield sample.Sample.from_notification("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ae8d4cd5","line":150,"updated":"2014-09-11 13:13:14.000000000","message":"why the change to have action before target? ie. identity.created.role_assigment vs identity.role_assignment.created?","commit_id":"554d336847b25cf9bd3d09008049f30c2f0ec7d6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"38027b2e4ee19a6384587d7832fe218970499925","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # NOTE(stevemar): action is created.role_assignment"},{"line_number":148,"context_line":"        action \u003d message[\u0027payload\u0027][\u0027action\u0027]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # NOTE(stevemar): meter_name is identity.created.role_assignment"},{"line_number":151,"context_line":"        meter_name \u003d \u0027%s.%s\u0027 % (SERVICE, action)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        yield sample.Sample.from_notification("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_f76641ba","line":150,"in_reply_to":"fa98f980_8af6ad8d","updated":"2014-09-11 17:03:47.000000000","message":"should be change the other metrics to then? before juno ends... only concern is that there should be a level of consistency in naming.","commit_id":"554d336847b25cf9bd3d09008049f30c2f0ec7d6"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ae95b426aded7510ce0b99836be9c0a47f1f687d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # NOTE(stevemar): action is created.role_assignment"},{"line_number":148,"context_line":"        action \u003d message[\u0027payload\u0027][\u0027action\u0027]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # NOTE(stevemar): meter_name is identity.created.role_assignment"},{"line_number":151,"context_line":"        meter_name \u003d \u0027%s.%s\u0027 % (SERVICE, action)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        yield sample.Sample.from_notification("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_8af6ad8d","line":150,"in_reply_to":"fa98f980_ae8d4cd5","updated":"2014-09-11 16:14:09.000000000","message":"we wanted it to follow the existing cadf structure for authN events.\n\n  identity.authenticate\n\nwe initially had it as:\n\n  identity.create\n\nwhich spawned into:\n\n  identity.created.role_assignment\n\nwish i had a better answer, but that\u0027s what happened.","commit_id":"554d336847b25cf9bd3d09008049f30c2f0ec7d6"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"712b5b572e8c781a2b217e9dfbcf28e82762d9a8","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # NOTE(stevemar): action is created.role_assignment"},{"line_number":148,"context_line":"        action \u003d message[\u0027payload\u0027][\u0027action\u0027]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # NOTE(stevemar): meter_name is identity.created.role_assignment"},{"line_number":151,"context_line":"        meter_name \u003d \u0027%s.%s\u0027 % (SERVICE, action)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        yield sample.Sample.from_notification("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_5a6c94d0","line":150,"in_reply_to":"fa98f980_f76641ba","updated":"2014-09-11 17:26:26.000000000","message":"might make more sense to just rename this one to identity.role_assignment.created, and keep authenticate around as a special case","commit_id":"554d336847b25cf9bd3d09008049f30c2f0ec7d6"}],"ceilometer/tests/identity/test_notifications.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"a2894267fe60d515c02a17609395462e0061c9e6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    there may be a \u0027domain\u0027 key or a \u0027project\u0027 key, never both."},{"line_number":98,"context_line":"    The same holds for the \u0027user\u0027 key and \u0027group\u0027 key."},{"line_number":99,"context_line":"    There must always be a \u0027role\u0027."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    base \u003d cadf_format_notification()"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_a1ddf3e1","line":100,"updated":"2014-10-09 07:49:49.000000000","message":"Empty line at the end of the multidoc strings is not need.","commit_id":"5d7443c1ae95c8b099f0f0a347dd625365958819"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ed23f6dafb07c05b8fbf927534885a9991af59ba","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    there may be a \u0027domain\u0027 key or a \u0027project\u0027 key, never both."},{"line_number":98,"context_line":"    The same holds for the \u0027user\u0027 key and \u0027group\u0027 key."},{"line_number":99,"context_line":"    There must always be a \u0027role\u0027."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    base \u003d cadf_format_notification()"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_1afffaab","line":100,"in_reply_to":"baa201ad_a1ddf3e1","updated":"2014-10-09 15:24:06.000000000","message":"Done","commit_id":"5d7443c1ae95c8b099f0f0a347dd625365958819"}]}
