)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c6d3c26e7849836c53115294bc3e32fb7c9f6383","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/c/openstack/nova/+/990682"},{"line_number":13,"context_line":"Change-Id: I241665d8f901cdd1687311da469bc0c5c6955a3c"},{"line_number":14,"context_line":"Signed-off-by: Dan Smith \u003cdansmith@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"91358a8d_b84de072","line":14,"updated":"2026-06-08 14:43:01.000000000","message":"Oops, should have `Generated-By`. Will fix on the next push.","commit_id":"65ee6d470e37148a62bb49aa9e5aac25081bdb0e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"09cae54ff1f06e94c156a4af5566e6b382d19d4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"36cb5523_e59a7e3a","updated":"2026-06-09 12:47:56.000000000","message":"Code looks good, just have some questions before giving a +1","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a0dfc0895f524b72493f0924d302c4b0c54482e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c8ce3958_3d5c23a7","updated":"2026-06-09 14:10:34.000000000","message":"Last change for the negative tests OTW in a sec","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"55305fc1ac3371291948f7f3ae119b8a854347f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f49ff2be_ee47d0b6","updated":"2026-06-12 13:16:46.000000000","message":"Thank you for addressing my comments! Code change is thorough and well-structured","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0f53812194a9b9d6f9b13f24ef2a1cc80129ea2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a8672c60_568882ac","updated":"2026-06-11 01:23:30.000000000","message":"These tests look good to me but I don\u0027t find that `tempest.api.compute.servers.test_servers_negative` is running in any jobs. Please let me know if I have missed it.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4072b4ed252ba75af09aaf2e1a7818e2193ec6a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4f21cb3c_77891d62","updated":"2026-06-12 16:58:55.000000000","message":"This is good (except negative tests which you do not need to add in tempest) but i would like to see if server cannot be moved with pin AZ and after unpin, it can be moved to new host, that will be a good test to verify the end goal of unpin AZ.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4dc7491c5f2ed6217cbba447b9b23d3d903fc225","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3f8e689c_4efb16f5","updated":"2026-06-15 23:57:13.000000000","message":"Tests LGTM.","commit_id":"6622243f77b14d00e6ec244fda1359088c23435f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"be99433a34108ac3ddd057a482144d0a06853d1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"31639f57_d68318fb","updated":"2026-06-17 15:22:18.000000000","message":"approving as nova chnage is merged now","commit_id":"6622243f77b14d00e6ec244fda1359088c23435f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ef49822d10dcd87a1b03aa0a571c5c881a369d41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ab6df7a1_1ebfcc98","updated":"2026-06-17 17:23:14.000000000","message":"recheck fail in an unrelated test","commit_id":"6622243f77b14d00e6ec244fda1359088c23435f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"51ca889c193c250d628723cb8928c8cbdd3a4869","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cfb991ef_f776b98c","updated":"2026-06-12 23:08:54.000000000","message":"test running ok, will approve it once nova changes are merged https://zuul.opendev.org/t/openstack/build/2645b5b6eb924e6ea6bc830db811b48f/log/job-output.txt#23524","commit_id":"6622243f77b14d00e6ec244fda1359088c23435f"}],"tempest/api/compute/servers/test_servers.py":[{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"09cae54ff1f06e94c156a4af5566e6b382d19d4b","unresolved":true,"context_lines":[{"line_number":344,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":345,"context_line":"    create_default_network \u003d True"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    @classmethod"},{"line_number":348,"context_line":"    def setup_clients(cls):"},{"line_number":349,"context_line":"        super(ServersUpdatePinnedAZ2104Test, cls).setup_clients()"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @decorators.idempotent_id(\u00279277c1bd-7d66-4032-9370-eead4ec8461d\u0027)"},{"line_number":352,"context_line":"    def test_unpin_and_repin_availability_zone(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"37b806bf_d3a459b4","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":65},"updated":"2026-06-09 12:47:56.000000000","message":"is this needed?","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4ea06a1de2f2a193db1103f154cb7c8886d460a6","unresolved":true,"context_lines":[{"line_number":344,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":345,"context_line":"    create_default_network \u003d True"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    @classmethod"},{"line_number":348,"context_line":"    def setup_clients(cls):"},{"line_number":349,"context_line":"        super(ServersUpdatePinnedAZ2104Test, cls).setup_clients()"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @decorators.idempotent_id(\u00279277c1bd-7d66-4032-9370-eead4ec8461d\u0027)"},{"line_number":352,"context_line":"    def test_unpin_and_repin_availability_zone(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"d45420d8_9ca54ec1","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":65},"in_reply_to":"37b806bf_d3a459b4","updated":"2026-06-09 13:44:37.000000000","message":"Probably not - this was boiler plate from claude and my eyes glazed over it :)","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"5f7538f31b5b807097f3c4d64a65bbf2dff62f54","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":345,"context_line":"    create_default_network \u003d True"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    @classmethod"},{"line_number":348,"context_line":"    def setup_clients(cls):"},{"line_number":349,"context_line":"        super(ServersUpdatePinnedAZ2104Test, cls).setup_clients()"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @decorators.idempotent_id(\u00279277c1bd-7d66-4032-9370-eead4ec8461d\u0027)"},{"line_number":352,"context_line":"    def test_unpin_and_repin_availability_zone(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b9aaf59e_5ca62d95","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":65},"in_reply_to":"d45420d8_9ca54ec1","updated":"2026-06-09 14:08:37.000000000","message":"Acknowledged","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a0dfc0895f524b72493f0924d302c4b0c54482e7","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":345,"context_line":"    create_default_network \u003d True"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    @classmethod"},{"line_number":348,"context_line":"    def setup_clients(cls):"},{"line_number":349,"context_line":"        super(ServersUpdatePinnedAZ2104Test, cls).setup_clients()"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @decorators.idempotent_id(\u00279277c1bd-7d66-4032-9370-eead4ec8461d\u0027)"},{"line_number":352,"context_line":"    def test_unpin_and_repin_availability_zone(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c1bb0348_a541bccc","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":65},"in_reply_to":"d45420d8_9ca54ec1","updated":"2026-06-09 14:10:34.000000000","message":"Done","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"09cae54ff1f06e94c156a4af5566e6b382d19d4b","unresolved":true,"context_lines":[{"line_number":354,"context_line":"        # Discover an available AZ"},{"line_number":355,"context_line":"        azs \u003d self.availability_zone_client.list_availability_zones("},{"line_number":356,"context_line":"            )[\u0027availabilityZoneInfo\u0027]"},{"line_number":357,"context_line":"        az_name \u003d azs[0][\u0027zoneName\u0027]"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Create server pinned to that AZ"},{"line_number":360,"context_line":"        server \u003d self.create_test_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"c34e3fcf_fec9637d","line":357,"updated":"2026-06-09 12:47:56.000000000","message":"is it guaranteed that this specific zone will be available? I think there should be a step to check if the zone is available before moving on.\n\nExample:\n```\naz_list \u003d self.availability_zone_client.list_availability_zones()[\u0027availabilityZoneInfo\u0027]\naz_list_filtered \u003d []\nfor az in az_list: \n  if az[\u0027zoneState\u0027][\u0027available\u0027]:\n    az_list_filtered.append(az)\naz_name \u003d az_list_filtered[0]\naz_name \u003d azs[0][\u0027zoneName\u0027]\n```","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"7d75b138abadf6af849a288d2eef7ff2718c99b1","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        # Discover an available AZ"},{"line_number":355,"context_line":"        azs \u003d self.availability_zone_client.list_availability_zones("},{"line_number":356,"context_line":"            )[\u0027availabilityZoneInfo\u0027]"},{"line_number":357,"context_line":"        az_name \u003d azs[0][\u0027zoneName\u0027]"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Create server pinned to that AZ"},{"line_number":360,"context_line":"        server \u003d self.create_test_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"21926432_c72d589b","line":357,"in_reply_to":"7b73f803_c266f662","updated":"2026-06-09 14:07:33.000000000","message":"Acknowledged","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a0dfc0895f524b72493f0924d302c4b0c54482e7","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        # Discover an available AZ"},{"line_number":355,"context_line":"        azs \u003d self.availability_zone_client.list_availability_zones("},{"line_number":356,"context_line":"            )[\u0027availabilityZoneInfo\u0027]"},{"line_number":357,"context_line":"        az_name \u003d azs[0][\u0027zoneName\u0027]"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Create server pinned to that AZ"},{"line_number":360,"context_line":"        server \u003d self.create_test_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ba9a57a_4f3e61f7","line":357,"in_reply_to":"7b73f803_c266f662","updated":"2026-06-09 14:10:34.000000000","message":"Done","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cb60ce3f5d01febe1b6435e981c9ab23ba293885","unresolved":true,"context_lines":[{"line_number":354,"context_line":"        # Discover an available AZ"},{"line_number":355,"context_line":"        azs \u003d self.availability_zone_client.list_availability_zones("},{"line_number":356,"context_line":"            )[\u0027availabilityZoneInfo\u0027]"},{"line_number":357,"context_line":"        az_name \u003d azs[0][\u0027zoneName\u0027]"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Create server pinned to that AZ"},{"line_number":360,"context_line":"        server \u003d self.create_test_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"7b73f803_c266f662","line":357,"in_reply_to":"9dd43654_f5372901","updated":"2026-06-09 13:48:35.000000000","message":"Oh no, sorry, I\u0027m not yet caffeinated :D\n\nThis AZ will always be there, and we\u0027re booting with that AZ as the pin on L361 so that will be the AZ on boot. Now, the remote may not have capacity there and/or allow us to boot, so that could be a problem. Not really sure how best to address that in a reliable way without adding a config option.\n\nPerhaps I\u0027ll boot once, see what AZ I land in and then use that AZ for this test. Not perfectly reliable on a busy cloud, but probably better than this.","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4ea06a1de2f2a193db1103f154cb7c8886d460a6","unresolved":true,"context_lines":[{"line_number":354,"context_line":"        # Discover an available AZ"},{"line_number":355,"context_line":"        azs \u003d self.availability_zone_client.list_availability_zones("},{"line_number":356,"context_line":"            )[\u0027availabilityZoneInfo\u0027]"},{"line_number":357,"context_line":"        az_name \u003d azs[0][\u0027zoneName\u0027]"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Create server pinned to that AZ"},{"line_number":360,"context_line":"        server \u003d self.create_test_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"9dd43654_f5372901","line":357,"in_reply_to":"c34e3fcf_fec9637d","updated":"2026-06-09 13:44:37.000000000","message":"This is the first AZ, which has to be there, IIRC. In a base install it\u0027s the internal \"nova\" zone that at least all the control services have to be in. However, while reading your comment I\u0027m realizing that on a non-devstack install we could have been put into a different AZ than the first/only one and thus L366 (et al) would be wrong. So let me retool this a bit.","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"}],"tempest/api/compute/servers/test_servers_negative.py":[{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"09cae54ff1f06e94c156a4af5566e6b382d19d4b","unresolved":true,"context_lines":[{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    @classmethod"},{"line_number":627,"context_line":"    def setup_clients(cls):"},{"line_number":628,"context_line":"        super(ServersNegativePinnedAZ2104Test, cls).setup_clients()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    @classmethod"},{"line_number":631,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"516b9b01_6f94cf08","line":628,"range":{"start_line":626,"start_character":0,"end_line":628,"end_character":67},"updated":"2026-06-09 12:47:56.000000000","message":"Same, is this needed?","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a0dfc0895f524b72493f0924d302c4b0c54482e7","unresolved":false,"context_lines":[{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    @classmethod"},{"line_number":627,"context_line":"    def setup_clients(cls):"},{"line_number":628,"context_line":"        super(ServersNegativePinnedAZ2104Test, cls).setup_clients()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    @classmethod"},{"line_number":631,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bc630b96_ea6b85dc","line":628,"range":{"start_line":626,"start_character":0,"end_line":628,"end_character":67},"in_reply_to":"516b9b01_6f94cf08","updated":"2026-06-09 14:10:34.000000000","message":"Done","commit_id":"fb4897a73ba02a8fdbe4b275a0e30533ce7550bc"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4072b4ed252ba75af09aaf2e1a7818e2193ec6a9","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2bef8940_85061488","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"updated":"2026-06-12 16:58:55.000000000","message":"we do not need to add the negative tests as they are covered in nova side unit tests. https://docs.openstack.org/tempest/latest/HACKING.html#negative-tests","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9c67a6c6d2c14967ee3427b779a82fcaa0225444","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ecc31624_8b2d6413","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"2bef8940_85061488","updated":"2026-06-12 17:04:15.000000000","message":"So I wonder if we should consider removing this file? I didn\u0027t find these tests running in any job but this file makes you think the tests are running somewhere.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c8e57364ed25bbfdba4c325cdadfcfe3d6e35a49","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"96c25880_899d6476","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"3c92fbd3_7c8c195e","updated":"2026-06-12 17:26:03.000000000","message":"they are run in tempest-extra-tests jobs, https://zuul.opendev.org/t/openstack/build/c584ed72d6a148c9b36e0df2aa7927fc/log/job-output.txt#24080\n\nHistorically, those negative tests were added for the interop working group (refstack), and it ended up growing more. If negative tests are touching the DB verification, those can be easily covered on the project side unit/functional tests when we do not need to duplicate those in tempest and keep integration testing only as part of the scope. If there are some assertions checking errors between API tests or operations, then it is good to add but only error checking tests are not.\n\nAs interop working group/program is now gone, I think removing these duplicate negatibve tests can be removed but at least i prefer not to add more.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"333aa8008ad791439c8d348e674e5699befd63bb","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e44d2791_2ed5d67b","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"96c25880_899d6476","updated":"2026-06-12 17:30:29.000000000","message":"\u003e they are run in tempest-extra-tests jobs, https://zuul.opendev.org/t/openstack/build/c584ed72d6a148c9b36e0df2aa7927fc/log/job-output.txt#24080\n\nAh, thanks, I had not been able to find them with my https://codesearch.openstack.org","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d0982481705db709c850a7e8cf293b2d0fed04d8","unresolved":false,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e32052d0_307595ba","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"96c25880_899d6476","updated":"2026-06-12 17:30:01.000000000","message":"Okay, I don\u0027t understand the logic really. To me, tempest is for making sure the thing being tested actually does what it says it should (API-wise). Functional tests are still synthetic.\n\nBut, I shan\u0027t argue :)","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5987e92bf86565392f347c3b9151fd4aba9fc36a","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4af4a03a_026c2765","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"e44d2791_2ed5d67b","updated":"2026-06-12 17:32:40.000000000","message":"FWIW I like the idea of the negative Tempest tests bc of true environment vs synthetic but I understand the need for tradeoffs with resource usage so I also shan\u0027t argue.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6deb96be4a600870e891453126166241577ab260","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fb75a9a6_f6622a64","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"ecc31624_8b2d6413","updated":"2026-06-12 17:04:47.000000000","message":"(not as part of this change but just as a general question separately)","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fc51f9d137c3118319dca73a06414cb603e916d9","unresolved":true,"context_lines":[{"line_number":615,"context_line":"                          self.alt_client.delete_server,"},{"line_number":616,"context_line":"                          self.server_id)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class ServersNegativePinnedAZ2104Test(base.BaseV2ComputeTest):"},{"line_number":620,"context_line":"    \"\"\"Negative tests for server pinned AZ update with microversion \u003e\u003d 2.104\"\"\""},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    min_microversion \u003d \u00272.104\u0027"},{"line_number":623,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":624,"context_line":"    create_default_network \u003d True"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3c92fbd3_7c8c195e","line":622,"range":{"start_line":618,"start_character":0,"end_line":622,"end_character":30},"in_reply_to":"fb75a9a6_f6622a64","updated":"2026-06-12 17:14:32.000000000","message":"Hmm, why not have these in tempest? I know they\u0027re covered in the functional tests but this is pretty important real-world check assertion to make sure the user can\u0027t (effectively) corrupt the database by pinning an instance to another AZ.","commit_id":"e4150efade3ed5ec1e39cf14baaf3b3cb9e8e4c5"}]}
