)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0d5cdb8c8c62546273fc66d058f058d259ad58bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"990ca974_c18087a8","updated":"2023-05-24 15:23:39.000000000","message":"thanks Mahnoor!\nI think API version is 1.81 according to https://docs.openstack.org/ironic/latest/contributor/webapi-version-history.html","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b5c0a0858cc5587f6cfc35c49d92c7012022e9e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fd869efb_dcf55ef8","updated":"2023-06-01 14:26:09.000000000","message":"I\u0027m ok with this, great job!","commit_id":"f38c17ed3ed41daf15c05a8c63caf268a48590f7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"900e3c28dd6b91f8ef07d6a700d93aeedcf21819","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2de7b997_53a79882","updated":"2023-06-05 13:10:24.000000000","message":"A couple of things inline, the only critical one is missing plugin_data.","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"4111ec230d341a1a69fb15e614ac0889eed8410a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b79bed8c_1d33f7f7","updated":"2023-06-01 15:10:38.000000000","message":"thanks!","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"99e11c2b666ec140388a027f60648a2e636ce8de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"19a843f2_11157e79","updated":"2023-06-07 15:10:50.000000000","message":"Thanks!","commit_id":"0b6b282d40507a188df0e824a406a71652290952"}],"ironicclient/common/http.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0d5cdb8c8c62546273fc66d058f058d259ad58bd","unresolved":true,"context_lines":[{"line_number":37,"context_line":"#             http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa"},{"line_number":38,"context_line":"#             for full details."},{"line_number":39,"context_line":"DEFAULT_VER \u003d \u00271.9\u0027"},{"line_number":40,"context_line":"LAST_KNOWN_API_VERSION \u003d 82"},{"line_number":41,"context_line":"LATEST_VERSION \u003d \u00271.{}\u0027.format(LAST_KNOWN_API_VERSION)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"14dd05b5_ffbb742e","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":27},"updated":"2023-05-24 15:23:39.000000000","message":"should be 81","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"6054d8bb5e01d0191eefe6b9107876cf33f03fab","unresolved":true,"context_lines":[{"line_number":37,"context_line":"#             http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa"},{"line_number":38,"context_line":"#             for full details."},{"line_number":39,"context_line":"DEFAULT_VER \u003d \u00271.9\u0027"},{"line_number":40,"context_line":"LAST_KNOWN_API_VERSION \u003d 82"},{"line_number":41,"context_line":"LATEST_VERSION \u003d \u00271.{}\u0027.format(LAST_KNOWN_API_VERSION)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"de62e51f_173efc86","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":27},"in_reply_to":"14dd05b5_ffbb742e","updated":"2023-05-25 21:53:32.000000000","message":"Makes sense! I have only tested the change brought by 1.81, however. Should I also test out the compatibility for API versions 1.79 and 1.80 (as I am bumping the version from 1.78 to 1.81)?","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"63b5688b6a5753a6f1b1975e4ab15e392cce27ee","unresolved":false,"context_lines":[{"line_number":37,"context_line":"#             http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa"},{"line_number":38,"context_line":"#             for full details."},{"line_number":39,"context_line":"DEFAULT_VER \u003d \u00271.9\u0027"},{"line_number":40,"context_line":"LAST_KNOWN_API_VERSION \u003d 82"},{"line_number":41,"context_line":"LATEST_VERSION \u003d \u00271.{}\u0027.format(LAST_KNOWN_API_VERSION)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a28f7185_511c8a45","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":27},"in_reply_to":"55d4168e_ba5ddbf5","updated":"2023-06-01 12:03:15.000000000","message":"Done","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"a84e45aed20553f9ef12b5eea8d4215d27922739","unresolved":true,"context_lines":[{"line_number":37,"context_line":"#             http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa"},{"line_number":38,"context_line":"#             for full details."},{"line_number":39,"context_line":"DEFAULT_VER \u003d \u00271.9\u0027"},{"line_number":40,"context_line":"LAST_KNOWN_API_VERSION \u003d 82"},{"line_number":41,"context_line":"LATEST_VERSION \u003d \u00271.{}\u0027.format(LAST_KNOWN_API_VERSION)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"55d4168e_ba5ddbf5","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":27},"in_reply_to":"66858af1_ae5c0e51","updated":"2023-05-30 13:27:27.000000000","message":"Thank you for sharing the link! I have checked the ironic API changes, and it doesn\u0027t look like the ironicclient needs any changes for 1.79 and 1.80.","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"de143599dfd6e2e1f918eef9d5e5f8f3f3554608","unresolved":true,"context_lines":[{"line_number":37,"context_line":"#             http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa"},{"line_number":38,"context_line":"#             for full details."},{"line_number":39,"context_line":"DEFAULT_VER \u003d \u00271.9\u0027"},{"line_number":40,"context_line":"LAST_KNOWN_API_VERSION \u003d 82"},{"line_number":41,"context_line":"LATEST_VERSION \u003d \u00271.{}\u0027.format(LAST_KNOWN_API_VERSION)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"66858af1_ae5c0e51","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":27},"in_reply_to":"de62e51f_173efc86","updated":"2023-05-26 13:51:15.000000000","message":"that\u0027s a good idea, at least double-check what\u0027s changed in 1.79 and 1.80\nin general changes in ironicclient should follow changes in ironic immediately if they impact the client functionalities, like in case of API 1.81, and of course not skip updates to avoid issues\nyou can look at the API changes in https://docs.openstack.org/ironic/latest/contributor/webapi-version-history.html","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"}],"ironicclient/tests/unit/osc/v1/test_baremetal_node.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"900e3c28dd6b91f8ef07d6a700d93aeedcf21819","unresolved":true,"context_lines":[{"line_number":4341,"context_line":"                                        {\u0027product_name\u0027: \u0027testvm2\u0027,"},{"line_number":4342,"context_line":"                                         \u0027manufacturer\u0027: \u0027Sushy Emulator\u0027},"},{"line_number":4343,"context_line":"                                    \u0027boot\u0027: {\u0027current_boot_mode\u0027: \u0027uefi\u0027}})"},{"line_number":4344,"context_line":"        self.assertEqual(expected_data, buf.getvalue())"}],"source_content_type":"text/x-python","patch_set":8,"id":"1cacff29_67cda25e","line":4344,"updated":"2023-06-05 13:10:24.000000000","message":"It\u0027s pretty risky to compare two JSON representations of dictionaries: the order of the keys may end up different. A somewhat better approach would be to parse buf.getvalue() as JSON and compare with the expected dictionary.","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"846fd39f8919ea1b718f0399265292bb305335e8","unresolved":true,"context_lines":[{"line_number":4341,"context_line":"                                        {\u0027product_name\u0027: \u0027testvm2\u0027,"},{"line_number":4342,"context_line":"                                         \u0027manufacturer\u0027: \u0027Sushy Emulator\u0027},"},{"line_number":4343,"context_line":"                                    \u0027boot\u0027: {\u0027current_boot_mode\u0027: \u0027uefi\u0027}})"},{"line_number":4344,"context_line":"        self.assertEqual(expected_data, buf.getvalue())"}],"source_content_type":"text/x-python","patch_set":8,"id":"e7139339_25264b00","line":4344,"in_reply_to":"1cacff29_67cda25e","updated":"2023-06-06 16:19:07.000000000","message":"Makes sense. I am comparing both of them as dictionaries now, instead of their JSON representations.","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"9a3dd1154d69dbcaa27e64671188ab2ae64e14f3","unresolved":false,"context_lines":[{"line_number":4341,"context_line":"                                        {\u0027product_name\u0027: \u0027testvm2\u0027,"},{"line_number":4342,"context_line":"                                         \u0027manufacturer\u0027: \u0027Sushy Emulator\u0027},"},{"line_number":4343,"context_line":"                                    \u0027boot\u0027: {\u0027current_boot_mode\u0027: \u0027uefi\u0027}})"},{"line_number":4344,"context_line":"        self.assertEqual(expected_data, buf.getvalue())"}],"source_content_type":"text/x-python","patch_set":8,"id":"e3b84e2d_e5ec41ee","line":4344,"in_reply_to":"e7139339_25264b00","updated":"2023-06-09 09:32:11.000000000","message":"Done","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"}],"ironicclient/v1/node.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0d5cdb8c8c62546273fc66d058f058d259ad58bd","unresolved":true,"context_lines":[{"line_number":1106,"context_line":"                      global_request_id\u003dNone):"},{"line_number":1107,"context_line":"        \"\"\"Get the hardware inventory of the node."},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":"        Requires API version 1.79."},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"        :param node_ident: The name or UUID of the node."},{"line_number":1112,"context_line":"        :param os_ironic_api_version: String version (e.g. \"1.35\") to use for"}],"source_content_type":"text/x-python","patch_set":2,"id":"a4c9a0c7_552196d3","line":1109,"range":{"start_line":1109,"start_character":29,"end_line":1109,"end_character":34},"updated":"2023-05-24 15:23:39.000000000","message":"should be 1.81","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"63b5688b6a5753a6f1b1975e4ab15e392cce27ee","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"                      global_request_id\u003dNone):"},{"line_number":1107,"context_line":"        \"\"\"Get the hardware inventory of the node."},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":"        Requires API version 1.79."},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"        :param node_ident: The name or UUID of the node."},{"line_number":1112,"context_line":"        :param os_ironic_api_version: String version (e.g. \"1.35\") to use for"}],"source_content_type":"text/x-python","patch_set":2,"id":"7886c27d_afe5ff5d","line":1109,"range":{"start_line":1109,"start_character":29,"end_line":1109,"end_character":34},"in_reply_to":"a4c9a0c7_552196d3","updated":"2023-06-01 12:03:15.000000000","message":"Done","commit_id":"d33fae5a6949b064e49f4895553da57cca98eb63"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"900e3c28dd6b91f8ef07d6a700d93aeedcf21819","unresolved":true,"context_lines":[{"line_number":1116,"context_line":"        \"\"\""},{"line_number":1117,"context_line":"        path \u003d \"%s/inventory\" % node_ident"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"        return self._get_as_dict("},{"line_number":1120,"context_line":"            path, os_ironic_api_version\u003dos_ironic_api_version,"},{"line_number":1121,"context_line":"            global_request_id\u003dglobal_request_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"6ee15731_8f876169","line":1119,"updated":"2023-06-05 13:10:24.000000000","message":"It seems that this call is extracting an \"inventory\" subkey of the result and throws away \"plugin_data\". Could you please check what is causing this? We definitely need to return plugin_data if it\u0027s present.","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"9a3dd1154d69dbcaa27e64671188ab2ae64e14f3","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        \"\"\""},{"line_number":1117,"context_line":"        path \u003d \"%s/inventory\" % node_ident"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"        return self._get_as_dict("},{"line_number":1120,"context_line":"            path, os_ironic_api_version\u003dos_ironic_api_version,"},{"line_number":1121,"context_line":"            global_request_id\u003dglobal_request_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fe4bc403_43815306","line":1119,"in_reply_to":"524cf26e_d1d6ac29","updated":"2023-06-09 09:32:11.000000000","message":"Done","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"846fd39f8919ea1b718f0399265292bb305335e8","unresolved":true,"context_lines":[{"line_number":1116,"context_line":"        \"\"\""},{"line_number":1117,"context_line":"        path \u003d \"%s/inventory\" % node_ident"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"        return self._get_as_dict("},{"line_number":1120,"context_line":"            path, os_ironic_api_version\u003dos_ironic_api_version,"},{"line_number":1121,"context_line":"            global_request_id\u003dglobal_request_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"524cf26e_d1d6ac29","line":1119,"in_reply_to":"6ee15731_8f876169","updated":"2023-06-06 16:19:07.000000000","message":"Corrected. Thank you for pointing it out!","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"}],"ironicclient/v1/resource_fields.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"80dc9af18687adb87b4a27a2023b9a05c5ef0979","unresolved":false,"context_lines":[{"line_number":324,"context_line":"     \u0027provision_state\u0027,"},{"line_number":325,"context_line":"     \u0027maintenance\u0027,"},{"line_number":326,"context_line":"     ])"},{"line_number":327,"context_line":"NODE_HISTORY_RESOURCE \u003d Resource("},{"line_number":328,"context_line":"    [\u0027uuid\u0027,"},{"line_number":329,"context_line":"     \u0027created_at\u0027,"},{"line_number":330,"context_line":"     \u0027severity\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"87e12c5d_3c802a46","line":327,"updated":"2023-05-30 14:43:13.000000000","message":"Unrelated changes like this should come as a separate patch.","commit_id":"de91b5feb19d04ee84ec6d12e094ef514c75c8c4"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b5c0a0858cc5587f6cfc35c49d92c7012022e9e2","unresolved":true,"context_lines":[{"line_number":334,"context_line":"     \u0027system_vendor\u0027,"},{"line_number":335,"context_line":"     \u0027boot\u0027,"},{"line_number":336,"context_line":"     \u0027hostname\u0027]"},{"line_number":337,"context_line":")"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"VENDOR_PASSTHRU_METHOD_RESOURCE \u003d Resource("},{"line_number":340,"context_line":"    [\u0027name\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"88112fe5_bb9f3319","line":337,"updated":"2023-06-01 14:26:09.000000000","message":"being picky here, parenthesis should be on precedent line for consistency :)","commit_id":"f38c17ed3ed41daf15c05a8c63caf268a48590f7"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"194d60ff3f0211c0bb641c3f100cae95311fbc97","unresolved":false,"context_lines":[{"line_number":334,"context_line":"     \u0027system_vendor\u0027,"},{"line_number":335,"context_line":"     \u0027boot\u0027,"},{"line_number":336,"context_line":"     \u0027hostname\u0027]"},{"line_number":337,"context_line":")"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"VENDOR_PASSTHRU_METHOD_RESOURCE \u003d Resource("},{"line_number":340,"context_line":"    [\u0027name\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"18986971_437edcba","line":337,"in_reply_to":"88112fe5_bb9f3319","updated":"2023-06-01 14:51:57.000000000","message":"Ack","commit_id":"f38c17ed3ed41daf15c05a8c63caf268a48590f7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"900e3c28dd6b91f8ef07d6a700d93aeedcf21819","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        \u0027attribute_type\u0027: \u0027Attribute Type\u0027,"},{"line_number":40,"context_line":"        \u0027automated_clean\u0027: \u0027Automated Clean\u0027,"},{"line_number":41,"context_line":"        \u0027attach\u0027: \u0027Response is attachment\u0027,"},{"line_number":42,"context_line":"        \u0027bmc_address\u0027: \u0027BMC Address\u0027,"},{"line_number":43,"context_line":"        \u0027bmc_v6address\u0027: \u0027BMC IPv6 Address\u0027,"},{"line_number":44,"context_line":"        \u0027boot\u0027: \u0027Boot information\u0027,"},{"line_number":45,"context_line":"        \u0027boot_index\u0027: \u0027Boot Index\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"cf8d79a1_5ded04b7","line":42,"updated":"2023-06-05 13:10:24.000000000","message":"Changes in this file are no longer needed","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"9a3dd1154d69dbcaa27e64671188ab2ae64e14f3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027attribute_type\u0027: \u0027Attribute Type\u0027,"},{"line_number":40,"context_line":"        \u0027automated_clean\u0027: \u0027Automated Clean\u0027,"},{"line_number":41,"context_line":"        \u0027attach\u0027: \u0027Response is attachment\u0027,"},{"line_number":42,"context_line":"        \u0027bmc_address\u0027: \u0027BMC Address\u0027,"},{"line_number":43,"context_line":"        \u0027bmc_v6address\u0027: \u0027BMC IPv6 Address\u0027,"},{"line_number":44,"context_line":"        \u0027boot\u0027: \u0027Boot information\u0027,"},{"line_number":45,"context_line":"        \u0027boot_index\u0027: \u0027Boot Index\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"52eb4a36_178d90b5","line":42,"in_reply_to":"511d6432_09630181","updated":"2023-06-09 09:32:11.000000000","message":"Done","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"846fd39f8919ea1b718f0399265292bb305335e8","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        \u0027attribute_type\u0027: \u0027Attribute Type\u0027,"},{"line_number":40,"context_line":"        \u0027automated_clean\u0027: \u0027Automated Clean\u0027,"},{"line_number":41,"context_line":"        \u0027attach\u0027: \u0027Response is attachment\u0027,"},{"line_number":42,"context_line":"        \u0027bmc_address\u0027: \u0027BMC Address\u0027,"},{"line_number":43,"context_line":"        \u0027bmc_v6address\u0027: \u0027BMC IPv6 Address\u0027,"},{"line_number":44,"context_line":"        \u0027boot\u0027: \u0027Boot information\u0027,"},{"line_number":45,"context_line":"        \u0027boot_index\u0027: \u0027Boot Index\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"511d6432_09630181","line":42,"in_reply_to":"cf8d79a1_5ded04b7","updated":"2023-06-06 16:19:07.000000000","message":"Ack","commit_id":"3b69a5e1823b81207ebfcfa44e7a5c6e75c9e2cf"}],"releasenotes/notes/add-node-inventory-74e856c019cfa7e2.yaml":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"88f4f456e5614f1fe9f1bb6dae5fb3b7524695a8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Adds support for API version ``1.82`` and \"node inventory\" functionality"},{"line_number":4,"context_line":"    allowing users to retrieve a node\u0027s hardware inventory."},{"line_number":5,"context_line":"  - Adds ``get_inventory`` method to the python client library. This method"},{"line_number":6,"context_line":"    allows operators to query recorded node inventory from an ironic API."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"041a2c7e_e9db804b","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":39},"updated":"2023-05-26 13:52:04.000000000","message":"nit: 1.81","commit_id":"3dce06a6000a3233b89eff677b1cf2968e146626"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"a84e45aed20553f9ef12b5eea8d4215d27922739","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Adds support for API version ``1.82`` and \"node inventory\" functionality"},{"line_number":4,"context_line":"    allowing users to retrieve a node\u0027s hardware inventory."},{"line_number":5,"context_line":"  - Adds ``get_inventory`` method to the python client library. This method"},{"line_number":6,"context_line":"    allows operators to query recorded node inventory from an ironic API."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"54796d1b_a7e3319c","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":39},"in_reply_to":"041a2c7e_e9db804b","updated":"2023-05-30 13:27:27.000000000","message":"Fixed, thank you for catching it!","commit_id":"3dce06a6000a3233b89eff677b1cf2968e146626"}],"setup.cfg":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"80dc9af18687adb87b4a27a2023b9a05c5ef0979","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    baremetal_node_history_list \u003d ironicclient.osc.v1.baremetal_node:NodeHistoryList"},{"line_number":74,"context_line":"    baremetal_node_history_get \u003d ironicclient.osc.v1.baremetal_node:NodeHistoryEventGet"},{"line_number":75,"context_line":"    baremetal_node_inspect \u003d ironicclient.osc.v1.baremetal_node:InspectBaremetalNode"},{"line_number":76,"context_line":"    baremetal_node_inventory \u003d ironicclient.osc.v1.baremetal_node:NodeInventoryList"},{"line_number":77,"context_line":"    baremetal_node_list \u003d ironicclient.osc.v1.baremetal_node:ListBaremetalNode"},{"line_number":78,"context_line":"    baremetal_node_maintenance_set \u003d ironicclient.osc.v1.baremetal_node:MaintenanceSetBaremetalNode"},{"line_number":79,"context_line":"    baremetal_node_maintenance_unset \u003d ironicclient.osc.v1.baremetal_node:MaintenanceUnsetBaremetalNode"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"1724957e_f8a60253","line":76,"updated":"2023-05-30 14:43:13.000000000","message":"Please check https://specs.openstack.org/openstack/ironic-specs/specs/approved/merge-inspector.html#openstack-baremetal-cli, it envisions a somewhat simpler interface. The reason for this is: the consumers may want to get the whole JSON, and it\u0027s not possible with the table-based design. Try:\n\n baremetal node inventory \u003cnode\u003e -f json\n\nThis is not the JSON representation of intentory, it\u0027s modified by our CLI tooling. This is why I wanted us to start with a much simpler \"baremetal node inventory save [--file \u003cfilename\u003e] \u003cnode\u003e\" that only outputs the JSON (or saves it to file). Essentially, the same thing with have in the inspector client: https://opendev.org/openstack/python-ironic-inspector-client/src/branch/master/ironic_inspector_client/shell.py#L282-L304","commit_id":"de91b5feb19d04ee84ec6d12e094ef514c75c8c4"}]}
