)]}'
{"/PATCHSET_LEVEL":[{"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":"27c5f694fb4225d4c7916a124b93ec0f128ba357","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"566ae23a_50a36ec3","updated":"2023-09-19 15:55:59.000000000","message":"Given this code is not useful until inspector is retired; I\u0027d like to wait to workflow this until stable/2023.2 is cut.","commit_id":"393a30f00120e527ba718b6599836e2b1eed9cb5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"168f615e8b06d33d515beaea2a2ef3883b186a20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bd64ad90_be45af6f","updated":"2023-09-19 13:20:34.000000000","message":"Looks good, one follow-up idea inline.","commit_id":"393a30f00120e527ba718b6599836e2b1eed9cb5"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"bee1673a0ac55270a29797282e53aae97b4b5c92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a80d1a38_b33d04a7","updated":"2023-10-03 08:32:34.000000000","message":"stable/2023.2 is there so I guess we can finally merge this\ngreat work!","commit_id":"609ccc90378cee08b698c417f3948325aad49f7b"}],"ironic/conf/inspector.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                   os.path.join("},{"line_number":99,"context_line":"                       os.path.dirname(__file__),"},{"line_number":100,"context_line":"                       \u0027../drivers/modules/inspector/hooks/known_accelerators\u0027"},{"line_number":101,"context_line":"                       \u0027.yaml\u0027)),"},{"line_number":102,"context_line":"               help\u003d_(\u0027Path to the file which contains the known accelerator \u0027"},{"line_number":103,"context_line":"                      \u0027devices, to be used by the \"accelerators\" inspection \u0027"},{"line_number":104,"context_line":"                      \u0027hook.\u0027)),"}],"source_content_type":"text/x-python","patch_set":7,"id":"30dd8f3a_e7f1af74","line":101,"updated":"2023-09-08 08:13:33.000000000","message":"We tend to use a somewhat simpler pattern: https://opendev.org/openstack/ironic/src/branch/master/ironic/conf/pxe.py#L67-L69","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                   os.path.join("},{"line_number":99,"context_line":"                       os.path.dirname(__file__),"},{"line_number":100,"context_line":"                       \u0027../drivers/modules/inspector/hooks/known_accelerators\u0027"},{"line_number":101,"context_line":"                       \u0027.yaml\u0027)),"},{"line_number":102,"context_line":"               help\u003d_(\u0027Path to the file which contains the known accelerator \u0027"},{"line_number":103,"context_line":"                      \u0027devices, to be used by the \"accelerators\" inspection \u0027"},{"line_number":104,"context_line":"                      \u0027hook.\u0027)),"}],"source_content_type":"text/x-python","patch_set":7,"id":"642b69f0_4e7fbc4c","line":101,"in_reply_to":"30dd8f3a_e7f1af74","updated":"2023-09-12 10:52:04.000000000","message":"Done","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"}],"ironic/drivers/modules/inspector/hooks/accelerators.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            raise RuntimeError(\u0027Could not find pci_devices in the \u0027"},{"line_number":39,"context_line":"                               \u0027configuration data.\u0027)"},{"line_number":40,"context_line":"        if not isinstance(self._known_devices[\u0027pci_devices\u0027], list):"},{"line_number":41,"context_line":"            raise RuntimeError(\u0027pci_devices in the configuratio file should \u0027"},{"line_number":42,"context_line":"                               \u0027contain a list of devices.\u0027)"},{"line_number":43,"context_line":"        for device in self._known_devices[\u0027pci_devices\u0027]:"},{"line_number":44,"context_line":"            if not device.get(\u0027vendor_id\u0027) or not device.get(\u0027device_id\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"564aca3a_5de51184","line":41,"updated":"2023-09-08 08:13:33.000000000","message":"nit: configuration","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            raise RuntimeError(\u0027Could not find pci_devices in the \u0027"},{"line_number":39,"context_line":"                               \u0027configuration data.\u0027)"},{"line_number":40,"context_line":"        if not isinstance(self._known_devices[\u0027pci_devices\u0027], list):"},{"line_number":41,"context_line":"            raise RuntimeError(\u0027pci_devices in the configuratio file should \u0027"},{"line_number":42,"context_line":"                               \u0027contain a list of devices.\u0027)"},{"line_number":43,"context_line":"        for device in self._known_devices[\u0027pci_devices\u0027]:"},{"line_number":44,"context_line":"            if not device.get(\u0027vendor_id\u0027) or not device.get(\u0027device_id\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ee866d06_861a2cc5","line":41,"in_reply_to":"564aca3a_5de51184","updated":"2023-09-12 10:52:04.000000000","message":"Done","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        pci_devices \u003d plugin_data.get(\u0027pci_devices\u0027, [])"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if not pci_devices:"},{"line_number":59,"context_line":"            LOG.warning(\u0027Unable to distinguish accelerator devices because no \u0027"},{"line_number":60,"context_line":"                        \u0027PCI device information was received from the ramdisk \u0027"},{"line_number":61,"context_line":"                        \u0027for node %s.\u0027, task.node.uuid)"},{"line_number":62,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":7,"id":"88ef8bd1_dd342549","line":59,"updated":"2023-09-08 08:13:33.000000000","message":"nit: s/distinguish/process/ probably","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        pci_devices \u003d plugin_data.get(\u0027pci_devices\u0027, [])"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if not pci_devices:"},{"line_number":59,"context_line":"            LOG.warning(\u0027Unable to distinguish accelerator devices because no \u0027"},{"line_number":60,"context_line":"                        \u0027PCI device information was received from the ramdisk \u0027"},{"line_number":61,"context_line":"                        \u0027for node %s.\u0027, task.node.uuid)"},{"line_number":62,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":7,"id":"d885b451_bc9215fd","line":59,"in_reply_to":"88ef8bd1_dd342549","updated":"2023-09-12 10:52:04.000000000","message":"Done","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"}],"ironic/drivers/modules/inspector/hooks/cpu_capabilities.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CONF \u003d cfg.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class CpuCapabilitiesHook(base.InspectionHook):"},{"line_number":25,"context_line":"    \"\"\"Hook to set node\u0027s capabilities based on cpu flags in the inventory.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __call__(self, task, inventory, plugin_data):"}],"source_content_type":"text/x-python","patch_set":7,"id":"07700717_cd700dc2","line":24,"updated":"2023-09-08 08:13:33.000000000","message":"nit: CPU","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CONF \u003d cfg.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class CpuCapabilitiesHook(base.InspectionHook):"},{"line_number":25,"context_line":"    \"\"\"Hook to set node\u0027s capabilities based on cpu flags in the inventory.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __call__(self, task, inventory, plugin_data):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9e3b237a_495e8430","line":24,"in_reply_to":"07700717_cd700dc2","updated":"2023-09-12 10:52:04.000000000","message":"Done","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        cpu_flags \u003d inventory.get(\u0027cpu\u0027, {}).get(\u0027flags\u0027)"},{"line_number":29,"context_line":"        if not cpu_flags:"},{"line_number":30,"context_line":"            LOG.warning(\u0027No CPU flags available for node %s, please update \u0027"},{"line_number":31,"context_line":"                        \u0027your inspection ramdisk\u0027, task.node.uuid)"},{"line_number":32,"context_line":"            return"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        cpu_flags \u003d set(cpu_flags)"}],"source_content_type":"text/x-python","patch_set":7,"id":"8aae7f0f_bf86fdfe","line":31,"updated":"2023-09-08 08:13:33.000000000","message":"nit: the \"please update\" part is no longer up-to-date: all reasonable versions of IPA include this code","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        cpu_flags \u003d inventory.get(\u0027cpu\u0027, {}).get(\u0027flags\u0027)"},{"line_number":29,"context_line":"        if not cpu_flags:"},{"line_number":30,"context_line":"            LOG.warning(\u0027No CPU flags available for node %s, please update \u0027"},{"line_number":31,"context_line":"                        \u0027your inspection ramdisk\u0027, task.node.uuid)"},{"line_number":32,"context_line":"            return"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        cpu_flags \u003d set(cpu_flags)"}],"source_content_type":"text/x-python","patch_set":7,"id":"09736a0c_79b942b9","line":31,"in_reply_to":"8aae7f0f_bf86fdfe","updated":"2023-09-12 10:52:04.000000000","message":"Fixed","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"}],"ironic/drivers/modules/inspector/hooks/extra_hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7553011931ccb1495a0b2aade2fce7a892c5684d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ironic.drivers.modules.inspector.hooks import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":"EDEPLOY_ITEM_SIZE \u003d 4"},{"line_number":21,"context_line":"CONF \u003d cfg.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"c7b538d1_20e592a2","line":20,"updated":"2023-09-08 08:13:33.000000000","message":"Not necessarily in this patch, but we need to remove all references to \"edeploy\". I may be the only person here who remembers what that is :D","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"08526c4f7742379933d8b13179315f2a41991339","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ironic.drivers.modules.inspector.hooks import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":"EDEPLOY_ITEM_SIZE \u003d 4"},{"line_number":21,"context_line":"CONF \u003d cfg.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"20eb73f0_256af0d2","line":20,"in_reply_to":"c7b538d1_20e592a2","updated":"2023-09-12 10:52:04.000000000","message":"Done","commit_id":"15c8c21fc2293cd9ded7ef435c690d0f5e888ef9"}],"ironic/drivers/modules/inspector/hooks/known_accelerators.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"eb9969e434b71f81775d656f2cf9f000faea540e","unresolved":true,"context_lines":[{"line_number":6,"context_line":"  - vendor_id: \"10de\""},{"line_number":7,"context_line":"    device_id: \"1df6\""},{"line_number":8,"context_line":"    type: GPU"},{"line_number":9,"context_line":"    device_info: NVIDIA Corporation GV100GL"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"357fcb86_78fee288","line":9,"updated":"2023-10-06 20:10:16.000000000","message":"It just occurs to me, we likely need to expand this list with commonly used accelerators.","commit_id":"609ccc90378cee08b698c417f3948325aad49f7b"}],"ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"168f615e8b06d33d515beaea2a2ef3883b186a20","unresolved":true,"context_lines":[{"line_number":49,"context_line":"            ]"},{"line_number":50,"context_line":"        }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_extra_hardware(self):"},{"line_number":53,"context_line":"        with task_manager.acquire(self.context, self.node.id) as task:"},{"line_number":54,"context_line":"            hook.ExtraHardwareHook().__call__(task, self.inventory,"},{"line_number":55,"context_line":"                                              self.plugin_data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"e547aab0_9a9a1ecd","line":52,"updated":"2023-09-19 13:20:34.000000000","message":"Let\u0027s add a test on invalid data and on strict mode","commit_id":"393a30f00120e527ba718b6599836e2b1eed9cb5"}]}
