)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5456217542d67fc9d019e7827f50b7814078fe75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8b5a1e68_8369336b","updated":"2024-08-28 12:35:36.000000000","message":"OK I tested this locally and both the happy path and the fault path works and records the instance actions/events in the DB.","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"029a87b58d82a35da80004fb8d492f86092b6c3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2d428e9a_da395a04","updated":"2024-11-05 14:07:26.000000000","message":"Looks good. My comments where fixed and I was able to test this locally and the actions are recorded properly.\n\ne.g.:\n```\nstack@gibi-devstack-aio-jammy:~$ openstack server event list 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e\n +------------------------------------------+--------------------------------------+--------------+----------------------------+\n| Request ID                               | Server ID                            | Action       | Start Time                 |\n+------------------------------------------+--------------------------------------+--------------+----------------------------+\n| req-3dcf5f0b-77d7-4fea-ab2c-877266dcf82f | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | detach_share | 2024-11-05T14:03:00.000000 |\n| req-a66469cf-4ca4-46a8-85f2-9bcb8be3bb26 | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | attach_share | 2024-11-05T14:02:45.000000 |\n| req-2fd0b71d-4ee7-4b0e-afa2-2f4ef5474c4a | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | detach_share | 2024-11-05T14:02:20.000000 |\n| req-4f0861a6-e29c-44a9-a9a2-83cdb0716567 | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | attach_share | 2024-11-05T14:01:39.000000 |\n| req-3a2f6cbe-cabd-425d-bf78-5d8977d62392 | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | stop         | 2024-11-05T14:01:27.000000 |\n| req-355b4d30-11a8-415a-ad5e-d8959270a9af | 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e | create       | 2024-11-05T14:01:01.000000 |\n+------------------------------------------+--------------------------------------+--------------+----------------------------+\n```\n```\n\nstack@gibi-devstack-aio-jammy:~$ openstack server event show 0c88fb86-aae2-4ba3-ae1f-1ad7301e284e req-3dcf5f0b-77d7-4fea-ab2c-877266dcf82f \n+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Field      | Value                                                                                                                                                                                                |\n+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| action     | detach_share                                                                                                                                                                                         |\n| events     | details\u003d\u0027ServiceDiscoveryException\u0027, event\u003d\u0027compute_deny_share\u0027, finish_time\u003d\u00272024-11-05T14:03:03.000000\u0027, host\u003d\u0027gibi-devstack-aio-jammy\u0027,                                                           |\n|            | host_id\u003d\u002708a3101da932f24fdabb6cb0f5e215bdd759d80f8dd9d9abd993eca2\u0027, result\u003d\u0027Error\u0027, start_time\u003d\u00272024-11-05T14:03:00.000000\u0027, traceback\u003d\u0027  File \"/opt/stack/nova/nova/compute/utils.py\", line 1484,   |\n|            | in decorated_function                                                                                                                                                                                |\n|            |     return function(self, context, *args, **kwargs)                                                                                                                                                  |\n|            |   File \"/opt/stack/nova/nova/compute/manager.py\", line 215, in decorated_function                                                                                                                    |\n|            |     with excutils.save_and_reraise_exception():                                                                                                                                                      |\n|            |   File \"/opt/stack/data/venv/lib/python3.10/site-packages/oslo_utils/excutils.py\", line 227, in __exit__                                                                                             |\n|            |     self.force_reraise()                                                                                                                                                                             |\n|            |   File \"/opt/stack/data/venv/lib/python3.10/site-packages/oslo_utils/excutils.py\", line 200, in force_reraise                                                                                        |\n|            |     raise self.value                                                                                                                                                                                 |\n|            |   File \"/opt/stack/nova/nova/compute/manager.py\", line 205, in decorated_function                                                                                                                    |\n|            |     return function(self, context, *args, **kwargs)                                                                                                                                                  |\n|            |   File \"/opt/stack/nova/nova/compute/manager.py\", line 4908, in deny_share                                                                                                                           |\n|            |     _deny_share(context, instance, share_mapping)                                                                                                                                                    |\n|            |   File \"/opt/stack/data/venv/lib/python3.10/site-packages/oslo_concurrency/lockutils.py\", line 412, in inner                                                                                         |\n|            |     return f(*args, **kwargs)                                                                                                                                                                        |\n|            |   File \"/opt/stack/nova/nova/compute/manager.py\", line 4844, in _deny_share                                                                                                                          |\n|            |     self.manila_api.deny(                                                                                                                                                                            |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 128, in wrapper                                                                                                                                  |\n|            |     res \u003d method(self, *args, **kwargs)                                                                                                                                                              |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 180, in wrapper                                                                                                                                  |\n|            |     res \u003d method(self, *args, **kwargs)                                                                                                                                                              |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 320, in deny                                                                                                                                     |\n|            |     access \u003d self.get_access(                                                                                                                                                                        |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 128, in wrapper                                                                                                                                  |\n|            |     res \u003d method(self, *args, **kwargs)                                                                                                                                                              |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 146, in wrapper                                                                                                                                  |\n|            |     res \u003d method(self, *args, **kwargs)                                                                                                                                                              |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 244, in get_access                                                                                                                               |\n|            |     access_list \u003d _manilaclient(                                                                                                                                                                     |\n|            |   File \"/opt/stack/nova/nova/share/manila.py\", line 42, in _manilaclient                                                                                                                             |\n|            |     return utils.get_sdk_adapter(                                                                                                                                                                    |\n|            |   File \"/opt/stack/nova/nova/utils.py\", line 1032, in get_sdk_adapter                                                                                                                                |\n|            |     return getattr(conn, service_type.replace(\u0027-\u0027, \u0027_\u0027))                                                                                                                                             |\n|            |   File \"/usr/local/lib/python3.10/dist-packages/openstack/service_description.py\", line 110, in __get__                                                                                              |\n|            |     self._validate_proxy(proxy, endpoint)                                                                                                                                                            |\n|            |   File \"/usr/local/lib/python3.10/dist-packages/openstack/service_description.py\", line 136, in _validate_proxy                                                                                      |\n|            |     raise exceptions.ServiceDiscoveryException(                                                                                                                                                      |\n|            | \u0027                                                                                                                                                                                                    |\n| id         | req-3dcf5f0b-77d7-4fea-ab2c-877266dcf82f                                                                                                                                                             |\n| message    | Error                                                                                                                                                                                                |\n| project_id | a5ea4001c50e41ae9add18fa14369b6d                                                                                                                                                                     |\n| request_id | req-3dcf5f0b-77d7-4fea-ab2c-877266dcf82f                                                                                                                                                             |\n| start_time | 2024-11-05T14:03:00.000000                                                                                                                                                                           |\n| user_id    | b91e1d7c2b54401ba843fe46672dd59d                                                                                                                                                                     |\n+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\nstack@gibi-devstack-aio-jammy:~$ \n```","commit_id":"21bb1a7597239c63729cf221e5dee650addba2f2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9c319b4bc29f84b78b8d965d794bc20cd776f6ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d869d443_e06c44db","updated":"2024-11-15 10:52:53.000000000","message":"still good","commit_id":"754498ecd3223a0682faf504a9140c12bf1d67b5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d2ffb25af67126fdad4d16a833b911aaee87679","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a300e6f6_c51d6a76","updated":"2024-11-20 15:14:00.000000000","message":"still looks good","commit_id":"a7b49f786364c235f9648bba12d0224a47589297"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3b8d32e1c10dee621584f83a8fa2d725d5d46314","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"19aacbaf_0cbc1077","updated":"2024-11-22 16:42:19.000000000","message":"looks good for me now","commit_id":"6e3691b278a80718ee41e41a0d2e1deee3737aa0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a5fc0679c79c90d32d111a892c800d28498cf632","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"960a5820_561e1add","updated":"2024-12-11 12:24:11.000000000","message":"recheck ancestor","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"39025ed6130948cf181037a61cee7e3face1bccf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"eb3d5206_f5a3c243","updated":"2024-12-12 13:39:50.000000000","message":"recheck https://review.opendev.org/860283 is now merged.","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7d1656688d0970fe9698e1a0600fc771ac38fc91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3a580ebe_89b2a623","updated":"2024-12-05 09:26:29.000000000","message":"recheck nova-ceph-multistore guest kernel panic\n```\n[    0.020000] Kernel panic - not syncing: IO-APIC + timer doesn\u0027t work!  Boot with apic\u003ddebug and send a report.  Then try booting with the \u0027noapic\u0027 option.\n```","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"f0e1735ad4321b8220ff2010b0e3374f4eda00b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"fc648ec6_525c6695","updated":"2024-12-12 22:48:44.000000000","message":"recheck nova-multi-cell job ssh failure: Failed to establish authenticated ssh connection to cirros@172.24.5.197 after 16 attempts","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ed2385d1877c263ab1950162a592d40bbf67eb84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"56e448c6_a3445bfa","updated":"2024-12-09 10:30:22.000000000","message":"recheck parent merged","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0e424e5ed48101f65b42e433f404aec7ec2ce3b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a58dac12_d870b6f7","updated":"2024-12-10 12:41:09.000000000","message":"recheck requeue after anscestor rechecked","commit_id":"57d96c265b831afaa5c9ea11ed4015e9c58f64d9"}],"nova/tests/unit/compute/test_api.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5456217542d67fc9d019e7827f50b7814078fe75","unresolved":true,"context_lines":[{"line_number":8701,"context_line":"            self.context,"},{"line_number":8702,"context_line":"            \u0027allow_share\u0027,"},{"line_number":8703,"context_line":"            instance\u003dinstance,"},{"line_number":8704,"context_line":"            share_mapping\u003dshare_mapping)"},{"line_number":8705,"context_line":""},{"line_number":8706,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":8707,"context_line":"    @mock.patch(\u0027oslo_messaging.rpc.client._BaseCallContext.cast\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"20804646_4dcf8dff","line":8704,"updated":"2024-08-28 12:35:36.000000000","message":"you added the mock, could you add an assert that the mock is called with the proper args?","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"bd020d05fc6d226b54d659c29dcb31637a7d950d","unresolved":false,"context_lines":[{"line_number":8701,"context_line":"            self.context,"},{"line_number":8702,"context_line":"            \u0027allow_share\u0027,"},{"line_number":8703,"context_line":"            instance\u003dinstance,"},{"line_number":8704,"context_line":"            share_mapping\u003dshare_mapping)"},{"line_number":8705,"context_line":""},{"line_number":8706,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":8707,"context_line":"    @mock.patch(\u0027oslo_messaging.rpc.client._BaseCallContext.cast\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"95a4e3eb_b325a3e2","line":8704,"in_reply_to":"20804646_4dcf8dff","updated":"2024-09-17 06:43:34.000000000","message":"Done","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5456217542d67fc9d019e7827f50b7814078fe75","unresolved":true,"context_lines":[{"line_number":8715,"context_line":""},{"line_number":8716,"context_line":"        self.compute_api.deny_share("},{"line_number":8717,"context_line":"            self.context, instance, share_mapping\u003dshare_mapping"},{"line_number":8718,"context_line":"        )"},{"line_number":8719,"context_line":""},{"line_number":8720,"context_line":"        mock_cast.assert_called_with("},{"line_number":8721,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8e55f50d_07e6a7e5","line":8718,"updated":"2024-08-28 12:35:36.000000000","message":"ditto","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"bd020d05fc6d226b54d659c29dcb31637a7d950d","unresolved":false,"context_lines":[{"line_number":8715,"context_line":""},{"line_number":8716,"context_line":"        self.compute_api.deny_share("},{"line_number":8717,"context_line":"            self.context, instance, share_mapping\u003dshare_mapping"},{"line_number":8718,"context_line":"        )"},{"line_number":8719,"context_line":""},{"line_number":8720,"context_line":"        mock_cast.assert_called_with("},{"line_number":8721,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9dd57530_7dd04fc0","line":8718,"in_reply_to":"8e55f50d_07e6a7e5","updated":"2024-09-17 06:43:34.000000000","message":"Done","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5456217542d67fc9d019e7827f50b7814078fe75","unresolved":true,"context_lines":[{"line_number":2479,"context_line":"                vm_state\u003dvm_states.ACTIVE,"},{"line_number":2480,"context_line":"                task_state\u003dtask_states.POWERING_OFF)"},{"line_number":2481,"context_line":"        mock_get_access.side_effect \u003d [None, self.get_fake_share_access()]"},{"line_number":2482,"context_line":"        mock_instance_fault_create.return_value \u003d ("},{"line_number":2483,"context_line":"            test_instance_fault.fake_faults[\u0027fake-uuid\u0027][0])"},{"line_number":2484,"context_line":"        # Ensure CONF.my_shared_fs_storage_ip default is my_ip"},{"line_number":2485,"context_line":"        self.flags(my_ip\u003d\"10.0.0.2\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"c61ff996_880be678","line":2482,"updated":"2024-08-28 12:35:36.000000000","message":"could you also assert the fault create called with the proper parameters. You can also mock a higher level function if you wish (e.g. add_instance_fault_from_exc or the InstanceFault.save())","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"bd020d05fc6d226b54d659c29dcb31637a7d950d","unresolved":false,"context_lines":[{"line_number":2479,"context_line":"                vm_state\u003dvm_states.ACTIVE,"},{"line_number":2480,"context_line":"                task_state\u003dtask_states.POWERING_OFF)"},{"line_number":2481,"context_line":"        mock_get_access.side_effect \u003d [None, self.get_fake_share_access()]"},{"line_number":2482,"context_line":"        mock_instance_fault_create.return_value \u003d ("},{"line_number":2483,"context_line":"            test_instance_fault.fake_faults[\u0027fake-uuid\u0027][0])"},{"line_number":2484,"context_line":"        # Ensure CONF.my_shared_fs_storage_ip default is my_ip"},{"line_number":2485,"context_line":"        self.flags(my_ip\u003d\"10.0.0.2\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"d2e983ce_e0e727d9","line":2482,"in_reply_to":"c61ff996_880be678","updated":"2024-09-17 06:43:34.000000000","message":"Done","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5456217542d67fc9d019e7827f50b7814078fe75","unresolved":true,"context_lines":[{"line_number":2622,"context_line":"        )"},{"line_number":2623,"context_line":"        share_mapping \u003d self.get_fake_share_mapping()"},{"line_number":2624,"context_line":"        mock_db_get_share.return_value.objects.append(share_mapping)"},{"line_number":2625,"context_line":"        mock_instance_fault_create.return_value \u003d ("},{"line_number":2626,"context_line":"            test_instance_fault.fake_faults[\u0027fake-uuid\u0027][0])"},{"line_number":2627,"context_line":"        # Ensure CONF.my_shared_fs_storage_ip default is my_ip"},{"line_number":2628,"context_line":"        self.flags(my_ip\u003d\"10.0.0.2\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"abc5e5a5_83c94a58","line":2625,"updated":"2024-08-28 12:35:36.000000000","message":"ditto","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"bd020d05fc6d226b54d659c29dcb31637a7d950d","unresolved":false,"context_lines":[{"line_number":2622,"context_line":"        )"},{"line_number":2623,"context_line":"        share_mapping \u003d self.get_fake_share_mapping()"},{"line_number":2624,"context_line":"        mock_db_get_share.return_value.objects.append(share_mapping)"},{"line_number":2625,"context_line":"        mock_instance_fault_create.return_value \u003d ("},{"line_number":2626,"context_line":"            test_instance_fault.fake_faults[\u0027fake-uuid\u0027][0])"},{"line_number":2627,"context_line":"        # Ensure CONF.my_shared_fs_storage_ip default is my_ip"},{"line_number":2628,"context_line":"        self.flags(my_ip\u003d\"10.0.0.2\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"116ca3fc_f04f8cd6","line":2625,"in_reply_to":"abc5e5a5_83c94a58","updated":"2024-09-17 06:43:34.000000000","message":"Done","commit_id":"0a714a7e033a8481e4b3d0ccd2722f8e7d757e68"}]}
