)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"5d612a0ed337b18c469b8896c913cba2e0073aad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b1ec05f5_4dc342f4","updated":"2025-10-14 13:07:42.000000000","message":"recheck openstack-tox-docs TIMED_OUT","commit_id":"07daa9dcbc679acd2db92c4a796310ab538e4d5d"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"270479eca727014fd2d3807a93b49759ac4c4fa4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4df5ff41_fe1c1d60","updated":"2025-12-04 09:30:32.000000000","message":"Thanks Johannes","commit_id":"6cb513039e0827755a6fb66e39fdd74f8852242d"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"14ba78e3aa06ef11382e1f747f65de8bb12dfd61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a369f6c9_b4ae78d3","updated":"2025-12-12 04:18:22.000000000","message":"recheck","commit_id":"fce1d4c101f607de52aced1e2de0b9821048140c"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"dddfe4f3525c1da8f80003a3bb83b8c5cd5f7f84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"978e0303_961fde49","updated":"2025-12-11 13:25:50.000000000","message":"recheck tempest-full-2025-2 \u0027tempest.lib.exceptions.SSHTimeout\u0027","commit_id":"fce1d4c101f607de52aced1e2de0b9821048140c"}],"tempest/api/compute/volumes/test_attach_volume.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"848536055dddf8d598e36689675a26ca4fead734","unresolved":true,"context_lines":[{"line_number":643,"context_line":"            server[\u0027id\u0027], attach_request_id)[\u0027instanceAction\u0027]"},{"line_number":644,"context_line":"        self.assertEqual(\u0027attach_volume\u0027, action[\u0027action\u0027])"},{"line_number":645,"context_line":"        self.assertEqual(server[\u0027id\u0027], action[\u0027instance_uuid\u0027])"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        # Verify finish_time is present and not None"},{"line_number":648,"context_line":"        self.assertIn(\u0027finish_time\u0027, action)"},{"line_number":649,"context_line":"        self.assertIsNotNone(action[\u0027finish_time\u0027],"},{"line_number":650,"context_line":"                             \u0027finish_time should not be None for completed \u0027"},{"line_number":651,"context_line":"                             \u0027attach_volume action\u0027)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        # Parse the finish_time from the API response"},{"line_number":654,"context_line":"        finish_time \u003d timeutils.parse_isotime(action[\u0027finish_time\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"1167a9b3_8987903e","line":651,"range":{"start_line":646,"start_character":0,"end_line":651,"end_character":52},"updated":"2025-12-04 19:45:00.000000000","message":"you do not need to check this as schema verify the same that finish_time is present and not None. current failure shows that is it is None then schema will fail.","commit_id":"6cb513039e0827755a6fb66e39fdd74f8852242d"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"dddfe4f3525c1da8f80003a3bb83b8c5cd5f7f84","unresolved":false,"context_lines":[{"line_number":643,"context_line":"            server[\u0027id\u0027], attach_request_id)[\u0027instanceAction\u0027]"},{"line_number":644,"context_line":"        self.assertEqual(\u0027attach_volume\u0027, action[\u0027action\u0027])"},{"line_number":645,"context_line":"        self.assertEqual(server[\u0027id\u0027], action[\u0027instance_uuid\u0027])"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        # Verify finish_time is present and not None"},{"line_number":648,"context_line":"        self.assertIn(\u0027finish_time\u0027, action)"},{"line_number":649,"context_line":"        self.assertIsNotNone(action[\u0027finish_time\u0027],"},{"line_number":650,"context_line":"                             \u0027finish_time should not be None for completed \u0027"},{"line_number":651,"context_line":"                             \u0027attach_volume action\u0027)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        # Parse the finish_time from the API response"},{"line_number":654,"context_line":"        finish_time \u003d timeutils.parse_isotime(action[\u0027finish_time\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"0e62635f_a419dfc1","line":651,"range":{"start_line":646,"start_character":0,"end_line":651,"end_character":52},"in_reply_to":"1167a9b3_8987903e","updated":"2025-12-11 13:25:50.000000000","message":"Done","commit_id":"6cb513039e0827755a6fb66e39fdd74f8852242d"}],"tempest/lib/api_schema/response/compute/v2_101/servers.py":[{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"f2d41cf11ab2e18e9e0940eca92895988459d782","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from tempest.lib.api_schema.response.compute.v2_100 import \\"},{"line_number":16,"context_line":"    servers as servers2100  # noqa: H306"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# microversion 2.58 added updated_at to the response"},{"line_number":19,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":20,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":21,"context_line":"    \u0027properties\u0027][\u0027finish_time\u0027] \u003d parameter_types.date_time_or_null"}],"source_content_type":"text/x-python","patch_set":7,"id":"570a45cb_863166c4","line":18,"updated":"2025-12-04 09:02:02.000000000","message":"comment is out of date, it talks about another microversion and `updated_at`.","commit_id":"f3445790d1ded475f193b762a89999dec085a5c7"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"270479eca727014fd2d3807a93b49759ac4c4fa4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from tempest.lib.api_schema.response.compute.v2_100 import \\"},{"line_number":16,"context_line":"    servers as servers2100  # noqa: H306"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# microversion 2.58 added updated_at to the response"},{"line_number":19,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":20,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":21,"context_line":"    \u0027properties\u0027][\u0027finish_time\u0027] \u003d parameter_types.date_time_or_null"}],"source_content_type":"text/x-python","patch_set":7,"id":"7edc06bd_75b9a7dd","line":18,"in_reply_to":"570a45cb_863166c4","updated":"2025-12-04 09:30:32.000000000","message":"Done","commit_id":"f3445790d1ded475f193b762a89999dec085a5c7"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"f2d41cf11ab2e18e9e0940eca92895988459d782","unresolved":true,"context_lines":[{"line_number":37,"context_line":"attach_volume \u003d copy.deepcopy(servers2100.attach_volume)"},{"line_number":38,"context_line":"show_volume_attachment \u003d copy.deepcopy(servers2100.show_volume_attachment)"},{"line_number":39,"context_line":"list_volume_attachments \u003d copy.deepcopy(servers2100.list_volume_attachments)"},{"line_number":40,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":41,"context_line":"create_backup \u003d copy.deepcopy(servers2100.create_backup)"}],"source_content_type":"text/x-python","patch_set":7,"id":"66dfba7c_2b1f3983","line":40,"updated":"2025-12-04 09:02:02.000000000","message":"this seems to undo the changes of line 19-23 again","commit_id":"f3445790d1ded475f193b762a89999dec085a5c7"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"270479eca727014fd2d3807a93b49759ac4c4fa4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"attach_volume \u003d copy.deepcopy(servers2100.attach_volume)"},{"line_number":38,"context_line":"show_volume_attachment \u003d copy.deepcopy(servers2100.show_volume_attachment)"},{"line_number":39,"context_line":"list_volume_attachments \u003d copy.deepcopy(servers2100.list_volume_attachments)"},{"line_number":40,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":41,"context_line":"create_backup \u003d copy.deepcopy(servers2100.create_backup)"}],"source_content_type":"text/x-python","patch_set":7,"id":"c5950bf7_88d3ed96","line":40,"in_reply_to":"66dfba7c_2b1f3983","updated":"2025-12-04 09:30:32.000000000","message":"Done","commit_id":"f3445790d1ded475f193b762a89999dec085a5c7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"848536055dddf8d598e36689675a26ca4fead734","unresolved":true,"context_lines":[{"line_number":18,"context_line":"# microversion 2.101 added finish_time to the response"},{"line_number":19,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":20,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":21,"context_line":"    \u0027properties\u0027][\u0027finish_time\u0027] \u003d parameter_types.date_time"},{"line_number":22,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":23,"context_line":"    \u0027required\u0027].append(\u0027finish_time\u0027)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"32b4da70_8b834645","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":60},"updated":"2025-12-04 19:45:00.000000000","message":"from the failing test, finish_time is returned None[1], which parameter_types.date_time does not allow. You need to check why Nova returning the None\n\n\n[1]\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/tempest/api/compute/volumes/test_attach_volume.py\", line 642, in test_attach_volume_instance_action_finish_time\n    action \u003d self.servers_client.show_instance_action(\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/services/compute/servers_client.py\", line 782, in show_instance_action\n    self.validate_response(schema.show_instance_action, resp, body)\n  File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 1113, in validate_response\n    raise exceptions.InvalidHTTPResponseBody(msg)\ntempest.lib.exceptions.InvalidHTTPResponseBody: HTTP response body is invalid json or xml\nDetails: HTTP response body is invalid (None is not of type \u0027string\u0027\n\nFailed validating \u0027type\u0027 in schema[\u0027properties\u0027][\u0027instanceAction\u0027][\u0027properties\u0027][\u0027finish_time\u0027]:\n    {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027iso8601-date-time\u0027}\n\nOn instance[\u0027instanceAction\u0027][\u0027finish_time\u0027]:\n    None)","commit_id":"6cb513039e0827755a6fb66e39fdd74f8852242d"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"ea44cba8a4aee510bcbf8f5e84627b9ecc0f949b","unresolved":true,"context_lines":[{"line_number":18,"context_line":"# microversion 2.101 added finish_time to the response"},{"line_number":19,"context_line":"show_instance_action \u003d copy.deepcopy(servers2100.show_instance_action)"},{"line_number":20,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":21,"context_line":"    \u0027properties\u0027][\u0027finish_time\u0027] \u003d parameter_types.date_time"},{"line_number":22,"context_line":"show_instance_action[\u0027response_body\u0027][\u0027properties\u0027][\u0027instanceAction\u0027]["},{"line_number":23,"context_line":"    \u0027required\u0027].append(\u0027finish_time\u0027)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f0b5eb9d_4b275004","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":60},"in_reply_to":"32b4da70_8b834645","updated":"2025-12-08 08:01:59.000000000","message":"I could get the correct response with finish_time value in instance action show output when using CLI in devstack env. Looks like something is missing in tempest which I am not aware of.\n\nPlease check below snippet from devstack setup.\nhttps://paste.openstack.org/show/829847/","commit_id":"6cb513039e0827755a6fb66e39fdd74f8852242d"}]}
