)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"095a20cd_a3d4a6b5","updated":"2023-03-29 14:21:30.000000000","message":"Thank you, Riccardo!","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"68331f00_00dc6645","updated":"2023-03-29 14:01:44.000000000","message":"good job so far :)","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"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":"b60f021437ed62ea5d87321712ef9cef1f86d83d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"95333b76_c0f17775","updated":"2023-04-03 21:28:43.000000000","message":"I have concerns that while this interface is OK for OOB updates, it\u0027ll be tough to implement for in-band updates. Can we at least consider outlining what this looks like when/if we implement in-band? My primary concerns are around how to discover firmware upgrade capabilities in IPA and how/if an operator could plugin that way.","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"88109829_baf5bb4b","updated":"2023-04-01 01:20:56.000000000","message":"Thank you for championing this, Iury, Great work!\nLGTM\nI left some questions and minor comments","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d1773b51_810ec28b","updated":"2023-04-07 17:29:12.000000000","message":"Overall I think it makes sense, maybe a little more detail/clarification might be good?","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"48e2d1b7_5c4f6f7e","updated":"2023-04-20 11:54:57.000000000","message":"Great progress, some comments inline (mostly around the scope).","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a171cda0_549c10d3","updated":"2023-04-24 12:53:24.000000000","message":"great job!\nlet\u0027s just fix the database/table thing and I\u0027ll +2 it :)","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d45649cfad6d7d6f20002aed173bdda58e04640","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f492031c_82871cdc","updated":"2023-04-28 16:08:53.000000000","message":"I think we should consider in-band steps already, but I don\u0027t think it should block this work from starting.","commit_id":"7713667a779f6a9af69f7c8e9f9ddd76c2c151fa"}],"specs/approved/firmware-interface.rst":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updated. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"52ac2cf1_75f98026","line":14,"range":{"start_line":14,"start_character":9,"end_line":14,"end_character":16},"updated":"2023-04-01 01:20:56.000000000","message":"nit: updates\n(I think I may be a repeat from previous reviews)","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updated. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b394a238_764c3c70","line":14,"range":{"start_line":14,"start_character":9,"end_line":14,"end_character":16},"in_reply_to":"52ac2cf1_75f98026","updated":"2023-04-01 12:47:15.000000000","message":"Done","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a540e444_054186cd","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":7},"updated":"2023-04-01 01:20:56.000000000","message":"nit: Currently","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":false,"context_lines":[{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a1f9898e_3ea7534d","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":7},"in_reply_to":"a540e444_054186cd","updated":"2023-04-01 12:47:15.000000000","message":"Ack","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab50b9d5_f0466da1","line":28,"range":{"start_line":28,"start_character":49,"end_line":28,"end_character":63},"updated":"2023-04-01 01:20:56.000000000","message":"nit: ...node BY enabling...","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":false,"context_lines":[{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"d854bf49_b5711c09","line":28,"range":{"start_line":28,"start_character":49,"end_line":28,"end_character":63},"in_reply_to":"ab50b9d5_f0466da1","updated":"2023-04-01 12:47:15.000000000","message":"Ack","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":56,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":57,"context_line":"  clean step `update` is called."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Only drivers that supports redfish will be able to use this feature, a node"},{"line_number":60,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"},{"line_number":61,"context_line":"  interface set to `no-firmware`."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1272f1a7_d209ec0c","line":59,"range":{"start_line":59,"start_character":20,"end_line":59,"end_character":28},"updated":"2023-04-01 01:20:56.000000000","message":"nit: support","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":57,"context_line":"  clean step `update` is called."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Only drivers that supports redfish will be able to use this feature, a node"},{"line_number":60,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"},{"line_number":61,"context_line":"  interface set to `no-firmware`."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9af3aaa9_ea47a816","line":59,"range":{"start_line":59,"start_character":20,"end_line":59,"end_character":28},"in_reply_to":"1272f1a7_d209ec0c","updated":"2023-04-01 12:47:15.000000000","message":"Ack","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"557659ae_74dda410","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"updated":"2023-04-01 01:20:56.000000000","message":"Not so much a comment and more of a question: if in the future we want to support both out-of-band and in-band firmware updates for different components, would we have separate steps for that (e.g. \"update\" and \"update-inband\"), a parameter for each step stating if it is in-band or out-of-band (\"inband\": \"true|false\" or is this irrelevant at this point?\nIf relevant perhaps we should put in a field for that early on? WDYT?\n\nSome more context:\nI was trying to read through clean steps doco to get more clarity ( https://docs.openstack.org/ironic/latest/admin/cleaning.html#inbandvsoutofbandcleaning ) but still not sure where this fits in, hence the question.","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4de3f621_31910619","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"in_reply_to":"3de2cba7_100c56ef","updated":"2023-04-13 01:57:59.000000000","message":"Done","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c7e57d724ec485beb79721d8783b7f235d56a676","unresolved":true,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3de2cba7_100c56ef","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"in_reply_to":"4aa744ef_f1ce27c2","updated":"2023-04-06 02:35:34.000000000","message":"including requires_ramdisk to be able to identify if is in-band vs oob? I\u0027m updating based on what I understood from the conversation here.","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":true,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fe7e6153_5bfdbfd1","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"in_reply_to":"557659ae_74dda410","updated":"2023-04-01 12:47:15.000000000","message":"This is an interesting question Jacob, at the PTG meeting we talked a bit about in-band vs OOB, we will probably focus on OOB working but I don\u0027t mind discussing here how we will handle in-band. Let\u0027s wait for others to see what they think.","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"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":"b60f021437ed62ea5d87321712ef9cef1f86d83d","unresolved":true,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4aa744ef_f1ce27c2","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"in_reply_to":"fce1c33a_e346ea14","updated":"2023-04-03 21:28:43.000000000","message":"Yeah, this interface is also confusing for cases where we could have firmware that\u0027s upgrade-able both out-of-band and in-band.","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0270ebc474ace4c840009dcc93b86114a9e7cf20","unresolved":true,"context_lines":[{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A new step is proposed to be implemented on the `FirmwareInterface`:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* `firmware.update`: it will trigger the firmware update for each component"},{"line_number":86,"context_line":"  that is specified. For example::"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    {"},{"line_number":89,"context_line":"      \"target\":\"clean\","},{"line_number":90,"context_line":"      \"clean_steps\": [{"},{"line_number":91,"context_line":"        \"interface\": \"firmware\","},{"line_number":92,"context_line":"        \"step\": \"update\","},{"line_number":93,"context_line":"        \"args\": {"},{"line_number":94,"context_line":"          \"settings\": ["},{"line_number":95,"context_line":"            {"},{"line_number":96,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":97,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":98,"context_line":"            },"},{"line_number":99,"context_line":"            {"},{"line_number":100,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":101,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":102,"context_line":"            }"},{"line_number":103,"context_line":"          ]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"      }]"},{"line_number":106,"context_line":"    }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fce1c33a_e346ea14","line":107,"range":{"start_line":84,"start_character":0,"end_line":107,"end_character":0},"in_reply_to":"fe7e6153_5bfdbfd1","updated":"2023-04-03 12:31:44.000000000","message":"Probably not \"inband\" but more of \"requires_ramdisk\" (a name we already have for different purposes). How to list in-band steps is a whole interesting question.\n\nAnd no, NOT having several steps to run is one of the goals of this work.","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":113,"context_line":"  The operation will return the currently cached settings with the following"},{"line_number":114,"context_line":"  data schema::"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    ["},{"line_number":117,"context_line":"      {"},{"line_number":118,"context_line":"        \"component\":\"bios\","},{"line_number":119,"context_line":"        \"upgradable\": true,"},{"line_number":120,"context_line":"        \"current_version\": \"v1.2.3.4 (01.02.2023)\","},{"line_number":121,"context_line":"        \"canonical_version\": \"1.2.3.4\""},{"line_number":122,"context_line":"      },"},{"line_number":123,"context_line":"      {"},{"line_number":124,"context_line":"        \"component\": \"bmc\","},{"line_number":125,"context_line":"        \"upgradable\": true,"},{"line_number":126,"context_line":"        \"current_version\": \"v1.0.0\","},{"line_number":127,"context_line":"        \"canonical_version\": \"1.0.0\""},{"line_number":128,"context_line":"      }"},{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Client (CLI) impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2c84a957_78159a3d","line":130,"range":{"start_line":116,"start_character":0,"end_line":130,"end_character":0},"updated":"2023-04-01 01:20:56.000000000","message":"further to the above, would we want the information on whether a given component is upgradable in-band or out-of-band here for future extensions? Or do we worry about that when it happens?","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":true,"context_lines":[{"line_number":113,"context_line":"  The operation will return the currently cached settings with the following"},{"line_number":114,"context_line":"  data schema::"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    ["},{"line_number":117,"context_line":"      {"},{"line_number":118,"context_line":"        \"component\":\"bios\","},{"line_number":119,"context_line":"        \"upgradable\": true,"},{"line_number":120,"context_line":"        \"current_version\": \"v1.2.3.4 (01.02.2023)\","},{"line_number":121,"context_line":"        \"canonical_version\": \"1.2.3.4\""},{"line_number":122,"context_line":"      },"},{"line_number":123,"context_line":"      {"},{"line_number":124,"context_line":"        \"component\": \"bmc\","},{"line_number":125,"context_line":"        \"upgradable\": true,"},{"line_number":126,"context_line":"        \"current_version\": \"v1.0.0\","},{"line_number":127,"context_line":"        \"canonical_version\": \"1.0.0\""},{"line_number":128,"context_line":"      }"},{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Client (CLI) impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"65ceacb7_c2e6a543","line":130,"range":{"start_line":116,"start_character":0,"end_line":130,"end_character":0},"in_reply_to":"2c84a957_78159a3d","updated":"2023-04-01 12:47:15.000000000","message":"Are we able to easily identify how they can be upgradable ?","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f2607f70284afb94fa5316fbdd75593fdd426c6e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  The operation will return the currently cached settings with the following"},{"line_number":114,"context_line":"  data schema::"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    ["},{"line_number":117,"context_line":"      {"},{"line_number":118,"context_line":"        \"component\":\"bios\","},{"line_number":119,"context_line":"        \"upgradable\": true,"},{"line_number":120,"context_line":"        \"current_version\": \"v1.2.3.4 (01.02.2023)\","},{"line_number":121,"context_line":"        \"canonical_version\": \"1.2.3.4\""},{"line_number":122,"context_line":"      },"},{"line_number":123,"context_line":"      {"},{"line_number":124,"context_line":"        \"component\": \"bmc\","},{"line_number":125,"context_line":"        \"upgradable\": true,"},{"line_number":126,"context_line":"        \"current_version\": \"v1.0.0\","},{"line_number":127,"context_line":"        \"canonical_version\": \"1.0.0\""},{"line_number":128,"context_line":"      }"},{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Client (CLI) impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"eb8d8a29_1529cf9c","line":130,"range":{"start_line":116,"start_character":0,"end_line":130,"end_character":0},"in_reply_to":"65ceacb7_c2e6a543","updated":"2023-04-21 02:17:16.000000000","message":"Done","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"dd27ffd665389db1c76a1a1054aa51712ebebe15","unresolved":true,"context_lines":[{"line_number":256,"context_line":"Documentation Impact"},{"line_number":257,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New Documentation will be provided on how to use."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2d1fffd8_97eb0ba5","line":259,"updated":"2023-04-01 01:20:56.000000000","message":"nit: \"on how to use this feature.\"","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f3a1e1cef242a7dabf1fcef213352b2c77394861","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Documentation Impact"},{"line_number":257,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New Documentation will be provided on how to use."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9714c179_18562520","line":259,"in_reply_to":"2d1fffd8_97eb0ba5","updated":"2023-04-01 12:47:15.000000000","message":"Done","commit_id":"006c154ae5eec4b27bcf17ae4eaede7f5473c3db"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updated. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"746ae912_d6ac0984","line":14,"range":{"start_line":14,"start_character":9,"end_line":14,"end_character":16},"updated":"2023-03-29 14:01:44.000000000","message":"nit: version update ?","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updated. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"2e408825_fca5b0bc","line":14,"range":{"start_line":14,"start_character":9,"end_line":14,"end_character":16},"in_reply_to":"746ae912_d6ac0984","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":3,"id":"473143b6_bcdd23e1","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":63},"updated":"2023-03-29 14:01:44.000000000","message":"nit: components","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7b3da865_ccf5875c","line":21,"range":{"start_line":21,"start_character":69,"end_line":21,"end_character":70},"updated":"2023-03-29 14:01:44.000000000","message":"nit: remove comma","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":3,"id":"951dfa97_24c225b6","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":63},"in_reply_to":"473143b6_bcdd23e1","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7aec65_0fa8a9fe","line":21,"range":{"start_line":21,"start_character":69,"end_line":21,"end_character":70},"in_reply_to":"7b3da865_ccf5875c","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."}],"source_content_type":"text/x-rst","patch_set":3,"id":"edbdea4b_847c062c","line":22,"range":{"start_line":22,"start_character":17,"end_line":22,"end_character":24},"updated":"2023-03-29 14:01:44.000000000","message":"maybe change in something like: \"main reason being they like... \"","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9931ef4f_592f75f3","line":22,"range":{"start_line":22,"start_character":17,"end_line":22,"end_character":24},"in_reply_to":"edbdea4b_847c062c","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eec99a4d_fb498773","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":2},"updated":"2023-03-29 14:01:44.000000000","message":"nit: remove So","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":21,"context_line":"specific versions of firmware on different hardware componnents (e.g., BIOS,"},{"line_number":22,"context_line":"NICs, BMC, etc), this is because they like their machines in cluster to be"},{"line_number":23,"context_line":"homogenous."},{"line_number":24,"context_line":"So when they get a new machine they need to update all components"},{"line_number":25,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"10aa2638_2b607bd5","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":2},"in_reply_to":"eec99a4d_fb498773","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a telco user I want to install specific versions of firmwares in my"}],"source_content_type":"text/x-rst","patch_set":3,"id":"45fe8df2_5e432e65","line":29,"range":{"start_line":29,"start_character":17,"end_line":29,"end_character":18},"updated":"2023-03-29 14:01:44.000000000","message":"nit: change comma to semicolon","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Current in Ironic we have support to update the firmware, the operator can"},{"line_number":28,"context_line":"achieve this by invoking  manual cleaning on the node enabling the clean step"},{"line_number":29,"context_line":"`update_firmware`, the problem is that it requires knowledge about the clean"},{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a telco user I want to install specific versions of firmwares in my"}],"source_content_type":"text/x-rst","patch_set":3,"id":"041fc3cf_16e8f22d","line":29,"range":{"start_line":29,"start_character":17,"end_line":29,"end_character":18},"in_reply_to":"45fe8df2_5e432e65","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":33,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the OS."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d799343b_91798433","line":33,"range":{"start_line":33,"start_character":63,"end_line":33,"end_character":65},"updated":"2023-03-29 14:01:44.000000000","message":"nit: expand to Operating System","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":30,"context_line":"step name and parameters."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":33,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the OS."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"25c38766_19ac6e56","line":33,"range":{"start_line":33,"start_character":63,"end_line":33,"end_character":65},"in_reply_to":"d799343b_91798433","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* After a node is enrolled and the basic hardware information is available,"},{"line_number":40,"context_line":"  operator can define a Firmware Update config."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"}],"source_content_type":"text/x-rst","patch_set":3,"id":"26c54c3a_6eeea214","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":10},"updated":"2023-03-29 14:01:44.000000000","message":"nit: an operator","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* After a node is enrolled and the basic hardware information is available,"},{"line_number":40,"context_line":"  operator can define a Firmware Update config."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c4d7f252_033c9e55","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":10},"in_reply_to":"26c54c3a_6eeea214","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":40,"context_line":"  operator can define a Firmware Update config."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"},{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"8ce258dc_4072bf32","line":43,"range":{"start_line":43,"start_character":59,"end_line":43,"end_character":74},"updated":"2023-03-29 14:01:44.000000000","message":"will be created that allows....","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  operator can define a Firmware Update config."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"},{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1b7f0835_8964c0f3","line":43,"range":{"start_line":43,"start_character":59,"end_line":43,"end_character":74},"in_reply_to":"8ce258dc_4072bf32","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"},{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"05581404_be5988ca","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":29},"updated":"2023-03-29 14:01:44.000000000","message":"nit: installed firmware version","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":43,"context_line":"  and `RAIDInterface`. A new interface `FirmwareInterface` that will allow"},{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c572b0de_ebd5649d","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":29},"in_reply_to":"05581404_be5988ca","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"},{"line_number":48,"context_line":"  node, will be collected out-of-band and should be available after we enroll"},{"line_number":49,"context_line":"  the node."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff236589_5ed0c7b5","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":44},"updated":"2023-03-29 14:01:44.000000000","message":"nit: firmware version","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  retrieving current firmware of the hardware components in a node and"},{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"},{"line_number":48,"context_line":"  node, will be collected out-of-band and should be available after we enroll"},{"line_number":49,"context_line":"  the node."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"393948f8_48b5a6dc","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":44},"in_reply_to":"ff236589_5ed0c7b5","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"},{"line_number":48,"context_line":"  node, will be collected out-of-band and should be available after we enroll"},{"line_number":49,"context_line":"  the node."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5e5c1302_c2a795cf","line":48,"range":{"start_line":48,"start_character":6,"end_line":48,"end_character":7},"updated":"2023-03-29 14:01:44.000000000","message":"nit: remove comma","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  also update their firmware."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The information about the current firmware of each hardware component on the"},{"line_number":48,"context_line":"  node, will be collected out-of-band and should be available after we enroll"},{"line_number":49,"context_line":"  the node."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"15fe7d9c_4da454ec","line":48,"range":{"start_line":48,"start_character":6,"end_line":48,"end_character":7},"in_reply_to":"5e5c1302_c2a795cf","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de90544ba96ae996fb57297cc3309e79117f08ac","unresolved":true,"context_lines":[{"line_number":65,"context_line":"------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We can use the current `update_firmware` clean step via manual cleaning [0]_,"},{"line_number":68,"context_line":"but the downside is that we don\u0027t know which hardware components can be"},{"line_number":69,"context_line":"upgradable and what their present firmware versions are on the node."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"62962a0e_b74eab68","line":68,"range":{"start_line":68,"start_character":65,"end_line":68,"end_character":71},"updated":"2023-03-29 14:01:44.000000000","message":"are upgradable","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"29c27601817659334f0738dede832d9873954e58","unresolved":false,"context_lines":[{"line_number":65,"context_line":"------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We can use the current `update_firmware` clean step via manual cleaning [0]_,"},{"line_number":68,"context_line":"but the downside is that we don\u0027t know which hardware components can be"},{"line_number":69,"context_line":"upgradable and what their present firmware versions are on the node."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"85c56d6f_8d1cbe34","line":68,"range":{"start_line":68,"start_character":65,"end_line":68,"end_character":71},"in_reply_to":"62962a0e_b74eab68","updated":"2023-03-29 14:21:30.000000000","message":"Done","commit_id":"548c3f42aeb19eedf8ef621715dbedb697e359e8"},{"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":"b60f021437ed62ea5d87321712ef9cef1f86d83d","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware update. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"80bad367_86637956","line":14,"updated":"2023-04-03 21:28:43.000000000","message":"If we\u0027re creating an interface, we do need to make sure we keep in-band limitations in mind even if we aren\u0027t implementing them now.","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware update. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e45e5d8b_3b2876db","line":14,"in_reply_to":"3d07a63c_264cc764","updated":"2023-04-13 01:57:59.000000000","message":"Done","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c7e57d724ec485beb79721d8783b7f235d56a676","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware update. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f451e969_5985661f","line":14,"in_reply_to":"80bad367_86637956","updated":"2023-04-06 02:35:34.000000000","message":"Hey Jay, do you want me to highlight the limitations about in-band information in a section ? I added some information Ramdisk impact, but maybe we should highlight the limitations we discussed in the PTG, but not sure about the right section.","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"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":"dd4505f30845fc5ba7253d1bc5b7fc37f116ef35","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2010659"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware update. Initially we will only support Redfish."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3d07a63c_264cc764","line":14,"in_reply_to":"f451e969_5985661f","updated":"2023-04-06 18:58:03.000000000","message":"I don\u0027t care if it\u0027s written down or not; we just need to make sure we have confidence that this interface will work in-band as well... particularly around discovering what firmwares an in-band ramdisk can upgrade and what that interface would look like.","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"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":"b60f021437ed62ea5d87321712ef9cef1f86d83d","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"      - String"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    + last_version_flashed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      - String"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"c60049fb_257bf0d6","line":110,"updated":"2023-04-03 21:28:43.000000000","message":"Should we also store *when* the last version was flashed? As an operator i\u0027d want that info (not just when the versions were updated via GETs. This is also useful for hardware we discussed at PTG that may lie about versions until hard-reset)","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"      - String"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    + last_version_flashed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      - String"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b290b5b0_97537481","line":110,"in_reply_to":"1da68e5d_037788d0","updated":"2023-04-13 01:57:59.000000000","message":"got it, yeah, let me try to remove the ambiguity","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"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":"75a4f07684840a10a53633e432a81d170b3af060","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"      - String"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    + last_version_flashed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      - String"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1da68e5d_037788d0","line":110,"in_reply_to":"7cc1c534_58497563","updated":"2023-04-06 13:42:07.000000000","message":"It\u0027s ambiguous, as currently written, if updated_at refers to when the version numbers were updated (by querying the BMC) or when the last upgrade happened.","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c7e57d724ec485beb79721d8783b7f235d56a676","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"      - String"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    + last_version_flashed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      - String"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7cc1c534_58497563","line":110,"in_reply_to":"c60049fb_257bf0d6","updated":"2023-04-06 02:35:34.000000000","message":"When the last version was flashed would be in the updated_at, at least this was my initial idea, or should we have a more specific field?","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"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":"b60f021437ed62ea5d87321712ef9cef1f86d83d","unresolved":true,"context_lines":[{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    GET /v1/nodes/\u003cnode_ident\u003e/firmware"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e19feaff_67687785","line":153,"updated":"2023-04-03 21:28:43.000000000","message":"BIOS config?","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c7e57d724ec485beb79721d8783b7f235d56a676","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* A new REST API will be introduced to get the cached BIOS config for a node::"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    GET /v1/nodes/\u003cnode_ident\u003e/firmware"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2f36ba21_4b4b9d01","line":153,"in_reply_to":"e19feaff_67687785","updated":"2023-04-06 02:35:34.000000000","message":"ops...","commit_id":"262972740d2b8d842960973bdace8db125a7d144"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":30,"context_line":"step `update_firmware`; the problem is that it requires knowledge about the"},{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":34,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the Operating"},{"line_number":35,"context_line":"  System."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"db04dfed_180f2f1d","line":33,"range":{"start_line":33,"start_character":7,"end_line":33,"end_character":12},"updated":"2023-04-07 17:29:12.000000000","message":"nit: This is not just a telco cloud operator. But they are the ones who are the most exacting outside of hardware fabs themselves.\n\nIt could be any advanced operator, or really any baremetal operator.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"step `update_firmware`; the problem is that it requires knowledge about the"},{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":34,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the Operating"},{"line_number":35,"context_line":"  System."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"c8ab5e01_8c87d3ec","line":33,"range":{"start_line":33,"start_character":7,"end_line":33,"end_character":12},"in_reply_to":"db04dfed_180f2f1d","updated":"2023-04-13 01:57:59.000000000","message":"changed to \"As an operator\"","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":50,"context_line":"  component on the node will be collected out-of-band and should be available"},{"line_number":51,"context_line":"  after we enroll the node."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b665c0a7_42ccb06c","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":77},"updated":"2023-04-07 17:29:12.000000000","message":"so is this a meta action step or a \"i need to provide a complete mapping?, or is there a template? or I need to provide an update stanza for each device?","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":true,"context_lines":[{"line_number":50,"context_line":"  component on the node will be collected out-of-band and should be available"},{"line_number":51,"context_line":"  after we enroll the node."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"caa1faa2_a74d3f2e","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":77},"in_reply_to":"b665c0a7_42ccb06c","updated":"2023-04-13 01:57:59.000000000","message":"I think the description for firmware.update in L138 erased your doubt here, I\u0027m marking as resolved.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"8a824ef9e9f17d8897f6d8360b14477fed914d9f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  component on the node will be collected out-of-band and should be available"},{"line_number":51,"context_line":"  after we enroll the node."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"947e287f_59372993","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":77},"in_reply_to":"caa1faa2_a74d3f2e","updated":"2023-04-19 01:56:51.000000000","message":"Done","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"},{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"a10a6bb4_427be91b","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":8},"updated":"2023-04-07 17:29:12.000000000","message":"Is this proposing dynamic updates of the db model upon conductor start? If yes, yes please!\n\nAs an aside, this is something we\u0027ve discussed, just never ended up doing as a wired in encoded \"do this on launch\" action.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"8a824ef9e9f17d8897f6d8360b14477fed914d9f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"},{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"d380c768_bed17210","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":8},"in_reply_to":"544bb855_621d78c4","updated":"2023-04-19 01:56:51.000000000","message":"Done","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":true,"context_lines":[{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"},{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"544bb855_621d78c4","line":57,"range":{"start_line":56,"start_character":2,"end_line":57,"end_character":8},"in_reply_to":"a10a6bb4_427be91b","updated":"2023-04-13 01:57:59.000000000","message":"TBH I didn\u0027t think about this, but I would say it doesn\u0027t hurt to be this way (will need to undertand a bit the changes in reviews when the time comes)","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Only drivers that support redfish will be able to use this feature, a node"},{"line_number":62,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"},{"line_number":63,"context_line":"  interface set to `no-firmware`."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"6b67b7cd_424f45f6","line":61,"updated":"2023-04-07 17:29:12.000000000","message":"Lets distill this down to something along the lines of \"We intend this to start only on the redfish interface, all others will default to no-hardware. If other hardware vendors wish to implement, they are welcome to.\n\nSaying we\u0027re intentionally limiting this, is just not a great idea because we need to leave the door open.  I\u0027m stating this with the full contextual understanding redfish is our starting point.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Only drivers that support redfish will be able to use this feature, a node"},{"line_number":62,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"},{"line_number":63,"context_line":"  interface set to `no-firmware`."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ac93df01_45e04540","line":61,"in_reply_to":"6b67b7cd_424f45f6","updated":"2023-04-13 01:57:59.000000000","message":"Yeah, makes sense to me, I\u0027m updating this.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      - String"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    + oob_upgradable"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7727089e_5bcc6aea","line":103,"updated":"2023-04-07 17:29:12.000000000","message":"Where is this boolean coming from?","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"8a824ef9e9f17d8897f6d8360b14477fed914d9f","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      - String"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    + oob_upgradable"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"8e728e9d_fccf6c09","line":103,"in_reply_to":"60288ad4_43d3d963","updated":"2023-04-19 01:56:51.000000000","message":"Done","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      - String"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    + oob_upgradable"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"60288ad4_43d3d963","line":103,"in_reply_to":"7727089e_5bcc6aea","updated":"2023-04-13 01:57:59.000000000","message":"So, redfish can provide if the resource is upgradable, this would indicate if we can do via redfish via oob, normally the components that have False on it we can only upgrade via some vendor tool etc.","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"090d158b361c9f227e02f9e026fe9b1daa6993b2","unresolved":true,"context_lines":[{"line_number":147,"context_line":"        \"args\": {"},{"line_number":148,"context_line":"          \"settings\": ["},{"line_number":149,"context_line":"            {"},{"line_number":150,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":151,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"83e8ee54_381bc2ff","line":150,"updated":"2023-04-07 17:29:12.000000000","message":"As a comment, this addresses one of my earlier questions. That being said, I\u0027m assuming the component name would not be standardized as it would match up to whatever the BMC and thus vendor exposes?","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"8a824ef9e9f17d8897f6d8360b14477fed914d9f","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        \"args\": {"},{"line_number":148,"context_line":"          \"settings\": ["},{"line_number":149,"context_line":"            {"},{"line_number":150,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":151,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"0feb9580_7e1f269d","line":150,"in_reply_to":"5e343906_e912475b","updated":"2023-04-19 01:56:51.000000000","message":"Done","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34a42781d557793d52401c0aa1f383d7553dfa9e","unresolved":true,"context_lines":[{"line_number":147,"context_line":"        \"args\": {"},{"line_number":148,"context_line":"          \"settings\": ["},{"line_number":149,"context_line":"            {"},{"line_number":150,"context_line":"              \"component\": \u003cname\u003e,"},{"line_number":151,"context_line":"              \"url\": \u003cvalue\u003e"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5e343906_e912475b","line":150,"in_reply_to":"83e8ee54_381bc2ff","updated":"2023-04-13 01:57:59.000000000","message":"yeah, either we can try to have a map to standardize or just let it be how vendor exposes","commit_id":"b24720c6d689f0f458d69753d77f1fb1e4db01c5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      - String"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    + oob_upgradable"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"02f75c72_f7d57044","line":103,"updated":"2023-04-20 11:54:57.000000000","message":"I\u0027d use \"requires_ramdisk\" simply because it\u0027s a term we already use and I\u0027d like to avoid the abbreviation \"oob\".\n\nI also wonder if we really need this and updated_via in the first edition. The current deploy/clean step logic manages to handle the in-band vs out-of-band situation without relying on a similar flag.","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      - String"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    + oob_upgradable"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1fbefd2c_ed26b324","line":103,"in_reply_to":"02f75c72_f7d57044","updated":"2023-04-20 13:07:37.000000000","message":"This would be more to store the field updatable field if we would use the Inventory from Redfish. going to remove","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    + url"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      - String"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"45ef653d_60d8a741","line":107,"updated":"2023-04-20 11:54:57.000000000","message":"Not sure how I feel about storing the URL. It may become invalid really quickly. Do we have a case for it?","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    + url"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      - String"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"53696ac2_a1ebc245","line":107,"in_reply_to":"45ef653d_60d8a741","updated":"2023-04-20 13:07:37.000000000","message":"I though we would need for Metal3, I remember something about showing the URL that was used etc","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f2607f70284afb94fa5316fbdd75593fdd426c6e","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"      - boolean"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    + url"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      - String"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"2c1b4827_a76f9916","line":107,"in_reply_to":"53696ac2_a1ebc245","updated":"2023-04-21 02:17:16.000000000","message":"removed","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"      - DateTime"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    + updated_via - to identify if the update was done fia in-band or oob."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"      - String"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"dbd7e525_be075076","line":115,"updated":"2023-04-20 11:54:57.000000000","message":"I wonder how useful this actually is, but in any case it should be a boolean, I think?","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f2607f70284afb94fa5316fbdd75593fdd426c6e","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"      - DateTime"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    + updated_via - to identify if the update was done fia in-band or oob."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"      - String"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"e7c36436_eff5cf7c","line":115,"in_reply_to":"3cf1b299_5e8e6529","updated":"2023-04-21 02:17:16.000000000","message":"removed","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"      - DateTime"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    + updated_via - to identify if the update was done fia in-band or oob."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"      - String"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3cf1b299_5e8e6529","line":115,"in_reply_to":"dbd7e525_be075076","updated":"2023-04-20 13:07:37.000000000","message":"yeah I could be a boolean, we would change the field to something like (updated_via_oob) and store True or False, I\u0027m wondering if we want to go down this path or just keep it simple.","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":143,"context_line":"      \"clean_steps\": [{"},{"line_number":144,"context_line":"        \"interface\": \"firmware\","},{"line_number":145,"context_line":"        \"step\": \"update\","},{"line_number":146,"context_line":"        \"requires_ramdisk\": false,"},{"line_number":147,"context_line":"        \"args\": {"},{"line_number":148,"context_line":"          \"settings\": ["},{"line_number":149,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"90b952ea_56a77282","line":146,"updated":"2023-04-20 11:54:57.000000000","message":"This step will require a ramdisk in reality: even OOB steps need to understand when the reboot is over, especially when a Task is not available.\n\nAn ability not to boot IPA before manual cleaning would be handy, but we never got to it (requires_ramdisk: false really means: no IPA).","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      \"clean_steps\": [{"},{"line_number":144,"context_line":"        \"interface\": \"firmware\","},{"line_number":145,"context_line":"        \"step\": \"update\","},{"line_number":146,"context_line":"        \"requires_ramdisk\": false,"},{"line_number":147,"context_line":"        \"args\": {"},{"line_number":148,"context_line":"          \"settings\": ["},{"line_number":149,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5d98c864_4d643f81","line":146,"in_reply_to":"90b952ea_56a77282","updated":"2023-04-20 13:07:37.000000000","message":"Got it, so \"require_ramdisk\" wouldn\u0027t be to specify if is oob or in-band, I probably misunderstood when you said \"requires_ramdisk\" would be better in patch #2 https://review.opendev.org/c/openstack/ironic-specs/+/878505/2/specs/approved/firmware-interface.rst","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":163,"context_line":"* A new REST API will be introduced to get the cached Firmware information"},{"line_number":164,"context_line":"  for a node::"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    GET /v1/nodes/\u003cnode_ident\u003e/firmware"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  The operation will return the currently cached settings with the following"},{"line_number":169,"context_line":"  data schema::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0ed19162_5d077012","line":166,"updated":"2023-04-20 11:54:57.000000000","message":"If you want to include URL, you may consider adding the usual \"detail\" argument here and the corresponding --long argument to CLI. Otherwise the output may become unreadable.","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"* A new REST API will be introduced to get the cached Firmware information"},{"line_number":164,"context_line":"  for a node::"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    GET /v1/nodes/\u003cnode_ident\u003e/firmware"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  The operation will return the currently cached settings with the following"},{"line_number":169,"context_line":"  data schema::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"012557e3_346e6b7a","line":166,"in_reply_to":"0ed19162_5d077012","updated":"2023-04-20 13:07:37.000000000","message":"If we find a use case I will update this. Marking as resolved","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":169,"context_line":"  data schema::"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    ["},{"line_number":172,"context_line":"      {"},{"line_number":173,"context_line":"        \"component\":\"bios\","},{"line_number":174,"context_line":"        \"upgradable\": true,"},{"line_number":175,"context_line":"        \"initial_version\": \"v1.0 (01.02.2022)\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"f818818f_3addb788","line":172,"updated":"2023-04-20 11:54:57.000000000","message":"This sample does not have all fields that you add to the database, why?","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  data schema::"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    ["},{"line_number":172,"context_line":"      {"},{"line_number":173,"context_line":"        \"component\":\"bios\","},{"line_number":174,"context_line":"        \"upgradable\": true,"},{"line_number":175,"context_line":"        \"initial_version\": \"v1.0 (01.02.2022)\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"b3f41ddd_c17fe04c","line":172,"in_reply_to":"f818818f_3addb788","updated":"2023-04-20 13:07:37.000000000","message":"going to update","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Retrieve all firmware information about the node::"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"   $ openstack baremetal node firmware list \u003cnode-uuid\u003e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"0ce246c8_d0428aee","line":201,"updated":"2023-04-20 11:54:57.000000000","message":"nit: bonus for a sample output","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Retrieve all firmware information about the node::"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"   $ openstack baremetal node firmware list \u003cnode-uuid\u003e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"481f97ea_37255208","line":201,"in_reply_to":"0ce246c8_d0428aee","updated":"2023-04-20 13:07:37.000000000","message":"Ack","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":221,"context_line":"  firmware of the components in the node. The `settings` parameter is a list"},{"line_number":222,"context_line":"  of dictionaries"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. code-block::"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"  [{\"component\": \"bmc\", \"url\":\"\u003curl_new_bmc_fw\u003e\"},"},{"line_number":227,"context_line":"   {\"component\": \"bios\", \"url\":\"\u003curl_new_bios_fw\u003e\"}]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6a115817_d8fddc57","line":224,"updated":"2023-04-20 11:54:57.000000000","message":"nit: code-block requires a language, in this case JSON or Python","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  firmware of the components in the node. The `settings` parameter is a list"},{"line_number":222,"context_line":"  of dictionaries"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. code-block::"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"  [{\"component\": \"bmc\", \"url\":\"\u003curl_new_bmc_fw\u003e\"},"},{"line_number":227,"context_line":"   {\"component\": \"bios\", \"url\":\"\u003curl_new_bios_fw\u003e\"}]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9149f46e_18086bfb","line":224,"in_reply_to":"6a115817_d8fddc57","updated":"2023-04-20 13:07:37.000000000","message":"Ack","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":227,"context_line":"   {\"component\": \"bios\", \"url\":\"\u003curl_new_bios_fw\u003e\"}]"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* `cache_firmware_information()` - this method will be called to update the"},{"line_number":231,"context_line":"  firmware information in the `firmware_information` database table. It will"},{"line_number":232,"context_line":"  store the Firmware information for a node, or update the information in case"},{"line_number":233,"context_line":"  the `update` step was called."}],"source_content_type":"text/x-rst","patch_set":7,"id":"31fc308b_4a1b5a16","line":230,"updated":"2023-04-20 11:54:57.000000000","message":"I\u0027m not sure why you need both get_information and cache_firmware_information. I\u0027d expect the latter to be what we actually need.","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":false,"context_lines":[{"line_number":227,"context_line":"   {\"component\": \"bios\", \"url\":\"\u003curl_new_bios_fw\u003e\"}]"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* `cache_firmware_information()` - this method will be called to update the"},{"line_number":231,"context_line":"  firmware information in the `firmware_information` database table. It will"},{"line_number":232,"context_line":"  store the Firmware information for a node, or update the information in case"},{"line_number":233,"context_line":"  the `update` step was called."}],"source_content_type":"text/x-rst","patch_set":7,"id":"09b681a1_803ff0d3","line":230,"in_reply_to":"31fc308b_4a1b5a16","updated":"2023-04-20 13:07:37.000000000","message":"Right, when we request the information about the Firmware on the node we will access the DB to collect the information.","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c8d73f662e6c48172bfff67e1e3d878b79b29600","unresolved":true,"context_lines":[{"line_number":230,"context_line":"* `cache_firmware_information()` - this method will be called to update the"},{"line_number":231,"context_line":"  firmware information in the `firmware_information` database table. It will"},{"line_number":232,"context_line":"  store the Firmware information for a node, or update the information in case"},{"line_number":233,"context_line":"  the `update` step was called."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Nova driver impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b849aca3_45bea316","line":233,"updated":"2023-04-20 11:54:57.000000000","message":"nit: I\u0027d expect the update step do the needful internally, without going through the public API","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":230,"context_line":"* `cache_firmware_information()` - this method will be called to update the"},{"line_number":231,"context_line":"  firmware information in the `firmware_information` database table. It will"},{"line_number":232,"context_line":"  store the Firmware information for a node, or update the information in case"},{"line_number":233,"context_line":"  the `update` step was called."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Nova driver impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"07e008a8_2ce96ed7","line":233,"in_reply_to":"9ad438d1_dfd6bdae","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"eb942f73242b74b2c3fca1f219239a515b7942e4","unresolved":true,"context_lines":[{"line_number":230,"context_line":"* `cache_firmware_information()` - this method will be called to update the"},{"line_number":231,"context_line":"  firmware information in the `firmware_information` database table. It will"},{"line_number":232,"context_line":"  store the Firmware information for a node, or update the information in case"},{"line_number":233,"context_line":"  the `update` step was called."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Nova driver impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ad438d1_dfd6bdae","line":233,"in_reply_to":"b849aca3_45bea316","updated":"2023-04-20 13:07:37.000000000","message":"after the execution we will need to make sure we store the new information, so we need to call cache_firmware_information","commit_id":"4b98488e5f403986d85a444c65274853e1046703"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":21,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":22,"context_line":"specific versions of firmware on different hardware components (e.g. BIOS,"},{"line_number":23,"context_line":"NICs, BMC, etc), main reason being they like their machines in cluster to be"},{"line_number":24,"context_line":"homogenous."},{"line_number":25,"context_line":"When they get a new machine they need to update all components"},{"line_number":26,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"a6bb65de_79dd136f","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":10},"updated":"2023-04-24 12:53:24.000000000","message":"nit: homogeneous","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Some operators would like to make sure that their hardware is using"},{"line_number":22,"context_line":"specific versions of firmware on different hardware components (e.g. BIOS,"},{"line_number":23,"context_line":"NICs, BMC, etc), main reason being they like their machines in cluster to be"},{"line_number":24,"context_line":"homogenous."},{"line_number":25,"context_line":"When they get a new machine they need to update all components"},{"line_number":26,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ebe50bbe_11e3895c","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":10},"in_reply_to":"a6bb65de_79dd136f","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":26,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Currently in Ironic we have support to update the firmware, the operator can"},{"line_number":29,"context_line":"achieve this by invoking  manual cleaning on the node by enabling the clean"},{"line_number":30,"context_line":"step `update_firmware`; the problem is that it requires knowledge about the"},{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"f83283d0_af6c982f","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":26},"updated":"2023-04-24 12:53:24.000000000","message":"nit: double space","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":26,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Currently in Ironic we have support to update the firmware, the operator can"},{"line_number":29,"context_line":"achieve this by invoking  manual cleaning on the node by enabling the clean"},{"line_number":30,"context_line":"step `update_firmware`; the problem is that it requires knowledge about the"},{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"32b30c33_dac8e352","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":26},"in_reply_to":"f83283d0_af6c982f","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* As an operator I want to install specific versions of firmware in my"},{"line_number":34,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the Operating"},{"line_number":35,"context_line":"  System."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"800655ca_0ec114d7","line":34,"range":{"start_line":34,"start_character":12,"end_line":34,"end_character":16},"updated":"2023-04-24 12:53:24.000000000","message":"nit: correct form should be BIOS (all capitals) as it\u0027s an acronym","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":31,"context_line":"clean step name and parameters."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* As an operator I want to install specific versions of firmware in my"},{"line_number":34,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the Operating"},{"line_number":35,"context_line":"  System."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"34e6d3ce_3bd714ef","line":34,"range":{"start_line":34,"start_character":12,"end_line":34,"end_character":16},"in_reply_to":"800655ca_0ec114d7","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"},{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."}],"source_content_type":"text/x-rst","patch_set":8,"id":"525477be_038f382a","line":56,"range":{"start_line":56,"start_character":65,"end_line":56,"end_character":72},"updated":"2023-04-24 12:53:24.000000000","message":"nit: it doesn\u0027t","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* A new clean step `update` will be created for the `FirmwareInterface`, it"},{"line_number":54,"context_line":"  will be used to update the firmware of each hardware component on the node."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new database table `firmware_information` will be created if doesn\u0027t"},{"line_number":57,"context_line":"  exist. It will contain the information about the current firmware version of"},{"line_number":58,"context_line":"  each hardware component on a node, the information is updated in case the"},{"line_number":59,"context_line":"  clean step `update` is called."}],"source_content_type":"text/x-rst","patch_set":8,"id":"e1a36402_ffd4974a","line":56,"range":{"start_line":56,"start_character":65,"end_line":56,"end_character":72},"in_reply_to":"525477be_038f382a","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* We intend this to start only on the redfish interface, all others will"},{"line_number":62,"context_line":"  default to `no-firmware`. If other hardware vendors wish to implement,"},{"line_number":63,"context_line":"  they are welcome to."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"b99b0af3_d9cc33b9","line":62,"range":{"start_line":62,"start_character":62,"end_line":62,"end_character":71},"updated":"2023-04-24 12:53:24.000000000","message":"nit: implement it","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  clean step `update` is called."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* We intend this to start only on the redfish interface, all others will"},{"line_number":62,"context_line":"  default to `no-firmware`. If other hardware vendors wish to implement,"},{"line_number":63,"context_line":"  they are welcome to."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"04cae7c7_1aa793ea","line":62,"range":{"start_line":62,"start_character":62,"end_line":62,"end_character":71},"in_reply_to":"b99b0af3_d9cc33b9","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2b54feebe8b039f04941ff66908efa3d46ec6bca","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* A new field `firmware_interface` will be added to the `Node` object."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* A new database `firmware_information` will be created, it will store"},{"line_number":81,"context_line":"  the firmware information of each hardware component of a Node."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  * Table description:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"0f0a9ff1_52356a61","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":16},"updated":"2023-04-24 12:53:24.000000000","message":"I think you mean \"table\" here, better change it","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"98ab28f110f988ff8be933e7821b6d958ae41f20","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* A new field `firmware_interface` will be added to the `Node` object."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* A new database `firmware_information` will be created, it will store"},{"line_number":81,"context_line":"  the firmware information of each hardware component of a Node."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  * Table description:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"d6c5b6a4_28d5a98d","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":16},"in_reply_to":"0f0a9ff1_52356a61","updated":"2023-04-24 21:45:52.000000000","message":"Done","commit_id":"bf9f5e725975d17b499bedf380b1f0d93654c801"},{"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":"82e4ad59af100bb62e02f5f061be0fe23b463df1","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updates. Initially we will only support Redfish and updates via"},{"line_number":15,"context_line":"OOB."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":9,"id":"d184ffca_bcabc9b0","line":15,"updated":"2023-04-25 19:55:11.000000000","message":"I reiterate my previous concern, which wasn\u0027t addressed: we need to at least communicate, at a very high level, how this will interface with in-band/agent upgrades. Especially given that BIOS interface, the most closely analogous one to this, was never implemented in-band, and for RAID interface, we used new, bespoke cleaning steps which might not make sense in a hardware-manager-driven agent world.","commit_id":"68a03c1ae2254f15288407f4d5aafbbdf518474e"},{"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":"dc1fe743d0670e90000544701fca6db927b2266d","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updates. Initially we will only support Redfish and updates via"},{"line_number":15,"context_line":"OOB."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":9,"id":"8cc7f11a_c5caaae8","line":15,"in_reply_to":"832c283e_8b9d8abc","updated":"2023-04-26 15:47:42.000000000","message":"That gets tough in a world where you\u0027re using dynamic hardware managers -- how would this meta-method know what other HW Mgrs are loaded to determine the full list of updates to do?\n\nI almost think we need to identify a special hardware manager method, which takes a specific set of arguments (firmware_upgrade_via_interface?), which could be called across all loaded managers (with a HW support value of \u003e0). This would allow an operator to add custom firmware upgrades implemented solely via hardware managers.","commit_id":"68a03c1ae2254f15288407f4d5aafbbdf518474e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d45649cfad6d7d6f20002aed173bdda58e04640","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updates. Initially we will only support Redfish and updates via"},{"line_number":15,"context_line":"OOB."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a6c3ee7_b6b0a868","line":15,"in_reply_to":"8cc7f11a_c5caaae8","updated":"2023-04-28 16:08:53.000000000","message":"That\u0027s why I say we need an agent-level API. Something calling dispatch_to_all_managers to list upgradable components. Kinda similar to how clean steps are collected.","commit_id":"68a03c1ae2254f15288407f4d5aafbbdf518474e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85577a37aed9289bfe3ba0152a543115c1a92c6a","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to implement a new hardware interface for automated"},{"line_number":14,"context_line":"firmware updates. Initially we will only support Redfish and updates via"},{"line_number":15,"context_line":"OOB."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":9,"id":"832c283e_8b9d8abc","line":15,"in_reply_to":"d184ffca_bcabc9b0","updated":"2023-04-26 12:35:13.000000000","message":"Not sure what Iury has in mind, but I actually thought about having the main clean step call in-band clean steps. Devil is in the details, of course, but that\u0027s the model we have for write_image.","commit_id":"68a03c1ae2254f15288407f4d5aafbbdf518474e"},{"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":"2d2f5ca9087da5a827ab2fd77e3f7750f32e8962","unresolved":true,"context_lines":[{"line_number":65,"context_line":"          interface is planned to be implemented later, it can be called"},{"line_number":66,"context_line":"          `AgentFirmware`, changes on IPA-level APIs will have to be defined."},{"line_number":67,"context_line":"          Other implementations can support going trough this interface to"},{"line_number":68,"context_line":"          execute the necessary in-band steps."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1429f1bb_e22f1bd5","line":68,"updated":"2023-04-26 17:34:06.000000000","message":"I was hoping for something more detailed than this, but it\u0027s probably best if this just gets merged sooner rather than later.","commit_id":"7713667a779f6a9af69f7c8e9f9ddd76c2c151fa"}],"specs/approved/fwup-interface.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some telco companies like to have their hardware using specific versions"},{"line_number":21,"context_line":"of firmware on different hardware componnents (e.g., BIOS, NICs, BMC, etc),"},{"line_number":22,"context_line":"this is because they like their machines in cluster to be homogenous."},{"line_number":23,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":1,"id":"98a945c8_e44bd183","line":20,"updated":"2023-03-24 10:02:31.000000000","message":"nit: \"would like to make sure that ...\"","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"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":"e4008ba373779c57450c8b6e40ea050cc342089d","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some telco companies like to have their hardware using specific versions"},{"line_number":21,"context_line":"of firmware on different hardware componnents (e.g., BIOS, NICs, BMC, etc),"},{"line_number":22,"context_line":"this is because they like their machines in cluster to be homogenous."},{"line_number":23,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0975b5e2_ce32b83e","line":20,"updated":"2023-03-24 21:17:02.000000000","message":"nit: s/telco companies/operators/ ? I\u0027m not sure it matters who has the use case, and I\u0027d rather specs be generic and talk about use cases and not specific customers.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some telco companies like to have their hardware using specific versions"},{"line_number":21,"context_line":"of firmware on different hardware componnents (e.g., BIOS, NICs, BMC, etc),"},{"line_number":22,"context_line":"this is because they like their machines in cluster to be homogenous."},{"line_number":23,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8e92cf8c_812781c2","line":20,"in_reply_to":"0975b5e2_ce32b83e","updated":"2023-03-24 23:35:18.000000000","message":"ack.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Some telco companies like to have their hardware using specific versions"},{"line_number":21,"context_line":"of firmware on different hardware componnents (e.g., BIOS, NICs, BMC, etc),"},{"line_number":22,"context_line":"this is because they like their machines in cluster to be homogenous."},{"line_number":23,"context_line":"So when they get a new machine they need to update all components"}],"source_content_type":"text/x-rst","patch_set":1,"id":"22ef726c_803bc5c5","line":20,"in_reply_to":"98a945c8_e44bd183","updated":"2023-03-24 12:57:38.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":24,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Current in Ironic we have support to update the firmware, this can be done"},{"line_number":27,"context_line":"using manual-cleaning enabling the clean step `update_firmware`, the problem"},{"line_number":28,"context_line":"is that this must be invoked by the operator and it also requires knowledge"},{"line_number":29,"context_line":"about the clean step name and parameters."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8659862a_5a1340bc","line":27,"updated":"2023-03-24 10:02:31.000000000","message":"very nit: manual cleaning is not a compound noun","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":true,"context_lines":[{"line_number":24,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Current in Ironic we have support to update the firmware, this can be done"},{"line_number":27,"context_line":"using manual-cleaning enabling the clean step `update_firmware`, the problem"},{"line_number":28,"context_line":"is that this must be invoked by the operator and it also requires knowledge"},{"line_number":29,"context_line":"about the clean step name and parameters."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b5e17e44_491db82f","line":27,"in_reply_to":"8659862a_5a1340bc","updated":"2023-03-24 12:57:38.000000000","message":"For some reason my VSCode thought it was ok to automatically change to a compound word 😂","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"81dbeb161b0084251f152ed199b977d3719ef3fd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"firmware by doing upgrade or downgrade."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Current in Ironic we have support to update the firmware, this can be done"},{"line_number":27,"context_line":"using manual-cleaning enabling the clean step `update_firmware`, the problem"},{"line_number":28,"context_line":"is that this must be invoked by the operator and it also requires knowledge"},{"line_number":29,"context_line":"about the clean step name and parameters."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f7c5446_5942c531","line":27,"in_reply_to":"b5e17e44_491db82f","updated":"2023-03-24 15:30:41.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":26,"context_line":"Current in Ironic we have support to update the firmware, this can be done"},{"line_number":27,"context_line":"using manual-cleaning enabling the clean step `update_firmware`, the problem"},{"line_number":28,"context_line":"is that this must be invoked by the operator and it also requires knowledge"},{"line_number":29,"context_line":"about the clean step name and parameters."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":32,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the OS."}],"source_content_type":"text/x-rst","patch_set":1,"id":"26900d4c_55039fff","line":29,"updated":"2023-03-24 10:02:31.000000000","message":"Yep, the latter is actually the problem.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Current in Ironic we have support to update the firmware, this can be done"},{"line_number":27,"context_line":"using manual-cleaning enabling the clean step `update_firmware`, the problem"},{"line_number":28,"context_line":"is that this must be invoked by the operator and it also requires knowledge"},{"line_number":29,"context_line":"about the clean step name and parameters."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* As a telco user I want to install specific versions of firmwares in my"},{"line_number":32,"context_line":"  machines (Bios, NICs, DPUs, GPUs, BMC) before installing the OS."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ac3c8202_9bbc707d","line":29,"in_reply_to":"26900d4c_55039fff","updated":"2023-03-24 23:35:18.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":39,"context_line":"  operator can define a Firmware Update config."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":42,"context_line":"  and `RAIDInterface`, we will have a new interface `FirmwareUpdate` which"},{"line_number":43,"context_line":"  will initially contain the current components and their specific firmware"},{"line_number":44,"context_line":"  versions. The components that need their firmware updated will be passed in"},{"line_number":45,"context_line":"  the form of JSON dictionary as args for the `update_firmware` clean step."}],"source_content_type":"text/x-rst","patch_set":1,"id":"660cf9bc_e3c6d45a","line":42,"range":{"start_line":42,"start_character":53,"end_line":42,"end_character":67},"updated":"2023-03-24 10:02:31.000000000","message":"Bikeshedding, but I\u0027d call it FirmwareInterface since it not just updates, but also provides information (and for brevity, node.firmware_update_interface is quite a lot to type).","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  operator can define a Firmware Update config."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* The work to be done here is similar to what we did for `BIOSInterface`"},{"line_number":42,"context_line":"  and `RAIDInterface`, we will have a new interface `FirmwareUpdate` which"},{"line_number":43,"context_line":"  will initially contain the current components and their specific firmware"},{"line_number":44,"context_line":"  versions. The components that need their firmware updated will be passed in"},{"line_number":45,"context_line":"  the form of JSON dictionary as args for the `update_firmware` clean step."}],"source_content_type":"text/x-rst","patch_set":1,"id":"87792a21_fac6b20f","line":42,"range":{"start_line":42,"start_character":53,"end_line":42,"end_character":67},"in_reply_to":"660cf9bc_e3c6d45a","updated":"2023-03-24 12:57:38.000000000","message":"Ack","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":44,"context_line":"  versions. The components that need their firmware updated will be passed in"},{"line_number":45,"context_line":"  the form of JSON dictionary as args for the `update_firmware` clean step."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* A new databased table `firmware_information` will be created if doesn\u0027t"},{"line_number":48,"context_line":"  exist, the current information about the firmware versions for each hardware"},{"line_number":49,"context_line":"  component for a node will be updated as part of the `update_firmware` clean"},{"line_number":50,"context_line":"  step."}],"source_content_type":"text/x-rst","patch_set":1,"id":"27ce203b_235806a1","line":47,"updated":"2023-03-24 10:02:31.000000000","message":"nit: database","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  versions. The components that need their firmware updated will be passed in"},{"line_number":45,"context_line":"  the form of JSON dictionary as args for the `update_firmware` clean step."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* A new databased table `firmware_information` will be created if doesn\u0027t"},{"line_number":48,"context_line":"  exist, the current information about the firmware versions for each hardware"},{"line_number":49,"context_line":"  component for a node will be updated as part of the `update_firmware` clean"},{"line_number":50,"context_line":"  step."}],"source_content_type":"text/x-rst","patch_set":1,"id":"24d6a85f_35d3c843","line":47,"in_reply_to":"27ce203b_235806a1","updated":"2023-03-24 12:57:38.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":47,"context_line":"* A new databased table `firmware_information` will be created if doesn\u0027t"},{"line_number":48,"context_line":"  exist, the current information about the firmware versions for each hardware"},{"line_number":49,"context_line":"  component for a node will be updated as part of the `update_firmware` clean"},{"line_number":50,"context_line":"  step."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Only drivers that supports redfish will be able to use this feature, a node"},{"line_number":53,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"44cb8a9f_498583b7","line":50,"updated":"2023-03-24 10:02:31.000000000","message":"This is true, but it\u0027s also too late: we need to think about a mechanism to update it earlier. Out-of-band information can be collected the same way as we do for BIOS settings, i.e. first on manageable then on cleaning.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"81dbeb161b0084251f152ed199b977d3719ef3fd","unresolved":true,"context_lines":[{"line_number":47,"context_line":"* A new databased table `firmware_information` will be created if doesn\u0027t"},{"line_number":48,"context_line":"  exist, the current information about the firmware versions for each hardware"},{"line_number":49,"context_line":"  component for a node will be updated as part of the `update_firmware` clean"},{"line_number":50,"context_line":"  step."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Only drivers that supports redfish will be able to use this feature, a node"},{"line_number":53,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfaaea15_464f4553","line":50,"in_reply_to":"44cb8a9f_498583b7","updated":"2023-03-24 15:30:41.000000000","message":"I have the feeling that verify_steps could help here, since we can run after enroll we could have a step to get the current versions? just thinking out loud.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"* A new databased table `firmware_information` will be created if doesn\u0027t"},{"line_number":48,"context_line":"  exist, the current information about the firmware versions for each hardware"},{"line_number":49,"context_line":"  component for a node will be updated as part of the `update_firmware` clean"},{"line_number":50,"context_line":"  step."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Only drivers that supports redfish will be able to use this feature, a node"},{"line_number":53,"context_line":"  that was created with a driver that doesn\u0027t support redfish will have the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d220e793_fea1a42e","line":50,"in_reply_to":"bfaaea15_464f4553","updated":"2023-03-24 23:35:18.000000000","message":"Changed a few things in this part to mention that we will need a way to collect the current versions of FW in the node, also added the information about the new step to update.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"We can use the current `update_firmware` clean step, but since this needs"},{"line_number":60,"context_line":"to be invoked via manual-cleaning, it must be invoked by the operator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Data model impact"},{"line_number":63,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"29b4f837_1874e16d","line":60,"updated":"2023-03-24 10:02:31.000000000","message":"Must be invoked by the operator is not the downside. The downside is that without explicit information, we cannot know which upgradable components the node has and what the current versions are.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"We can use the current `update_firmware` clean step, but since this needs"},{"line_number":60,"context_line":"to be invoked via manual-cleaning, it must be invoked by the operator."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Data model impact"},{"line_number":63,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a0b10b51_69ad9da1","line":60,"in_reply_to":"29b4f837_1874e16d","updated":"2023-03-24 12:57:38.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* GET current FW information from the node::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   GET /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Update FW for a node::"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9e115f5b_904d71f9","line":77,"updated":"2023-03-24 10:02:31.000000000","message":"Maybe even just GET /v1/nodes/\u003cnode\u003e/firmware that returns a listing of components like\n\n [\n     {\n         \"type\": \"bios\",\n         \"upgradable\": true,\n         \"current_version\": \"v1.2.3.4 (01.02.2023)\",\n         \"canonical_version\": \"1.2.3.4\"\n     },\n     {\n         \"type\": \"bmc\",\n         ....\n     }\n ]\n \nNote how I incorporate some version-guessing logic based on the Jacob\u0027s research.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"81dbeb161b0084251f152ed199b977d3719ef3fd","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* GET current FW information from the node::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   GET /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Update FW for a node::"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1ea1ae25_73479bb3","line":77,"in_reply_to":"9e115f5b_904d71f9","updated":"2023-03-24 15:30:41.000000000","message":"Ack","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   GET /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Update FW for a node::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"   PUT /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"01dd101f_9dbd58c5","line":79,"updated":"2023-03-24 10:02:31.000000000","message":"This will still be a manual clean step, the same way it works for RAID and BIOS. But we need to settle on a new standard name, like \"firmware.update\". And standard arguments that follow the reported components.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"81dbeb161b0084251f152ed199b977d3719ef3fd","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   GET /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Update FW for a node::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"   PUT /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"470f8d45_7ab12118","line":79,"in_reply_to":"01dd101f_9dbd58c5","updated":"2023-03-24 15:30:41.000000000","message":"just want to be sure, do we plan to create a new manual clean step or re-use the one we have `update_firmware`?","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   GET /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* Update FW for a node::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"   PUT /v1/nodes/\u003cnode\u003e/\u003cfirmware_tbd\u003e"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e02ae1e0_8c10c9ad","line":79,"in_reply_to":"470f8d45_7ab12118","updated":"2023-03-24 23:35:18.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":86,"context_line":"-------------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Support on openstacksdk"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"RPC API impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"92eac0a9_cfacd68a","line":89,"updated":"2023-03-24 10:02:31.000000000","message":"A CLI command to fetch the versions","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"-------------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Support on openstacksdk"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"RPC API impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"35aa38bc_94cfb7f1","line":89,"in_reply_to":"92eac0a9_cfacd68a","updated":"2023-03-24 12:57:38.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":91,"context_line":"RPC API impact"},{"line_number":92,"context_line":"--------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Will need to create RPC API to get current information and to update."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Driver API impact"},{"line_number":97,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7731a436_10d6ac51","line":94,"updated":"2023-03-24 10:02:31.000000000","message":"This needs more details, I\u0027m not convinced we actually need an RPC.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"RPC API impact"},{"line_number":92,"context_line":"--------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Will need to create RPC API to get current information and to update."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Driver API impact"},{"line_number":97,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"cd715906_42050047","line":94,"in_reply_to":"7731a436_10d6ac51","updated":"2023-03-24 23:35:18.000000000","message":"Done, updated based on irc discussion.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":104,"context_line":"  hardware component available  on the node."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* update_firmware() - will update the firmware of the selected hardware"},{"line_number":107,"context_line":"  components on the node."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Nova driver impact"},{"line_number":110,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"735eb29f_117c9d1d","line":107,"updated":"2023-03-24 10:02:31.000000000","message":"Note: this is a clean step. Maybe also a deploy step? Also no need to repeat \"firmware\" in the name.\n\nPlease specify the arguments. I assume it will be a list of dictionaries like\n\n {\"component\": bmc, \"urls\": [???]}","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":true,"context_lines":[{"line_number":104,"context_line":"  hardware component available  on the node."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* update_firmware() - will update the firmware of the selected hardware"},{"line_number":107,"context_line":"  components on the node."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Nova driver impact"},{"line_number":110,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"abb91c0c_1dd5b35e","line":107,"in_reply_to":"735eb29f_117c9d1d","updated":"2023-03-24 12:57:38.000000000","message":"In my mind this would directly call the clean step we have in ironic `update_firmware`, so maybe we need to keep the same parameters? \nThe current `update_firmware` consists of a JSON in the following format\n```\n[{\n    \"interface\": \"management\",\n    \"step\": \"update_firmware\",\n    \"args\": {\n        \"firmware_images\":[\n            {\n                \"url\": \"\u003curl_to_firmware_image1\u003e\",\n                \"checksum\": \"\u003cchecksum for image, uses SHA1\u003e\",\n                \"source\": \"\u003coptional override source setting for image\u003e\",\n                \"wait\": \u003cnumber_of_seconds_to_wait\u003e\n            },\n            {\n                \"url\": \"\u003curl_to_firmware_image2\u003e\"\n            },\n            ...\n        ]\n    }\n}]\n```\nA list of dict makes sense, each dict will be tied to a component that will be updated based on the url provided.\n`[{\"component\": \"bios\", \"url\": \u003cmy bios_fw_url\u003e}, {\"component\": \"bmc\", \"url\": \u003cmy_bmc_fw_url\u003e}]`\n\noh cool, I will just call `update` in this case..","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"920ea148e4e019378abe64c0f5cda8dd952e951a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  hardware component available  on the node."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* update_firmware() - will update the firmware of the selected hardware"},{"line_number":107,"context_line":"  components on the node."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Nova driver impact"},{"line_number":110,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9518db80_0de417f8","line":107,"in_reply_to":"abb91c0c_1dd5b35e","updated":"2023-03-24 23:35:18.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b86d01b7159eb883ae3e505b79aa2b41c27f9afa","unresolved":true,"context_lines":[{"line_number":114,"context_line":"Ramdisk impact"},{"line_number":115,"context_line":"--------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"* TBD"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Security impact"},{"line_number":120,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0e7f676c_a497e485","line":117,"updated":"2023-03-24 10:02:31.000000000","message":"None in the first pass since we only target redfish.","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"d28faa4ffc4e1185470f1badb84231102297732f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Ramdisk impact"},{"line_number":115,"context_line":"--------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"* TBD"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Security impact"},{"line_number":120,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8c445ede_3ea80871","line":117,"in_reply_to":"0e7f676c_a497e485","updated":"2023-03-24 12:57:38.000000000","message":"Done","commit_id":"2c083fc8cbad2df5a40f8581a825c73ac2c5248e"}]}
