)]}'
{"id":"openstack%2Fopenstacksdk~1000375","triplet_id":"openstack%2Fopenstacksdk~master~Ie1ff85bce79335991a1c3c2cac5743b6f0cc5c66","project":"openstack/openstacksdk","branch":"master","attention_set":{"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-08-13 19:59:21.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":["ironic-week-prio"],"change_id":"Ie1ff85bce79335991a1c3c2cac5743b6f0cc5c66","subject":"baremetal: Add support for runbook traits and description","status":"NEW","created":"2026-08-10 20:21:57.000000000","updated":"2026-08-13 19:59:21.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"3848e13cbaa29373b68d81c0eccb118fd93bf2c0","_number":1000375,"virtual_id_number":1000375,"owner":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"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"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-10 22:13:32.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":{"approved":{"_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":2,"date":"2026-08-13 19:59:21.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":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":"","default_value":0,"optional":true},"Workflow":{"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":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},"Allow-Post-Review":{"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-10 22:13:32.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-08-13 19:59:21.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"}],"messages":[{"id":"bde9ecebae36c36330d420678f3beff58f090590","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-10 20:21:57.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9368faddc0ad6b7a989122189587d7934a0ac074","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-10 22:13:32.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2ef8572af0764515ac04fedce4f0a6c1\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/007e96edb1dd4cd2b0a7d2081f140654 : SUCCESS in 4m 25s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7383aa6e0eb541028e3b8a128d1d8fa6 : SUCCESS in 3m 56s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/7dd42d1c89404daa97c4e27cc1a9b898 : SUCCESS in 4m 19s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3aa2ac3b63fe4492bd416a4e6fa8fedc : SUCCESS in 4m 29s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/98398158b9af44af8a3b9c820e9c608b : SUCCESS in 6m 04s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/fd239128ff8146ae9e2bf3b9652e8a59 : SUCCESS in 7m 01s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/1b0bb3ca3b6b4792a017f87a84e7d6bb : SUCCESS in 1h 04m 56s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/f2834f771fa9469099e55bf9cd25e970 : SUCCESS in 3m 38s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/2904da56b1a14172842ac98ca7373287 : SUCCESS in 4m 14s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/47d4e5833d9548b28f9122fa155ecda7 : SUCCESS in 7m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d44219574d514b1a836f7b8b28d3dd3f : SUCCESS in 10m 48s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e873c9b2cc9b435fbb0ea95350273e65 : SUCCESS in 4m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5d1ccb0cf2f54f44a07c67f93b952600 : SUCCESS in 56m 47s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/dbc0844bb1e94a7d92ec6c9aecd53736 : SUCCESS in 1h 34m 56s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/fdf47363c377420da9291aa64ae6e28a : FAILURE in 1h 24m 43s (non-voting)\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/29e916f941b843a2bb2d70705d93aa78 : FAILURE in 57m 09s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/919925136d1b433aa0648fca85c7a46d : SUCCESS in 32m 13s\n- openstacksdk-functional-devstack-compute-manila https://zuul.opendev.org/t/openstack/build/a2714bd1250445e98fa4deb6c7d8a83c : SUCCESS in 27m 42s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/f082e9ed74e94cab9400bfc735d1837c : SUCCESS in 38m 50s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/699cee0ece0e48139fcc11a363545ff9 : SUCCESS in 42m 06s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/ed1385d9ebbf4364a992938380da7358 : SUCCESS in 1h 11m 44s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/ca48bd75e01b4a0d93fda2634e471239 : SUCCESS in 1h 15m 06s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"61313c1a7cc93e8c99c814002d72c337f10cfc8f","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-11 19:38:59.000000000","message":"Hashtag added: ironic-week-prio","accounts_in_message":[],"_revision_number":1},{"id":"3848e13cbaa29373b68d81c0eccb118fd93bf2c0","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-08-13 19:59:21.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"b3167cf7d1600e98ed9816687667cf48a4ddddf3","revisions":{"b3167cf7d1600e98ed9816687667cf48a4ddddf3":{"kind":"REWORK","_number":1,"created":"2026-08-10 20:21:57.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/75/1000375/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/75/1000375/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/75/1000375/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/75/1000375/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/75/1000375/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/75/1000375/1"}}},"commit":{"parents":[{"commit":"c1011385b501d7dfadef3c0894d2ee9594166f35","subject":"Merge \"network: Add evpn_vni resource attribute to the Router resource\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/c1011385b501d7dfadef3c0894d2ee9594166f35"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-10 20:18:39.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-10 20:21:33.000000000","tz":-300},"subject":"baremetal: Add support for runbook traits and description","message":"baremetal: Add support for runbook traits and description\n\nBare metal API microversion 1.112 extends runbooks with a nullable\n``description`` field and a set of ``traits``. A node may only be acted\nupon by a runbook whose traits intersect with the traits of the node.\n\nTraits are not writable through the runbook body itself; they are managed\nthrough the ``/v1/runbooks/{ident}/traits`` sub-resource. Add the\ncorresponding ``add_trait``, ``remove_trait`` and ``set_traits`` methods\nto the Runbook resource, mirroring the equivalent node trait operations,\nalong with the ``add_runbook_trait``, ``remove_runbook_trait`` and\n``set_runbook_traits`` proxy methods.\n\nUnlike node traits, removing a trait a runbook does not have is a no-op\non the server side, so ``remove_trait`` takes no ``ignore_missing``\nargument.\n\nAssisted-By: Claude Opus 5\nChange-Id: Ie1ff85bce79335991a1c3c2cac5743b6f0cc5c66\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/b3167cf7d1600e98ed9816687667cf48a4ddddf3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/b3167cf7d1600e98ed9816687667cf48a4ddddf3"}]},"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":"Allow-Post-Review","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":"Allow-Post-Review","description":"Allow Post Review","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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["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":""}}}]}
