)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"be22fdd827de74f94d38dad0009c124ee23c7ff7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"99e5bd3b_b456d983","updated":"2024-06-21 08:53:22.000000000","message":"I guess we don\u0027t want to backport this? Not 100% sure, never used cyborg.","commit_id":"1a54af02e5a1401d057562721f0af0016b1e80fd"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"c4cb384f401b3603ff9902fd7fbc521d42a74889","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e85957cf_1990c7ee","updated":"2024-06-21 09:03:56.000000000","message":"but this is not a bugfix or there need a link to a bugreport","commit_id":"1a54af02e5a1401d057562721f0af0016b1e80fd"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"982436ee95228a9a3ebc7db0f046be2d3a64b8af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"24cec901_af3b3255","updated":"2024-06-21 09:03:20.000000000","message":"it can be backported even to Yoga","commit_id":"1a54af02e5a1401d057562721f0af0016b1e80fd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"f42b74d3e8aa118c646007743a13fc48052003b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4b3d505_9d652717","updated":"2024-08-22 05:51:46.000000000","message":"merge conflict, removing from RP","commit_id":"1a54af02e5a1401d057562721f0af0016b1e80fd"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"1711ba79f1b792e60bd747297ce3ed821b323f59","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fcae4181_b4e49504","updated":"2024-09-28 08:54:38.000000000","message":"I\u0027m okay with removing our outdated template.\nI\u0027m not okay with removing the ability to merge user provided custom configs\nwithout a reno.","commit_id":"61ce3aab3cf9a53f71f2ef915cd3e340c387562d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1e3911555c018f2db59c655a994582810d01e84d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9281b6a8_92d1e788","in_reply_to":"fcae4181_b4e49504","updated":"2025-06-11 15:00:29.000000000","message":"Done","commit_id":"61ce3aab3cf9a53f71f2ef915cd3e340c387562d"}],"ansible/roles/cyborg/tasks/config.yml":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"1711ba79f1b792e60bd747297ce3ed821b323f59","unresolved":true,"context_lines":[{"line_number":76,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5b186f5c_26e7d4ae","side":"PARENT","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":2},"updated":"2024-09-28 08:54:38.000000000","message":"I think it\u0027s okay to remove the template, +1 for that","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1e3911555c018f2db59c655a994582810d01e84d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"14931190_044d56d9","side":"PARENT","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":2},"in_reply_to":"5b186f5c_26e7d4ae","updated":"2025-06-11 15:00:29.000000000","message":"Done","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"1711ba79f1b792e60bd747297ce3ed821b323f59","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ad1b9ea0_112bc136","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"updated":"2024-09-28 08:54:38.000000000","message":"I don\u0027t think it\u0027s okay to the ability for the user to customize this.\n_If_ we do it, it needs a reno.","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"f8c5d6fbac326531cbe1cf277726c0779248ffbe","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f129fb55_693e089d","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"in_reply_to":"5eada62f_2428ee45","updated":"2025-06-11 15:41:06.000000000","message":"Understand","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1e3911555c018f2db59c655a994582810d01e84d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e525bb3f_df1e477d","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"in_reply_to":"ad1b9ea0_112bc136","updated":"2025-06-11 15:00:29.000000000","message":"Done","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"256e994a9cc07d30deb10d4e7ad4ef3274de2bde","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e92d958c_5b402b2e","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"in_reply_to":"bbf3d872_592ff3e6","updated":"2025-06-11 15:05:55.000000000","message":"Working on rework all api-pastes ... check patches in a chain then..","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"07cfe3a14121d850d324412dd07db3fc442841a3","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bbf3d872_592ff3e6","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"in_reply_to":"e525bb3f_df1e477d","updated":"2025-06-11 15:01:13.000000000","message":"Actually not done","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"bf98df18c3cce57e448c6ab2cb0f21ce13f16f1d","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  merge_configs:"},{"line_number":78,"context_line":"    sources:"},{"line_number":79,"context_line":"      - \"{{ role_path }}/templates/cyborg-api-paste.ini.j2\""},{"line_number":80,"context_line":"      - \"{{ node_custom_config }}/cyborg/cyborg-api-paste.ini\""},{"line_number":81,"context_line":"    dest: \"{{ node_config_directory }}/cyborg-api/api-paste.ini\""},{"line_number":82,"context_line":"    mode: \"0660\""},{"line_number":83,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5eada62f_2428ee45","side":"PARENT","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":2},"in_reply_to":"e92d958c_5b402b2e","updated":"2025-06-11 15:11:26.000000000","message":"Well, the other patch is on top of that - I\u0027m not going to read patches in reverse direction ;-)","commit_id":"a4fa5bcdc18d68f0516c594b95ebc51b733b1b3c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1e10acb164c023846f65d8808c2cd5f29ea3e3b8","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  become: true"},{"line_number":66,"context_line":"  with_dict: \"{{ cyborg_services | select_services_enabled_and_mapped_to_host }}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"- name: Copying over cyborg-api-paste.ini"},{"line_number":69,"context_line":"  vars:"},{"line_number":70,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":71,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5147061d_73782309","side":"PARENT","line":68,"updated":"2025-06-11 15:02:01.000000000","message":"Do we absolutely need to remove the ability to provide api-paste? Is that not supported anymore?","commit_id":"95c9a102b6c1786d84dec8a0d3f3a8c7f28a9610"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"d39578ea4c2977c975d7697f537d06f78e57998d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  become: true"},{"line_number":66,"context_line":"  with_dict: \"{{ cyborg_services | select_services_enabled_and_mapped_to_host }}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"- name: Copying over cyborg-api-paste.ini"},{"line_number":69,"context_line":"  vars:"},{"line_number":70,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":71,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"0d00b7ca_2182acc8","side":"PARENT","line":68,"in_reply_to":"1a76a5c1_d462f135","updated":"2025-06-11 16:06:04.000000000","message":"That\u0027s my plan.","commit_id":"95c9a102b6c1786d84dec8a0d3f3a8c7f28a9610"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"f8c5d6fbac326531cbe1cf277726c0779248ffbe","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  become: true"},{"line_number":66,"context_line":"  with_dict: \"{{ cyborg_services | select_services_enabled_and_mapped_to_host }}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"- name: Copying over cyborg-api-paste.ini"},{"line_number":69,"context_line":"  vars:"},{"line_number":70,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":71,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c4a2ee7a_3745fb34","side":"PARENT","line":68,"in_reply_to":"5147061d_73782309","updated":"2025-06-11 15:41:06.000000000","message":"@mnasiadka@gmail.com\nPoint is that if you want to use merge_configs, you need to provide template and another source for merge actually. But this is not good from kolla-ansible view, because then, You need to check the api-paste templates for the given services every version (They hardly ever change, but it\u0027s about the principle) in Kolla Ansible.\n\nA good approach is similar to how it\u0027s done with policy files: check if a user override exists—if it does, copy it; if not, leave it as is. The default api-paste file should be in the container under /etc/service, but even if it’s not there, it still works by default from the Python code. I want to have it all nicely finalized and complete, most probably I will then squash commits into one... \n\n\nThe fact is that even if we removed the support, I don\u0027t think anyone would miss it—because for most services it’s not there at all, for some it\u0027s done via overrides, for others via merge_configs, and for example, Keystone hasn’t used api-paste since Rocky, and no one even noticed :D https://review.opendev.org/c/openstack/kolla-ansible/+/952378\n\nThat’s the real question—if we want to support overrides, then do it properly; if not, drop it altogether.\n\nPS: This is useful, for example, when limiting the types of requests for CADF audit logging.","commit_id":"95c9a102b6c1786d84dec8a0d3f3a8c7f28a9610"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"fe46c24ba40bd9bf92ab0e97700fd71ae9c88ced","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  become: true"},{"line_number":66,"context_line":"  with_dict: \"{{ cyborg_services | select_services_enabled_and_mapped_to_host }}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"- name: Copying over cyborg-api-paste.ini"},{"line_number":69,"context_line":"  vars:"},{"line_number":70,"context_line":"    service: \"{{ cyborg_services[\u0027cyborg-api\u0027] }}\""},{"line_number":71,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1a76a5c1_d462f135","side":"PARENT","line":68,"in_reply_to":"c4a2ee7a_3745fb34","updated":"2025-06-11 16:05:11.000000000","message":"I’m fine with dropping - I’m not using it anywhere - but if you want it in - ideally let’s have a service role that manages it.","commit_id":"95c9a102b6c1786d84dec8a0d3f3a8c7f28a9610"}],"ansible/roles/masakari/tasks/config.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1e10acb164c023846f65d8808c2cd5f29ea3e3b8","unresolved":true,"context_lines":[{"line_number":98,"context_line":"  become: true"},{"line_number":99,"context_line":"  when: service | service_enabled_and_mapped_to_host"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- name: Copying over masakari-api-paste.ini"},{"line_number":102,"context_line":"  vars:"},{"line_number":103,"context_line":"    service: \"{{ masakari_services[\u0027masakari-api\u0027] }}\""},{"line_number":104,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c18224f6_33f6a061","side":"PARENT","line":101,"updated":"2025-06-11 15:02:01.000000000","message":"ditto","commit_id":"95c9a102b6c1786d84dec8a0d3f3a8c7f28a9610"}]}
