)]}'
{"api-ref/source/os-instance-actions.inc":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c6dc986e9c15a487d7cbe9e6ce058670c77583de","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  - instanceAction: instanceAction"},{"line_number":101,"context_line":"  - action: action"},{"line_number":102,"context_line":"  - instance_uuid: instance_id_body"},{"line_number":103,"context_line":"  - message: message"},{"line_number":104,"context_line":"  - project_id: project_id_server_action"},{"line_number":105,"context_line":"  - request_id: request_id_body"},{"line_number":106,"context_line":"  - start_time: start_time"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"3fa7e38b_a2040015","line":103,"updated":"2019-11-21 22:15:36.000000000","message":"OK, just noting that I saw there\u0027s this field for including an error message if an action fails:\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dresize-server-resize-action-detail,show-server-action-details-detail#id171\n\nbut it looks like the way this works is there\u0027s an instance action and that entity contains one or more instance action events, each of which can also have error messages potentially.\n\nWhat type of thing normally goes in this field? I assume that it\u0027s not appropriate for showing the errors we are trying to show in this patch series.","commit_id":"9101d7b90225c14b551e0b09e4afdc2bfd8b82ed"}],"nova/api/openstack/compute/instance_actions.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        # for all users."},{"line_number":181,"context_line":"        show_hostid \u003d api_version_request.is_supported(req, \u00272.62\u0027)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        show_details \u003d False"},{"line_number":184,"context_line":"        if show_events:"},{"line_number":185,"context_line":"            # NOTE(brinzhang): Event details are shown since microversion"},{"line_number":186,"context_line":"            # 2.83."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_ee77e139","line":183,"updated":"2020-03-24 17:34:29.000000000","message":"nit: this doesn\u0027t need to be in this scope and could be moved below...","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        # for all users."},{"line_number":181,"context_line":"        show_hostid \u003d api_version_request.is_supported(req, \u00272.62\u0027)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        show_details \u003d False"},{"line_number":184,"context_line":"        if show_events:"},{"line_number":185,"context_line":"            # NOTE(brinzhang): Event details are shown since microversion"},{"line_number":186,"context_line":"            # 2.83."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_74527f69","line":183,"in_reply_to":"df33271e_ee77e139","updated":"2020-03-25 00:52:23.000000000","message":"Remove this init.","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            authorized_show_details \u003d context.can("},{"line_number":189,"context_line":"                ia_policies.BASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":190,"context_line":"                target\u003d{\u0027project_id\u0027: instance.project_id}, fatal\u003dFalse)"},{"line_number":191,"context_line":"            if support_v283 and authorized_show_details:"},{"line_number":192,"context_line":"                show_details \u003d True"},{"line_number":193,"context_line":"            events_raw \u003d self.action_api.action_events_get(context, instance,"},{"line_number":194,"context_line":"                                                           action_id)"},{"line_number":195,"context_line":"            # NOTE(takashin): The project IDs of instance action events"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_0e94c536","line":192,"range":{"start_line":191,"start_character":12,"end_line":192,"end_character":35},"updated":"2020-03-24 17:34:29.000000000","message":"...like\n\n  show_details \u003d support_v283 and authorized_show_details","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            authorized_show_details \u003d context.can("},{"line_number":189,"context_line":"                ia_policies.BASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":190,"context_line":"                target\u003d{\u0027project_id\u0027: instance.project_id}, fatal\u003dFalse)"},{"line_number":191,"context_line":"            if support_v283 and authorized_show_details:"},{"line_number":192,"context_line":"                show_details \u003d True"},{"line_number":193,"context_line":"            events_raw \u003d self.action_api.action_events_get(context, instance,"},{"line_number":194,"context_line":"                                                           action_id)"},{"line_number":195,"context_line":"            # NOTE(takashin): The project IDs of instance action events"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_d44f0bbb","line":192,"range":{"start_line":191,"start_character":12,"end_line":192,"end_character":35},"in_reply_to":"df33271e_0e94c536","updated":"2020-03-25 00:52:23.000000000","message":"Done","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"419242caf256b0340cb3cb84ec1f348b75d6f531","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            # NOTE(brinzhang): Event details are shown since microversion"},{"line_number":185,"context_line":"            # 2.83."},{"line_number":186,"context_line":"            support_v283 \u003d api_version_request.is_supported(req, \u00272.83\u0027)"},{"line_number":187,"context_line":"            authorized_show_details \u003d context.can("},{"line_number":188,"context_line":"                ia_policies.BASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":189,"context_line":"                target\u003d{\u0027project_id\u0027: instance.project_id}, fatal\u003dFalse)"},{"line_number":190,"context_line":"            show_details \u003d support_v283 and authorized_show_details"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            events_raw \u003d self.action_api.action_events_get(context, instance,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_17d2155d","line":189,"range":{"start_line":187,"start_character":0,"end_line":189,"end_character":72},"updated":"2020-03-25 01:34:22.000000000","message":"or you can put this under if support_v283 condition so that we do not go for policy enforcement if request if \u003c2.83.\n\nsomething like:\n            show_details \u003d False\n            if api_version_request.is_supported(req, \u00272.83\u0027):\n                show_details \u003d context.can(\n                    ia_policies.BASE_POLICY_NAME % \u0027show_details\u0027,\n                    target\u003d{\u0027project_id\u0027: instance.project_id}, fatal\u003dFalse)","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e6698ae1c038f468a0c4ebcb5eab81cdda3a7965","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            # NOTE(brinzhang): Event details are shown since microversion"},{"line_number":185,"context_line":"            # 2.83."},{"line_number":186,"context_line":"            support_v283 \u003d api_version_request.is_supported(req, \u00272.83\u0027)"},{"line_number":187,"context_line":"            authorized_show_details \u003d context.can("},{"line_number":188,"context_line":"                ia_policies.BASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":189,"context_line":"                target\u003d{\u0027project_id\u0027: instance.project_id}, fatal\u003dFalse)"},{"line_number":190,"context_line":"            show_details \u003d support_v283 and authorized_show_details"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            events_raw \u003d self.action_api.action_events_get(context, instance,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_379e3956","line":189,"range":{"start_line":187,"start_character":0,"end_line":189,"end_character":72},"in_reply_to":"df33271e_17d2155d","updated":"2020-03-25 02:05:05.000000000","message":"Done","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value may be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_2eb8a9c6","line":1097,"range":{"start_line":1097,"start_character":71,"end_line":1097,"end_character":72},"updated":"2020-03-24 17:34:29.000000000","message":"and may be omitted depending on policy configuration?","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value may be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_4e9ecd56","line":1097,"range":{"start_line":1097,"start_character":40,"end_line":1097,"end_character":43},"updated":"2020-03-24 17:34:29.000000000","message":"will","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value may be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_74739fe8","line":1097,"range":{"start_line":1097,"start_character":71,"end_line":1097,"end_character":72},"in_reply_to":"df33271e_2eb8a9c6","updated":"2020-03-25 00:52:23.000000000","message":"yeah, if the policy does not allow it, we will not show it, I don\u0027t think it needs to be mentioned here, \"The value will be` `null`` for old records.\"","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value may be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_d480ab8e","line":1097,"range":{"start_line":1097,"start_character":40,"end_line":1097,"end_character":43},"in_reply_to":"df33271e_4e9ecd56","updated":"2020-03-25 00:52:23.000000000","message":"Done","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"419242caf256b0340cb3cb84ec1f348b75d6f531","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value will be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":11,"id":"df33271e_1705f5c2","line":1097,"range":{"start_line":1097,"start_character":61,"end_line":1097,"end_character":72},"updated":"2020-03-25 01:34:22.000000000","message":"old records you mean for existing events right? if so may be you can add more text here and in reno about that. I was thinking about older version.","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e6698ae1c038f468a0c4ebcb5eab81cdda3a7965","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"The ``GET /servers/{server_id}/os-instance-actions/{request_id}`` API returns"},{"line_number":1095,"context_line":"a ``details`` parameter for each failed event with a fault message, similar to"},{"line_number":1096,"context_line":"the server ``fault.message`` parameter in ``GET /servers/{server_id}`` for a"},{"line_number":1097,"context_line":"server with status ``ERROR``. The value will be ``null`` for old records."}],"source_content_type":"text/x-rst","patch_set":11,"id":"df33271e_b7c6c966","line":1097,"range":{"start_line":1097,"start_character":61,"end_line":1097,"end_character":72},"in_reply_to":"df33271e_1705f5c2","updated":"2020-03-25 02:05:05.000000000","message":"OK, delete this line as talked in IRC.","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"}],"nova/policies/instance_actions.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ab532cfdf8ac8b24b8b7db0fd997ce0a807d6090","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.82,"},{"line_number":43,"context_line":"System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_b8b7fad8","line":42,"range":{"start_line":42,"start_character":71,"end_line":42,"end_character":75},"updated":"2020-03-23 13:58:07.000000000","message":"Isn\u0027t it 2.83?","commit_id":"c71fcc96662c51369bf5175a82565de10911faf4"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3f24452750e91c8c041c00c5d19bf94d450021f3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.82,"},{"line_number":43,"context_line":"System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_b819ba89","line":42,"range":{"start_line":42,"start_character":71,"end_line":42,"end_character":75},"in_reply_to":"df33271e_b8b7fad8","updated":"2020-03-23 14:07:42.000000000","message":"Done","commit_id":"c71fcc96662c51369bf5175a82565de10911faf4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"942186fb77cd003b3d4c471e05213f6d08c8644a","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_d79eed61","line":37,"range":{"start_line":37,"start_character":33,"end_line":37,"end_character":45},"updated":"2020-03-25 01:41:34.000000000","message":"this might be confusing about which detail ? action or event. as per policy naming convention let\u0027s rename this to\n\nBASE_POLICY_NAME % \u0027events:details\u0027,","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e6698ae1c038f468a0c4ebcb5eab81cdda3a7965","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027show_details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_17069587","line":37,"range":{"start_line":37,"start_character":33,"end_line":37,"end_character":45},"in_reply_to":"df33271e_d79eed61","updated":"2020-03-25 02:05:05.000000000","message":"Done","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f8429bf3643c480d7ff6eed5a9849404ee2a496a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.83,"},{"line_number":43,"context_line":"System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_579f7d02","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":34},"updated":"2020-03-25 02:09:36.000000000","message":"change to os_compute_api:os-instance-actions:show","commit_id":"9f974b0f138787abffbb111a1de45b789497a158"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"51975c2cfd5a3d1471bdad3f60a220830e9edc55","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_97b10593","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":39},"updated":"2020-03-25 02:18:55.000000000","message":"os_compute_api:os-instance-actions:show and os_compute_api:os-instance-actions:events\n\nwe check these two policy before this.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7728ff368c128ee579b937c09e9376fed9ac4e57","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_9a3bc6e9","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"df33271e_97b10593","updated":"2020-03-26 18:21:04.000000000","message":"ignore this comment as the current description is correct.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7728ff368c128ee579b937c09e9376fed9ac4e57","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_b5369de6","line":43,"range":{"start_line":42,"start_character":48,"end_line":43,"end_character":78},"updated":"2020-03-26 18:21:04.000000000","message":"Beginning with Microversion\n2.83, new field \u0027details\u0027 is exposed via API which can have more details about event failure. That field is controlled by this policy which is system reader by default. Allowing this to the non-admin users provides good information to debug or sometimes leak some information.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"6badbb936603f3c66166f61f4a3a3382f2350026","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_e978492b","line":43,"range":{"start_line":42,"start_character":48,"end_line":43,"end_character":78},"in_reply_to":"df33271e_b5369de6","updated":"2020-03-27 00:25:59.000000000","message":"Done","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"51975c2cfd5a3d1471bdad3f60a220830e9edc55","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_174cd59c","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"updated":"2020-03-25 02:18:55.000000000","message":"I was reading the 2.62 microversion changes for event field at L59 and thinking do we need this new policy ? \n\nWe are already providing the host info based on existing policy BASE_POLICY_NAME % \u0027events\u0027, so what detail we want to hide from non-admin in new field \u0027details\u0027. \n\nI think we can use the existing policy only. I read the Sean comment on spec about controlling the new filed for non-admin which can be controlled by exiting policy I think. Waiting for his confirmation.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5e50dc626fb41d7401447adac71dbf3cce090cf5","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_cadac015","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_174cd59c","updated":"2020-03-25 03:49:21.000000000","message":"If we pass the BASE_POLICY_NAME% \u0027events\u0027 policy authentication like microversion 2.62, then we will also show \u0027traceback\u0027 to non admin, which is not what we want.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f1dee3b2632ad7d29059f10863b7211faac8c712","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_c200e06a","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_62875463","updated":"2020-03-25 14:08:31.000000000","message":"yeah, that is what I was thinking about what is main difference between these two pieces of information. That is why I felt resuing existing policy is good enough here.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0894fc3924571136832b1f62f005049d138507f4","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_c75aa528","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_ac066685","updated":"2020-03-25 23:55:14.000000000","message":"No, we also would like to get 500. For example, as a non-admin user, if I create a server failed because of NoValidHost(500), if I can get this message in details, that I can try again. For non-admin user, I think this is enough.\nSo we cannot only catch 4xx error code in \u0027details\u0027 field.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14a2261843d0517289b8eb59669169b0b590ab5e","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_ac066685","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_c200e06a","updated":"2020-03-25 23:09:19.000000000","message":"after having discussion on IRC, it seems we might need to filter or whitelist the exception which we want to add in \u0027details\u0027 field for non-admin. \n\nCurrently, in case of non-nova exception, only exception names are included which can still leak the info about what driver are being used in cloud. and also not all nova exception are fixedable/debuggable by non-admin. Showing something which is not actionable or fixable by non-admin is of no use and might leaf cloud infra. \n\nMay be we can add only 4xx or set of 4xx error in \u0027details\u0027 field ?","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7c355bc37634b81154dbf1ef8f603b709f1974eb","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_d0941c47","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_c75aa528","updated":"2020-03-26 08:49:03.000000000","message":"I think the reason for the policy was to signal to the deployer that there could be potential internal information leak if you enable this to the end user. Technically it is close to impossible to make an api that shows useful information in most of the cases and in the other hand free from any possible information leak.\nMy suggestion is to document that enabling \u0027details\u0027 to the end user could leak info. \n\nFor me this is a trade off for the deployer:\na) she does not enable \u0027details\u0027 and she continue to handle tickets like \"I tried to resize my instance but it failed, but I don\u0027t know why, please help\" from the end user\n\nb) she enables \u0027details\u0027 and get less tickets like above, but potentially leak some internal information like the type of the virtualization she uses.\n\nFor me if the deployer has a choice then I don\u0027t mind if one of those choices leaks information.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"21fd1b49efbfb669a00628b0b570b3c61fd282cf","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_62875463","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_cadac015","updated":"2020-03-25 13:47:13.000000000","message":"We don\u0027t want the traceback  or error name in the details field to be present in 2.62 at all. To have the details filed populated  with the fault.message you should use 2.83 so we shoudl be filtering out populating the details field also on the micro-version.\n\nregarding reusing the policy below.\nim not sure if we need to differenciate between the traceback details and the error name.\n\ni think the exception name for nova exceptioans like we do for non nova exceptiosn would likely be the only useful info for a non admin to see. so having a policy to expose that alone i think is useful but i could see reusing this too.\nit would not give us that granularity but it would be sufficent to adress the concern i had in the spec.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7728ff368c128ee579b937c09e9376fed9ac4e57","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_fa02d20a","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_d0941c47","updated":"2020-03-26 18:21:04.000000000","message":"+1. also discussed with dan smith on IRC if exception name can be harmful and they are not so as long as we are hiding the error message.\n\nthis looks good to me. +1 on adding that in description.","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"6badbb936603f3c66166f61f4a3a3382f2350026","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"instance_actions_policies \u003d ["},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events:details\u0027,"},{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add \"details\" key in action events for a server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This check is performed only after the check"},{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.83, System Scoped Reader is the default role to get the event fault details."},{"line_number":44,"context_line":"\"\"\","},{"line_number":45,"context_line":"        operations\u003d["},{"line_number":46,"context_line":"            {"},{"line_number":47,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":48,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":49,"context_line":"            }"},{"line_number":50,"context_line":"        ],"},{"line_number":51,"context_line":"        scope_types\u003d[\u0027system\u0027]),"},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":54,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":55,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_c973c54c","line":52,"range":{"start_line":37,"start_character":0,"end_line":52,"end_character":33},"in_reply_to":"df33271e_fa02d20a","updated":"2020-03-27 00:25:59.000000000","message":"Done","commit_id":"a508043a2c649a6184f9e9f8fa1ae6e3bb5b718f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74acd519da5cde88287c0a745ca72aa4910feca8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.84, new field \u0027details\u0027 is exposed via API which can have more details about"},{"line_number":44,"context_line":"event failure. That field is controlled by this policy which is system reader"},{"line_number":45,"context_line":"by default. Allowing this to the non-admin users provides good information to"},{"line_number":46,"context_line":"debug or sometimes leak some information."},{"line_number":47,"context_line":"\"\"\","},{"line_number":48,"context_line":"        operations\u003d["},{"line_number":49,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_fe60fca7","line":46,"range":{"start_line":45,"start_character":12,"end_line":46,"end_character":41},"updated":"2020-03-27 08:13:46.000000000","message":"A bit of rewording:\nMaking the \u0027details\u0027 field visible to the non-admin user  helps to understand the nature of the problem (i.e. if the action can be retried) but in the other hand it might leak information about the deployment (e.g. the type of the hypervisor).","commit_id":"54e5609ec8142995428ef9d6b54860f0d71d7c1c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5afab8e6bcca68b98060a19482f026748061b340","unresolved":false,"context_lines":[{"line_number":42,"context_line":"os_compute_api:os-instance-actions:show passes. Beginning with Microversion"},{"line_number":43,"context_line":"2.84, new field \u0027details\u0027 is exposed via API which can have more details about"},{"line_number":44,"context_line":"event failure. That field is controlled by this policy which is system reader"},{"line_number":45,"context_line":"by default. Allowing this to the non-admin users provides good information to"},{"line_number":46,"context_line":"debug or sometimes leak some information."},{"line_number":47,"context_line":"\"\"\","},{"line_number":48,"context_line":"        operations\u003d["},{"line_number":49,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":14,"id":"df33271e_9e9a906b","line":46,"range":{"start_line":45,"start_character":12,"end_line":46,"end_character":41},"in_reply_to":"df33271e_fe60fca7","updated":"2020-03-27 08:21:50.000000000","message":"Done","commit_id":"54e5609ec8142995428ef9d6b54860f0d71d7c1c"}],"nova/tests/functional/test_instance_actions.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4856317a4044d2f2ef7b62bcfd70aaa7fc80c5ee","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        # is going to see the message so it only sets class name."},{"line_number":177,"context_line":"        self.assertIn(\u0027HypervisorError\u0027, reboot_action_events[0][\u0027details\u0027])"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def test_instance_action_event_details_with_nova_exception(self):"},{"line_number":180,"context_line":"        \"\"\"Creates a server using the non-admin user, then reboot it which"},{"line_number":181,"context_line":"        will generate a non-NovaException fault and put the instance into"},{"line_number":182,"context_line":"        ERROR status. Then checks that fault details are only visible to the"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_37945b44","line":179,"updated":"2020-03-16 14:13:38.000000000","message":"I think a lot of this could be combined with the test above, just asserting the differences outside an inner help function. But, that\u0027s not critical.","commit_id":"b709464e63a6e193c51a469f622bc72074dc2497"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_instance_action_event_details_with_nova_exception(self):"},{"line_number":191,"context_line":"        \"\"\"Creates a server using the non-admin user, then reboot it which"},{"line_number":192,"context_line":"        will generate a non-NovaException fault and put the instance into"},{"line_number":193,"context_line":"        ERROR status. Then checks that fault details are only visible to the"},{"line_number":194,"context_line":"        admin user."},{"line_number":195,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_2e79c9fb","line":192,"range":{"start_line":192,"start_character":24,"end_line":192,"end_character":41},"updated":"2020-03-24 17:34:29.000000000","message":"nova exception","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_instance_action_event_details_with_nova_exception(self):"},{"line_number":191,"context_line":"        \"\"\"Creates a server using the non-admin user, then reboot it which"},{"line_number":192,"context_line":"        will generate a non-NovaException fault and put the instance into"},{"line_number":193,"context_line":"        ERROR status. Then checks that fault details are only visible to the"},{"line_number":194,"context_line":"        admin user."},{"line_number":195,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_940d8340","line":192,"range":{"start_line":192,"start_character":24,"end_line":192,"end_character":41},"in_reply_to":"df33271e_2e79c9fb","updated":"2020-03-25 00:52:23.000000000","message":"Done","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def test_instance_action_event_details_with_nova_exception(self):"},{"line_number":191,"context_line":"        \"\"\"Creates a server using the non-admin user, then reboot it which"},{"line_number":192,"context_line":"        will generate a non-NovaException fault and put the instance into"},{"line_number":193,"context_line":"        ERROR status. Then checks that fault details are only visible to the"},{"line_number":194,"context_line":"        admin user."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        # Create the server with the non-admin user."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_ae6cb936","line":194,"range":{"start_line":193,"start_character":22,"end_line":194,"end_character":19},"updated":"2020-03-24 17:34:29.000000000","message":"This doesn\u0027t seem to be true. You\u0027re checking to make sure they *are* visible, right? What\u0027s not visible is the traceback","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":190,"context_line":"    def test_instance_action_event_details_with_nova_exception(self):"},{"line_number":191,"context_line":"        \"\"\"Creates a server using the non-admin user, then reboot it which"},{"line_number":192,"context_line":"        will generate a non-NovaException fault and put the instance into"},{"line_number":193,"context_line":"        ERROR status. Then checks that fault details are only visible to the"},{"line_number":194,"context_line":"        admin user."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        # Create the server with the non-admin user."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_9712a557","line":194,"range":{"start_line":193,"start_character":22,"end_line":194,"end_character":19},"in_reply_to":"df33271e_ae6cb936","updated":"2020-03-25 00:52:23.000000000","message":"Right, rewords to \"Then checks that fault details are visible.\"","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Stub out the compute driver reboot method to raise a nova"},{"line_number":211,"context_line":"        # exception \u0027InstanceRebootFailure\u0027 to simulate some error."},{"line_number":212,"context_line":"        exc_reason \u003d \u0027reboot failture\u0027"},{"line_number":213,"context_line":"        with mock.patch.object("},{"line_number":214,"context_line":"                self.compute.manager.driver, \u0027reboot\u0027,"},{"line_number":215,"context_line":"                side_effect\u003dexception.InstanceRebootFailure(reason\u003dexc_reason)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_aedaf9e5","line":212,"range":{"start_line":212,"start_character":29,"end_line":212,"end_character":37},"updated":"2020-03-24 17:34:29.000000000","message":"failure","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Stub out the compute driver reboot method to raise a nova"},{"line_number":211,"context_line":"        # exception \u0027InstanceRebootFailure\u0027 to simulate some error."},{"line_number":212,"context_line":"        exc_reason \u003d \u0027reboot failture\u0027"},{"line_number":213,"context_line":"        with mock.patch.object("},{"line_number":214,"context_line":"                self.compute.manager.driver, \u0027reboot\u0027,"},{"line_number":215,"context_line":"                side_effect\u003dexception.InstanceRebootFailure(reason\u003dexc_reason)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_745c3f4b","line":212,"range":{"start_line":212,"start_character":29,"end_line":212,"end_character":37},"in_reply_to":"df33271e_aedaf9e5","updated":"2020-03-25 00:52:23.000000000","message":"Done","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        for actions in server_actions:"},{"line_number":238,"context_line":"            if actions[\u0027action\u0027] \u003d\u003d \u0027reboot\u0027:"},{"line_number":239,"context_line":"                reboot_request_id \u003d actions[\u0027request_id\u0027]"},{"line_number":240,"context_line":"        # non admin shows instance actions details and verifies the \u0027details\u0027"},{"line_number":241,"context_line":"        # in the action events via \u0027request_id\u0027, since microversion 2.51 that"},{"line_number":242,"context_line":"        # we can show events, but in microversion 2.83 that we can show"},{"line_number":243,"context_line":"        # \u0027details\u0027 for non-admin."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_6ed111ce","line":240,"updated":"2020-03-24 17:34:29.000000000","message":"nit: newline before this would be nice","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        for actions in server_actions:"},{"line_number":238,"context_line":"            if actions[\u0027action\u0027] \u003d\u003d \u0027reboot\u0027:"},{"line_number":239,"context_line":"                reboot_request_id \u003d actions[\u0027request_id\u0027]"},{"line_number":240,"context_line":"        # non admin shows instance actions details and verifies the \u0027details\u0027"},{"line_number":241,"context_line":"        # in the action events via \u0027request_id\u0027, since microversion 2.51 that"},{"line_number":242,"context_line":"        # we can show events, but in microversion 2.83 that we can show"},{"line_number":243,"context_line":"        # \u0027details\u0027 for non-admin."}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_1431730c","line":240,"in_reply_to":"df33271e_6ed111ce","updated":"2020-03-25 00:52:23.000000000","message":"Done","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d482d72010b83a957d388657adc097ab34911c5b","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        # Since reboot action failed, the \u0027message\u0027 property in reboot action"},{"line_number":250,"context_line":"        # should be \u0027Error\u0027, otherwise it\u0027s None."},{"line_number":251,"context_line":"        self.assertEqual(\u0027Error\u0027, reboot_action[\u0027message\u0027])"},{"line_number":252,"context_line":"        reboot_action_events \u003d reboot_action[\u0027events\u0027]"},{"line_number":253,"context_line":"        # The instance action events from the non-admin user API response"},{"line_number":254,"context_line":"        # should not have \u0027traceback\u0027 in it."},{"line_number":255,"context_line":"        self.assertNotIn(\u0027traceback\u0027, reboot_action_events[0])"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_4eefed83","line":252,"updated":"2020-03-24 17:34:29.000000000","message":"nit: Why do you assign here? You\u0027re note saving any characters. Just use it directly?","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"261eadf8b81c845f1d1753af4806f5dc9f147955","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        # Since reboot action failed, the \u0027message\u0027 property in reboot action"},{"line_number":250,"context_line":"        # should be \u0027Error\u0027, otherwise it\u0027s None."},{"line_number":251,"context_line":"        self.assertEqual(\u0027Error\u0027, reboot_action[\u0027message\u0027])"},{"line_number":252,"context_line":"        reboot_action_events \u003d reboot_action[\u0027events\u0027]"},{"line_number":253,"context_line":"        # The instance action events from the non-admin user API response"},{"line_number":254,"context_line":"        # should not have \u0027traceback\u0027 in it."},{"line_number":255,"context_line":"        self.assertNotIn(\u0027traceback\u0027, reboot_action_events[0])"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_34191785","line":252,"in_reply_to":"df33271e_4eefed83","updated":"2020-03-25 00:52:23.000000000","message":"There is nothing wrong with this, and it is easier for me to read.","commit_id":"2507521e1e586a8fa39e638726a9171c7c23cd13"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"419242caf256b0340cb3cb84ec1f348b75d6f531","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"        event \u003d self._assert_resize_migrate_action_fail("},{"line_number":1935,"context_line":"            server, instance_actions.RESIZE, \u0027NoValidHost\u0027)"},{"line_number":1936,"context_line":"        self.assertIn(\u0027details\u0027, event)"},{"line_number":1937,"context_line":"        self.assertIn(\u0027No valid host was found\u0027, event[\u0027details\u0027])"},{"line_number":1938,"context_line":"        server \u003d self.admin_api.get_server(server[\u0027id\u0027])"},{"line_number":1939,"context_line":"        self.assertEqual(source_hostname, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"},{"line_number":1940,"context_line":"        # The server is still ACTIVE and thus there is no fault message."}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_375f59e3","line":1937,"range":{"start_line":1937,"start_character":63,"end_line":1937,"end_character":66},"updated":"2020-03-25 01:34:22.000000000","message":"just a note for reviewer: this is not change in older version, this tests are run with \u0027latest\u0027 microversion so changes here reflect the newest microversion not older.","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e6698ae1c038f468a0c4ebcb5eab81cdda3a7965","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"        event \u003d self._assert_resize_migrate_action_fail("},{"line_number":1935,"context_line":"            server, instance_actions.RESIZE, \u0027NoValidHost\u0027)"},{"line_number":1936,"context_line":"        self.assertIn(\u0027details\u0027, event)"},{"line_number":1937,"context_line":"        self.assertIn(\u0027No valid host was found\u0027, event[\u0027details\u0027])"},{"line_number":1938,"context_line":"        server \u003d self.admin_api.get_server(server[\u0027id\u0027])"},{"line_number":1939,"context_line":"        self.assertEqual(source_hostname, server[\u0027OS-EXT-SRV-ATTR:host\u0027])"},{"line_number":1940,"context_line":"        # The server is still ACTIVE and thus there is no fault message."}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_f7e171d2","line":1937,"range":{"start_line":1937,"start_character":63,"end_line":1937,"end_character":66},"in_reply_to":"df33271e_375f59e3","updated":"2020-03-25 02:05:05.000000000","message":"Done","commit_id":"e3575d711cc8a30e5fb24e75540cce7c249cc6d5"}]}
