)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a5650a1c83f1603882bceefb81238bfef863702e","unresolved":false,"context_lines":[{"line_number":1691,"context_line":"        local pxebin"},{"line_number":1692,"context_line":"        pxebin\u003d`basename $IRONIC_PXE_BOOT_IMAGE`"},{"line_number":1693,"context_line":"        uefipxebin\u003d`basename $(get_uefi_ipxe_boot_file)`"},{"line_number":1694,"context_line":"        iniset $IRONIC_CONF_FILE pxe pxe_config_template \u0027$pybasedir/drivers/modules/ipxe_config.template\u0027"},{"line_number":1695,"context_line":"        iniset $IRONIC_CONF_FILE pxe pxe_bootfile_name $pxebin"},{"line_number":1696,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_config_template \u0027$pybasedir/drivers/modules/ipxe_config.template\u0027"},{"line_number":1697,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_bootfile_name $uefipxebin"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"bf51134e_e77a3ab8","side":"PARENT","line":1694,"range":{"start_line":1694,"start_character":8,"end_line":1694,"end_character":106},"updated":"2020-07-06 18:36:07.000000000","message":"err, by making devstack not focused... this kind of makes sense.","commit_id":"36ea661bfca3db9454f6d8927ac2cf346087696b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a5650a1c83f1603882bceefb81238bfef863702e","unresolved":false,"context_lines":[{"line_number":2617,"context_line":"EOF"},{"line_number":2618,"context_line":"        chmod 644 $grub_dir/grub.cfg"},{"line_number":2619,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_config_template \u0027$pybasedir/drivers/modules/pxe_grub_config.template\u0027"},{"line_number":2620,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_bootfile_name  \"bootx64.efi\""},{"line_number":2621,"context_line":"    else"},{"line_number":2622,"context_line":"        echo \"r ^([^/]) $IRONIC_TFTPBOOT_DIR/\\1\" \u003e$IRONIC_TFTPBOOT_DIR/map-file"},{"line_number":2623,"context_line":"        echo \"r ^(/tftpboot/) $IRONIC_TFTPBOOT_DIR/\\2\" \u003e\u003e$IRONIC_TFTPBOOT_DIR/map-file"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"bf51134e_6748ea86","side":"PARENT","line":2620,"updated":"2020-07-06 18:36:07.000000000","message":"err... these should still be around. :\\","commit_id":"36ea661bfca3db9454f6d8927ac2cf346087696b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b6fcfdd2494e3beac580a350a172b56836a6166f","unresolved":false,"context_lines":[{"line_number":2617,"context_line":"EOF"},{"line_number":2618,"context_line":"        chmod 644 $grub_dir/grub.cfg"},{"line_number":2619,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_config_template \u0027$pybasedir/drivers/modules/pxe_grub_config.template\u0027"},{"line_number":2620,"context_line":"        iniset $IRONIC_CONF_FILE pxe uefi_pxe_bootfile_name  \"bootx64.efi\""},{"line_number":2621,"context_line":"    else"},{"line_number":2622,"context_line":"        echo \"r ^([^/]) $IRONIC_TFTPBOOT_DIR/\\1\" \u003e$IRONIC_TFTPBOOT_DIR/map-file"},{"line_number":2623,"context_line":"        echo \"r ^(/tftpboot/) $IRONIC_TFTPBOOT_DIR/\\2\" \u003e\u003e$IRONIC_TFTPBOOT_DIR/map-file"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"bf51134e_b9b186e4","side":"PARENT","line":2620,"in_reply_to":"bf51134e_6748ea86","updated":"2020-07-06 19:11:36.000000000","message":"These are the defaults, no? We only support grub2 for PXE.","commit_id":"36ea661bfca3db9454f6d8927ac2cf346087696b"}],"doc/source/install/configure-pxe.rst":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87993654a7a1c1427a70a982fadf045bc5d3fcee","unresolved":false,"context_lines":[{"line_number":363,"context_line":""},{"line_number":364,"context_line":"       cp /usr/share/ipxe/{undionly.kpxe,ipxe.efi,snponly.efi} /tftpboot"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"#. Enable/Configure iPXE overrides in the Bare Metal Service\u0027s configuration"},{"line_number":367,"context_line":"   file **if required** (/etc/ironic/ironic.conf):"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"   .. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf51134e_dab884e6","line":366,"range":{"start_line":366,"start_character":25,"end_line":366,"end_character":34},"updated":"2020-07-08 15:49:54.000000000","message":"how it overrides as we provide default values for the new options? I don\u0027t think people would set a None here.","commit_id":"5f7d84f483be165fde04954453e156ceefc43d28"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87993654a7a1c1427a70a982fadf045bc5d3fcee","unresolved":false,"context_lines":[{"line_number":409,"context_line":"   .. note::"},{"line_number":410,"context_line":"      The ``[DEFAULT]enabled_boot_interfaces`` setting may be exclusively set"},{"line_number":411,"context_line":"      to ``ipxe``, however ironic has multiple interfaces available depending"},{"line_number":412,"context_line":"      on the hardware types available for use."},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"#. It is possible to configure the Bare Metal service in such a way"},{"line_number":415,"context_line":"   that nodes will boot into the deploy image directly from Object Storage."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf51134e_3a7d401c","line":412,"updated":"2020-07-08 15:49:54.000000000","message":"for those haven\u0027t shifted from pxe to ipxe, unfortunately pxe interface needs to be enabled, otherwise our conductors will refuse to start :)","commit_id":"5f7d84f483be165fde04954453e156ceefc43d28"}],"ironic/common/pxe_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d475ceb36121063f34cd5f1b8935fc88c20c08c","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                       to return options for DHCP. Possible options"},{"line_number":385,"context_line":"                       are 4, and 6."},{"line_number":386,"context_line":"    \"\"\""},{"line_number":387,"context_line":"    if task.node.boot_interface \u003d\u003d \"ipxe\":"},{"line_number":388,"context_line":"        boot_file \u003d deploy_utils.get_ipxe_boot_file(task.node)"},{"line_number":389,"context_line":"    else:"},{"line_number":390,"context_line":"        boot_file \u003d deploy_utils.get_pxe_boot_file(task.node)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8dbed5b1","line":387,"updated":"2020-05-15 13:12:21.000000000","message":"Sigh. I wonder if we should move this method and get_boot_file to the interface itself. At the very least, it breaks anyone inheriting IPXEBoot.","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3946fc2b7f6002559e8bb480be9e56f5cb884869","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                       to return options for DHCP. Possible options"},{"line_number":385,"context_line":"                       are 4, and 6."},{"line_number":386,"context_line":"    \"\"\""},{"line_number":387,"context_line":"    if task.node.boot_interface \u003d\u003d \"ipxe\":"},{"line_number":388,"context_line":"        boot_file \u003d deploy_utils.get_ipxe_boot_file(task.node)"},{"line_number":389,"context_line":"    else:"},{"line_number":390,"context_line":"        boot_file \u003d deploy_utils.get_pxe_boot_file(task.node)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_1b0dd4e7","line":387,"in_reply_to":"ff570b3c_8dbed5b1","updated":"2020-05-15 23:23:28.000000000","message":"Yeah.\n\nSo I\u0027m thinking task.node.boot_interface.ipxe_enabled should work at least for more recent usage.","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87993654a7a1c1427a70a982fadf045bc5d3fcee","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    \"\"\""},{"line_number":266,"context_line":"    LOG.debug(\"Building PXE config for node %s\", task.node.uuid)"},{"line_number":267,"context_line":"    if template is None:"},{"line_number":268,"context_line":"        if ipxe_enabled:"},{"line_number":269,"context_line":"            template \u003d deploy_utils.get_ipxe_config_template(task.node)"},{"line_number":270,"context_line":"        else:"},{"line_number":271,"context_line":"            template \u003d deploy_utils.get_pxe_config_template(task.node)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_5abab409","line":268,"range":{"start_line":268,"start_character":11,"end_line":268,"end_character":23},"updated":"2020-07-08 15:49:54.000000000","message":"ideally we should pass it into deploy_utils and handle the difference there","commit_id":"5f7d84f483be165fde04954453e156ceefc43d28"}],"ironic/conf/pxe.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d475ceb36121063f34cd5f1b8935fc88c20c08c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":104,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027ipxe_bootfile_name\u0027,"},{"line_number":106,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2dcd0966","line":106,"updated":"2020-05-15 13:12:21.000000000","message":"Is this actually correct? I would expect undionly.kpxe..","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3946fc2b7f6002559e8bb480be9e56f5cb884869","unresolved":false,"context_lines":[{"line_number":103,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":104,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027ipxe_bootfile_name\u0027,"},{"line_number":106,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_1b267469","line":106,"in_reply_to":"ff570b3c_2dcd0966","updated":"2020-05-15 23:23:28.000000000","message":"nope, totally wrong! :)","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d475ceb36121063f34cd5f1b8935fc88c20c08c","unresolved":false,"context_lines":[{"line_number":106,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":110,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":111,"context_line":"    cfg.DictOpt(\u0027pxe_bootfile_name_by_arch\u0027,"},{"line_number":112,"context_line":"                default\u003d{},"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6dc38139","line":109,"updated":"2020-05-15 13:12:21.000000000","message":"ipxe.efi?","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3946fc2b7f6002559e8bb480be9e56f5cb884869","unresolved":false,"context_lines":[{"line_number":106,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":110,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":111,"context_line":"    cfg.DictOpt(\u0027pxe_bootfile_name_by_arch\u0027,"},{"line_number":112,"context_line":"                default\u003d{},"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_3bf7f8d5","line":109,"in_reply_to":"ff570b3c_6dc38139","updated":"2020-05-15 23:23:28.000000000","message":"Ohh, good point!","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"843245853e8981adc0b4a0af863c89b6a577f5b0","unresolved":false,"context_lines":[{"line_number":103,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":104,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027ipxe_bootfile_name\u0027,"},{"line_number":106,"context_line":"               default\u003d\u0027undionly.kpxe\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027snponly.efi\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_48191978","line":106,"updated":"2020-06-02 19:58:30.000000000","message":"I feel like maybe we should separately merge this and other options as None. Or maybe set these to None on backports. Either or?","commit_id":"11caeab29468655adc684fdde03f338ed088e096"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"591f716d05efb001af27bc6c340c7b5ed08eb41f","unresolved":false,"context_lines":[{"line_number":103,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":104,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027ipxe_bootfile_name\u0027,"},{"line_number":106,"context_line":"               default\u003d\u0027undionly.kpxe\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027snponly.efi\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_a82395a6","line":106,"in_reply_to":"ff570b3c_48191978","updated":"2020-06-02 19:59:27.000000000","message":"I would say None on the backports \u003d)","commit_id":"11caeab29468655adc684fdde03f338ed088e096"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6adeaee1c93ad35104012ac6264b16610303f712","unresolved":false,"context_lines":[{"line_number":103,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":104,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027)),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027ipxe_bootfile_name\u0027,"},{"line_number":106,"context_line":"               default\u003d\u0027undionly.kpxe\u0027,"},{"line_number":107,"context_line":"               help\u003d_(\u0027Bootfile DHCP parameter.\u0027)),"},{"line_number":108,"context_line":"    cfg.StrOpt(\u0027uefi_ipxe_bootfile_name\u0027,"},{"line_number":109,"context_line":"               default\u003d\u0027snponly.efi\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_079dd509","line":106,"in_reply_to":"ff570b3c_a82395a6","updated":"2020-06-10 01:54:27.000000000","message":"Makes sense to me. :)","commit_id":"11caeab29468655adc684fdde03f338ed088e096"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be36347c7841bf7963c42f9f9e257a2e5b10eb2d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               default\u003d10080,"},{"line_number":50,"context_line":"               help\u003d_(\u0027Maximum TTL (in minutes) for old master images in \u0027"},{"line_number":51,"context_line":"                      \u0027cache.\u0027)),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027pxe_config_template\u0027,"},{"line_number":53,"context_line":"               default\u003dos.path.join("},{"line_number":54,"context_line":"                   \u0027$pybasedir\u0027, \u0027drivers/modules/pxe_config.template\u0027),"},{"line_number":55,"context_line":"               mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_38d5771c","line":52,"updated":"2020-07-06 14:25:29.000000000","message":"oh, we need an ipxe_config_template, no?","commit_id":"fdfef8367255363079b11136d108e1eb6f79b586"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be36347c7841bf7963c42f9f9e257a2e5b10eb2d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"               mutable\u003dTrue,"},{"line_number":56,"context_line":"               help\u003d_(\u0027On ironic-conductor node, template file for PXE \u0027"},{"line_number":57,"context_line":"                      \u0027configuration.\u0027)),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_config_template\u0027,"},{"line_number":59,"context_line":"               default\u003dos.path.join("},{"line_number":60,"context_line":"                   \u0027$pybasedir\u0027,"},{"line_number":61,"context_line":"                   \u0027drivers/modules/pxe_grub_config.template\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_98dc8347","line":58,"updated":"2020-07-06 14:25:29.000000000","message":"and here","commit_id":"fdfef8367255363079b11136d108e1eb6f79b586"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a5650a1c83f1603882bceefb81238bfef863702e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"               mutable\u003dTrue,"},{"line_number":56,"context_line":"               help\u003d_(\u0027On ironic-conductor node, template file for PXE \u0027"},{"line_number":57,"context_line":"                      \u0027configuration.\u0027)),"},{"line_number":58,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_config_template\u0027,"},{"line_number":59,"context_line":"               default\u003dos.path.join("},{"line_number":60,"context_line":"                   \u0027$pybasedir\u0027,"},{"line_number":61,"context_line":"                   \u0027drivers/modules/pxe_grub_config.template\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_6772aaaf","line":58,"in_reply_to":"bf51134e_98dc8347","updated":"2020-07-06 18:36:07.000000000","message":"Actually not sure we need a separate template here... Because we can use the same, however pxe + uefi \u003d\u003d grub.","commit_id":"fdfef8367255363079b11136d108e1eb6f79b586"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87993654a7a1c1427a70a982fadf045bc5d3fcee","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    cfg.DictOpt(\u0027ipxe_bootfile_name_by_arch\u0027,"},{"line_number":130,"context_line":"                default\u003d{},"},{"line_number":131,"context_line":"                help\u003d_(\u0027Bootfile DHCP parameter per node architecture. \u0027"},{"line_number":132,"context_line":"                       \u0027For example: aarch64:ipxe_aa64.efi\u0027)),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027ipxe_boot_script\u0027,"},{"line_number":134,"context_line":"               default\u003dos.path.join("},{"line_number":135,"context_line":"                   \u0027$pybasedir\u0027, \u0027drivers/modules/boot.ipxe\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_ba9af0c1","line":132,"range":{"start_line":132,"start_character":45,"end_line":132,"end_character":58},"updated":"2020-07-08 15:49:54.000000000","message":"we don\u0027t have this atm right? otherwise my memory needs refreshing.","commit_id":"5f7d84f483be165fde04954453e156ceefc43d28"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d475ceb36121063f34cd5f1b8935fc88c20c08c","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    return boot_file"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"def get_ipxe_boot_file(node):"},{"line_number":383,"context_line":"    \"\"\"Return the iPXE boot file name requested for deploy."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    This method returns iPXE boot file name to be used for deploy."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8de375d9","line":382,"updated":"2020-05-15 13:12:21.000000000","message":"I understand that get_pxe_boot_file is here, but it should likely go to pxe_utils.","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7a1aedb3f74ce29da029b69bede620d1e2e2624b","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    return boot_file"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"def get_ipxe_boot_file(node):"},{"line_number":383,"context_line":"    \"\"\"Return the iPXE boot file name requested for deploy."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    This method returns iPXE boot file name to be used for deploy."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_9ac7fb12","line":382,"in_reply_to":"ff570b3c_8de375d9","updated":"2020-06-02 19:53:15.000000000","message":"I\u0027ve been looking at this and I think it is just adding indirection. i.e. Jumping all the way into the driver code and then back to the deployment code for the boot file code.\n\nWhich I think kind of takes things to the point of asking \"Do we want defaults for these\" or \"do we want to encourage operators to set them.\"\n\nI almost feel like fallback logic will only be worthwhile if we explicitly set the defaults to None. I guess this goes to say I feel conflicted.","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d475ceb36121063f34cd5f1b8935fc88c20c08c","unresolved":false,"context_lines":[{"line_number":395,"context_line":"    :returns: The iPXE boot file name."},{"line_number":396,"context_line":"    \"\"\""},{"line_number":397,"context_line":"    cpu_arch \u003d node.properties.get(\u0027cpu_arch\u0027)"},{"line_number":398,"context_line":"    boot_file \u003d CONF.pxe.ipxe_bootfile_name_by_arch.get(cpu_arch)"},{"line_number":399,"context_line":"    if boot_file is None:"},{"line_number":400,"context_line":"        if boot_mode_utils.get_boot_mode(node) \u003d\u003d \u0027uefi\u0027:"},{"line_number":401,"context_line":"            boot_file \u003d CONF.pxe.uefi_ipxe_bootfile_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_edfdd16e","line":398,"updated":"2020-05-15 13:12:21.000000000","message":"nit: I see a possibility of de-duplication, this function is nearly identical to get_pxe_boot_file.\n\nMaybe PXEBase.get_boot_file (implemented differently for PXE and iPXE)?","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3946fc2b7f6002559e8bb480be9e56f5cb884869","unresolved":false,"context_lines":[{"line_number":395,"context_line":"    :returns: The iPXE boot file name."},{"line_number":396,"context_line":"    \"\"\""},{"line_number":397,"context_line":"    cpu_arch \u003d node.properties.get(\u0027cpu_arch\u0027)"},{"line_number":398,"context_line":"    boot_file \u003d CONF.pxe.ipxe_bootfile_name_by_arch.get(cpu_arch)"},{"line_number":399,"context_line":"    if boot_file is None:"},{"line_number":400,"context_line":"        if boot_mode_utils.get_boot_mode(node) \u003d\u003d \u0027uefi\u0027:"},{"line_number":401,"context_line":"            boot_file \u003d CONF.pxe.uefi_ipxe_bootfile_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_7beb30db","line":398,"in_reply_to":"ff570b3c_edfdd16e","updated":"2020-05-15 23:23:28.000000000","message":"I think we\u0027d need to still fall back, but definitely pondering.","commit_id":"bf6b744d278c043fc57e8a3e822ab1b1e06163b8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"23d9d99748e35e37d5cc0679b6a1cfd4a59d2b7c","unresolved":false,"context_lines":[{"line_number":419,"context_line":"    # architecture and we\u0027re not trying to support multiple different boot"},{"line_number":420,"context_line":"    # loaders by architecture as they are all consistent. Where as PXE"},{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    return CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"def get_pxe_config_template(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_b934e64b","line":422,"updated":"2020-07-06 19:15:38.000000000","message":"You may want to handle None here if we\u0027re going to backport this change with new options defaulting to None:\n\n return CONF.pxe.ipxe_config_template or get_pxe_config_template(node)","commit_id":"c4e732aa75d40d5b3f5593fdc93d40be3ae1e595"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7e2c45665740921938244d0738cb8355bf5dde28","unresolved":false,"context_lines":[{"line_number":419,"context_line":"    # architecture and we\u0027re not trying to support multiple different boot"},{"line_number":420,"context_line":"    # loaders by architecture as they are all consistent. Where as PXE"},{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    return CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"def get_pxe_config_template(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_9c2ab029","line":422,"in_reply_to":"bf51134e_b934e64b","updated":"2020-07-06 19:51:07.000000000","message":"ohh, I love that idea!","commit_id":"c4e732aa75d40d5b3f5593fdc93d40be3ae1e595"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"37820a5c43ba9d9071244628286563a846a51859","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    configured_template \u003d CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":"    override_template \u003d (node.driver_info.get(\u0027ipxe_template\u0027)"},{"line_number":424,"context_line":"                         or node.driver_info.get(\u0027pxe_template\u0027))"},{"line_number":425,"context_line":"    if override_template:"},{"line_number":426,"context_line":"        configured_template \u003d override_template"},{"line_number":427,"context_line":"    return configured_template or get_pxe_config_template(node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_de5ed843","line":424,"updated":"2020-07-07 07:14:02.000000000","message":"How useful is this, given that it\u0027s a local path?\n\nAlso maybe only support ipxe_template? pxe_template may give an assumption that it works for plain PXE.\n\nFinally, we need to document the new option on the iPXEBoot level (get_properties, maybe some validation).","commit_id":"850a72b6c4f2853437efc125d6b03161c2b701b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b1b028647ee35c894f564ac8da492d599b500eb8","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    configured_template \u003d CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":"    override_template \u003d (node.driver_info.get(\u0027ipxe_template\u0027)"},{"line_number":424,"context_line":"                         or node.driver_info.get(\u0027pxe_template\u0027))"},{"line_number":425,"context_line":"    if override_template:"},{"line_number":426,"context_line":"        configured_template \u003d override_template"},{"line_number":427,"context_line":"    return configured_template or get_pxe_config_template(node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_b66984bf","line":424,"in_reply_to":"bf51134e_ab3e4126","updated":"2020-07-07 13:29:40.000000000","message":"Since this addition makes this patch a feature, maybe follow-up with it instead?","commit_id":"850a72b6c4f2853437efc125d6b03161c2b701b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"32bebddab1955bc67ef1c176bd57f731474a2108","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    configured_template \u003d CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":"    override_template \u003d (node.driver_info.get(\u0027ipxe_template\u0027)"},{"line_number":424,"context_line":"                         or node.driver_info.get(\u0027pxe_template\u0027))"},{"line_number":425,"context_line":"    if override_template:"},{"line_number":426,"context_line":"        configured_template \u003d override_template"},{"line_number":427,"context_line":"    return configured_template or get_pxe_config_template(node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_e6918b48","line":424,"in_reply_to":"bf51134e_b66984bf","updated":"2020-07-07 15:28:23.000000000","message":"WFM, I\u0027ll just keep it backwards compatible for now.","commit_id":"850a72b6c4f2853437efc125d6b03161c2b701b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a775beb6b7c8614639cd8e12dc9fdc94066ea068","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    # could need to be grub for one arch, PXELINUX for another."},{"line_number":422,"context_line":"    configured_template \u003d CONF.pxe.ipxe_config_template"},{"line_number":423,"context_line":"    override_template \u003d (node.driver_info.get(\u0027ipxe_template\u0027)"},{"line_number":424,"context_line":"                         or node.driver_info.get(\u0027pxe_template\u0027))"},{"line_number":425,"context_line":"    if override_template:"},{"line_number":426,"context_line":"        configured_template \u003d override_template"},{"line_number":427,"context_line":"    return configured_template or get_pxe_config_template(node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_ab3e4126","line":424,"in_reply_to":"bf51134e_de5ed843","updated":"2020-07-07 13:14:31.000000000","message":"People asked for the original and I thought it would be best to carry forward the same capabilities as to minimize risk of breakage. I\u0027m not even sure the original is documented sadly, but I\u0027ll check","commit_id":"850a72b6c4f2853437efc125d6b03161c2b701b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"65763de2601fe21cbd9dd6a7cd507b3da07dc343","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    override_template \u003d node.driver_info.get(\u0027pxe_template\u0027)"},{"line_number":424,"context_line":"    if override_template:"},{"line_number":425,"context_line":"        configured_template \u003d override_template"},{"line_number":426,"context_line":"    return configured_template or get_pxe_config_template(node)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"def get_pxe_config_template(node):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_d2c99d78","line":426,"updated":"2020-07-07 19:10:58.000000000","message":"could be\n\n return node.driver_info.get(\u0027pxe_template\u0027) or CONF.pxe.ipxe_config_template or get_pxe_config_template(node)","commit_id":"ab7fffb054fb2d8566578cfc337927fd0382010d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"65763de2601fe21cbd9dd6a7cd507b3da07dc343","unresolved":false,"context_lines":[{"line_number":437,"context_line":"    :param node: A single Node."},{"line_number":438,"context_line":"    :returns: The PXE config template file name."},{"line_number":439,"context_line":"    \"\"\""},{"line_number":440,"context_line":"    config_template \u003d node.driver_info.get(\"pxe_template\", None)"},{"line_number":441,"context_line":"    if config_template is None:"},{"line_number":442,"context_line":"        cpu_arch \u003d node.properties.get(\u0027cpu_arch\u0027)"},{"line_number":443,"context_line":"        config_template \u003d CONF.pxe.pxe_config_template_by_arch.get(cpu_arch)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_72ca516e","line":440,"range":{"start_line":440,"start_character":21,"end_line":440,"end_character":64},"updated":"2020-07-07 19:10:58.000000000","message":"This is actually an existing feature O_O I wonder if we ever documented it anywhere.","commit_id":"ab7fffb054fb2d8566578cfc337927fd0382010d"}]}
