)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25877,"name":"Luke Short","email":"ekultails@gmail.com","username":"ekultails"},"change_message_id":"489bee5a6811e7006b0c87612f0e5729218c19ee","unresolved":false,"context_lines":[{"line_number":33,"context_line":"ansible role (tripleo_import) to provide the wrappers."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":36,"context_line":"Depends-On: https://review.opendev.org/741665a"},{"line_number":37,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf51134e_9c7f5065","line":36,"updated":"2020-07-22 18:37:36.000000000","message":"This link contains an extra character \"a\" at the end. That may cause dependency issues within Zuul.","commit_id":"6000b88dd58846085c838b7ca70c31e12a5bcc37"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"03f27f917b0b522505d2992b7f86ecbbc822cd26","unresolved":false,"context_lines":[{"line_number":33,"context_line":"ansible role (tripleo_import) to provide the wrappers."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":36,"context_line":"Depends-On: https://review.opendev.org/741665a"},{"line_number":37,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf51134e_42baea6d","line":36,"in_reply_to":"bf51134e_9c7f5065","updated":"2020-07-23 08:05:39.000000000","message":"Done","commit_id":"6000b88dd58846085c838b7ca70c31e12a5bcc37"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7eb42325af67d9b65044f252fdd409271e255819","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"start-at-tasks\" as everything is imported.  Using loop variable and"},{"line_number":19,"context_line":"include_tasks prevented its usage."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":22,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9f560f44_1d47014e","line":21,"updated":"2020-07-27 11:18:52.000000000","message":"This also depends on https://review.opendev.org/740247 right? While the two reviews were based on each other, that won\u0027t reflect in git history - so perhaps it\u0027s worth adding here?","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"342e7db9b33add657ed12ba4d71efe6fefb5998e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"start-at-tasks\" as everything is imported.  Using loop variable and"},{"line_number":19,"context_line":"include_tasks prevented its usage."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":22,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9f560f44_72daa717","line":21,"in_reply_to":"9f560f44_1d47014e","updated":"2020-07-27 13:58:13.000000000","message":"There are actually 3 reviews there.  This one is the tip of the branch, with the 2 others under it. For ci to work you need only the tip of the branch.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"8a2bda105a26eec9800e984538c6d55da0ac338d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"start-at-tasks\" as everything is imported.  Using loop variable and"},{"line_number":19,"context_line":"include_tasks prevented its usage."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":22,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9f560f44_8b18e6d3","line":21,"in_reply_to":"9f560f44_72daa717","updated":"2020-07-27 16:32:50.000000000","message":"Yep, My suggestion was not just for CI to work, but in terms of reviewing git history. It\u0027s helpful when cherry-picking changes back or reviewing history later.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0e77550026a505f079cf0c71913f3ee9101954dd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"start-at-tasks\" as everything is imported.  Using loop variable and"},{"line_number":19,"context_line":"include_tasks prevented its usage."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Depends-On: https://review.opendev.org/740465"},{"line_number":22,"context_line":"Change-Id: Ib32791d72410766a0b2e2330713120d15dc35f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9f560f44_f779812f","line":21,"in_reply_to":"9f560f44_8b18e6d3","updated":"2020-07-27 20:09:22.000000000","message":"hum... well IDK, when looking at that change now, and we can still see the three related commits.  Doing that will add a some more maintenance: I need to backport this to train, and then for each backport will need to adjust three depends on.\n\nI would say that unless, it required or there are further push for this, or it\u0027s a know best practice somewhere I would prefer not to have to do it.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"}],"common/deploy-steps.j2":[{"author":{"_account_id":26343,"name":"Jose Luis Franco","email":"jfrancoa@redhat.com","username":"jfrancoa"},"change_message_id":"6a45b4f1be2ecb9d8bc2ae9497eecace6f9fd870","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_102a038f","line":883,"updated":"2020-07-30 14:50:16.000000000","message":"Imho, it would be veeery useful to add some string identifying the step in which we are and the operation we are running, something like: https://github.com/openstack/tripleo-heat-templates/blob/master/common/deploy-steps.j2#L1013\n\nIt will allow you going directly to a specific step by looking for the string \"Update tasks for step X\" and it will give a little bit more of clarity on the step we are at each time.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"dc0d9cc8993cbef7b9345011262f3a40003818a7","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_6790d94f","line":883,"in_reply_to":"9f560f44_102a038f","updated":"2020-07-31 08:49:30.000000000","message":"So I had that in a previous review, but eventually I removed all of it.  My idea is to restrain that change to the bare minimum to get the update using step and then add goodies over it.\n\nFor instance the debate around import_tasks vs include_tasks is not yet entirely settled.\n\nIf we use include tasks then we have a name and a point where we can do a start-at-tasks.\n\nIf we use import_tasks then we can have start-at-tasks at any point in the process, but we have no name and if we had a conditional it wouldn\u0027t fly well.\n\nEventually I\u0027m thinking that maybe an action plugin could provide what I had originally in mind: a proper rescue block that tell the user exactly in which process/step the error occur.\n\nThis last option, would have the benefit of not adding any dummy \"debug\" tasks inside a lengthy block, just a plain action plugin.\n\nOverall, some more tinkering has to be done to get it right, IMHO, but we can already rip the benefit of importing step, so I would favor merging it as it and improve upon it after.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"eeff361e68f65b1dc26525df9a412d539e58eed0","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_9c05ca7d","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"updated":"2020-07-27 19:37:23.000000000","message":"I was just looking at this. Yea there was a layer of duplication in the update_steps_tasks.yaml that I was going to look into removing.  This maps closer to what we do in the deployment so this should cut down on the duplicated bits. That being said, why import_tasks instead of include tasks?  The previous version was just an include in both levels? We use include tasks for deploy step tasks","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"1ad65a9f593d0acd90478f7c35a4313399f7740b","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_d62a7ee5","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_36477a20","updated":"2020-07-27 21:45:15.000000000","message":"You could leave the import tasks. What we end up having here is something like up on L753-757 in this loop","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a29c168a5c67d7e8ad192910bd11d686defa930","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_36477a20","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_5321604d","updated":"2020-07-27 21:33:11.000000000","message":"Now, I start to think that start-at-task at this level may be the way to go (that would mean going back to include_tasks :))","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"428a438c25200a6249ddf0bcdf91b80b96927119","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_93e65844","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_7799f11d","updated":"2020-07-27 20:35:38.000000000","message":"Well, there is no conditional attached to those tasks, either the include_tasks or in this version the import_tasks, so they the *_tasks is always run in both version.\n\nIf we had something like\n\n  - include_tasks: blah.yaml\n    when:\n      - foo is bar\n\nthen, I totally agree, using import task would be a disaster as it would just expand the when conditional to all tasks making them skipped.  Using include_tasks in that scenario instead of import_tasks makes a ton of sense.\n\nBut in this case, using import_tasks here vs include_tasks won\u0027t add new skipped tasks as there is no conditional attached to the inclusion.\n\nnow import vs include, I still think that if you don\u0027t need the dynamic include (loop, condition on entry) then you\u0027re better off with import for faster error handling, possibility to use start-at-tasks and not to have to add the \"tag: always\" when you need to use tag.\n\nSo, here, I cannot see any benefit in using include_tasks  and I think there are somee (benefits) in using import_tasks, so in this particular case, I think import_tasks make more sense.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a1c299b56070ff6d97e0180b4832c64bf7b43a23","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_5321604d","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_93e65844","updated":"2020-07-27 20:55:09.000000000","message":"You make a good point about the conditional. I would say that start-at-tasks should only be at this play level and not be included in any of these files so that would make that irrelevant.  We would only really want folks to restart at specific points in the process and not at some random task in the middle.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0e77550026a505f079cf0c71913f3ee9101954dd","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_d7dc3d48","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_9c05ca7d","updated":"2020-07-27 20:09:22.000000000","message":"Include_tasks was required because of the dynamic loop expansion.  Now that we don\u0027t longer need it, we can just use import.  The advantage is that it opens the possibility to use start-at-tasks in case of failure.  The step variable would still have to be set somehow but this is the first step toward that.\n\nFurthermore error in playbook are caught much earlier with import_tasks than with include_tasks.  Overall I think that if you don\u0027t have a valid case for using the dynamic include_tasks, it\u0027s better to use import_tasks.\n\nOr ... I may miss something :)","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"9c90f3235a4000b4bec5aa071c87a31c0941fcd5","unresolved":false,"context_lines":[{"line_number":880,"context_line":"              tasks:"},{"line_number":881,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":882,"context_line":"{%- for step in range(0,update_steps_max) %}"},{"line_number":883,"context_line":"                - import_tasks: \"{{ role.name }}/update_tasks_step{{ step }}.yaml\""},{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_7799f11d","line":885,"range":{"start_line":883,"start_character":0,"end_line":885,"end_character":38},"in_reply_to":"9f560f44_d7dc3d48","updated":"2020-07-27 20:20:32.000000000","message":"I don\u0027t think that\u0027s correct.  My understanding is that if you use import tasks they are always included/processed (leading to more skipped tasks) where as include_tasks are done at run time meaning if they aren\u0027t needed then they aren\u0027t even processed. I think the preferred method is include_tasks not import_tasks","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7eb42325af67d9b65044f252fdd409271e255819","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"},{"line_number":889,"context_line":"                - import_tasks: deploy_steps_tasks_step_0.yaml"},{"line_number":890,"context_line":"                  vars:"},{"line_number":891,"context_line":"                    step: 0"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_9d82f14e","line":888,"range":{"start_line":887,"start_character":0,"end_line":888,"end_character":60},"updated":"2020-07-27 11:18:52.000000000","message":"Surely this change will result in a bunch of skipped tasks?","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"a54dae62da240de4efdc8bdfa4aaeeaf8f996ea3","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"},{"line_number":889,"context_line":"                - import_tasks: deploy_steps_tasks_step_0.yaml"},{"line_number":890,"context_line":"                  vars:"},{"line_number":891,"context_line":"                    step: 0"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_931bf819","line":888,"range":{"start_line":887,"start_character":0,"end_line":888,"end_character":60},"in_reply_to":"9f560f44_57fdcd38","updated":"2020-07-27 20:46:05.000000000","message":"Good point, will see to it after first ci run.\n\nBy the way, I believe there\u0027s an issue in the step generation code (in trilpeo-common) where it *always* create a file even if it\u0027s just \"[]\".  So currently the \"is exists\" test is always true.\n\nCouldn\u0027t get to the bottom of the previous issue, the best I could do was an empty file (on osp16) and is exists is not good enough with empty file.\n\nI will check again tomorrow about that and add a lp for it as it make the is exists test useless for step files.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"9c90f3235a4000b4bec5aa071c87a31c0941fcd5","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"},{"line_number":889,"context_line":"                - import_tasks: deploy_steps_tasks_step_0.yaml"},{"line_number":890,"context_line":"                  vars:"},{"line_number":891,"context_line":"                    step: 0"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_57fdcd38","line":888,"range":{"start_line":887,"start_character":0,"end_line":888,"end_character":60},"in_reply_to":"9f560f44_92bc9bbc","updated":"2020-07-27 20:20:32.000000000","message":"I agree that this when condition can be dropped since the play is targeted to the roles.  We likely might want to add a check for \"when: \u0027{{ role.name }}/host_prep_tasks.yaml\u0027 is exists\" unless we\u0027re certain there will always be host prep tasks for all roles.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"342e7db9b33add657ed12ba4d71efe6fefb5998e","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                  vars:"},{"line_number":885,"context_line":"                    step: \"{{ step }}\""},{"line_number":886,"context_line":"{%- endfor %}"},{"line_number":887,"context_line":"                - import_tasks: \"{{role.name}}/host_prep_tasks.yaml\""},{"line_number":888,"context_line":"                  when: tripleo_role_name \u003d\u003d \u0027{{role.name}}\u0027"},{"line_number":889,"context_line":"                - import_tasks: deploy_steps_tasks_step_0.yaml"},{"line_number":890,"context_line":"                  vars:"},{"line_number":891,"context_line":"                    step: 0"}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_92bc9bbc","line":888,"range":{"start_line":887,"start_character":0,"end_line":888,"end_character":60},"in_reply_to":"9f560f44_9d82f14e","updated":"2020-07-27 13:58:13.000000000","message":"I think this is useless, as the playbook limit to the host controller already, I just let it in to have the smallest changeset possible.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7eb42325af67d9b65044f252fdd409271e255819","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_7de8bd15","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"updated":"2020-07-27 11:18:52.000000000","message":"Surely this change will result in a bunch of skipped tasks?","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a1c299b56070ff6d97e0180b4832c64bf7b43a23","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_b30a7c87","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"in_reply_to":"9f560f44_53c5e08d","updated":"2020-07-27 20:55:09.000000000","message":"So an interesting side effect is that you don\u0027t end up knowing where the tasks come from if you import_tasks vs include_tasks. include_tasks inserts a task entry for it\u0027s inclusion though you pay a time penalty for the include task itself","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"9c90f3235a4000b4bec5aa071c87a31c0941fcd5","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_9762c515","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"in_reply_to":"9f560f44_72c5873c","updated":"2020-07-27 20:20:32.000000000","message":"I think we still want include tasks here as well","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"342e7db9b33add657ed12ba4d71efe6fefb5998e","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_72c5873c","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"in_reply_to":"9f560f44_7de8bd15","updated":"2020-07-27 13:58:13.000000000","message":"Not really, the tasks in there take the step variable to drive paunch actions.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"428a438c25200a6249ddf0bcdf91b80b96927119","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_53c5e08d","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"in_reply_to":"9f560f44_9762c515","updated":"2020-07-27 20:35:38.000000000","message":"I cannot see why.  again, here the include was required because of the loop variable, now that\u0027s gone, there\u0027s no benefit in using import tasks, that I can see.","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a29c168a5c67d7e8ad192910bd11d686defa930","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                - name: Write config data at the start of step 1"},{"line_number":893,"context_line":"                  import_tasks: common_deploy_steps_tasks_step_1.yaml"},{"line_number":894,"context_line":"{%- for step in range(1,deploy_steps_max) %}"},{"line_number":895,"context_line":"                - import_tasks: common_deploy_steps_tasks.yaml"},{"line_number":896,"context_line":"                  vars:"},{"line_number":897,"context_line":"                    step: \"{{ step }}\""},{"line_number":898,"context_line":"{%- endfor %}"},{"line_number":899,"context_line":"{%- for step in range(0,post_update_steps_max) %}"},{"line_number":900,"context_line":"                - import_tasks: \"{{ role.name }}/post_update_tasks_step{{ step }}.yaml\""}],"source_content_type":"text/x-jinja2","patch_set":13,"id":"9f560f44_f65ea2e4","line":897,"range":{"start_line":895,"start_character":0,"end_line":897,"end_character":38},"in_reply_to":"9f560f44_b30a7c87","updated":"2020-07-27 21:33:11.000000000","message":"I\u0027ve noticed this as well and it\u0027s a valid point.  In the previous iteration I had those dummy \"debug\" tasks that served that purpose, but they are gone now, and this makes the overall xp less clear for the user.\n\nI plan on creating an ansible action plugin for solving that part: information to the user, without the extra debug steps, something like \n\n - name: This! is going to happen.\n   tripleo_{import/include}_tasks:\n     name: blah.yaml\n     [step_description]: In that step This! is going to do that\n   vars:\n     step: {{ step }}\n\nSo we should have the main entry entry, and a want just to add the \"rescue\" part I had previous where the step_description and/or the task name appears in case of failure.\n\nEventually, if/when we fix the empty file never empty then the when is exists will be valid conditional as well.  I don\u0027t even know if import_tasks can work in that case (expanding the when conditional on a empty set of tasks ?)","commit_id":"5e553da93889a628609cc4f1ff2d53d0c902e99d"}],"common/macro-helpers.yaml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"{#- ########################"},{"line_number":11,"context_line":"    # tripleo_update       #"},{"line_number":12,"context_line":"    ########################"},{"line_number":13,"context_line":"    Macro that provides a common behavior accross all update step."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    It focus on the user.  The goal is to provide more inteligible"},{"line_number":16,"context_line":"    information about what happens during the update."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_43b59e7d","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":49},"updated":"2020-07-09 14:36:32.000000000","message":"across","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"{#- ########################"},{"line_number":11,"context_line":"    # tripleo_update       #"},{"line_number":12,"context_line":"    ########################"},{"line_number":13,"context_line":"    Macro that provides a common behavior accross all update step."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    It focus on the user.  The goal is to provide more inteligible"},{"line_number":16,"context_line":"    information about what happens during the update."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_63c9c257","line":13,"range":{"start_line":13,"start_character":61,"end_line":13,"end_character":65},"updated":"2020-07-09 14:36:32.000000000","message":"steps","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    ########################"},{"line_number":13,"context_line":"    Macro that provides a common behavior accross all update step."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    It focus on the user.  The goal is to provide more inteligible"},{"line_number":16,"context_line":"    information about what happens during the update."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    Announce the task to the user: with a simple \"grep \u0027\u003d\u003d\u003e\u0027\" on the"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_63cee25a","line":15,"range":{"start_line":15,"start_character":55,"end_line":15,"end_character":66},"updated":"2020-07-09 14:36:32.000000000","message":"intelligible","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      - task_file: the main part of the file to import.  The complete"},{"line_number":31,"context_line":"        filename will be calculated based on the value of step and"},{"line_number":32,"context_line":"        role_name and step_file.  See below for more.  Then we append"},{"line_number":33,"context_line":"        the \".yaml\" extention to it. Mandatory."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"      - task_name: is displayed to the user as the high level"},{"line_number":36,"context_line":"        step. Mandatory."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_43fd9e6c","line":33,"range":{"start_line":33,"start_character":20,"end_line":33,"end_character":29},"updated":"2020-07-09 14:36:32.000000000","message":"extension","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      - step_name: is displayed to the user as the sublevel task main"},{"line_number":39,"context_line":"        focus. Mandatory when step is used, unused otherwise."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"      - step: is the current step as an integer. Optional."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"      - role_name: is the current role.  When used we expect the task"},{"line_number":44,"context_line":"        file to exist under the role_name directory.  It also adds a"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_63f7028d","line":41,"range":{"start_line":41,"start_character":49,"end_line":41,"end_character":58},"updated":"2020-07-09 14:36:32.000000000","message":"What happens if this is not provided?","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"      - role_name: is the current role.  When used we expect the task"},{"line_number":44,"context_line":"        file to exist under the role_name directory.  It also adds a"},{"line_number":45,"context_line":"        when role contstraint to the import. Optional."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"      - step_file: Indicates if one file per step exist.  Default to"},{"line_number":48,"context_line":"        True, so we expect \"task_file ~ step ~ \u0027.yaml\u0027\" to"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_032c4600","line":45,"range":{"start_line":45,"start_character":18,"end_line":45,"end_character":29},"updated":"2020-07-09 14:36:32.000000000","message":"constraint","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"{%- set task_description \u003d task_name ~ extra_description %}"},{"line_number":65,"context_line":"{%- endif %}"},{"line_number":66,"context_line":"- block:"},{"line_number":67,"context_line":"{#- import tasks cannot have name, so we add a description before startindg it #}"},{"line_number":68,"context_line":"    {{- display_info(\"Starting \" ~ task_description)|indent(4) }}"},{"line_number":69,"context_line":"    {{- display_info(\"This will run on {{ ansible_play_hosts|join(\u0027,\u0027)|truncate(80,True) }} ({{ansible_play_hosts|length }}/{{ansible_play_hosts_all|length }})\" )|indent(4) }}"},{"line_number":70,"context_line":"    - import_tasks: \"{{ task_filename }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_0315669c","line":67,"range":{"start_line":67,"start_character":66,"end_line":67,"end_character":75},"updated":"2020-07-09 14:36:32.000000000","message":"starting","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0ec38053ebc69b8d6943fceb58990a543412893a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"{%- set task_description \u003d task_name ~ extra_description %}"},{"line_number":65,"context_line":"{%- endif %}"},{"line_number":66,"context_line":"- block:"},{"line_number":67,"context_line":"{#- import tasks cannot have name, so we add a description before startindg it #}"},{"line_number":68,"context_line":"    {{- display_info(\"Starting \" ~ task_description)|indent(4) }}"},{"line_number":69,"context_line":"    {{- display_info(\"This will run on {{ ansible_play_hosts|join(\u0027,\u0027)|truncate(80,True) }} ({{ansible_play_hosts|length }}/{{ansible_play_hosts_all|length }})\" )|indent(4) }}"},{"line_number":70,"context_line":"    - import_tasks: \"{{ task_filename }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_69afe3e2","line":67,"range":{"start_line":67,"start_character":66,"end_line":67,"end_character":75},"in_reply_to":"bf51134e_0315669c","updated":"2020-07-09 15:27:27.000000000","message":"me ave a prooblem with anglish.  me fixe eat.","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"67324c6145759832207e3d1d61d83daf7e79ede5","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        step: {{ step }}"},{"line_number":74,"context_line":"{%- endif %}"},{"line_number":75,"context_line":"    {{- display_info(\"Finished \" ~ task_description)|indent(4) }}"},{"line_number":76,"context_line":"  rescue:"},{"line_number":77,"context_line":"    - name: \"\u003d\u003d\u003e Error during {{ task_description }}\""},{"line_number":78,"context_line":"      fail:"},{"line_number":79,"context_line":"        msg: \u003e"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_039606f1","line":76,"range":{"start_line":76,"start_character":2,"end_line":76,"end_character":8},"updated":"2020-07-09 14:36:32.000000000","message":"This could be an \u0027always:\u0027 and debug task, but I guess that\u0027s effectively the same thing.","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0ec38053ebc69b8d6943fceb58990a543412893a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        step: {{ step }}"},{"line_number":74,"context_line":"{%- endif %}"},{"line_number":75,"context_line":"    {{- display_info(\"Finished \" ~ task_description)|indent(4) }}"},{"line_number":76,"context_line":"  rescue:"},{"line_number":77,"context_line":"    - name: \"\u003d\u003d\u003e Error during {{ task_description }}\""},{"line_number":78,"context_line":"      fail:"},{"line_number":79,"context_line":"        msg: \u003e"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf51134e_09f587ed","line":76,"range":{"start_line":76,"start_character":2,"end_line":76,"end_character":8},"in_reply_to":"bf51134e_039606f1","updated":"2020-07-09 15:27:27.000000000","message":"So, only a always doesn\u0027t cut it because you don\u0027t know if that fails and you don\u0027t have access to ansible_failed_task.name.\n\nHaving both rescue (to set fact of the error status and keep ansible_failed_task.name) and always (where you process it) doesn\u0027t work either because as the rescue has no error you basically transformed it to a successful tasks.  So you have a message in always, but no error in the processing that keeps going.","commit_id":"12e40023b16352aec2fd1c754a950d6616d421e2"}]}
