)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f2b7bb99338ceaa85925df56b4fb72fcf75df278","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"73a19494_f51b239c","updated":"2025-03-12 13:15:30.000000000","message":"thanks, this is very helpful already, maybe showing a complete runbook as an example would be another great addition","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"d70c06e6fe57caf785b2e9f1cfda30677aaa4ccd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"73e3044c_316a19f7","updated":"2025-03-13 15:31:46.000000000","message":"Draft comments :D","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"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"},"change_message_id":"d5106ed1e8f9f49a13548df3fad025385a35f512","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7a5ec9b3_2688af21","updated":"2025-03-13 15:28:44.000000000","message":"Minor issues","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a9a4f0214a4bf46be67e6e8e765d912c6af376b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fab98777_e5ac3480","updated":"2025-03-17 06:25:04.000000000","message":"recheck - TIMED_OUT","commit_id":"da99e115481bb85e3e4b8715a81f01a7d8cb8ebd"}],"api-ref/source/baremetal-api-v1-runbooks.inc":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f2b7bb99338ceaa85925df56b4fb72fcf75df278","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Hence, runbook names can be either standard or custom. Standard runbook names"},{"line_number":18,"context_line":"are listed in the `os_traits library \u003chttps://docs.openstack.org/os-traits/latest/\u003e`_."},{"line_number":19,"context_line":"Custom traits must be prefixed with ``CUSTOM_``, contain only upper case"},{"line_number":20,"context_line":"characters A to Z, digits 0 to 9, or underscores and no longer than 255"},{"line_number":21,"context_line":"characters in length."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"You can verify that a node has the required trait for a runbook::"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"1ba82adb_e54e17b2","line":20,"range":{"start_line":20,"start_character":49,"end_line":20,"end_character":55},"updated":"2025-03-12 13:15:30.000000000","message":"... and be no ...?","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a5ae5f35fa55e6bbe5e99abc4909925d9e97af00","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Hence, runbook names can be either standard or custom. Standard runbook names"},{"line_number":18,"context_line":"are listed in the `os_traits library \u003chttps://docs.openstack.org/os-traits/latest/\u003e`_."},{"line_number":19,"context_line":"Custom traits must be prefixed with ``CUSTOM_``, contain only upper case"},{"line_number":20,"context_line":"characters A to Z, digits 0 to 9, or underscores and no longer than 255"},{"line_number":21,"context_line":"characters in length."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"You can verify that a node has the required trait for a runbook::"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"c91c6ba7_7c89a927","line":20,"range":{"start_line":20,"start_character":49,"end_line":20,"end_character":55},"in_reply_to":"1ba82adb_e54e17b2","updated":"2025-03-12 14:49:21.000000000","message":"Acknowledged","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"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"},"change_message_id":"702941afd0c7e50ef486aed359c89d4bbbcd522c","unresolved":true,"context_lines":[{"line_number":29,"context_line":"   trait matching mechanism is the sole security control that determines"},{"line_number":30,"context_line":"   which runbooks can be executed on which nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Example Runbook"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-c++src","patch_set":2,"id":"6f6a226d_e35a34d5","line":32,"updated":"2025-03-12 15:35:35.000000000","message":"IMO this additional information should be in primary docs, not the API reference. The information itself seems good though.","commit_id":"5b9f68a78bbaded3d11f11c0d9e2cf0db37cde72"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"d70c06e6fe57caf785b2e9f1cfda30677aaa4ccd","unresolved":false,"context_lines":[{"line_number":29,"context_line":"   trait matching mechanism is the sole security control that determines"},{"line_number":30,"context_line":"   which runbooks can be executed on which nodes."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Example Runbook"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-c++src","patch_set":2,"id":"f667bf4f_28c1bf64","line":32,"in_reply_to":"6f6a226d_e35a34d5","updated":"2025-03-13 15:31:46.000000000","message":"Acknowledged","commit_id":"5b9f68a78bbaded3d11f11c0d9e2cf0db37cde72"}],"doc/source/admin/cleaning.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f2b7bb99338ceaa85925df56b4fb72fcf75df278","unresolved":true,"context_lines":[{"line_number":292,"context_line":"    cat my-clean-steps.txt | baremetal node clean \u003cnode\u003e \\"},{"line_number":293,"context_line":"        --clean-steps -"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"To use a runbook instead of specifying clean steps:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"Runbooks for Manual Cleaning"},{"line_number":300,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"93b78365_366f13f0","line":297,"range":{"start_line":295,"start_character":0,"end_line":297,"end_character":64},"updated":"2025-03-12 13:15:30.000000000","message":"this is duplicated in the section below and could be deleted?","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a5ae5f35fa55e6bbe5e99abc4909925d9e97af00","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    cat my-clean-steps.txt | baremetal node clean \u003cnode\u003e \\"},{"line_number":293,"context_line":"        --clean-steps -"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"To use a runbook instead of specifying clean steps:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"Runbooks for Manual Cleaning"},{"line_number":300,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8bf92d2c_88605cbc","line":297,"range":{"start_line":295,"start_character":0,"end_line":297,"end_character":64},"in_reply_to":"93b78365_366f13f0","updated":"2025-03-12 14:49:21.000000000","message":"Acknowledged","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f2b7bb99338ceaa85925df56b4fb72fcf75df278","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"To use a runbook for manual cleaning:"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Runbooks must be created and associated with nodes beforehand. Only runbooks"},{"line_number":311,"context_line":"that match the node\u0027s traits can be used for cleaning that node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3aeff3ef_663f525e","line":308,"range":{"start_line":308,"start_character":43,"end_line":308,"end_character":63},"updated":"2025-03-12 13:15:30.000000000","message":"if a runbook name is a trait, it can never be a uuid, or can it? so this parameter should just be `\u003crunbook_name\u003e`?","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"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"},"change_message_id":"b3395b9d1276435d679ea7ef5040af55cc360309","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"To use a runbook for manual cleaning:"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Runbooks must be created and associated with nodes beforehand. Only runbooks"},{"line_number":311,"context_line":"that match the node\u0027s traits can be used for cleaning that node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a11a85ce_425d242b","line":308,"range":{"start_line":308,"start_character":43,"end_line":308,"end_character":63},"in_reply_to":"3744715a_f630822c","updated":"2025-03-13 15:24:34.000000000","message":"Names are unique: https://opendev.org/openstack/ironic/src/branch/master/ironic/db/sqlalchemy/models.py#L527","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"d70c06e6fe57caf785b2e9f1cfda30677aaa4ccd","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"To use a runbook for manual cleaning:"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Runbooks must be created and associated with nodes beforehand. Only runbooks"},{"line_number":311,"context_line":"that match the node\u0027s traits can be used for cleaning that node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"53ba4121_aabd8f3d","line":308,"range":{"start_line":308,"start_character":43,"end_line":308,"end_character":63},"in_reply_to":"3744715a_f630822c","updated":"2025-03-13 15:31:46.000000000","message":"Not at all; keep them coming. That would help make the doc better. By the way, runbook names are unique, just like every other ident across Ironic.","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a5ae5f35fa55e6bbe5e99abc4909925d9e97af00","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"To use a runbook for manual cleaning:"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Runbooks must be created and associated with nodes beforehand. Only runbooks"},{"line_number":311,"context_line":"that match the node\u0027s traits can be used for cleaning that node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"c7270c4a_b46e6f7d","line":308,"range":{"start_line":308,"start_character":43,"end_line":308,"end_character":63},"in_reply_to":"3aeff3ef_663f525e","updated":"2025-03-12 14:49:21.000000000","message":"Correct! A runbook name is required and can never be a UUID; still, a runbook also gets assigned a UUID on creation. So referencing a runbook by either the name or uuid is valid.","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"To use a runbook for manual cleaning:"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    baremetal node clean \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Runbooks must be created and associated with nodes beforehand. Only runbooks"},{"line_number":311,"context_line":"that match the node\u0027s traits can be used for cleaning that node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3744715a_f630822c","line":308,"range":{"start_line":308,"start_character":43,"end_line":308,"end_character":63},"in_reply_to":"c7270c4a_b46e6f7d","updated":"2025-03-13 13:46:55.000000000","message":"sorry if this is getting out of scope, but can there be multiple runbooks with the same name, then? if yes, would they all be executed by this command when that name is specified?","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":297,"context_line":"Instead of passing a list of clean steps, operators can now use runbooks."},{"line_number":298,"context_line":"Runbooks are curated lists of steps that can be associated with nodes via"},{"line_number":299,"context_line":"traits which simplifies the process of performing consistent cleaning"},{"line_number":300,"context_line":"operations across similar nodes."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"To use a runbook for manual cleaning:"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c6055bb4_954e7366","line":300,"updated":"2025-03-13 13:46:55.000000000","message":"why is the \"matching via traits\" mechanism necessary if the runbooks need to be called out explicitly anyway? is there a way to say \"clean this node running all runbooks matching its traits\"?","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"}],"doc/source/admin/index.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Administrator\u0027s Guide"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"If you are a system administrator running Ironic, this section contains"}],"source_content_type":"text/x-rst","patch_set":4,"id":"609fb04f_4075699c","line":1,"updated":"2025-03-13 13:46:55.000000000","message":"kind of unrelated question, but I haven\u0027t found a link to this overview page from the top level, only could look at it but explicitly entering the admin/index.html URL, did I miss something?","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"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"},"change_message_id":"d5106ed1e8f9f49a13548df3fad025385a35f512","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Administrator\u0027s Guide"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"If you are a system administrator running Ironic, this section contains"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c799ba52_eef4b29f","line":1,"in_reply_to":"609fb04f_4075699c","updated":"2025-03-13 15:28:44.000000000","message":"https://docs.openstack.org/ironic/latest/#administrator-guide comes from https://opendev.org/openstack/ironic/src/branch/master/doc/source/index.rst?display\u003dsource#L54 ... which has admin/index in the hidden section.\n\nYou may be right!","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":17,"context_line":"  :hidden:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  deploy-steps"},{"line_number":20,"context_line":"  runbooks"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0c258b12_011fccd3","line":20,"updated":"2025-03-13 13:46:55.000000000","message":"looks like this part is hidden, so the new doc cannot be found, is that intentional? IMO it would fit into the architecture section next to `steps`","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"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"},"change_message_id":"d5106ed1e8f9f49a13548df3fad025385a35f512","unresolved":true,"context_lines":[{"line_number":17,"context_line":"  :hidden:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  deploy-steps"},{"line_number":20,"context_line":"  runbooks"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ad0797bc_8d92dd11","line":20,"in_reply_to":"0c258b12_011fccd3","updated":"2025-03-13 15:28:44.000000000","message":"++ lets do this; link it from https://opendev.org/openstack/ironic/src/branch/master/doc/source/admin/features.rst?display\u003dsource#L10 perhaps?","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"}],"doc/source/admin/runbooks.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Runbooks for Cleaning \u0026 Servicing"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Overview"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"faa8d7d0_363ef7e5","line":5,"updated":"2025-03-13 13:46:55.000000000","message":"I\u0027m fine with having an extra section for this, but maybe still cross-link it with the API ref?","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"d70c06e6fe57caf785b2e9f1cfda30677aaa4ccd","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Runbooks for Cleaning \u0026 Servicing"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Overview"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d8fb149d_c4f7a6f9","line":5,"in_reply_to":"faa8d7d0_363ef7e5","updated":"2025-03-13 15:31:46.000000000","message":"Acknowledged","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"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"},"change_message_id":"d5106ed1e8f9f49a13548df3fad025385a35f512","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Runbooks for Cleaning \u0026 Servicing"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Overview"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8377b9a6_cb8dfafe","line":5,"in_reply_to":"faa8d7d0_363ef7e5","updated":"2025-03-13 15:28:44.000000000","message":"Yeah, good call. I didn\u0027t think we did this but there is a lot of cross-links from the api-ref.","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"856c58d17917602924757668b754c64faecf4967","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":".. code-block:: bash"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    openstack baremetal runbook create --name CUSTOM_FIRMWARE_UPGRADE \\"},{"line_number":44,"context_line":"      --steps \u0027["},{"line_number":45,"context_line":"         {"},{"line_number":46,"context_line":"            \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ea9ca84_c92e02a3","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":13},"updated":"2025-03-13 13:46:55.000000000","message":"why do you use `openstack` here, but not in the example above? the delta is confusing to me","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"d70c06e6fe57caf785b2e9f1cfda30677aaa4ccd","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":".. code-block:: bash"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    openstack baremetal runbook create --name CUSTOM_FIRMWARE_UPGRADE \\"},{"line_number":44,"context_line":"      --steps \u0027["},{"line_number":45,"context_line":"         {"},{"line_number":46,"context_line":"            \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"bbc5eceb_796c04f4","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":13},"in_reply_to":"1ea9ca84_c92e02a3","updated":"2025-03-13 15:31:46.000000000","message":"On an OpenStack CLI, `baremetal` is a sub-command so we prefix it with `openstack`, whereas on service-specific CLI like when running Ironic on a local development machine https://docs.openstack.org/ironic/latest/contributor/local-dev-guide.html, we do not need the `openstack` prefix (based on my little understanding of how things work, might not be entirely true).\n\nBy the way, I have also removed that part for consistency with the rest of the docs.","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"},{"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"},"change_message_id":"d5106ed1e8f9f49a13548df3fad025385a35f512","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":".. code-block:: bash"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    openstack baremetal runbook create --name CUSTOM_FIRMWARE_UPGRADE \\"},{"line_number":44,"context_line":"      --steps \u0027["},{"line_number":45,"context_line":"         {"},{"line_number":46,"context_line":"            \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"04774a16_e0b66327","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":13},"in_reply_to":"1ea9ca84_c92e02a3","updated":"2025-03-13 15:28:44.000000000","message":"Yes, please remove the openstack. We typically use the python-ironicclient syntax without the OSC wrapper for Ironic docs.","commit_id":"fb75a33a85cf9f8dac9fb7b1a921c0384b9e0079"}],"doc/source/admin/servicing.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f2b7bb99338ceaa85925df56b4fb72fcf75df278","unresolved":true,"context_lines":[{"line_number":146,"context_line":"    cat my-clean-steps.txt | baremetal node service \u003cnode\u003e \\"},{"line_number":147,"context_line":"        --service-steps -"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"To use a runbook instead of specifying service steps:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    baremetal node service \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Using Runbooks for Servicing"},{"line_number":154,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff11f8ae_57030ee0","line":151,"range":{"start_line":149,"start_character":0,"end_line":151,"end_character":66},"updated":"2025-03-12 13:15:30.000000000","message":"also duplicated below?","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a5ae5f35fa55e6bbe5e99abc4909925d9e97af00","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    cat my-clean-steps.txt | baremetal node service \u003cnode\u003e \\"},{"line_number":147,"context_line":"        --service-steps -"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"To use a runbook instead of specifying service steps:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    baremetal node service \u003cnode\u003e --runbook \u003crunbook_name_or_uuid\u003e"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Using Runbooks for Servicing"},{"line_number":154,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"eb529f28_2335d797","line":151,"range":{"start_line":149,"start_character":0,"end_line":151,"end_character":66},"in_reply_to":"ff11f8ae_57030ee0","updated":"2025-03-12 14:49:21.000000000","message":"Acknowledged","commit_id":"97f66a5f2ec4adf0ed2c8c472347aaec6c718c52"}]}
