)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3a6f66075cedf98d14e2de51dc61136aa25e99ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"21a662ee_1e2106a3","updated":"2022-06-13 08:46:39.000000000","message":"Thanks","commit_id":"2bebc533e48ef53477209be6856959aa56ce9dd1"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"a55ad492b99bedc5593a02d7df7843ac1cb73acd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"df836eb6_fe5f94b8","updated":"2023-02-27 11:28:21.000000000","message":"will try to support envs.","commit_id":"019f25918c014e3dda2c7f9b7982861f2309e165"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"36c0146ae6960657042e10c3c8abdd9346056482","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d20e3a57_7664f56b","updated":"2023-04-19 18:07:01.000000000","message":"Nevermind, thanks for edit.","commit_id":"070621a45df11fd2487ddc38f715c1075524ee93"}],"ansible/container-image-build.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3a6f66075cedf98d14e2de51dc61136aa25e99ae","unresolved":true,"context_lines":[{"line_number":60,"context_line":"          . {{ kolla_venv }}/bin/activate \u0026\u0026"},{"line_number":61,"context_line":"          kolla-build"},{"line_number":62,"context_line":"          --config-dir {{ kolla_build_config_path }}"},{"line_number":63,"context_line":"          {% if custom_repos_yml_stat.stat.exists %}--repos-yaml {{ kolla_build_config_path }}/repos.yml{% endif %}"},{"line_number":64,"context_line":"          {% if item.type is defined %}--type {{ item.type }}{% endif %}"},{"line_number":65,"context_line":"          {% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %}"},{"line_number":66,"context_line":"          {% if push_images | bool %}--push{% endif %}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"d7e090ee_cc161cfb","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":115},"updated":"2022-06-13 08:46:39.000000000","message":"Could this be added to kolla-build.conf instead?","commit_id":"2bebc533e48ef53477209be6856959aa56ce9dd1"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c6d3c9406e7e7217de17c8ec86c36adbc2f9509e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"          . {{ kolla_venv }}/bin/activate \u0026\u0026"},{"line_number":61,"context_line":"          kolla-build"},{"line_number":62,"context_line":"          --config-dir {{ kolla_build_config_path }}"},{"line_number":63,"context_line":"          {% if custom_repos_yml_stat.stat.exists %}--repos-yaml {{ kolla_build_config_path }}/repos.yml{% endif %}"},{"line_number":64,"context_line":"          {% if item.type is defined %}--type {{ item.type }}{% endif %}"},{"line_number":65,"context_line":"          {% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %}"},{"line_number":66,"context_line":"          {% if push_images | bool %}--push{% endif %}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5e2b041f_639bc4bf","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":115},"in_reply_to":"d7e090ee_cc161cfb","updated":"2022-06-14 11:26:44.000000000","message":"Done","commit_id":"2bebc533e48ef53477209be6856959aa56ce9dd1"}],"ansible/kolla-build.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a587455067d3b8ec8ba7de55cfbca40170a91243","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    - name: Check for the presence of custom repos.yml"},{"line_number":13,"context_line":"      stat:"},{"line_number":14,"context_line":"        path: \"{{ kayobe_config_path }}/kolla/repos.yml\""},{"line_number":15,"context_line":"        get_md5: false"},{"line_number":16,"context_line":"        get_checksum: false"},{"line_number":17,"context_line":"        mime: false"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"01c7b5b6_325bee7f","line":14,"range":{"start_line":14,"start_character":52,"end_line":14,"end_character":55},"updated":"2023-02-22 15:46:56.000000000","message":"Unsure how much it matters, but the file in kolla is repos.yaml","commit_id":"019f25918c014e3dda2c7f9b7982861f2309e165"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"a55ad492b99bedc5593a02d7df7843ac1cb73acd","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    - name: Check for the presence of custom repos.yml"},{"line_number":13,"context_line":"      stat:"},{"line_number":14,"context_line":"        path: \"{{ kayobe_config_path }}/kolla/repos.yml\""},{"line_number":15,"context_line":"        get_md5: false"},{"line_number":16,"context_line":"        get_checksum: false"},{"line_number":17,"context_line":"        mime: false"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3ae36cc3_ec581d1f","line":14,"range":{"start_line":14,"start_character":52,"end_line":14,"end_character":55},"in_reply_to":"01c7b5b6_325bee7f","updated":"2023-02-27 11:28:21.000000000","message":"Ack","commit_id":"019f25918c014e3dda2c7f9b7982861f2309e165"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a587455067d3b8ec8ba7de55cfbca40170a91243","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    - block:"},{"line_number":21,"context_line":"        - name: Ensure the custom repos.yml template overrides file exists"},{"line_number":22,"context_line":"          template:"},{"line_number":23,"context_line":"            src: \"{{ kayobe_config_path }}/kolla/repos.yml\""},{"line_number":24,"context_line":"            dest: \"{{ kolla_build_config_path }}/repos.yml\""},{"line_number":25,"context_line":"            mode: 0644"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"8b6a58e7_7c1e0f20","line":22,"updated":"2023-02-22 15:46:56.000000000","message":"I do like this feature, but IMO it needs to support multiple environments, in the same way that kolla-build.conf does. You can use a similar pattern, and move it to the kolla-build role, but use merge_yaml instead of merge_configs. There needs to be some check to make it optional for the case when no repos.yml is provided, which could be a stat with a loop.","commit_id":"019f25918c014e3dda2c7f9b7982861f2309e165"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"a55ad492b99bedc5593a02d7df7843ac1cb73acd","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    - block:"},{"line_number":21,"context_line":"        - name: Ensure the custom repos.yml template overrides file exists"},{"line_number":22,"context_line":"          template:"},{"line_number":23,"context_line":"            src: \"{{ kayobe_config_path }}/kolla/repos.yml\""},{"line_number":24,"context_line":"            dest: \"{{ kolla_build_config_path }}/repos.yml\""},{"line_number":25,"context_line":"            mode: 0644"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"6ace406f_db83f56a","line":22,"in_reply_to":"8b6a58e7_7c1e0f20","updated":"2023-02-27 11:28:21.000000000","message":"Ack","commit_id":"019f25918c014e3dda2c7f9b7982861f2309e165"}],"ansible/roles/kolla-build/tasks/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3a6f66075cedf98d14e2de51dc61136aa25e99ae","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    dest: \"{{ kolla_build_config_path }}/kolla-build.conf\""},{"line_number":6,"context_line":"    mode: 0644"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"- name: Ensure the custom repos.yml file exists"},{"line_number":9,"context_line":"  merge_yaml:"},{"line_number":10,"context_line":"    sources: \"{{ kolla_build_config_paths | product([\u0027/kolla/repos.yml\u0027]) | map(\u0027join\u0027) | unique | list }}\""},{"line_number":11,"context_line":"    dest: \"{{ kolla_build_config_path }}/repos.yml\""},{"line_number":12,"context_line":"    mode: 0644"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- name: Ensure the Kolla build template overrides file exists"},{"line_number":15,"context_line":"  template:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"e64b60f4_3d2ebb16","line":12,"range":{"start_line":8,"start_character":0,"end_line":12,"end_character":14},"updated":"2022-06-13 08:46:39.000000000","message":"Looks like this will be done unconditionally, in which case we\u0027ll generate an empty repos.yml file by default?","commit_id":"2bebc533e48ef53477209be6856959aa56ce9dd1"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c6d3c9406e7e7217de17c8ec86c36adbc2f9509e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    dest: \"{{ kolla_build_config_path }}/kolla-build.conf\""},{"line_number":6,"context_line":"    mode: 0644"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"- name: Ensure the custom repos.yml file exists"},{"line_number":9,"context_line":"  merge_yaml:"},{"line_number":10,"context_line":"    sources: \"{{ kolla_build_config_paths | product([\u0027/kolla/repos.yml\u0027]) | map(\u0027join\u0027) | unique | list }}\""},{"line_number":11,"context_line":"    dest: \"{{ kolla_build_config_path }}/repos.yml\""},{"line_number":12,"context_line":"    mode: 0644"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- name: Ensure the Kolla build template overrides file exists"},{"line_number":15,"context_line":"  template:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f0a2b2d2_1691bd93","line":12,"range":{"start_line":8,"start_character":0,"end_line":12,"end_character":14},"in_reply_to":"e64b60f4_3d2ebb16","updated":"2022-06-14 11:26:44.000000000","message":"Done","commit_id":"2bebc533e48ef53477209be6856959aa56ce9dd1"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"80771916f9833d8122d41762d09ccf67abbb3adf","unresolved":true,"context_lines":[{"line_number":16,"context_line":"- name: Set kolla_build_repos_yaml_path if any custom repos.y[a]ml file exists"},{"line_number":17,"context_line":"  set_fact:"},{"line_number":18,"context_line":"    kolla_build_repos_yaml_path: \"{{ repos_yaml_dest }}\""},{"line_number":19,"context_line":"  when: repos_yaml_stat.results | map(attribute\u003d\u0027stat.exists\u0027) | select(\u0027true\u0027) | unique | join | bool"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Ensure the Kolla repos.yaml configuration file exists"},{"line_number":22,"context_line":"  merge_yaml:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"daa6e334_74c98486","line":19,"range":{"start_line":19,"start_character":82,"end_line":19,"end_character":102},"updated":"2023-04-19 16:06:54.000000000","message":"I\u0027d go for this:\n\n repos_yaml_stat.results | map(attribute\u003d\u0027stat.exists\u0027) | select | length \u003e 0","commit_id":"f8bdebb797b0e8079ca293607cde4f684905f394"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"80771916f9833d8122d41762d09ccf67abbb3adf","unresolved":true,"context_lines":[{"line_number":16,"context_line":"- name: Set kolla_build_repos_yaml_path if any custom repos.y[a]ml file exists"},{"line_number":17,"context_line":"  set_fact:"},{"line_number":18,"context_line":"    kolla_build_repos_yaml_path: \"{{ repos_yaml_dest }}\""},{"line_number":19,"context_line":"  when: repos_yaml_stat.results | map(attribute\u003d\u0027stat.exists\u0027) | select(\u0027true\u0027) | unique | join | bool"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Ensure the Kolla repos.yaml configuration file exists"},{"line_number":22,"context_line":"  merge_yaml:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"859e3aca_ccad4354","line":19,"range":{"start_line":19,"start_character":65,"end_line":19,"end_character":80},"updated":"2023-04-19 16:06:54.000000000","message":"nit: select is equivalent","commit_id":"f8bdebb797b0e8079ca293607cde4f684905f394"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"36c0146ae6960657042e10c3c8abdd9346056482","unresolved":false,"context_lines":[{"line_number":16,"context_line":"- name: Set kolla_build_repos_yaml_path if any custom repos.y[a]ml file exists"},{"line_number":17,"context_line":"  set_fact:"},{"line_number":18,"context_line":"    kolla_build_repos_yaml_path: \"{{ repos_yaml_dest }}\""},{"line_number":19,"context_line":"  when: repos_yaml_stat.results | map(attribute\u003d\u0027stat.exists\u0027) | select(\u0027true\u0027) | unique | join | bool"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Ensure the Kolla repos.yaml configuration file exists"},{"line_number":22,"context_line":"  merge_yaml:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"0ba6af7e_4da2dae6","line":19,"range":{"start_line":19,"start_character":65,"end_line":19,"end_character":80},"in_reply_to":"859e3aca_ccad4354","updated":"2023-04-19 18:07:01.000000000","message":"Not equivalent but default object type for test if not provided. Not everyone familiar with Jinja defaults, and my variant is more human readable.","commit_id":"f8bdebb797b0e8079ca293607cde4f684905f394"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"36c0146ae6960657042e10c3c8abdd9346056482","unresolved":false,"context_lines":[{"line_number":16,"context_line":"- name: Set kolla_build_repos_yaml_path if any custom repos.y[a]ml file exists"},{"line_number":17,"context_line":"  set_fact:"},{"line_number":18,"context_line":"    kolla_build_repos_yaml_path: \"{{ repos_yaml_dest }}\""},{"line_number":19,"context_line":"  when: repos_yaml_stat.results | map(attribute\u003d\u0027stat.exists\u0027) | select(\u0027true\u0027) | unique | join | bool"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Ensure the Kolla repos.yaml configuration file exists"},{"line_number":22,"context_line":"  merge_yaml:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"8ce772c3_07081d6c","line":19,"range":{"start_line":19,"start_character":82,"end_line":19,"end_character":102},"in_reply_to":"daa6e334_74c98486","updated":"2023-04-19 18:07:01.000000000","message":"This do the same but shorter, but my variant more human readable (select truthy items, remove duplicates and do logical \u0027and\u0027).","commit_id":"f8bdebb797b0e8079ca293607cde4f684905f394"}]}
