)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"c7b65a481aa597dee09d02a63f119577c21ea1b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b936b11c_31a0e8b0","updated":"2025-11-17 17:44:55.000000000","message":"recheck","commit_id":"84308e363bc395ae8a12310ff31c4e114293f29c"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"7dce746b979e4d6a479c24cf6c9459750909a4e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"982051a8_72c1000c","updated":"2025-12-02 06:56:46.000000000","message":"@gmaan@ghanshyammann.com @smooney@redhat.com Thank you so much for you inputs, I have tested the change as part of this neutron-tempest-plugin change I created for testing purpose https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/963287.\n\nI enabled the ip_address extension on neutron-tempest-plugin-openvswitch job and test is passing as per the latest results here : https://644cc187bb5bba5bb48f-64990ae6344a6a389f4859507c11a876.ssl.cf1.rackcdn.com/openstack/edd013ba3b9748179aa348d2b14b5812/testr_results.html","commit_id":"3c263e500765f5c0334b3fc32e3b0243d8981276"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f77e069dfef6f6afa98e6963eb0dc0d3b8ef549","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d79ea63b_70af0d51","updated":"2025-12-04 22:30:18.000000000","message":"test is ok but we need to run it somewhere.","commit_id":"3c263e500765f5c0334b3fc32e3b0243d8981276"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b84a89be6ce610942e3b08e1f1fe3f85f0079cf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"bf6edf7e_7ab78a09","in_reply_to":"80b2f653_e3fefa48","updated":"2025-12-31 15:30:27.000000000","message":"+1 for enabling it for all backends","commit_id":"3c263e500765f5c0334b3fc32e3b0243d8981276"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f77e069dfef6f6afa98e6963eb0dc0d3b8ef549","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"824403ae_cbe9e9ab","in_reply_to":"982051a8_72c1000c","updated":"2025-12-04 22:30:18.000000000","message":"Thanks, I am good with the test, but we need to make sure ip_allocation is enabled in some job. It can be on the neutron side, which is fine, but currently it is not enabled in any of the neutron jobs.\n\nCan you check the possibilities or discuss with the neutron team if it can be enabled?","commit_id":"3c263e500765f5c0334b3fc32e3b0243d8981276"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"62858f5132a11553046a509d803ee6e4dd15b7fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"80b2f653_e3fefa48","in_reply_to":"d79ea63b_70af0d51","updated":"2025-12-24 12:19:58.000000000","message":"--\u003e https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/963287\n\nI\u0027ve suggested to enable it for all backends. But at least there is one execution using ML2/OVS: https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_f66/openstack/f6622520cf7747c8b2be7fd5539b7111/testr_results.html","commit_id":"3c263e500765f5c0334b3fc32e3b0243d8981276"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"a69537988441413fde98ed43bf5928a9d6b8a7d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"83521be1_02fa9272","updated":"2026-01-13 09:07:35.000000000","message":"recheck","commit_id":"e282a834d20ed7e5f0c3e001709895ee6b09ac3e"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"e511a35c17cae4dd7500cfa57e2d8c7c8aa225c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9222d15d_486cf579","updated":"2026-02-03 14:42:53.000000000","message":"@gmaan@ghanshyammann.com Do you think we can merge this ? Probably then I can ask folks from neutron tempest plugin to merge the other patch","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc"},"change_message_id":"4357617bc18cdcb1d7ff6ed3389ecf46459214c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"f45a1203_5c94bcf9","updated":"2026-02-11 14:37:45.000000000","message":"Tested and verified on my machine using the Unified-17.1-Ceph-NFS-Ganesha Jenkins job. Code changes are well done and well commented. LGTM","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7823e10cf60c87dfa996dbbbadfdd0a789f09df9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"dfa70d6a_c114afa7","updated":"2026-02-25 01:35:45.000000000","message":"lgtm, new test is passing in neutron plugin, lgtm\n\nhttps://zuul.opendev.org/t/openstack/build/74e84b19cbc9462fbf6bd5fe2d33f277/log/job-output.txt#21913","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"64ed590d3de56418fb8bb81ca685922a9fed06b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"dc512cad_ce18b495","in_reply_to":"f45a1203_5c94bcf9","updated":"2026-02-12 11:33:37.000000000","message":"Thanks a lot Alfredo for testing it. Just a side note, I believe we should refrain from mentioning the downstream jobs names in upstream patches as it might not be relevant here. Thanks again","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"}],"tempest/api/compute/servers/test_create_server.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"94fd78d2cc75d78241a214849f3f32e24f0d91d0","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"05b12060_2bc8dd21","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"updated":"2025-09-05 16:50:59.000000000","message":"To make it work, we need to have the neutron\u0027s ip_allocation extension to be enabled so we need to check that here\n\n    @testtools.skipUnless(utils.is_extension_enabled(\u0027ip_allocation\u0027, \u0027network\u0027),\n                          \u0027ip_allocation extension is not enabled.\u0027)","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c821100d62a693c9ddfdf3a32836c85f3e52125","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fc1725ab_5a8554f3","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"05b12060_2bc8dd21","updated":"2025-11-21 21:43:45.000000000","message":"is this needed? I lost the context of \u0027ip_allocation\u0027 vs \u0027segment\u0027 extension, why we are checking later one and not the former one also?","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"02d3ac3469554f91d53facc5569822a508a48427","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"51175d0a_d40620c6","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"05b12060_2bc8dd21","updated":"2025-11-24 12:57:29.000000000","message":"pls check this dependent neutron tempest plugin change I created for testing purpose https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/963287 . If I use ip_allocation the tests there were getting skipped, I spoke to Yatin and he suggested instead of checking for ip_allocation extension I can instead check for \"segment\" extension to skip test. He mentioned \"segment\" plugin incorporate the ip_allocation extension, so just checking for that is enough","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2ca1b73e59030a96de02a9ff3d32c2fb5a113a54","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"341231be_63000934","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"107eb34d_5cfe2fbb","updated":"2025-11-24 18:40:25.000000000","message":"I remember now that after checking the code and changes, I was on the same page as Sean, then forgot where exactly we were on this.\n\n@ashigupt@redhat.com I think we should focus more on passing the test than skipping via \u0027segment\u0027 extensions. Can you try this test where we have the \u0027ip_allocation\u0027 extensions enabled? Once test is running on tempest jobs, you can debug failure or talk to the Neutron team.\n\nNOTE: in upstream master CI, we do enable all extensions, so tests will not be skipped. There is one mistake I made for extensions enabled on the master, and that is why you are seeing the test is skipped due to the extension not being enabled. https://review.opendev.org/c/openstack/devstack/+/968076","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"76b93db677ac56f9d4101f46e56dbc7b835043cf","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ce1cb69c_5805e0d7","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"341231be_63000934","updated":"2025-12-02 05:44:59.000000000","message":"Using ip_allocation extension itself as the check condition now","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a3c4fa01b4f51259e833e43db917f536844e0b23","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"107eb34d_5cfe2fbb","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"51175d0a_d40620c6","updated":"2025-11-24 13:55:30.000000000","message":"the segments extion is for l3 routed networks and you cant use adressless prot with l3 routed networks.\n\nso checkign for segments is incorrect.\n\nthe segment plugin uses a different ip_allocation value (deferred) and nova wont actully allowe you to create a address less port on a network with l3 routed network segments.\n\nneuton may have a bug in that you may need to enabel that plugin to have the ip_allocation extention aviabley \n\nhttps://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/ip_allocation.py\n\nbut it is it own top level extention \n\nhttps://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/ip_allocation.py#L19-L21\n\nthe segments plugin does maniplati the ip allcoation value\n\nhttps://github.com/openstack/neutron/blob/84f606a9bc17c1f12164e4b1d9fd0b89f658a07a/neutron/services/segments/plugin.py#L103-L112\n\nbut it shoudl not be requried to use adress less prots\n\nwhen adressless prot were added to neutron \n\nhttps://github.com/openstack/neutron/blob/e46ca37684689dc0e8e291e9b4d43b1992ba9d52/releasenotes/notes/add-port-ip-allocation-attr-294a580641998240.yaml\n\nthe db base plugin was modifed to set teh value to none if fixed ips is empty as part of  create_port_db\n\nhttps://github.com/openstack/neutron/commit/b6a90df2ace78bd586f4949e37351fd38351b8dc#diff-74d89505cbeca8ca4414f0c2c961792402b3d88220ec4809dcbb740d50c5b954R1152","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"11a05a78202bd78e1e84c1102609f68eabf47d66","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1fe0b3de_4d8d0231","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"ce1cb69c_5805e0d7","updated":"2025-12-02 05:45:38.000000000","message":"Done","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d34bee523356ed7faa2210686d48968003f5132","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # postfix when checking whether hostname equals self.name."},{"line_number":156,"context_line":"        self.assertEqual(self.name.lower(), hostname.split(\".\")[0], msg)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":160,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"64009d6e_ed89c2b7","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":4},"in_reply_to":"fc1725ab_5a8554f3","updated":"2025-11-22 17:41:00.000000000","message":"the `segment` extention is for L3 routed networks so its not related ot unadressed ports as they are expclity port that only have L2 connecttivy since the do not have an ip.\n\nthe \"ip_allocation\" extion has 3 polcy values imideate (the defualt), deferred (for l3 routed networks) and none (for adressless ports)\n\nso \u0027ip_allocation\u0027 is the only one we care about for this test so we can create a port it it set to none","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4739bd71e7944491c7e55ca5c056b4cb706bc670","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"4f3de79a_913ee9a4","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":43},"updated":"2025-09-05 16:52:27.000000000","message":"nit: this shoudl not be required but it should not break anything either","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"76b93db677ac56f9d4101f46e56dbc7b835043cf","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e03876f8_8915db49","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":43},"in_reply_to":"2a4215a2_49240fb7","updated":"2025-12-02 05:44:59.000000000","message":"Done","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"02d3ac3469554f91d53facc5569822a508a48427","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2a4215a2_49240fb7","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":43},"in_reply_to":"4f3de79a_913ee9a4","updated":"2025-11-24 12:57:29.000000000","message":"Acknowledged","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"11a05a78202bd78e1e84c1102609f68eabf47d66","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e460ee67_16d22fa8","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":43},"in_reply_to":"e03876f8_8915db49","updated":"2025-12-02 05:45:38.000000000","message":"Done","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"08773eabe107497ef07b2501403d2f70f583284a","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        # Verify the port has no fixed IPs"}],"source_content_type":"text/x-python","patch_set":2,"id":"36a560a3_0c6510ab","line":176,"range":{"start_line":176,"start_character":15,"end_line":176,"end_character":17},"updated":"2025-09-05 16:24:32.000000000","message":"I think you are missing ip_allocation\u003dnone to be explicitly pass to port creation. if not passing it is default to None but nova check it for \u0027none\u0027 value.\n9:19\nI am not sure if not passing (None) should be consider same as passing \u0027none\u0027 but seeing neutron definition it is explicitly \u0027none\u0027 https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/ip_allocation.py#L21\n\nif not passing the ip_allocation as \u0027none\u0027 or \u0027deferred\u0027 then Nova do raise error here - https://github.com/openstack/nova/blob/master/nova/network/neutron.py#L2585-L2598\n\n\n- https://zuul.opendev.org/t/openstack/build/f4833165ad3f400badaf83e50619e57c/log/job-output.txt#23754","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"11a05a78202bd78e1e84c1102609f68eabf47d66","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        # Verify the port has no fixed IPs"}],"source_content_type":"text/x-python","patch_set":2,"id":"d953b320_3639f631","line":176,"range":{"start_line":176,"start_character":15,"end_line":176,"end_character":17},"in_reply_to":"24601e32_7c529d86","updated":"2025-12-02 05:45:38.000000000","message":"Done","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9d34bee523356ed7faa2210686d48968003f5132","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        # Verify the port has no fixed IPs"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ba263ac_6051ab71","line":176,"range":{"start_line":176,"start_character":15,"end_line":176,"end_character":17},"in_reply_to":"36a560a3_0c6510ab","updated":"2025-11-22 17:41:00.000000000","message":"so this shold be all that is required\n\ncurl -X POST http://NEUTRON_ENDPOINT/v2.0/ports \\\n    -H \"X-Auth-Token: YOUR_TOKEN\" \\\n    -H \"Content-Type: application/json\" \\\n    -d \u0027{\n        \"port\": {\n            \"network_id\": \"NETWORK_ID\",\n            \"admin_state_up\": true,\n            \"name\": \"addressless-port\",\n            \"fixed_ips\": []\n        }\n    }\u0027\nhttps://specs.openstack.org/openstack/neutron-specs/specs/newton/unaddressed-port.html\n\nthe explciyt specififcation fo no fixed ips is what prevent neutron form asigning the ip\n\niut wil aset ip_allocat\u003dnone seperatly to indeicate that that was intended.\n\nif we look at osc \n\nhttps://docs.openstack.org/python-openstackclient/latest/cli/command-objects/port.html#port-create\n\nthere isent a way to est the ip allocation policy directly\n\nbut you can pass --no-fixed-ip\n\nhttps://github.com/openstack/python-openstackclient/commit/de23ab8d75fe89c164b3b084c53f01c25b9040ca#diff-6d1ceaa8f75c12d77d3df772e2dd536170577ef932eab0737611f51841324889R375\n\nwe can see form the tests that \u0027fixted_ips\u0027: [] \nis all that is required\n\n\n```\n self.network.create_port.assert_called_once_with(**{\n            \u0027admin_state_up\u0027: True,\n            \u0027network_id\u0027: self._port.network_id,\n            \u0027fixed_ips\u0027: [],\n            \u0027name\u0027: \u0027test-port\u0027,\n        })\n```\n\n```\n port_security_enabled\u003dFalse\n ```\n is not relevent and shoudl be removed. but otherwise the port create is corect.","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"76b93db677ac56f9d4101f46e56dbc7b835043cf","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                name\u003dself.__class__.__name__),"},{"line_number":174,"context_line":"                fixed_ips\u003d[],"},{"line_number":175,"context_line":"                port_security_enabled\u003dFalse"},{"line_number":176,"context_line":"                )"},{"line_number":177,"context_line":"        port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        # Verify the port has no fixed IPs"}],"source_content_type":"text/x-python","patch_set":2,"id":"24601e32_7c529d86","line":176,"range":{"start_line":176,"start_character":15,"end_line":176,"end_character":17},"in_reply_to":"5ba263ac_6051ab71","updated":"2025-12-02 05:44:59.000000000","message":"Done","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"08773eabe107497ef07b2501403d2f70f583284a","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # Create a server with unaddressed port"},{"line_number":183,"context_line":"        server \u003d self.create_test_server("},{"line_number":184,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":185,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":186,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":187,"context_line":"                name\u003dself.__class__.__name__),"}],"source_content_type":"text/x-python","patch_set":2,"id":"c2a84689_9bb3a5ab","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":30},"updated":"2025-09-05 16:24:32.000000000","message":"I will say, let\u0027s wait for SSHABLE server. for that you need to pass the validation data. example: https://github.com/openstack/tempest/blob/538f6af8da510e9286ddc762182cfa7170ad7b03/tempest/api/compute/admin/test_volume.py#L97-L104","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0b8206ff1283e58d8c7a2e34b80c3a43d7a46a0e","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # Create a server with unaddressed port"},{"line_number":183,"context_line":"        server \u003d self.create_test_server("},{"line_number":184,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":185,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":186,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":187,"context_line":"                name\u003dself.__class__.__name__),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9cced28b_159f7dfa","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":30},"in_reply_to":"128bd0f3_486e0f65","updated":"2025-09-05 17:27:52.000000000","message":"ah, ipless. yeah, we cannot verify things on ip. wait for Active and checking port attachment is good enough","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"94fd78d2cc75d78241a214849f3f32e24f0d91d0","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # Create a server with unaddressed port"},{"line_number":183,"context_line":"        server \u003d self.create_test_server("},{"line_number":184,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":185,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":186,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":187,"context_line":"                name\u003dself.__class__.__name__),"}],"source_content_type":"text/x-python","patch_set":2,"id":"6a8e5629_57b59555","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":30},"in_reply_to":"c2a84689_9bb3a5ab","updated":"2025-09-05 16:50:59.000000000","message":"and for that you need to create the default network also by defining the  create_default_network \u003d True at test class level @L37","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4739bd71e7944491c7e55ca5c056b4cb706bc670","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # Create a server with unaddressed port"},{"line_number":183,"context_line":"        server \u003d self.create_test_server("},{"line_number":184,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":185,"context_line":"            name\u003ddata_utils.rand_name("},{"line_number":186,"context_line":"                prefix\u003dCONF.resource_name_prefix,"},{"line_number":187,"context_line":"                name\u003dself.__class__.__name__),"}],"source_content_type":"text/x-python","patch_set":2,"id":"128bd0f3_486e0f65","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":30},"in_reply_to":"c2a84689_9bb3a5ab","updated":"2025-09-05 16:52:27.000000000","message":"so we wont be able to wait for ssh able unless we add the adressless port as the second interface.","commit_id":"147e6ed7f1fdc4a6364f4d667b58634d128e4cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c821100d62a693c9ddfdf3a32836c85f3e52125","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    @testtools.skipUnless("},{"line_number":160,"context_line":"        utils.is_extension_enabled(\u0027segments\u0027, \u0027network\u0027),"},{"line_number":161,"context_line":"        \u0027segments extension is not enabled.\u0027)"},{"line_number":162,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":163,"context_line":"        \"\"\"Test creating VM with unaddressed port"}],"source_content_type":"text/x-python","patch_set":7,"id":"bb5e8c36_eef88567","line":160,"range":{"start_line":160,"start_character":36,"end_line":160,"end_character":44},"updated":"2025-11-21 21:43:45.000000000","message":"this needs to be \u0027segment\u0027 (without \u0027s\u0027) \n- https://github.com/openstack/neutron-lib/blob/439f4373d395953ad9d45bfff824e2e15fc3cad1/neutron_lib/api/definitions/segment.py#L31\n\nAs this extensions check will pass because devstack configure tempest with all extensions enabled.\n\nThere is separate service \u0027neutron-segments\u0027 to be enabled for this extension in neutron. We do not have any existing way to know about \u0027neutron-segments\u0027 service is enabled or not.\n\n- https://github.com/openstack/neutron/blob/ed11af883d9e81a37c3956d92e6f9eed567e7b27/zuul.d/tempest-singlenode.yaml#L126","commit_id":"c7e264ea173154e1fb3fb37eaeb6fa5ddb4732ff"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"76b93db677ac56f9d4101f46e56dbc7b835043cf","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    @testtools.skipUnless("},{"line_number":160,"context_line":"        utils.is_extension_enabled(\u0027segments\u0027, \u0027network\u0027),"},{"line_number":161,"context_line":"        \u0027segments extension is not enabled.\u0027)"},{"line_number":162,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":163,"context_line":"        \"\"\"Test creating VM with unaddressed port"}],"source_content_type":"text/x-python","patch_set":7,"id":"eea9fa1f_8dc50371","line":160,"range":{"start_line":160,"start_character":36,"end_line":160,"end_character":44},"in_reply_to":"2090dd65_cdc11e44","updated":"2025-12-02 05:44:59.000000000","message":"Using ip_allocation extension itself now","commit_id":"c7e264ea173154e1fb3fb37eaeb6fa5ddb4732ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8887e682d0522cb6ebc8f35f3f3aa6e47afbe2ea","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    @testtools.skipUnless("},{"line_number":160,"context_line":"        utils.is_extension_enabled(\u0027segments\u0027, \u0027network\u0027),"},{"line_number":161,"context_line":"        \u0027segments extension is not enabled.\u0027)"},{"line_number":162,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":163,"context_line":"        \"\"\"Test creating VM with unaddressed port"}],"source_content_type":"text/x-python","patch_set":7,"id":"2090dd65_cdc11e44","line":160,"range":{"start_line":160,"start_character":36,"end_line":160,"end_character":44},"in_reply_to":"bb5e8c36_eef88567","updated":"2025-11-24 14:08:05.000000000","message":"as noted in my comment above checking for segments is incorrect.\n\nthat is an unrealted extion for l3 routed network vlan segment affitniy \n\nhttps://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/segment.py\n\ni.e. for mapping subnets to l2 broadcast domains typically vlans or phsnets.\n\nsegments are associated with neutrno subnets and address less port explicit do not have an association with ane l3 segment or subnet.\n\nthe exist on the network purely at the l2 level.\n\nthe nova code actilly impleictly expect this extion to be alwasy present \n\nhttps://github.com/openstack/nova/commit/0d71c5a1c1f0e474d4b612eadf8787172af34e15\nand fals back to the imideat mode when not.\n\nbasicllay we do not check if its exposed via neutron epxlity liek we do for other sicne we treat the lack fo the feild as teh implied \"imediate\" policy.\n\nbecause of that tis posible neutron has a bug and does tno advertise it by default\nthat or it does but we are not checkign for it because it was provide before we added this fucntionatly.\n\nin neutron the supprot was added in teh newton release but we only added the nova support in yoga so newton woudl have been EOL and we coudl rely on all neutron deployment supprotign the ip_allocation extension when we added this supprot.","commit_id":"c7e264ea173154e1fb3fb37eaeb6fa5ddb4732ff"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"11a05a78202bd78e1e84c1102609f68eabf47d66","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @decorators.idempotent_id(\u002738b98870-f68d-4192-af36-555dac193ad1\u0027)"},{"line_number":159,"context_line":"    @testtools.skipUnless("},{"line_number":160,"context_line":"        utils.is_extension_enabled(\u0027segments\u0027, \u0027network\u0027),"},{"line_number":161,"context_line":"        \u0027segments extension is not enabled.\u0027)"},{"line_number":162,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":163,"context_line":"        \"\"\"Test creating VM with unaddressed port"}],"source_content_type":"text/x-python","patch_set":7,"id":"7cb5f155_2ab83aec","line":160,"range":{"start_line":160,"start_character":36,"end_line":160,"end_character":44},"in_reply_to":"eea9fa1f_8dc50371","updated":"2025-12-02 05:45:38.000000000","message":"Done","commit_id":"c7e264ea173154e1fb3fb37eaeb6fa5ddb4732ff"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d3fb3119de2b2eaa8c77808e99ffb8df0f1dfb3b","unresolved":true,"context_lines":[{"line_number":164,"context_line":"    @testtools.skipUnless("},{"line_number":165,"context_line":"        utils.is_extension_enabled(\u0027ip_allocation\u0027, \u0027network\u0027),"},{"line_number":166,"context_line":"        \u0027ip_allocation extension is not enabled.\u0027)"},{"line_number":167,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":168,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        Verify that a server can be created successfully using a port"}],"source_content_type":"text/x-python","patch_set":15,"id":"bd359ea0_b7bb1311","line":167,"updated":"2026-01-29 09:03:50.000000000","message":"I commented on the n-t-p patch also, but to be visible here also: why not have this test in neutron-tempest-plugin?","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46d6161108c928d3d3531b00c918677d521a95b9","unresolved":true,"context_lines":[{"line_number":164,"context_line":"    @testtools.skipUnless("},{"line_number":165,"context_line":"        utils.is_extension_enabled(\u0027ip_allocation\u0027, \u0027network\u0027),"},{"line_number":166,"context_line":"        \u0027ip_allocation extension is not enabled.\u0027)"},{"line_number":167,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":168,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        Verify that a server can be created successfully using a port"}],"source_content_type":"text/x-python","patch_set":15,"id":"81a13e3f_29f7dbe7","line":167,"in_reply_to":"a22b8ab9_24c32dd4","updated":"2026-02-03 19:04:07.000000000","message":"that and generally the plugins shoudl only be needed for advance functionality that need complicate setup or esoteric feature that shoudl not be expected to work on any cloud\n\nunaddressed port isn\u0027t a particularly  esoteric feature so this feels like it shoudl be in teh scope fo core tempest and yes we would like to test this in the nova gate without needing to have the neutron tempest plugin.\n\nwe could perhaps add that to some jobs but i don\u0027t think we currently use it in genreal","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a4644ddaccc4339134f28e753b2e4d7ed9762489","unresolved":true,"context_lines":[{"line_number":164,"context_line":"    @testtools.skipUnless("},{"line_number":165,"context_line":"        utils.is_extension_enabled(\u0027ip_allocation\u0027, \u0027network\u0027),"},{"line_number":166,"context_line":"        \u0027ip_allocation extension is not enabled.\u0027)"},{"line_number":167,"context_line":"    def test_boot_vm_with_unaddressed_port(self):"},{"line_number":168,"context_line":"        \"\"\"Test creating VM with unaddressed port"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        Verify that a server can be created successfully using a port"}],"source_content_type":"text/x-python","patch_set":15,"id":"a22b8ab9_24c32dd4","line":167,"in_reply_to":"bd359ea0_b7bb1311","updated":"2026-01-29 16:22:23.000000000","message":"I think one reason is that it is useful for compute service also so having it in tempest can enable this test to run on compute as well as neutron gate.","commit_id":"14db1e80741014dcab4733202d0d45388f77a741"}]}
