)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8354ddca77aaaeb822817065802987949b1fcd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"266103b3_0485fca6","updated":"2023-11-16 17:48:41.000000000","message":"Nov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service [None req-f8810d3a-0fe8-4702-868a-db04a2dd413a None None] Error starting thread.: ironic.common.exception.DriverNotFoundInEntrypoint: Could not find the following items in the \u0027ironic.hardware.interfaces.boot\u0027 entrypoint: ipxe-http.\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service Traceback (most recent call last):\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/data/venv/lib/python3.10/site-packages/oslo_service/service.py\", line 806, in run_service\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     service.start()\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/rpc_service.py\", line 64, in start\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     self._real_start()\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/rpc_service.py\", line 89, in _real_start\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     self.manager.init_host(admin_context)\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/conductor/base_manager.py\", line 166, in init_host\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     self._collect_periodic_tasks(admin_context)\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/conductor/base_manager.py\", line 306, in _collect_periodic_tasks\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     for ifaces in driver_factory.all_interfaces().values():\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 284, in all_interfaces\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     return {iface: interfaces(iface) for iface in _INTERFACE_LOADERS}\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 284, in \u003cdictcomp\u003e\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     return {iface: interfaces(iface) for iface in _INTERFACE_LOADERS}\nNov 16 16:56:50.430833 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 275, in interfaces\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     return _get_all_drivers(_INTERFACE_LOADERS[interface_type]())\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 336, in __init__\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     self.__class__._init_extension_manager()\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 407, in _init_extension_manager\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     stevedore.NamedExtensionManager(\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/data/venv/lib/python3.10/site-packages/stevedore/named.py\", line 85, in __init__\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     on_missing_entrypoints_callback(self._missing_names)\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service   File \"/opt/stack/ironic/ironic/common/driver_factory.py\", line 364, in _missing_callback\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service     raise exception.DriverNotFoundInEntrypoint(\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service ironic.common.exception.DriverNotFoundInEntrypoint: Could not find the following items in the \u0027ironic.hardware.interfaces.boot\u0027 entrypoint: ipxe-http.\nNov 16 16:56:50.432910 np0035784671 ironic-conductor[101320]: ERROR oslo_service.service \nNov 16 16:56:50.796344 np0035784671 systemd[1]: devstack@ir-cond.service: Main process exited, code\u003dexited, status\u003d1/FAILURE\nNov 16 16:56:50.796366 np0035784671 systemd[1]: devstack@ir-cond.service: Failed with result \u0027exit-code\u0027.\nNov 16 16:56:50.796761 np0035784671 systemd[1]: devstack@ir-cond.service: Consumed 2.927s CPU time.","commit_id":"f8694ebe9b1ce5a15430feadd94f2ebd5c3a5e7e"},{"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":"64b97b35bce1da33bc1cc425215a2185c3e2f190","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1dead5cf_39d4670a","updated":"2023-11-29 17:53:59.000000000","message":"Please address docs issues in a follow-up if you don\u0027t push a further patchset","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"213ff4f51d88177d8af9c4b9aaccf1b096b54e0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f12c8ae8_d1d3c237","updated":"2024-02-02 17:07:41.000000000","message":"I\u0027m ok with the current approach, I think the comments can be addressed in a follow-up, hence I\u0027m giving +2","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"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":"0be38c28273fa6996fc52e167e24559545f5ba40","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"90bd4a74_a6fffde8","updated":"2024-02-09 21:08:32.000000000","message":"Many comments on configure-pxe.rst were not handled, can you please follow up with them?","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0cbfbf30db60ece2590020d07af70d4655bc8e53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f5a13286_213a262c","updated":"2024-02-02 15:09:37.000000000","message":"Meow!","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"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":"8c5355aff486661b3506da16c4103dd2acbe5563","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"f3da11ad_8717c6e9","updated":"2024-02-09 21:14:32.000000000","message":"Proxying Iury\u0027s +2 from previous patch to land this as a single core.","commit_id":"e19fd1d050cbabfdafa40c4743f82cd4c7649f82"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e26efc544f87babe1708737a0532beda2f27739d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8e06aefe_0814e35c","updated":"2024-02-12 15:22:34.000000000","message":"recheck metal3 intermittent failures","commit_id":"e19fd1d050cbabfdafa40c4743f82cd4c7649f82"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3019467d7193d4bd22a5f0c19d629eaa760879cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"e71c8b8c_b7ae2c3c","updated":"2024-02-10 01:04:29.000000000","message":"recheck metal3 mirror breakage","commit_id":"e19fd1d050cbabfdafa40c4743f82cd4c7649f82"}],"doc/source/install/configure-pxe.rst":[{"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":"64b97b35bce1da33bc1cc425215a2185c3e2f190","unresolved":true,"context_lines":[{"line_number":500,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."}],"source_content_type":"text/x-rst","patch_set":8,"id":"b2424972_32da8bb0","line":503,"updated":"2023-11-29 17:53:59.000000000","message":"service vs server in this sentence seems weird; probably should be the same word for both?","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7d9653e1c5204389b2cbb549f59b770f0c9cf8a4","unresolved":true,"context_lines":[{"line_number":500,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."}],"source_content_type":"text/x-rst","patch_set":8,"id":"51ff0dde_91f67076","line":503,"in_reply_to":"36c1cef4_d9cc1901","updated":"2024-02-02 17:41:20.000000000","message":"I can change it, that is not an issue. What about \"tftp server service\"? That way we explicitly frame it?","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2290408dfb68353c3d7147fb435572b9d7955faf","unresolved":false,"context_lines":[{"line_number":500,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."}],"source_content_type":"text/x-rst","patch_set":8,"id":"86c1980a_a1acd4b8","line":503,"in_reply_to":"51ff0dde_91f67076","updated":"2024-02-09 21:13:28.000000000","message":"Done, changed to server.","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"213ff4f51d88177d8af9c4b9aaccf1b096b54e0a","unresolved":true,"context_lines":[{"line_number":500,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."}],"source_content_type":"text/x-rst","patch_set":8,"id":"36c1cef4_d9cc1901","line":503,"in_reply_to":"b2424972_32da8bb0","updated":"2024-02-02 17:07:41.000000000","message":"For me it looks ok, but it also makes sense to say TFTP service I would say.","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"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":"64b97b35bce1da33bc1cc425215a2185c3e2f190","unresolved":true,"context_lines":[{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3b084eb4_45f28171","line":504,"updated":"2023-11-29 17:53:59.000000000","message":"sp: required","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2290408dfb68353c3d7147fb435572b9d7955faf","unresolved":false,"context_lines":[{"line_number":501,"context_line":"technology."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"},{"line_number":504,"context_line":"requied as if your utilizing iPXE. This is largely because iPXE"},{"line_number":505,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":506,"context_line":"packets being transmitted via UDP across a network."},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"41dffd4f_46308f92","line":504,"in_reply_to":"3b084eb4_45f28171","updated":"2024-02-09 21:13:28.000000000","message":"Done","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"213ff4f51d88177d8af9c4b9aaccf1b096b54e0a","unresolved":true,"context_lines":[{"line_number":619,"context_line":"``[deploy]`` impacts the use of HTTPBoot, except when Ironic is setting"},{"line_number":620,"context_line":"DHCP parameters, it populates a HTTP(S) URL to the DHCP server, which is"},{"line_number":621,"context_line":"then transmitted to the client attempting to Network Boot. In large part,"},{"line_number":622,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":623,"context_line":"technology."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"b264f2ca_b80174d5","line":622,"range":{"start_line":622,"start_character":53,"end_line":622,"end_character":62},"updated":"2024-02-02 17:07:41.000000000","message":"s/techneque/technique","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2290408dfb68353c3d7147fb435572b9d7955faf","unresolved":false,"context_lines":[{"line_number":619,"context_line":"``[deploy]`` impacts the use of HTTPBoot, except when Ironic is setting"},{"line_number":620,"context_line":"DHCP parameters, it populates a HTTP(S) URL to the DHCP server, which is"},{"line_number":621,"context_line":"then transmitted to the client attempting to Network Boot. In large part,"},{"line_number":622,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":623,"context_line":"technology."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"f759229d_e40f057e","line":622,"range":{"start_line":622,"start_character":53,"end_line":622,"end_character":62},"in_reply_to":"8e6d248a_f883fdd7","updated":"2024-02-09 21:13:28.000000000","message":"Done","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7d9653e1c5204389b2cbb549f59b770f0c9cf8a4","unresolved":true,"context_lines":[{"line_number":619,"context_line":"``[deploy]`` impacts the use of HTTPBoot, except when Ironic is setting"},{"line_number":620,"context_line":"DHCP parameters, it populates a HTTP(S) URL to the DHCP server, which is"},{"line_number":621,"context_line":"then transmitted to the client attempting to Network Boot. In large part,"},{"line_number":622,"context_line":"this is because HTTPBoot is an evolution of PXE Boot techneque and"},{"line_number":623,"context_line":"technology."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"This means a TFTP server is *not* required, but the HTTP service is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"8e6d248a_f883fdd7","line":622,"range":{"start_line":622,"start_character":53,"end_line":622,"end_character":62},"in_reply_to":"b264f2ca_b80174d5","updated":"2024-02-02 17:41:20.000000000","message":"Good Catch!","commit_id":"a6c66e9b3e8848c184c0c54da64e121143f81cea"},{"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":"8c5355aff486661b3506da16c4103dd2acbe5563","unresolved":true,"context_lines":[{"line_number":623,"context_line":"technology."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"This means a TFTP server is *not* required, but the HTTP server is"},{"line_number":626,"context_line":"required as if your utilizing iPXE. This is largely because iPXE"},{"line_number":627,"context_line":"has traditionally been leveraged by Operators to limit the TFTP"},{"line_number":628,"context_line":"packets being transmitted via UDP across a network."},{"line_number":629,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"0ce0b10e_abd82113","line":626,"updated":"2024-02-09 21:14:32.000000000","message":"missed it the first time: s/your/you\u0027re/","commit_id":"e19fd1d050cbabfdafa40c4743f82cd4c7649f82"}],"ironic/common/pxe_utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d08b84706db35b945ae220c8a5077b6059740426","unresolved":true,"context_lines":[{"line_number":471,"context_line":"        return \"tftp://{host}/{boot_file}\".format(host\u003dhost,"},{"line_number":472,"context_line":"                                                  boot_file\u003dboot_file)"},{"line_number":473,"context_line":"    elif http_boot_enabled:"},{"line_number":474,"context_line":"        return \"{url}/{boot_file}\".format(url\u003dCONF.deploy.http_url,"},{"line_number":475,"context_line":"                                          boot_file\u003dboot_file)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"19bfc7f8_247b6256","line":474,"updated":"2023-11-17 13:48:45.000000000","message":"we need to check if the result is \u003e64 chars, If so, neutron  will reject it.","commit_id":"ac97ec9b0c7aec303a18a259f6bb7da2a0a650f5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e4fe03e627ac9ecb525f9d7a612bf6f7413cbe71","unresolved":false,"context_lines":[{"line_number":471,"context_line":"        return \"tftp://{host}/{boot_file}\".format(host\u003dhost,"},{"line_number":472,"context_line":"                                                  boot_file\u003dboot_file)"},{"line_number":473,"context_line":"    elif http_boot_enabled:"},{"line_number":474,"context_line":"        return \"{url}/{boot_file}\".format(url\u003dCONF.deploy.http_url,"},{"line_number":475,"context_line":"                                          boot_file\u003dboot_file)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"29ff6444_df3673f5","line":474,"in_reply_to":"19bfc7f8_247b6256","updated":"2023-11-28 17:50:41.000000000","message":"Done","commit_id":"ac97ec9b0c7aec303a18a259f6bb7da2a0a650f5"},{"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":"64b97b35bce1da33bc1cc425215a2185c3e2f190","unresolved":true,"context_lines":[{"line_number":478,"context_line":"                                            boot_file\u003dboot_file)"},{"line_number":479,"context_line":"    if len(result) \u003e 64:"},{"line_number":480,"context_line":"        # This is an internal limitation for Neutron. We cannot send it"},{"line_number":481,"context_line":"        # a value longer than 64 characters."},{"line_number":482,"context_line":"        raise exception.InvalidParameterValue(\u0027The resulting boot file or \u0027"},{"line_number":483,"context_line":"                                              \u0027URL length exceeds Neutron \u0027"},{"line_number":484,"context_line":"                                              \u0027limitations. Please explore \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"71e7dc19_a847c011","line":481,"updated":"2023-11-29 17:53:59.000000000","message":"64 characters is extremely short. It\u0027s unfortunate we\u0027re enforcing this limitation for our dnsmasq provider, too.","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"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":"ab0e680d69e04077e0a9531427b4055e6dda0f72","unresolved":true,"context_lines":[{"line_number":478,"context_line":"                                            boot_file\u003dboot_file)"},{"line_number":479,"context_line":"    if len(result) \u003e 64:"},{"line_number":480,"context_line":"        # This is an internal limitation for Neutron. We cannot send it"},{"line_number":481,"context_line":"        # a value longer than 64 characters."},{"line_number":482,"context_line":"        raise exception.InvalidParameterValue(\u0027The resulting boot file or \u0027"},{"line_number":483,"context_line":"                                              \u0027URL length exceeds Neutron \u0027"},{"line_number":484,"context_line":"                                              \u0027limitations. Please explore \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"4ccdb42f_c6d518a4","line":481,"in_reply_to":"0d9d892c_f4e7512e","updated":"2023-11-29 20:40:27.000000000","message":"Honestly, I was thinking more along the lines of \"I\u0027ve personally had servers in my environment with FQDNs longer than 64 characters\" :).","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"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":"85d80085a4f5449caeef8f7dcb21e5bd17858d5d","unresolved":true,"context_lines":[{"line_number":478,"context_line":"                                            boot_file\u003dboot_file)"},{"line_number":479,"context_line":"    if len(result) \u003e 64:"},{"line_number":480,"context_line":"        # This is an internal limitation for Neutron. We cannot send it"},{"line_number":481,"context_line":"        # a value longer than 64 characters."},{"line_number":482,"context_line":"        raise exception.InvalidParameterValue(\u0027The resulting boot file or \u0027"},{"line_number":483,"context_line":"                                              \u0027URL length exceeds Neutron \u0027"},{"line_number":484,"context_line":"                                              \u0027limitations. Please explore \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"ae534a19_610ab8b8","line":481,"in_reply_to":"4ccdb42f_c6d518a4","updated":"2023-11-29 20:43:59.000000000","message":"Yep, reread the method; doesn\u0027t matter in this case. I\u0027m realizing I\u0027m not sure I\u0027ve run a production that hasn\u0027t heavily patched this section of the code for one reason or another 😊","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5acf2a0333da8fbbc956a736632161038bd03f09","unresolved":true,"context_lines":[{"line_number":478,"context_line":"                                            boot_file\u003dboot_file)"},{"line_number":479,"context_line":"    if len(result) \u003e 64:"},{"line_number":480,"context_line":"        # This is an internal limitation for Neutron. We cannot send it"},{"line_number":481,"context_line":"        # a value longer than 64 characters."},{"line_number":482,"context_line":"        raise exception.InvalidParameterValue(\u0027The resulting boot file or \u0027"},{"line_number":483,"context_line":"                                              \u0027URL length exceeds Neutron \u0027"},{"line_number":484,"context_line":"                                              \u0027limitations. Please explore \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"0d9d892c_f4e7512e","line":481,"in_reply_to":"71e7dc19_a847c011","updated":"2023-11-29 19:52:09.000000000","message":"On a plus side, we only hand static loaders out via this method.\n\n$ echo -n \"http://0000:0000:0000:0000:0000:0000:0000:0000/bootx64.efi\" |wc -c\n58","commit_id":"d13ccf5523eccde396df8b7685ef01f2b62c4160"}],"ironic/drivers/modules/ipxe.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7d42fdd409c69ace22afedb35ba3a48dcad0af2e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        pxe_utils.place_loaders_for_boot(CONF.pxe.tftp_root)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class iPXEHttpBoot(pxe_base.PXEBaseMixin, base.BootInterface):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    ipxe_enabled \u003d True"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a726e80_bdde7134","line":37,"updated":"2024-01-18 09:51:09.000000000","message":"Curious: is there a reason we cannot do both TFTP and HTTP in one interface? I\u0027ve definitely seen DHCP configurations where the protocol is based on what the client sends (the same way we distinguish between \"already has iPXE\" and \"needs to be sent an iPXE binary\"). Or is it a Neutron limitation? I wonder how it will look in the standalone case then. I\u0027d avoid multiplying drivers in baremetal-operator if possible at all.","commit_id":"a1462a94d01c6533ded8c486035b094b77f33dba"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"fa8f97bfe908f53b1f0c34e3ba90173acbade901","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        pxe_utils.place_loaders_for_boot(CONF.pxe.tftp_root)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class iPXEHttpBoot(pxe_base.PXEBaseMixin, base.BootInterface):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    ipxe_enabled \u003d True"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ff454ba5_73c6a029","line":37,"in_reply_to":"10315c6e_833b5017","updated":"2024-01-23 19:32:52.000000000","message":"I guess a path forward could be to allow an override \"always default to UEFIHTTP\" as the boot device request where possible, however that sort of ends up up in an all or nothing territory.\n\nI\u0027d honestly just prefer we have it as an explicit option in baremetal-operator since PXE !\u003d HTTPBoot.","commit_id":"a1462a94d01c6533ded8c486035b094b77f33dba"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3900efb6d790cd15b2ab14d403545d7d89a93265","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        pxe_utils.place_loaders_for_boot(CONF.pxe.tftp_root)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class iPXEHttpBoot(pxe_base.PXEBaseMixin, base.BootInterface):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    ipxe_enabled \u003d True"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"10315c6e_833b5017","line":37,"in_reply_to":"3a726e80_bdde7134","updated":"2024-01-18 14:58:15.000000000","message":"So there are a couple reasons off the top of my mind which led me in this direction instead of trying to combine them:\n\n* We need to basically lock to UEFI, because this is a UEFI only feature.\n* We need to assert an explicit PXE class, and by default I\u0027m not sure OVN will take kindly to that, so potentially if we just try to do it combined on the existing interfaces, we may just break OVN. Keep in mind, a huge portion of the code is the base type, and then the backend networking. For consumers like metal3, they have no concept or care of the networking, which is fine, but we can\u0027t let that force us into breaking what we already have.\n* The tendency in the ask  I tend to see is \"I only ever want to be using HTTP\" and \"I want to ban TFTP entirely.\" which means \u0027combined\u0027 interfaces become problematic as well because then we\u0027re asserting configuration they forbid in their environment. I *think* this is one of those explicit reasons we *really* just want to avoid trying to combine things together quietly.","commit_id":"a1462a94d01c6533ded8c486035b094b77f33dba"}]}
