)]}'
{"id":"openstack%2Fironic-python-agent~998376","triplet_id":"openstack%2Fironic-python-agent~master~I3b5ca13d3b62f156a513f74d30a8f78afeb84dfb","project":"openstack/ironic-python-agent","branch":"master","attention_set":{"36770":{"account":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"last_update":"2026-07-30 16:42:47.000000000","reason":"\u003cGERRIT_ACCOUNT_10342\u003e replied on the change","reason_account":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}}},"removed_from_attention_set":{},"hashtags":["ironic-week-prio"],"change_id":"I3b5ca13d3b62f156a513f74d30a8f78afeb84dfb","subject":"Prevent container steps from shadowing existing steps","status":"NEW","created":"2026-07-22 23:28:51.000000000","updated":"2026-07-31 14:07:48.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":3,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"8ce6207098717fad8ff6197a85f10eec32d0ded5","_number":998376,"virtual_id_number":998376,"owner":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-23 00:45:59.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":{"disliked":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"all":[{"value":-1,"date":"2026-07-30 16:42:47.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":-1,"date":"2026-07-31 14:07:48.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"_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},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-22 23:41:49.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":"CC"},{"updated":"2026-07-23 00:45:59.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"},{"updated":"2026-07-30 16:42:47.000000000","updated_by":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"reviewer":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"state":"REVIEWER"},{"updated":"2026-07-31 14:07:48.000000000","updated_by":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"reviewer":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"state":"REVIEWER"}],"messages":[{"id":"2775f7e1cbf64425823aaca42008e998bdc541e9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"date":"2026-07-22 23:28:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"acc3c1a9e679c0c737c8a2c2d7e69216a2d970ce","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-22 23:41:49.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2b0d86023a7d48d6bb37bec881875b90\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/b48781123a4c4ad2824a913b8b97a8f7 : SUCCESS in 6m 10s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/93882a2c31ed472c80b8fc6b251e502d : SUCCESS in 6m 21s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/6d1f3ba97aee46d8889b35f86eec8b12 : SUCCESS in 10m 30s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"e814d41063ba0f8d236680ec1601ed953967925c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-23 00:45:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ad34232bec104ffdabf99eae557a237f\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3dc4155fb7d54b42bffcb4cba3cd7987 : SUCCESS in 3m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e308fac9aa3c4784824ec55e281a1dae : SUCCESS in 5m 03s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2abaf02fb0724dcf897eff597c1613da : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/35acbff5d3d34bb3849899fc09b905aa : SUCCESS in 3m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c07f4fbe10224ba68a92361293fdb944 : SUCCESS in 6m 04s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/362f213a5c6649bfbbe78bc4c9a05726 : SUCCESS in 8m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b4a7404af2eb4c849ec7eff2cf4b65ab : SUCCESS in 5m 11s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/339bd4307ab248988ef7137535a68e84 : SUCCESS in 3m 00s\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/b5726a29e8824e9a8cafe2c9b3804eea : SUCCESS in 3m 04s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/e001cefc196d487787dc74d46ab2117d : SUCCESS in 1h 10m 15s\n- ipa-tempest-uefi-redfish-vmedia-src https://zuul.opendev.org/t/openstack/build/87b523d645a4458aa1d4a68a781a7fed : SUCCESS in 33m 31s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/acfdb45e23444ec59bbc155f8d8cc80f : SUCCESS in 1h 03m 10s\n- ironic-python-agent-check-image-dib-centos9 https://zuul.opendev.org/t/openstack/build/4d55a037fc0d4d7584243e13bbaa4627 : SUCCESS in 9m 41s (non-voting)\n- ironic-python-agent-check-image-dib-centos10 https://zuul.opendev.org/t/openstack/build/6e7cc036f6724af18e09e2f8d0d7851f : SUCCESS in 9m 13s (non-voting)\n- ironic-python-agent-check-image-dib-debian https://zuul.opendev.org/t/openstack/build/959b695f143444b99ccbfed4d7c26ace : SUCCESS in 7m 03s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"8d701fad88322706ef67e958f892ac47e0872da6","author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"date":"2026-07-30 16:42:47.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"66fac988faf1d2583142f47d850166b232b3238b","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2026-07-31 14:00:52.000000000","message":"Hashtag added: ironic-week-prio","accounts_in_message":[],"_revision_number":1},{"id":"8ce6207098717fad8ff6197a85f10eec32d0ded5","author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"date":"2026-07-31 14:07:48.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"2aa46a30b5e010db92fc4af150c782c007183af3","revisions":{"2aa46a30b5e010db92fc4af150c782c007183af3":{"kind":"REWORK","_number":1,"created":"2026-07-22 23:28:51.000000000","uploader":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"ref":"refs/changes/76/998376/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/76/998376/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/76/998376/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/76/998376/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/76/998376/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/76/998376/1"}}},"commit":{"parents":[{"commit":"55bc9e7cfafa83175539c68019862bcb63d96c5d","subject":"security: Fix the container allowlist not being enforced","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/55bc9e7cfafa83175539c68019862bcb63d96c5d"}]}],"author":{"name":"Afonne-CID","email":"afonnepaulc@gmail.com","date":"2026-07-22 21:38:51.000000000","tz":60},"committer":{"name":"Afonne-CID","email":"afonnepaulc@gmail.com","date":"2026-07-22 23:28:26.000000000","tz":60},"subject":"Prevent container steps from shadowing existing steps","message":"Prevent container steps from shadowing existing steps\n\nContainerHardwareManager reports MAINLINE support and is therefore\nconsulted ahead of GenericHardwareManager for every dispatch. A step in\nthe steps file whose name matched an existing method replaced it\nwithout any indication: a step named erase_devices_metadata ran a\ncontainer instead of erasing the disk, and the step was reported as\nsuccessful.\n\nNames which resolve on GenericHardwareManager or on this class are no\nlonger turned into container steps, and are refused when the step list\nis reported rather than failing later as \"hardware manager method not\nfound\". Private names are refused as well, since resolving them sent\ncopy, pickle and hasattr lookups into a YAML read, and recursed on\ninstances whose __init__ had not run.\n\nAssisted-by: Claude Opus 4.8\nChange-Id: I3b5ca13d3b62f156a513f74d30a8f78afeb84dfb\nSigned-off-by: Afonne-CID \u003cafonnepaulc@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2aa46a30b5e010db92fc4af150c782c007183af3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2aa46a30b5e010db92fc4af150c782c007183af3"}]},"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":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}},{"label":"Workflow","status":"MAY"},{"label":"Backport-Candidate","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":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"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":"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":""}}}]}
