)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47660115c4c4609d2c2222a97f22652ff0a34f35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0dff54fc_e5f57863","updated":"2024-06-24 11:03:08.000000000","message":"I think there\u0027s a bit more work needed here, but I\u0027d like @dtantsur@protonmail.com to take a look. Soft -1","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5d12c894ca5e345cf6242cc0fa8ec9d35715d505","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8f84a3eb_d886cfa9","updated":"2024-07-08 15:28:04.000000000","message":"Thanks!","commit_id":"c6281c5bc7ceba3251ac771aa1ced9e55bccf141"}],"openstack/baremetal/v1/_common.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":88,"context_line":"CHANGE_BOOT_MODE_VERSION \u003d \u00271.76\u0027"},{"line_number":89,"context_line":"\"\"\"API version in which boot_mode and secure_boot states can be changed\"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"LIST_FIRMWARE_VERSION \u003d \u00271.86\u0027"},{"line_number":92,"context_line":"\"\"\"API verstion in which firmware components of a node can be listed\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"89a8999f_3e900391","line":91,"updated":"2024-07-01 16:11:21.000000000","message":"nit: it\u0027s not just listing firmware components, all firmware actions were added there, so you can drop LIST_","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"CHANGE_BOOT_MODE_VERSION \u003d \u00271.76\u0027"},{"line_number":89,"context_line":"\"\"\"API version in which boot_mode and secure_boot states can be changed\"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"LIST_FIRMWARE_VERSION \u003d \u00271.86\u0027"},{"line_number":92,"context_line":"\"\"\"API verstion in which firmware components of a node can be listed\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"c98fa339_336f9b73","line":91,"in_reply_to":"89a8999f_3e900391","updated":"2024-07-01 17:25:34.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":89,"context_line":"\"\"\"API version in which boot_mode and secure_boot states can be changed\"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"LIST_FIRMWARE_VERSION \u003d \u00271.86\u0027"},{"line_number":92,"context_line":"\"\"\"API verstion in which firmware components of a node can be listed\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class Resource(resource.Resource):"}],"source_content_type":"text/x-python","patch_set":2,"id":"295549d3_5b946d6a","line":92,"updated":"2024-07-01 16:11:21.000000000","message":"typo: version","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"\"\"\"API version in which boot_mode and secure_boot states can be changed\"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"LIST_FIRMWARE_VERSION \u003d \u00271.86\u0027"},{"line_number":92,"context_line":"\"\"\"API verstion in which firmware components of a node can be listed\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class Resource(resource.Resource):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9233fee2_cd2e4cdd","line":92,"in_reply_to":"295549d3_5b946d6a","updated":"2024-07-01 17:25:34.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"}],"openstack/baremetal/v1/node.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47660115c4c4609d2c2222a97f22652ff0a34f35","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"8441d646_cec6e005","line":1400,"updated":"2024-06-24 11:03:08.000000000","message":"I suspect you want to implement a `Firmware` resource with `allow_list \u003d True`, rather than doing this since Firmware is a child resource of a `Node`","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"370a500c667e0a2aecedf45603a43ec0e8ce995f","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"40501fcf_020aef0f","line":1400,"in_reply_to":"187c945f_d913b0fb","updated":"2024-07-08 15:04:42.000000000","message":"Stephen, do you have strong options here? Or we can move forward with this approach? Thank you!","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"3c27474223e1e2486725fc36db9c6206e709d894","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"9a426ecc_ef391e1b","line":1400,"in_reply_to":"296ecc9b_85249fd1","updated":"2024-06-25 12:32:42.000000000","message":"We talked with our mentors iurygregory@gmail.com masghar@redhat.com elfosardo@gmail.com in a meeting today and we all agreed that making a new resource for this is a bit overkill. Since this firmware only makes sense in conjunction with the `Node` itself, they said it made sense for it to be a standard `Node` resource method and that it followed conventions in the baremetal service.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0deb1c44472a1b8fa64c586ffc6ab09e6df4bbf0","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"f0183268_12638a16","line":1400,"in_reply_to":"40501fcf_020aef0f","updated":"2024-07-08 15:14:54.000000000","message":"If @dtantsur@protonmail.com is happy with the current approach, I am too.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"187c945f_d913b0fb","line":1400,"in_reply_to":"4865fbcf_f10edcb1","updated":"2024-07-01 16:11:21.000000000","message":"I\u0027m a bit on the edge here. While history API does resemble a normal CRUD subresource, firmware components don\u0027t follow the same pattern (no singular GET, no other operations). I can live with the current version.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f40a13ea8ff906566adff9562cbe55936bc8e4e9","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"296ecc9b_85249fd1","line":1400,"in_reply_to":"6b4601e8_aa3272d3","updated":"2024-06-24 12:44:34.000000000","message":"Yeah, that\u0027s not an issue. For example, see [server diagnostics](https://github.com/openstack/openstacksdk/blob/master/openstack/compute/v2/server_diagnostics.py) or [server interfaces](https://github.com/openstack/openstacksdk/blob/master/openstack/compute/v2/server_interface.py), both for the compute service. The trick is to specify a `Path`-type resource field to account for the parent resource\u0027s ID.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"d31b4fdd85ce49f37c34af24048682c72fa78633","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"6b4601e8_aa3272d3","line":1400,"in_reply_to":"8441d646_cec6e005","updated":"2024-06-24 11:50:49.000000000","message":"I\u0027m not quite sure if it should be done that way, since the base path to this API call is `/nodes`, meaning it should be in the `Node` resource. From what I can see, the other resources have different base paths so I don\u0027t think an implementation like that would work. If my understanding is wrong, please let me know.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"41925e8c4d26ac8e3b92ea7d38e194db3343772a","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"4865fbcf_f10edcb1","line":1400,"in_reply_to":"9a426ecc_ef391e1b","updated":"2024-07-01 02:27:05.000000000","message":"Hey Stephen, we think this would still be the way to go for this patch. If you would like to discuss in the openstacksdk meeting let us know.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a95abde1f206be94e3bc5fa8df7bef86eee52b9b","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"        exceptions.raise_from_response(response, error_message\u003dmsg)"},{"line_number":1398,"context_line":"        return response.json()"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."}],"source_content_type":"text/x-python","patch_set":2,"id":"60a136c1_b77fe509","line":1400,"in_reply_to":"f0183268_12638a16","updated":"2024-07-08 15:18:47.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"41925e8c4d26ac8e3b92ea7d38e194db3343772a","unresolved":true,"context_lines":[{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."},{"line_number":1404,"context_line":"        :returns: The HTTP response."},{"line_number":1405,"context_line":"        \"\"\""},{"line_number":1406,"context_line":"        session \u003d self._get_session(session)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ecafece_16de2b74","line":1403,"updated":"2024-07-01 02:27:05.000000000","message":"I think you also need the node_id here, since the endpoint requires.\nI will try to test this out to be sure","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."},{"line_number":1404,"context_line":"        :returns: The HTTP response."},{"line_number":1405,"context_line":"        \"\"\""},{"line_number":1406,"context_line":"        session \u003d self._get_session(session)"}],"source_content_type":"text/x-python","patch_set":2,"id":"87d4d0ba_5f4eb19a","line":1403,"in_reply_to":"5ecafece_16de2b74","updated":"2024-07-01 16:11:21.000000000","message":"There is self.id already, no need for another argument","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"0c72d93aaaafea78c6ce86d38877bc644ab9c04b","unresolved":false,"context_lines":[{"line_number":1400,"context_line":"    def list_firmware(self, session):"},{"line_number":1401,"context_line":"        \"\"\"List firmware components associated with the node."},{"line_number":1402,"context_line":""},{"line_number":1403,"context_line":"        :param session: The session to use for making this request."},{"line_number":1404,"context_line":"        :returns: The HTTP response."},{"line_number":1405,"context_line":"        \"\"\""},{"line_number":1406,"context_line":"        session \u003d self._get_session(session)"}],"source_content_type":"text/x-python","patch_set":2,"id":"45d1e187_6c48707c","line":1403,"in_reply_to":"87d4d0ba_5f4eb19a","updated":"2024-07-01 16:43:11.000000000","message":"Acknowledged","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"}],"openstack/tests/functional/baremetal/test_baremetal_node.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":494,"context_line":"class TestBareMetalNodeListFirmware(base.BaseBaremetalTest):"},{"line_number":495,"context_line":"    min_microversion \u003d \u00271.86\u0027"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def test_node_fields(self):"},{"line_number":498,"context_line":"        # Create node with default firmware and check settings"},{"line_number":499,"context_line":"        node \u003d self.create_node(firmware_interface\u003d\"no-firmware\")"},{"line_number":500,"context_line":"        self.assertEqual(\"no-firmware\", node.firmware_interface)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e6f5005_b25351ac","line":497,"updated":"2024-07-01 16:11:21.000000000","message":"Should be test_list_firmware or something like this","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":494,"context_line":"class TestBareMetalNodeListFirmware(base.BaseBaremetalTest):"},{"line_number":495,"context_line":"    min_microversion \u003d \u00271.86\u0027"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def test_node_fields(self):"},{"line_number":498,"context_line":"        # Create node with default firmware and check settings"},{"line_number":499,"context_line":"        node \u003d self.create_node(firmware_interface\u003d\"no-firmware\")"},{"line_number":500,"context_line":"        self.assertEqual(\"no-firmware\", node.firmware_interface)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b549679e_df6feecd","line":497,"in_reply_to":"2e6f5005_b25351ac","updated":"2024-07-01 17:25:34.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":505,"context_line":"        node \u003d self.conn.baremetal.get_node(node)"},{"line_number":506,"context_line":"        self.assertEqual(\"no-firmware\", node.firmware_interface)"},{"line_number":507,"context_line":"        result \u003d self.conn.baremetal.list_node_firmware(node)"},{"line_number":508,"context_line":"        self.assertEqual({\u0027firmware\u0027: []}, result)"}],"source_content_type":"text/x-python","patch_set":2,"id":"261edcb8_9adf07d2","line":508,"updated":"2024-07-01 16:11:21.000000000","message":"You\u0027re checking the same thing twice? Why?","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        node \u003d self.conn.baremetal.get_node(node)"},{"line_number":506,"context_line":"        self.assertEqual(\"no-firmware\", node.firmware_interface)"},{"line_number":507,"context_line":"        result \u003d self.conn.baremetal.list_node_firmware(node)"},{"line_number":508,"context_line":"        self.assertEqual({\u0027firmware\u0027: []}, result)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ea4ba248_68cdf290","line":508,"in_reply_to":"261edcb8_9adf07d2","updated":"2024-07-01 17:25:34.000000000","message":"I took this logic from another test case that checked if an update change was done on the server. I realize it doesn\u0027t make sense for a function that just lists, so I removed it in patchset 3.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"}],"openstack/tests/unit/baremetal/v1/test_node.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"41925e8c4d26ac8e3b92ea7d38e194db3343772a","unresolved":true,"context_lines":[{"line_number":1306,"context_line":"            default_microversion\u003d\u00271.86\u0027,"},{"line_number":1307,"context_line":"        )"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_list_firmware_components(self):"},{"line_number":1310,"context_line":"        self.node.list_firmware(self.session)"},{"line_number":1311,"context_line":"        self.session.get.assert_called_once_with("},{"line_number":1312,"context_line":"            \u0027nodes/%s/firmware\u0027 % self.node.id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9763a69_6c8d2df3","line":1309,"updated":"2024-07-01 02:27:05.000000000","message":"I would add a test with a fake return of firmware information.","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"            default_microversion\u003d\u00271.86\u0027,"},{"line_number":1307,"context_line":"        )"},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"    def test_list_firmware_components(self):"},{"line_number":1310,"context_line":"        self.node.list_firmware(self.session)"},{"line_number":1311,"context_line":"        self.session.get.assert_called_once_with("},{"line_number":1312,"context_line":"            \u0027nodes/%s/firmware\u0027 % self.node.id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f9e3e5bd_9b9230fa","line":1309,"in_reply_to":"a9763a69_6c8d2df3","updated":"2024-07-01 17:25:34.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"}],"releasenotes/notes/add-node-firmware-list-support-fec2f96a3a578730.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"58a27a7709e9df7658123a1782745b31fca879b0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support for querying a node\u0027s firmware as per functionality"},{"line_number":5,"context_line":"    introduced in API 1.86."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"44027c03_0def3d1d","line":4,"updated":"2024-07-01 16:11:21.000000000","message":"\"bare-metal node\" for more context","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"},{"author":{"_account_id":37046,"name":"Ebil Jacob","display_name":"Ebil Jacob","email":"ebilj@andrew.cmu.edu","username":"ebilj"},"change_message_id":"648a1cc3f1da3d713556dababc87c13de3d870e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support for querying a node\u0027s firmware as per functionality"},{"line_number":5,"context_line":"    introduced in API 1.86."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1b5aeec4_7643969d","line":4,"in_reply_to":"44027c03_0def3d1d","updated":"2024-07-01 17:25:34.000000000","message":"Done","commit_id":"b85a12416af4265e3ece90e79649ff8455458892"}]}
