)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28a9b5383a9f5cb0618b021cadd80ae93b9882b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ae7b65ea_a2c8296e","updated":"2026-07-14 12:25:59.000000000","message":"i see ghanshyam has some feed back on the final testing in the fix patch but i thinkw e are boot agreed that the repoducer is valid so lets proceed with that part for now","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"}],"nova/tests/functional/regressions/test_bug_2160224.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07a8c9bec3230e249c37b642bdc31ccddbf7044f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.addCleanup(event.set)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        def fake_attachment_create(*args, **kwargs):"},{"line_number":40,"context_line":"            event.wait(2)"},{"line_number":41,"context_line":"            return nova_fixtures.CinderFixture.fake_attachment_create("},{"line_number":42,"context_line":"                self.cinder, *args, **kwargs)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"60102fa4_8dfdcfe5","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":25},"updated":"2026-07-13 22:28:05.000000000","message":"i think 2 sec is more than enough to execte the test and assert on None attacment_id","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07a8c9bec3230e249c37b642bdc31ccddbf7044f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        ex \u003d self.assertRaises("},{"line_number":60,"context_line":"            client.OpenStackApiException, self._attach_volume, server,"},{"line_number":61,"context_line":"            volume_id)"},{"line_number":62,"context_line":"        self.assertEqual(400, ex.response.status_code)"},{"line_number":63,"context_line":"        self.assertIn("},{"line_number":64,"context_line":"            \"Invalid input for field/attribute attachment_id. Value: None. \""},{"line_number":65,"context_line":"            \"None is not of type \u0027string\u0027\", str(ex))"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc46eef2_39710363","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":54},"updated":"2026-07-13 22:28:05.000000000","message":"this does not give the actual code users get (which is 200) but due to response schema validation we have to check 400 here","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4e3c4770caad3b444394f1d1199f8eaef4a671f6","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(400, ex.response.status_code)"},{"line_number":63,"context_line":"        self.assertIn("},{"line_number":64,"context_line":"            \"Invalid input for field/attribute attachment_id. Value: None. \""},{"line_number":65,"context_line":"            \"None is not of type \u0027string\u0027\", str(ex))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_attach_and_list_race(self):"},{"line_number":68,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"}],"source_content_type":"text/x-python","patch_set":1,"id":"fdd5c941_3e20dfa0","line":65,"updated":"2026-07-10 10:01:34.000000000","message":"just to note, this while this is what we return to the client this is totally misleading. The request is valid, the input to nova is valid, the client is correctly sending the request. So this is highly misleading info to the client produced by our response schema validation. I\u0027m leaning towards having a separate bug to change the response schema validation errors to HTTP 500","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28a9b5383a9f5cb0618b021cadd80ae93b9882b6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(400, ex.response.status_code)"},{"line_number":63,"context_line":"        self.assertIn("},{"line_number":64,"context_line":"            \"Invalid input for field/attribute attachment_id. Value: None. \""},{"line_number":65,"context_line":"            \"None is not of type \u0027string\u0027\", str(ex))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_attach_and_list_race(self):"},{"line_number":68,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"}],"source_content_type":"text/x-python","patch_set":1,"id":"bdabde0b_58a8533c","line":65,"in_reply_to":"1da1e698_5eedd844","updated":"2026-07-14 12:25:59.000000000","message":"Acknowledged","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e3289504a7e193a1d55daa133c45989bed9157fe","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(400, ex.response.status_code)"},{"line_number":63,"context_line":"        self.assertIn("},{"line_number":64,"context_line":"            \"Invalid input for field/attribute attachment_id. Value: None. \""},{"line_number":65,"context_line":"            \"None is not of type \u0027string\u0027\", str(ex))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_attach_and_list_race(self):"},{"line_number":68,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"}],"source_content_type":"text/x-python","patch_set":1,"id":"1da1e698_5eedd844","line":65,"in_reply_to":"bef9b714_8d9d80d8","updated":"2026-07-10 11:09:36.000000000","message":"filed https://bugs.launchpad.net/nova/+bug/2160303 to track changing the response schema validation error code","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"96904c1f7794c9d0c3ee4f883036dc8e18754248","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertEqual(400, ex.response.status_code)"},{"line_number":63,"context_line":"        self.assertIn("},{"line_number":64,"context_line":"            \"Invalid input for field/attribute attachment_id. Value: None. \""},{"line_number":65,"context_line":"            \"None is not of type \u0027string\u0027\", str(ex))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_attach_and_list_race(self):"},{"line_number":68,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"}],"source_content_type":"text/x-python","patch_set":1,"id":"bef9b714_8d9d80d8","line":65,"in_reply_to":"fdd5c941_3e20dfa0","updated":"2026-07-10 10:05:23.000000000","message":"so responce schmea validation is not enabeld in production we explcity document that its only for testing \n\nthe request schema validation on the other hand is intended for production use\n\n400 is correct for request and i agree 500 is correct for responce validation failures","commit_id":"2c2a8e9bd0cba07793c69a79af6d1040e2a52381"}]}
