)]}'
{"id":"openstack%2Fneutron-tempest-plugin~998617","triplet_id":"openstack%2Fneutron-tempest-plugin~master~I1bb5e02e548c4b54a8bb6c242e4033a12ddab353","project":"openstack/neutron-tempest-plugin","branch":"master","hashtags":[],"change_id":"I1bb5e02e548c4b54a8bb6c242e4033a12ddab353","subject":"Add dynamic VNI provisioning for EVPN tests","status":"ABANDONED","created":"2026-07-24 12:59:55.000000000","updated":"2026-07-24 13:01:25.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"5011720d836504bc750295f6e929baee156bb9fe","_number":998617,"virtual_id_number":998617,"owner":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"actions":{},"labels":{"Verified":{"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"1d2e4c895efef4f81a65eaec0a5300c0c2972172","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"date":"2026-07-24 12:59:55.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"5011720d836504bc750295f6e929baee156bb9fe","tag":"autogenerated:gerrit:abandon","author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"date":"2026-07-24 13:01:25.000000000","message":"Abandoned\n\ncreated by mistake due to removal of Change-Id","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"5222bca61fb8b7a6b62463ba1aa36cf45d4054fc","revisions":{"5222bca61fb8b7a6b62463ba1aa36cf45d4054fc":{"kind":"REWORK","_number":1,"created":"2026-07-24 12:59:55.000000000","uploader":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"ref":"refs/changes/17/998617/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron-tempest-plugin","ref":"refs/changes/17/998617/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron-tempest-plugin refs/changes/17/998617/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron-tempest-plugin refs/changes/17/998617/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron-tempest-plugin refs/changes/17/998617/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron-tempest-plugin refs/changes/17/998617/1"}}},"commit":{"parents":[{"commit":"60b17d2ce1c69b8efd746d8dc12964927080a118","subject":"Add EVPN network advanced server operations tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-tempest-plugin/commit/60b17d2ce1c69b8efd746d8dc12964927080a118"}]}],"author":{"name":"Eduardo Olivares","email":"eolivare@redhat.com","date":"2026-07-24 12:43:56.000000000","tz":120},"committer":{"name":"Eduardo Olivares","email":"eolivare@redhat.com","date":"2026-07-24 12:59:46.000000000","tz":120},"subject":"Add dynamic VNI provisioning for EVPN tests","message":"Add dynamic VNI provisioning for EVPN tests\n\nAdd EVPNVNIProvisioner, a standalone helper that dynamically\ncreates and tears down VNI infrastructure on the test machine\n(spine) by shelling out to sudo ip and sudo vtysh. This mirrors\nthe static setup done by the Zuul playbook but allows per-test\nVNI allocation, enabling parallel EVPN test execution and tests\nthat require multiple VNIs.\n\nAdd test_evpn_port_detach_attach which uses two dynamically\nprovisioned VNIs to move a port between VMs on different tenant\nnetworks, verifying EVPN connectivity is maintained via hostname\nchecks. This test is skipped when dynamic VNI provisioning is\nnot configured.\n\nWhen evpn_vtep_ip is configured in tempest.conf, tests allocate\nVNIs dynamically from a configurable range. When not configured,\ntests fall back to the static evpn_vni value for backward\ncompatibility with the current CI setup.\n\nOSPRH-32939\n\nCo-Authored-By: Miro Tomaska \u003cmtomaska@redhat.com\u003e\nAssisted-By: Claude Opus 4.6\nChange-Id: I1bb5e02e548c4b54a8bb6c242e4033a12ddab353\nSigned-off-by: Eduardo Olivares \u003ceolivare@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-tempest-plugin/commit/5222bca61fb8b7a6b62463ba1aa36cf45d4054fc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron-tempest-plugin/commit/5222bca61fb8b7a6b62463ba1aa36cf45d4054fc"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
