)]}'
{"id":"openstack%2Fdevstack~985168","triplet_id":"openstack%2Fdevstack~master~I6f2f2ce433f0f8bfd442f82658f01b46b9264f84","project":"openstack/devstack","branch":"master","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-04-17 21:00:50.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":["py3.14"],"change_id":"I6f2f2ce433f0f8bfd442f82658f01b46b9264f84","subject":"python: route common install paths through shared helpers","status":"NEW","created":"2026-04-17 18:56:11.000000000","updated":"2026-04-22 22:38:14.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":3,"unresolved_comment_count":3,"has_review_started":true,"meta_rev_id":"b83dee571e6c731f7f23dd70f6255e4aee71afe8","_number":985168,"virtual_id_number":985168,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-04-17 21:00:50.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2026-04-17 19:56:14.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":-1,"date":"2026-04-17 18:56:24.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-17 19:56:14.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2026-04-17 21:00:50.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"da26d6e88a5fcac4e9ba90145846d54e4230ef82","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 18:56:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ed6766dbb9d8141fddf5ebbf5cabf4526e9aa97f","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 18:56:24.000000000","message":"Patch Set 1: Workflow-1","accounts_in_message":[],"_revision_number":1},{"id":"c69589b91d5807a0f23692ceedfdfb11c04c4c5c","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 19:03:50.000000000","message":"Patch Set 1:\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2b5f6de1a693321588e1b8ee0ffa50595e8416d2","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-17 19:56:14.000000000","message":"Patch Set 1: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/500d80f0949042168b096a4fed161410\n\n- devstack-platform-centos-10-stream https://softwarefactory-project.io/zuul/t/rdoproject.org/build/44d5257e0db241e0bdd8c80b393a1106 : FAILURE in 58m 58s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"5dca7009c6386433cca6e67801938031fcdbff8a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-17 21:00:50.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/5ff62945a0aa423389858d5062aaec14\n\n- grenade https://zuul.opendev.org/t/openstack/build/cbdd7b95ca944980b1326315f5a806e0 : SUCCESS in 1h 10m 50s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fb629e7d8e824e52bfcc2ac24bb14d03 : SUCCESS in 1h 51m 32s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d89d1bfe387e4eb09227c906de46a548 : SUCCESS in 4m 02s\n- devstack https://zuul.opendev.org/t/openstack/build/e29940fcfdbb4d4fa8242f4e39e98fb1 : SUCCESS in 18m 34s\n- devstack-ipv6 https://zuul.opendev.org/t/openstack/build/1292db5b410a44f7b90ef682bd5b495f : SUCCESS in 19m 25s\n- devstack-enforce-scope https://zuul.opendev.org/t/openstack/build/d5b1c11cd626490b902f3f7972f98699 : SUCCESS in 17m 46s\n- devstack-platform-almalinux-purple-lion-ovn-source https://zuul.opendev.org/t/openstack/build/69b529ef38d2482d98e434ad1311dd2f : SUCCESS in 1h 00m 51s (non-voting)\n- devstack-platform-centos-10-stream https://zuul.opendev.org/t/openstack/build/7c3fc7b1a5014f8ebf7c05b54b7a0d14 : SUCCESS in 56m 20s (non-voting)\n- devstack-platform-centos-9-stream https://zuul.opendev.org/t/openstack/build/d215698b60c6456cbdb8750108a5ae5b : SUCCESS in 1h 36m 16s (non-voting)\n- devstack-platform-debian-bookworm https://zuul.opendev.org/t/openstack/build/e6d159c44ca04f849c8b6abed5176c0f : SUCCESS in 1h 50m 12s\n- devstack-platform-debian-trixie https://zuul.opendev.org/t/openstack/build/97c0694e2bd64c0b940b13fe4531cc67 : SUCCESS in 1h 39m 01s\n- devstack-platform-rocky-blue-onyx https://zuul.opendev.org/t/openstack/build/1d56f7fd260d44bd868fa16bac5c7d62 : SUCCESS in 1h 57m 25s (non-voting)\n- devstack-platform-rocky-red-quartz https://zuul.opendev.org/t/openstack/build/a08802c92be4488b97d8c6cbc352392b : FAILURE in 1h 59m 30s (non-voting)\n- devstack-platform-ubuntu-noble-ovs https://zuul.opendev.org/t/openstack/build/4370264c5537400ca75c7621fe447132 : SUCCESS in 1h 44m 21s (non-voting)\n- devstack-multinode https://zuul.opendev.org/t/openstack/build/129a6da2d0144a85b3cbb33a6ca5dcb0 : SUCCESS in 43m 02s\n- devstack-unit-tests https://zuul.opendev.org/t/openstack/build/6a6f1fc6ad71479889a2a580b299606b : SUCCESS in 3m 04s\n- openstack-tox-bashate https://zuul.opendev.org/t/openstack/build/17f2e0afadbe4f8ea7e41e7698fb2e92 : SUCCESS in 3m 33s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/2d4034784c37453bb91178ccd770c283 : FAILURE in 21m 11s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5524d6eea4134f16b077e5c015eabddb : SUCCESS in 41m 43s\n- neutron-ovs-grenade-multinode https://zuul.opendev.org/t/openstack/build/6fae40875fc84af08051f8ac2ae95942 : SUCCESS in 1h 19m 41s\n- neutron-ovn-tempest-ovs-release https://zuul.opendev.org/t/openstack/build/7ae0e9d89c744137a620cefbf917a95f : SUCCESS in 1h 38m 25s (non-voting)\n- tempest-multinode-full-py3 https://zuul.opendev.org/t/openstack/build/22c4fb07963249079c39eabf71204e7d : SUCCESS in 1h 21m 52s (non-voting)\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/286ae3150696480e860313dfff053a28 : SUCCESS in 1h 28m 36s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/75a50c7fb9a54e489faea509d27bb0bc : SUCCESS in 59m 48s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/2839248dbda6464fa564744728ebbd9d : SUCCESS in 1h 54m 40s","accounts_in_message":[],"_revision_number":1},{"id":"b83dee571e6c731f7f23dd70f6255e4aee71afe8","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"date":"2026-04-22 22:38:14.000000000","message":"Hashtag added: py3.14","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"821314b930cd40af8aeff725b0f852b377f260a4","revisions":{"821314b930cd40af8aeff725b0f852b377f260a4":{"kind":"REWORK","_number":1,"created":"2026-04-17 18:56:11.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/68/985168/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/68/985168/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/68/985168/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/68/985168/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/68/985168/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/68/985168/1"}}},"commit":{"parents":[{"commit":"03ece8f88040be9b0b14dd1cfe93076ad2419a80","subject":"Merge \"[neutron] Configure ovn-bgp service-plugin\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/03ece8f88040be9b0b14dd1cfe93076ad2419a80"}]}],"author":{"name":"Sean Mooney","email":"sean@seanmooney.info","date":"2026-04-12 00:00:51.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"sean@seanmooney.info","date":"2026-04-17 18:53:16.000000000","tz":0},"subject":"python: route common install paths through shared helpers","message":"python: route common install paths through shared helpers\n\nMove the common pip and venv handling behind shared helper\nfunctions so callers do not open code runtime installation paths.\n\nThis keeps the behavior pip based, but it gives DevStack a single\nplace to resolve the active install target, create virtual\nenvironments, and bootstrap pip itself.\nThat lets follow-up changes switch providers without\ntouching every caller at once.\n\nAs part of this, replace direct pip and python -m venv invocations in\nthe runtime tree with the shared helpers and add a shell test that\nchecks new direct runtime paths are not reintroduced.\n\nTests:\n- bash -n inc/python tools/install_pip.sh lib/infra lib/tempest lib/neutron_plugins/ovn_agent tools/build_venv.sh stack.sh lib/apache tests/test_no_legacy_pip_paths.sh\n- bash tests/test_no_legacy_pip_paths.sh\n\nGenerated-By: codex gpt-5.4\nChange-Id: I6f2f2ce433f0f8bfd442f82658f01b46b9264f84\nSigned-off-by: Sean Mooney \u003csean@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/821314b930cd40af8aeff725b0f852b377f260a4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/821314b930cd40af8aeff725b0f852b377f260a4"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"label":"Review-Priority","status":"MAY"}]}],"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":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
