)]}'
{"playbooks/roles/bifrost-ironic-install/tasks/download_ipa_image.yml":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8d8b5cd2a8039be618ea44e304f6ea5fa4d0fea6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"- block:"},{"line_number":23,"context_line":"  - name: \"Download IPA kernel checksum file\""},{"line_number":24,"context_line":"    get_url: url\u003d\"{{ ipa_kernel_upstream_url }}.sha256\" dest\u003d\"{{ ipa_kernel }}.sha256\" timeout\u003d300"},{"line_number":25,"context_line":"  - name: \"Extract IPA kernel checksum\""},{"line_number":26,"context_line":"    shell: awk \u0027/{{ ipa_kernel_upstream_url | basename }}/{print $1}\u0027 \"{{ ipa_kernel }}.sha256\""},{"line_number":27,"context_line":"    register: ipa_kernel_checksum"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_681f3f08","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":54},"updated":"2017-03-03 10:23:30.000000000","message":"how about we make this configurable via vars, with default as here? Then users using downstream IPA versions have a choice on where to put those sha256 files.\n\nAlso, do we really want to enforce presence of checksum files? Wouldn\u0027t it be better just not to use them if the file is absent (for backward compat)? Because with this logic deployment will simply fail when the file is absent.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"9331788f8c14006d361cb4bb5be71a3f7de88031","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"- block:"},{"line_number":23,"context_line":"  - name: \"Download IPA kernel checksum file\""},{"line_number":24,"context_line":"    get_url: url\u003d\"{{ ipa_kernel_upstream_url }}.sha256\" dest\u003d\"{{ ipa_kernel }}.sha256\" timeout\u003d300"},{"line_number":25,"context_line":"  - name: \"Extract IPA kernel checksum\""},{"line_number":26,"context_line":"    shell: awk \u0027/{{ ipa_kernel_upstream_url | basename }}/{print $1}\u0027 \"{{ ipa_kernel }}.sha256\""},{"line_number":27,"context_line":"    register: ipa_kernel_checksum"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_3e249ac3","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":54},"in_reply_to":"ba2be162_681f3f08","updated":"2017-03-03 11:41:09.000000000","message":"No problem I will fix that","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8d8b5cd2a8039be618ea44e304f6ea5fa4d0fea6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  - name: \"Download IPA kernel checksum file\""},{"line_number":24,"context_line":"    get_url: url\u003d\"{{ ipa_kernel_upstream_url }}.sha256\" dest\u003d\"{{ ipa_kernel }}.sha256\" timeout\u003d300"},{"line_number":25,"context_line":"  - name: \"Extract IPA kernel checksum\""},{"line_number":26,"context_line":"    shell: awk \u0027/{{ ipa_kernel_upstream_url | basename }}/{print $1}\u0027 \"{{ ipa_kernel }}.sha256\""},{"line_number":27,"context_line":"    register: ipa_kernel_checksum"},{"line_number":28,"context_line":"    failed_when: ipa_kernel_checksum.rc !\u003d 0"},{"line_number":29,"context_line":"  - name: \"Download IPA kernel\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_88f0f392","line":26,"updated":"2017-03-03 10:23:30.000000000","message":"Call it my pet peeve :) but I try to avoid \u0027shell\u0027 module in Ansible as much as I can...\n\nNot -1 on this, but I\u0027ll try to come up with more \u0027ansibly\u0027 way of extracting the checksum from file.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"9331788f8c14006d361cb4bb5be71a3f7de88031","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  - name: \"Download IPA kernel checksum file\""},{"line_number":24,"context_line":"    get_url: url\u003d\"{{ ipa_kernel_upstream_url }}.sha256\" dest\u003d\"{{ ipa_kernel }}.sha256\" timeout\u003d300"},{"line_number":25,"context_line":"  - name: \"Extract IPA kernel checksum\""},{"line_number":26,"context_line":"    shell: awk \u0027/{{ ipa_kernel_upstream_url | basename }}/{print $1}\u0027 \"{{ ipa_kernel }}.sha256\""},{"line_number":27,"context_line":"    register: ipa_kernel_checksum"},{"line_number":28,"context_line":"    failed_when: ipa_kernel_checksum.rc !\u003d 0"},{"line_number":29,"context_line":"  - name: \"Download IPA kernel\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_91001703","line":26,"in_reply_to":"ba2be162_88f0f392","updated":"2017-03-03 11:41:09.000000000","message":"I am not aware of any ansible module to actually look and print a specific line based on a regexp. If you know of one please tell me but I don\u0027t think this awk command is too ugly or dangerous to keep it here.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"d98310b02e0597bc747d9e61b150bbdebafa808b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  - name: \"Download IPA kernel checksum file\""},{"line_number":24,"context_line":"    get_url: url\u003d\"{{ ipa_kernel_upstream_url }}.sha256\" dest\u003d\"{{ ipa_kernel }}.sha256\" timeout\u003d300"},{"line_number":25,"context_line":"  - name: \"Extract IPA kernel checksum\""},{"line_number":26,"context_line":"    shell: awk \u0027/{{ ipa_kernel_upstream_url | basename }}/{print $1}\u0027 \"{{ ipa_kernel }}.sha256\""},{"line_number":27,"context_line":"    register: ipa_kernel_checksum"},{"line_number":28,"context_line":"    failed_when: ipa_kernel_checksum.rc !\u003d 0"},{"line_number":29,"context_line":"  - name: \"Download IPA kernel\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3a1ff146_907c0374","line":26,"in_reply_to":"ba2be162_91001703","updated":"2017-03-15 17:03:20.000000000","message":"just as a note to self, this is what I came up with instead of shell module. will propose the patch soon\n\nhttp://paste.openstack.org/show/602877/","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8d8b5cd2a8039be618ea44e304f6ea5fa4d0fea6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    get_url:"},{"line_number":31,"context_line":"      url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":32,"context_line":"      dest: \"{{ ipa_kernel }}\""},{"line_number":33,"context_line":"      sha256sum: \"{{ ipa_kernel_checksum.stdout }}\""},{"line_number":34,"context_line":"      timeout: 300"},{"line_number":35,"context_line":"      # Keep downloading it until we get a good copy"},{"line_number":36,"context_line":"      force: yes"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_c8890b28","line":33,"updated":"2017-03-03 10:23:30.000000000","message":"I\u0027d also propose to use a more complex logic here, extracting the hash algo to use from the file extension of downloaded checksum file, and putting it here as \n\nchecksum: {{hash_algo}}:{{checksum}}","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"9331788f8c14006d361cb4bb5be71a3f7de88031","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    get_url:"},{"line_number":31,"context_line":"      url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":32,"context_line":"      dest: \"{{ ipa_kernel }}\""},{"line_number":33,"context_line":"      sha256sum: \"{{ ipa_kernel_checksum.stdout }}\""},{"line_number":34,"context_line":"      timeout: 300"},{"line_number":35,"context_line":"      # Keep downloading it until we get a good copy"},{"line_number":36,"context_line":"      force: yes"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_f10b1322","line":33,"in_reply_to":"ba2be162_c8890b28","updated":"2017-03-03 11:41:09.000000000","message":"Sure I will fix that","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"7b24014db9571e674ebf8e0014356330d21c7abe","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  - fail:"},{"line_number":29,"context_line":"      msg: \"Failed to extract checksum for {{ ipa_kernel_upstream_url | basename }}\""},{"line_number":30,"context_line":"    when: ipa_kernel_checksum.stdout \u003d\u003d \"\""},{"line_number":31,"context_line":"  - name: \"Download IPA kernel\""},{"line_number":32,"context_line":"    get_url:"},{"line_number":33,"context_line":"      url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":34,"context_line":"      dest: \"{{ ipa_kernel }}\""},{"line_number":35,"context_line":"      checksum: \"{{ ipa_kernel_upstream_checksum_algo }}:{{ ipa_kernel_checksum.stdout }}\""},{"line_number":36,"context_line":"      timeout: 300"},{"line_number":37,"context_line":"      # Keep downloading it until we get a good copy"},{"line_number":38,"context_line":"      force: yes"},{"line_number":39,"context_line":"    register: ipa_kernel_good_checksum"},{"line_number":40,"context_line":"    until: ipa_kernel_good_checksum|succeeded"},{"line_number":41,"context_line":"    retries: 5"},{"line_number":42,"context_line":"    delay: 10"},{"line_number":43,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url !\u003d \"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: \"Download IPA kernel (no checksum verification)\""},{"line_number":46,"context_line":"  get_url:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_2f51bf36","line":43,"range":{"start_line":31,"start_character":1,"end_line":43,"end_character":95},"updated":"2017-03-03 16:05:40.000000000","message":"rename the \u0027ipa_kernel_checksum\u0027 to \u0027parsed_ipa_kernel_checksum\u0027, and instead of downloading image here, just register:\n\nset_fact:\n  ipa_kernel_checksum: \"{{ ipa_kernel_upstream_checksum_algo }}:{{ parsed_ipa_kernel_checksum.stdout }}\"\n\nand remove the first condition in the \"when\"...","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"1d2286cf427a429c6015de809ed28ffa819fd38c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  - fail:"},{"line_number":29,"context_line":"      msg: \"Failed to extract checksum for {{ ipa_kernel_upstream_url | basename }}\""},{"line_number":30,"context_line":"    when: ipa_kernel_checksum.stdout \u003d\u003d \"\""},{"line_number":31,"context_line":"  - name: \"Download IPA kernel\""},{"line_number":32,"context_line":"    get_url:"},{"line_number":33,"context_line":"      url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":34,"context_line":"      dest: \"{{ ipa_kernel }}\""},{"line_number":35,"context_line":"      checksum: \"{{ ipa_kernel_upstream_checksum_algo }}:{{ ipa_kernel_checksum.stdout }}\""},{"line_number":36,"context_line":"      timeout: 300"},{"line_number":37,"context_line":"      # Keep downloading it until we get a good copy"},{"line_number":38,"context_line":"      force: yes"},{"line_number":39,"context_line":"    register: ipa_kernel_good_checksum"},{"line_number":40,"context_line":"    until: ipa_kernel_good_checksum|succeeded"},{"line_number":41,"context_line":"    retries: 5"},{"line_number":42,"context_line":"    delay: 10"},{"line_number":43,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url !\u003d \"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: \"Download IPA kernel (no checksum verification)\""},{"line_number":46,"context_line":"  get_url:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_2397133b","line":43,"range":{"start_line":31,"start_character":1,"end_line":43,"end_character":95},"in_reply_to":"ba2be162_2f51bf36","updated":"2017-03-03 17:25:53.000000000","message":"Done","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"7b24014db9571e674ebf8e0014356330d21c7abe","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    delay: 10"},{"line_number":43,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url !\u003d \"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: \"Download IPA kernel (no checksum verification)\""},{"line_number":46,"context_line":"  get_url:"},{"line_number":47,"context_line":"    url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":48,"context_line":"    dest: \"{{ ipa_kernel }}\""},{"line_number":49,"context_line":"    timeout: 300"},{"line_number":50,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url \u003d\u003d \"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- name: \"Test if IPA image is present\""},{"line_number":53,"context_line":"  stat: path\u003d{{ ipa_ramdisk }}"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_5ae06ffa","line":50,"range":{"start_line":45,"start_character":0,"end_line":50,"end_character":95},"updated":"2017-03-03 16:05:40.000000000","message":"and here use the retry logic from above but with \u0027omit\u0027 filter for checksum arg\n\nget_url:\n  checksum: \"{{ ipa_kernel_checksum | default(omit) }}\"\n\nand remove the second condition to \u0027when\u0027. Rename \u0027ipa_kernel_good_checksum\u0027 to \u0027ipa_kernel_download_done\u0027 or smth like that.\n\nAdditional benefit would be that users now have a way to specify the ipa_kernel_checksum as playbook var directly (as \"algo:checksum\" string) without putting files to http storage.\nThe var would have no default, but still has to be documented","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"1d2286cf427a429c6015de809ed28ffa819fd38c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    delay: 10"},{"line_number":43,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url !\u003d \"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: \"Download IPA kernel (no checksum verification)\""},{"line_number":46,"context_line":"  get_url:"},{"line_number":47,"context_line":"    url: \"{{ ipa_kernel_upstream_url }}\""},{"line_number":48,"context_line":"    dest: \"{{ ipa_kernel }}\""},{"line_number":49,"context_line":"    timeout: 300"},{"line_number":50,"context_line":"  when: test_ipa_kernel_present.stat.exists \u003d\u003d false and ipa_kernel_upstream_checksum_url \u003d\u003d \"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- name: \"Test if IPA image is present\""},{"line_number":53,"context_line":"  stat: path\u003d{{ ipa_ramdisk }}"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_439c075d","line":50,"range":{"start_line":45,"start_character":0,"end_line":50,"end_character":95},"in_reply_to":"ba2be162_5ae06ffa","updated":"2017-03-03 17:25:53.000000000","message":"Done","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"7b24014db9571e674ebf8e0014356330d21c7abe","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  - fail:"},{"line_number":63,"context_line":"      msg: \"Failed to extract checksum for {{ ipa_ramdisk_upstream_url | basename }}\""},{"line_number":64,"context_line":"    when: ipa_ramdisk_checksum.stdout \u003d\u003d \"\""},{"line_number":65,"context_line":"  - name: \"Download IPA image\""},{"line_number":66,"context_line":"    get_url:"},{"line_number":67,"context_line":"      url: \"{{ ipa_ramdisk_upstream_url }}\""},{"line_number":68,"context_line":"      dest: \"{{ ipa_ramdisk }}\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_95a2b897","line":65,"updated":"2017-03-03 16:05:40.000000000","message":"and the same for ipa ramdisk","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"1d2286cf427a429c6015de809ed28ffa819fd38c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  - fail:"},{"line_number":63,"context_line":"      msg: \"Failed to extract checksum for {{ ipa_ramdisk_upstream_url | basename }}\""},{"line_number":64,"context_line":"    when: ipa_ramdisk_checksum.stdout \u003d\u003d \"\""},{"line_number":65,"context_line":"  - name: \"Download IPA image\""},{"line_number":66,"context_line":"    get_url:"},{"line_number":67,"context_line":"      url: \"{{ ipa_ramdisk_upstream_url }}\""},{"line_number":68,"context_line":"      dest: \"{{ ipa_ramdisk }}\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba2be162_a3ab0374","line":65,"in_reply_to":"ba2be162_95a2b897","updated":"2017-03-03 17:25:53.000000000","message":"Done","commit_id":"551054f7355c1f594feaf8c123c885e55e5920a5"}],"releasenotes/notes/verify-checksum-tinyipa-491f52429fd26b18.yaml":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8d8b5cd2a8039be618ea44e304f6ea5fa4d0fea6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Downloaded tinyIPA files will be verified using the published"},{"line_number":4,"context_line":"    sha256 checksum files. In case the verification fails, bifrost"},{"line_number":5,"context_line":"    will retry a few more times to re-download and re-verify the"},{"line_number":6,"context_line":"    files before giving up assuming there is a network issue or"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_08f16301","line":3,"range":{"start_line":3,"start_character":15,"end_line":3,"end_character":22},"updated":"2017-03-03 10:23:30.000000000","message":"the new logic will apply to all IPA downloads, not just the tinyIPA ones.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"9331788f8c14006d361cb4bb5be71a3f7de88031","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Downloaded tinyIPA files will be verified using the published"},{"line_number":4,"context_line":"    sha256 checksum files. In case the verification fails, bifrost"},{"line_number":5,"context_line":"    will retry a few more times to re-download and re-verify the"},{"line_number":6,"context_line":"    files before giving up assuming there is a network issue or"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba2be162_511bff72","line":3,"range":{"start_line":3,"start_character":15,"end_line":3,"end_character":22},"in_reply_to":"ba2be162_08f16301","updated":"2017-03-03 11:41:09.000000000","message":"Yeah true","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8d8b5cd2a8039be618ea44e304f6ea5fa4d0fea6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ba2be162_e8640fba","line":8,"updated":"2017-03-03 10:23:30.000000000","message":"I also think that we have to place more warnings here.\n\nEssentially if anyone was using not-upstream URLs for custom-built IPA images, now on bifrost upgrade they have to also make the corresponding *.sha256 files available over a quite specific URLs.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"},{"author":{"_account_id":23163,"name":"Markos Chandras (hwoarang)","email":"markos@chandras.me","username":"mchandras"},"change_message_id":"9331788f8c14006d361cb4bb5be71a3f7de88031","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ba2be162_b12c3b9a","line":8,"in_reply_to":"ba2be162_e8640fba","updated":"2017-03-03 11:41:09.000000000","message":"OK but if we make checksum optional, then upgrading should work as before.","commit_id":"8dada0dc4f43693a4826db65a65258ec9c2d414d"}]}
