)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"ad550100d0aee97576ad6f79ab3da25402f0b42e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Initial support for EFI booting"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In order to support EFI booting, we need to respond to the to the"},{"line_number":10,"context_line":"DHCP request with the appropriate binary for booting the node."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"At present, holding off on documentation until this has had an"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a68dd71_ea846c5e","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":65},"updated":"2016-01-26 02:23:10.000000000","message":"nit: duplication \u0027to the\u0027","commit_id":"d5378f26fcbaf607f726335481f68c6cc6a4b887"}],"playbooks/roles/bifrost-ironic-install/defaults/main.yml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"09e2bcc47ca9a33b61c780824b55c9550b52de69","unresolved":false,"context_lines":[{"line_number":30,"context_line":"enable_uefi_ipxe: true"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Warning: This downloads potentially unverified code directly from ipxe.org"},{"line_number":33,"context_line":"# and should only be utilized with careful consideration."},{"line_number":34,"context_line":"direct_ipxe_download: false"},{"line_number":35,"context_line":"ipxe_download_url: \"https://boot.ipxe.org/\""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bf8cb3f7_34e21a05","line":33,"updated":"2017-12-22 11:25:44.000000000","message":"I wonder if it\u0027s needed. Since the patch was posted, CentOS got support for UEFI with iPXE, for example.","commit_id":"e66ef17cfacace09b8872f924ef7d9998737381e"}],"playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Debian_jessie.yml":[{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"05a68fd6e63ea237f08090678fc3b41634a6707a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"syslinux_tftp_dir: /usr/lib/PXELINUX/"},{"line_number":6,"context_line":"ipxe_dir: /usr/lib/ipxe/"},{"line_number":7,"context_line":"ipxe_full_binary: ipxe.pxe"},{"line_number":8,"context_line":"ipxe_efi_binary: ipxe.efi"},{"line_number":9,"context_line":"sgabios_dir: /usr/share/qemu/"},{"line_number":10,"context_line":"nginx_user: www-data"},{"line_number":11,"context_line":"virt_group: libvirt"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ba63e191_70f25dd4","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":15},"updated":"2016-01-19 19:18:19.000000000","message":"This is presumably not required if defined in required_defaults_Debian_family.","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0923ee9e372cd51a770cc5ed80bfd674149973ac","unresolved":false,"context_lines":[{"line_number":5,"context_line":"syslinux_tftp_dir: /usr/lib/PXELINUX/"},{"line_number":6,"context_line":"ipxe_dir: /usr/lib/ipxe/"},{"line_number":7,"context_line":"ipxe_full_binary: ipxe.pxe"},{"line_number":8,"context_line":"ipxe_efi_binary: ipxe.efi"},{"line_number":9,"context_line":"sgabios_dir: /usr/share/qemu/"},{"line_number":10,"context_line":"nginx_user: www-data"},{"line_number":11,"context_line":"virt_group: libvirt"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a68dd71_a3dbde1a","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":15},"in_reply_to":"ba63e191_70f25dd4","updated":"2016-01-22 21:02:42.000000000","message":"Right, I\u0027ll remove it.  Now that I think about it, we ought to reconcile that, but not in this patch.","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"}],"playbooks/roles/bifrost-ironic-install/tasks/create_tftpboot.yml":[{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"05a68fd6e63ea237f08090678fc3b41634a6707a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  copy: src\u003d{{ item }} dest\u003d/httpboot/"},{"line_number":48,"context_line":"  with_items:"},{"line_number":49,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_full_binary }}\""},{"line_number":50,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_efi_binary }}\""},{"line_number":51,"context_line":"- name: \"Copy full iPXE image into /tftpboot\""},{"line_number":52,"context_line":"  copy: src\u003d{{ item }} dest\u003d/tftpboot/"},{"line_number":53,"context_line":"  with_items:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ba63e191_d01c6915","line":50,"range":{"start_line":50,"start_character":10,"end_line":50,"end_character":18},"updated":"2016-01-19 19:18:19.000000000","message":"This is going to fail on Fedora where it\u0027s undefined. We should have a when statement for the EFI binary if not available on all our distros.","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0923ee9e372cd51a770cc5ed80bfd674149973ac","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  copy: src\u003d{{ item }} dest\u003d/httpboot/"},{"line_number":48,"context_line":"  with_items:"},{"line_number":49,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_full_binary }}\""},{"line_number":50,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_efi_binary }}\""},{"line_number":51,"context_line":"- name: \"Copy full iPXE image into /tftpboot\""},{"line_number":52,"context_line":"  copy: src\u003d{{ item }} dest\u003d/tftpboot/"},{"line_number":53,"context_line":"  with_items:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a68dd71_fc5336e0","line":50,"range":{"start_line":50,"start_character":10,"end_line":50,"end_character":18},"in_reply_to":"ba63e191_d01c6915","updated":"2016-01-22 21:02:42.000000000","message":"Good point.  I\u0027ve expanded the logic heavilly to address this and am providing a download option.  Hopefully it will work :)","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"05a68fd6e63ea237f08090678fc3b41634a6707a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  copy: src\u003d{{ item }} dest\u003d/tftpboot/"},{"line_number":53,"context_line":"  with_items:"},{"line_number":54,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_full_binary }}\""},{"line_number":55,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_efi_binary }}\""},{"line_number":56,"context_line":"# Similar logic to below can be utilized to retrieve files"},{"line_number":57,"context_line":"- name: \"Determine if folder exists, else create and populate folder.\""},{"line_number":58,"context_line":"  stat: path\u003d/tftpboot/master_images"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ba63e191_30d4e51e","line":55,"range":{"start_line":55,"start_character":25,"end_line":55,"end_character":40},"updated":"2016-01-19 19:18:19.000000000","message":"see comment line 50","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0923ee9e372cd51a770cc5ed80bfd674149973ac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  copy: src\u003d{{ item }} dest\u003d/tftpboot/"},{"line_number":53,"context_line":"  with_items:"},{"line_number":54,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_full_binary }}\""},{"line_number":55,"context_line":"    - \"{{ ipxe_dir }}/{{ ipxe_efi_binary }}\""},{"line_number":56,"context_line":"# Similar logic to below can be utilized to retrieve files"},{"line_number":57,"context_line":"- name: \"Determine if folder exists, else create and populate folder.\""},{"line_number":58,"context_line":"  stat: path\u003d/tftpboot/master_images"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a68dd71_5c4b622a","line":55,"range":{"start_line":55,"start_character":25,"end_line":55,"end_character":40},"in_reply_to":"ba63e191_30d4e51e","updated":"2016-01-22 21:02:42.000000000","message":"Done","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"15db5e0a06481eac37eea11c31304967b6f95659","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  fail:"},{"line_number":90,"context_line":"    msg: \u003e"},{"line_number":91,"context_line":"      Aborting installation: The {{ ipxe_efi_binary }} binary was not found"},{"line_number":92,"context_line":"      at the {{ ipxe_dir }} locaiton.  Please place this file or consider"},{"line_number":93,"context_line":"      re-running with direct_ipxe_download set to a value of true."},{"line_number":94,"context_line":"  when: test_is_ipxe_present.stat.exists | bool \u003d\u003d false"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9a68dd71_5367d0b6","line":92,"range":{"start_line":92,"start_character":28,"end_line":92,"end_character":36},"updated":"2016-01-22 22:01:10.000000000","message":"typo - location","commit_id":"d5378f26fcbaf607f726335481f68c6cc6a4b887"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"bd53404de4d77a1ab42548c1a1100522c1cf9ed1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        path: \"{{ ipxe_dir }}/{{ ipxe_efi_binary }}\""},{"line_number":60,"context_line":"        get_md5: false"},{"line_number":61,"context_line":"      register: test_ipxe_efi_binary_path"},{"line_number":62,"context_line":"      ignore_errors: true"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    - name: \"Abort if iPXE EFI image is missing\""},{"line_number":65,"context_line":"      fail:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f79a3b5_5fabdcd2","line":62,"range":{"start_line":62,"start_character":6,"end_line":62,"end_character":25},"updated":"2018-11-21 19:33:45.000000000","message":"nit: shouldn\u0027t need this - stat doesn\u0027t fail if the file exists.","commit_id":"d446038141816d028f87ea8c482c48bcfb57ff4e"}],"playbooks/roles/bifrost-ironic-install/templates/dnsmasq.conf.j2":[{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"05a68fd6e63ea237f08090678fc3b41634a6707a","unresolved":false,"context_lines":[{"line_number":83,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":84,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":85,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":86,"context_line":"dhcp-boot\u003dtag:efi,/ipxe.efi"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"{% if testing %}"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"ba63e191_90c4b15f","line":86,"range":{"start_line":86,"start_character":24,"end_line":86,"end_character":27},"updated":"2016-01-19 19:18:19.000000000","message":"Make this conditional where ipxe_efi_binary is not defined.","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0923ee9e372cd51a770cc5ed80bfd674149973ac","unresolved":false,"context_lines":[{"line_number":83,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":84,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":85,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":86,"context_line":"dhcp-boot\u003dtag:efi,/ipxe.efi"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"{% if testing %}"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"9a68dd71_5cc4c28f","line":86,"range":{"start_line":86,"start_character":24,"end_line":86,"end_character":27},"in_reply_to":"ba63e191_90c4b15f","updated":"2016-01-22 21:02:42.000000000","message":"Done","commit_id":"1502f4e492e6ca9e2897275781e4f94f9bf191d8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f95632734bce122a973449464955ba084aed009e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":88,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":89,"context_line":"{% if enable_uefi_ipxe %}"},{"line_number":90,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":91,"context_line":"dhcp-boot\u003dtag:efi,/{{ ipxe_efi_binary }}"},{"line_number":92,"context_line":"{% endif %}"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"5a5ae5dd_ef2dba95","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":39},"updated":"2016-02-05 13:21:10.000000000","message":"looks like this should _actually_ be 9...\n\nhttps://tools.ietf.org/html/rfc4578","commit_id":"e66ef17cfacace09b8872f924ef7d9998737381e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"09e2bcc47ca9a33b61c780824b55c9550b52de69","unresolved":false,"context_lines":[{"line_number":87,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":88,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":89,"context_line":"{% if enable_uefi_ipxe %}"},{"line_number":90,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":91,"context_line":"dhcp-boot\u003dtag:efi,/{{ ipxe_efi_binary }}"},{"line_number":92,"context_line":"{% endif %}"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"bf8cb3f7_14dd9641","line":90,"updated":"2017-12-22 11:25:44.000000000","message":"we use both 7, 9 and 11 in puppet-ironic nowadays. in any case, I suggest cargo-culting this template: https://github.com/openstack/puppet-ironic/blob/master/templates/inspector_dnsmasq_http.erb#L26-L28","commit_id":"e66ef17cfacace09b8872f924ef7d9998737381e"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"2d9f88a5ca83e8cbbca58da6bd69fb0b551bb5b8","unresolved":false,"context_lines":[{"line_number":87,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":88,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":89,"context_line":"{% if enable_uefi_ipxe %}"},{"line_number":90,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":91,"context_line":"dhcp-boot\u003dtag:efi,/{{ ipxe_efi_binary }}"},{"line_number":92,"context_line":"{% endif %}"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"dae33548_92408658","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":39},"in_reply_to":"5a5ae5dd_9c531d6b","updated":"2016-02-15 13:56:58.000000000","message":"According to tcpdump my x86_64 desktop machine sends client-arch\u003d7 when trying to PXE boot, FWIW.","commit_id":"e66ef17cfacace09b8872f924ef7d9998737381e"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"26802371c962c7d38677b57a73fd39073ad801eb","unresolved":false,"context_lines":[{"line_number":87,"context_line":"dhcp-match\u003dset:ipxe,175 # iPXE sends a 175 option."},{"line_number":88,"context_line":"dhcp-boot\u003dtag:!ipxe,/undionly.kpxe"},{"line_number":89,"context_line":"{% if enable_uefi_ipxe %}"},{"line_number":90,"context_line":"dhcp-match\u003dset:efi,option:client-arch,7"},{"line_number":91,"context_line":"dhcp-boot\u003dtag:efi,/{{ ipxe_efi_binary }}"},{"line_number":92,"context_line":"{% endif %}"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"5a5ae5dd_9c531d6b","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":39},"in_reply_to":"5a5ae5dd_ef2dba95","updated":"2016-02-05 16:16:02.000000000","message":"Possibly not: apparently x86_64 machines can send client-arch\u003d7, see http://serverfault.com/questions/349693/pxe-architecture-bc-efi.\n\nAlso, these lines will AFAICT only run if the preceding dhcp-boot\u003dtag:!ipxe line has failed, which means the client is running iPXE and doesn\u0027t need to be chainloaded. I think the logic you need is what I\u0027ve done here: https://review.openstack.org/#/c/276187/1/templates/inspector_dnsmasq_http.erb","commit_id":"e66ef17cfacace09b8872f924ef7d9998737381e"}]}
