)]}'
{"playbooks/roles/bifrost-ironic-install/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6b8102ba69b4574cabf00eea20d888e6c08fa966","unresolved":false,"context_lines":[{"line_number":141,"context_line":"ironic_auth_strategy: \"noauth\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"# The locations where ironic will store contents"},{"line_number":144,"context_line":"ironic_base_path: \"/var/lib/ironic\""},{"line_number":145,"context_line":"ironic_master_images_path: \"{{ ironic_base_path }}/master_images\""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"# Set ironic_log_dir to use a non-default log directory for ironic."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa0c359_08a9f6dd","line":144,"updated":"2018-02-16 17:01:30.000000000","message":"Does changing this have any effect, other than to change the default value of ironic_master_images_path? If not, do we need it?","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":19578,"name":"Olivier Bourdon","email":"olivierbourdon38@gmail.com","username":"olivierbourdon38"},"change_message_id":"73fc185a82734b2bfe18cd974b21dcacd6b971eb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"ironic_auth_strategy: \"noauth\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"# The locations where ironic will store contents"},{"line_number":144,"context_line":"ironic_base_path: \"/var/lib/ironic\""},{"line_number":145,"context_line":"ironic_master_images_path: \"{{ ironic_base_path }}/master_images\""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"# Set ironic_log_dir to use a non-default log directory for ironic."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa0c359_79da95e9","line":144,"in_reply_to":"3fa0c359_08a9f6dd","updated":"2018-02-20 09:30:48.000000000","message":"In fact as I noticed that there were 2 locations for images I wanted to differentiate the 2 but may be this is not necessary. Thanks for pointing this out","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"41bba64a22e843e2f05f573c8f8da34c1aaf5646","unresolved":false,"context_lines":[{"line_number":141,"context_line":"ironic_auth_strategy: \"noauth\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"# The locations where ironic will store contents"},{"line_number":144,"context_line":"ironic_base_path: \"/var/lib/ironic\""},{"line_number":145,"context_line":"ironic_master_images_path: \"{{ ironic_base_path }}/master_images\""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"# Set ironic_log_dir to use a non-default log directory for ironic."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa0c359_e4859cd0","line":144,"in_reply_to":"3fa0c359_79da95e9","updated":"2018-02-20 09:59:12.000000000","message":"Looks like ironic_images_path is only used for iSCSI deployment. If ironic_master_images_path was moved, then ironic_images_path may need to be changed to be on the same device.\n\nI think the options are:\n\n1.\n\nironic_images_path: \"/var/lib/ironic/images\"\nironic_master_images_path: \"/var/lib/ironic/master_images\"\n\n2.\n\n# images and master images inferred from here.\nironic_base_path: \"/var/lib/ironic\"\n\n3.\n\nironic_base_path: \"/var/lib/ironic\"\nironic_images_path: \"{{ ironic_base_path }}/images\"\nironic_master_images_path: \"{{ ironic_base_path }}/master_images\"","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"}],"playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6b8102ba69b4574cabf00eea20d888e6c08fa966","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  with_items:"},{"line_number":194,"context_line":"    - \"{{ ironic_base_path }}\""},{"line_number":195,"context_line":"    - \"{{ ironic_master_images_path }}\""},{"line_number":196,"context_line":"    - \"{{ ironic_base_path }}/images\""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"- name: \"Set permissions for /var/log/ironic for the ironic user\""},{"line_number":199,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa0c359_28d15258","line":196,"updated":"2018-02-16 17:01:30.000000000","message":"I think we\u0027d need to set \u0027[pxe] images_path\u0027 for this to be true. If you do want to make that configurable, would it be clearer to just use a ironic_images_path variable, and do away with ironic_base_path?","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":19578,"name":"Olivier Bourdon","email":"olivierbourdon38@gmail.com","username":"olivierbourdon38"},"change_message_id":"73fc185a82734b2bfe18cd974b21dcacd6b971eb","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  with_items:"},{"line_number":194,"context_line":"    - \"{{ ironic_base_path }}\""},{"line_number":195,"context_line":"    - \"{{ ironic_master_images_path }}\""},{"line_number":196,"context_line":"    - \"{{ ironic_base_path }}/images\""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"- name: \"Set permissions for /var/log/ironic for the ironic user\""},{"line_number":199,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa0c359_b9e9fd80","line":196,"in_reply_to":"3fa0c359_28d15258","updated":"2018-02-20 09:30:48.000000000","message":"Understood and this relates to the other comment so I am open to change this either way ..","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"2c9d0b7dc7659d906f7317bb456294f3d2726b1a","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  with_items:"},{"line_number":194,"context_line":"    - \"{{ ironic_base_path }}\""},{"line_number":195,"context_line":"    - \"{{ ironic_base_path }}/master_images\""},{"line_number":196,"context_line":"    - \"{{ ironic_base_path }}/images\""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"- name: \"Set permissions for /var/log/ironic for the ironic user\""},{"line_number":199,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_67942b45","line":196,"updated":"2018-02-20 13:21:01.000000000","message":"Hmm, if I set ironic_base_path\u003d/httpboot, is this task going to cause problems?\n\nOn a CentOS host deployed using Ocata Bifrost, my /httpboot has these permissions:\n\ndrwxr-xr-x  6 ironic ironic      4096 Sep 15 09:53 .\n\nClose, but 755 rather than 750. /httpboot is also sensitive to SELinux on CentOS.","commit_id":"a1cdc622705ba2b71ebf032672484c4353b460fd"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fef3412865ca8db7fa3656c0898ca29eddcd5a66","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  with_items:"},{"line_number":194,"context_line":"    - \"{{ ironic_base_path }}\""},{"line_number":195,"context_line":"    - \"{{ ironic_base_path }}/master_images\""},{"line_number":196,"context_line":"    - \"{{ ironic_base_path }}/images\""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"- name: \"Set permissions for /var/log/ironic for the ironic user\""},{"line_number":199,"context_line":"  file:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1f9dbf25_f0b0668e","line":196,"updated":"2018-02-27 15:44:50.000000000","message":"If we change the name to ironic_tftp_master_images, I think it becomes more obvious that it is not the right variable to use here. This should go back to /var/lib/ironic, and we\u0027ll let the create_tftpboot.yml file take care of the ironic_tftp_master_images path.\n\nThis task is for the instance image cache, perhaps we should add a comment to that effect.","commit_id":"4693891b0b28684cef2aad3c79f44d67b9966b4d"}],"playbooks/roles/bifrost-ironic-install/tasks/create_tftpboot.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"2c9d0b7dc7659d906f7317bb456294f3d2726b1a","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- name: \"Create master_images folder {{ ironic_base_path }}/master_images\""},{"line_number":72,"context_line":"  file: name\u003d\"{{ ironic_base_path }}/master_images\" state\u003ddirectory owner\u003dironic group\u003dironic"},{"line_number":73,"context_line":"  when: test_master_images.stat.exists \u003d\u003d false"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- name: \"Inspector - Place default tftp boot file in {{ http_boot_folder}}/pxelinux.cfg/\""},{"line_number":76,"context_line":"  template:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_279e2363","line":73,"updated":"2018-02-20 13:21:01.000000000","message":"This is already done in bootstrap.yml. Investigating why, I found there are two master_images config variables.\n\n[pxe] tftp_master_images (default\u003d/tftpboot/master_images)\n\nThis is the the master locations of the TFTP (PXE) and HTTP (iPXE) image cache (ramdisk \u0026 kernel).\n\n[pxe] instance_master_path (default\u003d/var/lib/ironic/master_images)\n\nThis is the master location of the instance image cache.\n\nI think we need to be careful not to confuse these two.","commit_id":"a1cdc622705ba2b71ebf032672484c4353b460fd"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fef3412865ca8db7fa3656c0898ca29eddcd5a66","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"# Similar logic to below can be utilized to retrieve files"},{"line_number":67,"context_line":"- name: \"Determine if folder exists, else create and populate folder.\""},{"line_number":68,"context_line":"  stat: path\u003d/tftpboot/master_images"},{"line_number":69,"context_line":"  register: test_master_images"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- name: \"Create master_images folder\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1f9dbf25_7078d6f7","line":68,"updated":"2018-02-27 15:44:50.000000000","message":"Given that we\u0027re setting tftpboot_master_path in ironic.conf, I\u0027m now back to thinking that we need to use the variable here!","commit_id":"4693891b0b28684cef2aad3c79f44d67b9966b4d"}],"playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6b8102ba69b4574cabf00eea20d888e6c08fa966","unresolved":false,"context_lines":[{"line_number":46,"context_line":"pxe_bootfile_name \u003d undionly.kpxe"},{"line_number":47,"context_line":"ipxe_enabled \u003d true"},{"line_number":48,"context_line":"ipxe_boot_script \u003d /etc/ironic/boot.ipxe"},{"line_number":49,"context_line":"tftp_master_path \u003d \"{{ ironic_master_images_path }}\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"[deploy]"},{"line_number":52,"context_line":"http_url \u003d http://{{ hostvars[inventory_hostname][\u0027ansible_\u0027 + ans_network_interface][\u0027ipv4\u0027][\u0027address\u0027] }}:{{ file_url_port }}/"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa0c359_6853dae3","line":49,"updated":"2018-02-16 17:01:30.000000000","message":"Are you setting ironic_master_images_path \u003d /httpboot/master_images?","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":19578,"name":"Olivier Bourdon","email":"olivierbourdon38@gmail.com","username":"olivierbourdon38"},"change_message_id":"73fc185a82734b2bfe18cd974b21dcacd6b971eb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"pxe_bootfile_name \u003d undionly.kpxe"},{"line_number":47,"context_line":"ipxe_enabled \u003d true"},{"line_number":48,"context_line":"ipxe_boot_script \u003d /etc/ironic/boot.ipxe"},{"line_number":49,"context_line":"tftp_master_path \u003d \"{{ ironic_master_images_path }}\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"[deploy]"},{"line_number":52,"context_line":"http_url \u003d http://{{ hostvars[inventory_hostname][\u0027ansible_\u0027 + ans_network_interface][\u0027ipv4\u0027][\u0027address\u0027] }}:{{ file_url_port }}/"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa0c359_39764d08","line":49,"in_reply_to":"3fa0c359_19bfd1d0","updated":"2018-02-20 09:30:48.000000000","message":"in fact it could if the user provides proper replacement values but as you have seen in https://review.openstack.org/#/c/545711/ it can also be done setting a boolean to do this for you without caring too much about the paths you specify","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a1d237df25f4e8c076f3238c3eb92d9d915f565e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"pxe_bootfile_name \u003d undionly.kpxe"},{"line_number":47,"context_line":"ipxe_enabled \u003d true"},{"line_number":48,"context_line":"ipxe_boot_script \u003d /etc/ironic/boot.ipxe"},{"line_number":49,"context_line":"tftp_master_path \u003d \"{{ ironic_master_images_path }}\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"[deploy]"},{"line_number":52,"context_line":"http_url \u003d http://{{ hostvars[inventory_hostname][\u0027ansible_\u0027 + ans_network_interface][\u0027ipv4\u0027][\u0027address\u0027] }}:{{ file_url_port }}/"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa0c359_19bfd1d0","line":49,"in_reply_to":"3fa0c359_3e77133d","updated":"2018-02-20 09:16:51.000000000","message":"Sorry, I was unclear. I was asking if Olivier was overriding this variable in his config to /httpboot/master_images, to avoid issues with hardlinks across devices.","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"e357fb6b74d98174a5f292fa6dd177a6baa0b261","unresolved":false,"context_lines":[{"line_number":46,"context_line":"pxe_bootfile_name \u003d undionly.kpxe"},{"line_number":47,"context_line":"ipxe_enabled \u003d true"},{"line_number":48,"context_line":"ipxe_boot_script \u003d /etc/ironic/boot.ipxe"},{"line_number":49,"context_line":"tftp_master_path \u003d \"{{ ironic_master_images_path }}\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"[deploy]"},{"line_number":52,"context_line":"http_url \u003d http://{{ hostvars[inventory_hostname][\u0027ansible_\u0027 + ans_network_interface][\u0027ipv4\u0027][\u0027address\u0027] }}:{{ file_url_port }}/"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa0c359_3e77133d","line":49,"in_reply_to":"3fa0c359_6853dae3","updated":"2018-02-20 08:36:26.000000000","message":"Looking at the code, it defaults to /var/lib/ironic/master_images, i see it ok","commit_id":"ce6d087ffbf1298fd8594e5c3cf3f9b9f7ce3d49"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fef3412865ca8db7fa3656c0898ca29eddcd5a66","unresolved":false,"context_lines":[{"line_number":46,"context_line":"pxe_bootfile_name \u003d undionly.kpxe"},{"line_number":47,"context_line":"ipxe_enabled \u003d true"},{"line_number":48,"context_line":"ipxe_boot_script \u003d /etc/ironic/boot.ipxe"},{"line_number":49,"context_line":"tftp_master_path \u003d \"{{ ironic_base_path }}/master_images\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"[deploy]"},{"line_number":52,"context_line":"http_url \u003d http://{{ hostvars[inventory_hostname][\u0027ansible_\u0027 + ans_network_interface][\u0027ipv4\u0027][\u0027address\u0027] }}:{{ file_url_port }}/"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"1f9dbf25_f002a63e","line":49,"updated":"2018-02-27 15:44:50.000000000","message":"I think the confusion is that there are two master image locations in ironic, and that bifrost modifies the default value for the TFTP master image location to be /var/lib/ironic/master_images, which is actually the default value for the instance master image cache.\n\nIt\u0027s also confusing in the iPXE + agent driver default config of bifrost, because the TFTP master image cache is used for HTTP downloads of PXE deploy (IPA) kernel \u0026 ramdisk images, and the instance image cache isn\u0027t used.\n\nI think if we name this variable differently it will help. How about ironic_tftp_master_path? Currently we\u0027re not using ironic_base_path to replace all locations that normally use /var/lib/ironic, so I think it\u0027s a bit confusing to use a general name like that.","commit_id":"4693891b0b28684cef2aad3c79f44d67b9966b4d"}]}
