)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1b91174d1de1f4676334343c62e3f282e281bfd7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1aeedaa7_aba24471","updated":"2023-03-22 10:13:55.000000000","message":"after a first reading I didn\u0027t spot any issue, great job :)","commit_id":"865c8533992859b5e9d1263844735d88f12680bd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"539431fd93c98512ed8e6a0c86873d5770d17c7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7dc48c36_7c5f5031","updated":"2023-03-22 16:15:58.000000000","message":"Missing PXE filters and auto-discovery. Sigh.","commit_id":"2ecefcdb1d264ee4d28cdee88fd3cef4366d84ec"},{"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":"ac6738a5718dccbf826feae5273e20da0c84cdb4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f1113698_8f474d04","updated":"2023-04-03 21:22:22.000000000","message":"Not landing this yet; giving more time for more-inspector-savvy folk to look if they want.","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"285e5c1f5dae2f7f590b1423852ac2395c669eb4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"63569b6e_ab65cb93","updated":"2023-04-03 14:49:23.000000000","message":"really a great reading :)","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"}],"specs/approved/merge-inspector.rst":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1b91174d1de1f4676334343c62e3f282e281bfd7","unresolved":true,"context_lines":[{"line_number":73,"context_line":"--------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"In-band inspection"},{"line_number":76,"context_line":"  Hardware inspection that is conducted through the use of a ramdisk with IPA."},{"line_number":77,"context_line":"  The other option is out-of-band inspection, where the data is collected"},{"line_number":78,"context_line":"  through the BMC without powering on the node."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"8de7cb24_57421dd1","line":76,"range":{"start_line":76,"start_character":74,"end_line":76,"end_character":77},"updated":"2023-03-22 10:13:55.000000000","message":"nit: to clarify maybe worth expanding the acronym here and adding a link? then we can name it IPA in the rest of the spec","commit_id":"865c8533992859b5e9d1263844735d88f12680bd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f6d000d7cc04ac1ed8d2f858bdb825ec5f388226","unresolved":false,"context_lines":[{"line_number":73,"context_line":"--------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"In-band inspection"},{"line_number":76,"context_line":"  Hardware inspection that is conducted through the use of a ramdisk with IPA."},{"line_number":77,"context_line":"  The other option is out-of-band inspection, where the data is collected"},{"line_number":78,"context_line":"  through the BMC without powering on the node."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7de7cfc8_47f76b75","line":76,"range":{"start_line":76,"start_character":74,"end_line":76,"end_character":77},"in_reply_to":"8de7cb24_57421dd1","updated":"2023-03-22 13:24:51.000000000","message":"Done","commit_id":"865c8533992859b5e9d1263844735d88f12680bd"},{"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":"15cf79b7bc03abf5f1a0f1985fccf910bec9ea85","unresolved":true,"context_lines":[{"line_number":127,"context_line":"  cost of supporting only one DHCP server implementation."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  This specification proposes migrating only the ``dnsmasq`` PXE filter. The"},{"line_number":130,"context_line":"  ``iptables`` one will follow if we see a demand for it."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Auto-discovery"},{"line_number":133,"context_line":"  Process of enrolling new nodes automatically. When unmanaged inspection is"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a9b62076_36a461c7","line":130,"updated":"2023-03-24 22:01:24.000000000","message":"We need to be 100% sure when we do a deprecation notice for a separate-service-inspector that we include this in the notice.","commit_id":"45eb60531795044d5422ee50d71d4103cddc82c5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5446e5cde9e7b867bbd7eb12bbfe242a976427a2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  cost of supporting only one DHCP server implementation."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  This specification proposes migrating only the ``dnsmasq`` PXE filter. The"},{"line_number":130,"context_line":"  ``iptables`` one will follow if we see a demand for it."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Auto-discovery"},{"line_number":133,"context_line":"  Process of enrolling new nodes automatically. When unmanaged inspection is"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b340da9b_0daa9db0","line":130,"in_reply_to":"a9b62076_36a461c7","updated":"2023-03-27 11:02:04.000000000","message":"Ack","commit_id":"45eb60531795044d5422ee50d71d4103cddc82c5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f439eea9ab026ac53b9f5626bad802c56f39fd84","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Maintenance load."},{"line_number":35,"context_line":"  A great example is the SQLAlchemy 2.0 transition. Since *Inspector* has"},{"line_number":36,"context_line":"  a separate database, we need to do the work twice."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Operating load."},{"line_number":39,"context_line":"  One more service - one more problem. It has to be installed, secured and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f277e474_e9d27c12","line":36,"range":{"start_line":36,"start_character":30,"end_line":36,"end_character":31},"updated":"2023-04-13 16:00:28.000000000","message":"nit: needed 😊","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f439eea9ab026ac53b9f5626bad802c56f39fd84","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Split the migrated PXE filter into a new script to avoid coupling it (and"},{"line_number":160,"context_line":"  thus the *dnsmasq* instance behind it) to Ironic processes. This way, it can"},{"line_number":161,"context_line":"  be scaled separately."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* Rework inspection (former processing) hooks for more obvious naming and"},{"line_number":164,"context_line":"  better composability."}],"source_content_type":"text/x-rst","patch_set":7,"id":"d736100b_bb838fbe","line":161,"updated":"2023-04-13 16:00:28.000000000","message":"Or omitted entirely :)","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f439eea9ab026ac53b9f5626bad802c56f39fd84","unresolved":true,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"Add a new API endpoint to fetch the inventory and the optional plugin data:"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"``GET /v1/nodes/{node}/inventory``"},{"line_number":251,"context_line":"    Returns a JSON object with two keys: ``inventory`` and ``plugin_data``."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    HTTP status codes:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"2f6e3347_86051127","line":250,"updated":"2023-04-13 16:00:28.000000000","message":"cool cool, as long as there is a boolean to completely disable the endpoint on public facing API endpoints services. like we have for heartbeat and lookup.","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f439eea9ab026ac53b9f5626bad802c56f39fd84","unresolved":true,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"Add a new API to accept the inspection data from the ramdisk:"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"``POST /v1/continue_inspection``"},{"line_number":266,"context_line":"    Accepts inspection data in exactly the same format as Inspector, namely"},{"line_number":267,"context_line":"    as a JSON object with at least an ``inventory`` field."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"6b487e09_58f04d6f","line":265,"updated":"2023-04-13 16:00:28.000000000","message":"Same comment as above.","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"c02f721c1d9388d7b0ae8335ab248e2031c5d194","unresolved":true,"context_lines":[{"line_number":694,"context_line":"PXE filter script"},{"line_number":695,"context_line":"~~~~~~~~~~~~~~~~~"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"A new executable ``ironic-pxe-filter`` will be introduced to support unmanaged"},{"line_number":698,"context_line":"inspection in environments with Neutron. It will be designed to be deployed"},{"line_number":699,"context_line":"alongside a separate *dnsmasq* process. Unlike the current implementation in"},{"line_number":700,"context_line":"Inspector, the script will have direct access to the Ironic database for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"19b8d111_9cc7aa1d","line":697,"range":{"start_line":697,"start_character":17,"end_line":697,"end_character":38},"updated":"2023-04-05 09:47:12.000000000","message":"Will this not use any form of notification?\n \nIn inspector today blacklisting happens on init and then in periodic.\nWhitelisting is performed by syncing the dhcp_filter driver when \"introspect\" is called/started[1]. Ideally we would update the blacklist on port create/update and the whitelist on introspection start?\n\nIf the plan is to only rely on a loop reading the database we may need to do some potentially large lookups quite frequently?\n \n[1] https://opendev.org/openstack/ironic-inspector/src/branch/master/ironic_inspector/introspect.py#L111","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e50a4148df07bc562901f2ac1668ad64386d7893","unresolved":true,"context_lines":[{"line_number":694,"context_line":"PXE filter script"},{"line_number":695,"context_line":"~~~~~~~~~~~~~~~~~"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"A new executable ``ironic-pxe-filter`` will be introduced to support unmanaged"},{"line_number":698,"context_line":"inspection in environments with Neutron. It will be designed to be deployed"},{"line_number":699,"context_line":"alongside a separate *dnsmasq* process. Unlike the current implementation in"},{"line_number":700,"context_line":"Inspector, the script will have direct access to the Ironic database for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a72662cf_42e1dde0","line":697,"range":{"start_line":697,"start_character":17,"end_line":697,"end_character":38},"in_reply_to":"19b8d111_9cc7aa1d","updated":"2023-04-05 11:07:28.000000000","message":"As discussed on IRC, we\u0027ll probably need something (Julia\u0027s cross-conductor spec may come handy). I\u0027d prefer to address it in a follow-up to avoid blocking the whole spec, what do you think?","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"6096838e19f1441ab5899fe6ddf9801c6d31cd2e","unresolved":false,"context_lines":[{"line_number":694,"context_line":"PXE filter script"},{"line_number":695,"context_line":"~~~~~~~~~~~~~~~~~"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":"A new executable ``ironic-pxe-filter`` will be introduced to support unmanaged"},{"line_number":698,"context_line":"inspection in environments with Neutron. It will be designed to be deployed"},{"line_number":699,"context_line":"alongside a separate *dnsmasq* process. Unlike the current implementation in"},{"line_number":700,"context_line":"Inspector, the script will have direct access to the Ironic database for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4295e566_6c2bfbac","line":697,"range":{"start_line":697,"start_character":17,"end_line":697,"end_character":38},"in_reply_to":"a72662cf_42e1dde0","updated":"2023-04-05 11:36:03.000000000","message":"Yes, thanks! I am fine with going with this as is.","commit_id":"fa815c2a412e2841ded326c33be75d7398f7b9fe"}]}
