)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"636a230f97dd3c2967d414e667ad0c25cfb56173","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"290f1c4d_0fbfc8ef","updated":"2023-04-03 20:18:33.000000000","message":"recheck - https://review.opendev.org/c/openstack/openstack-ansible/+/879069 is merged","commit_id":"31cf3b01c2d6d2505d13f928748ba2bf3002ef33"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"ed3c62800cb9552d2f79d4b560af0538a5046125","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"08348814_ffcb4ac2","updated":"2023-04-03 13:24:57.000000000","message":"recheck - let\u0027s hope it will work after https://review.opendev.org/c/openstack/openstack-ansible-openstack_hosts/+/879272 is merged","commit_id":"31cf3b01c2d6d2505d13f928748ba2bf3002ef33"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"ef77a53cae268b2ac2d350a7c11c7a5ef1820f68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7a685a11_2d0a1e16","updated":"2023-04-05 10:07:49.000000000","message":"recheck - openstack-ansible-deploy-aio_metal-centos-9-stream - Failed to validate GPG signature for ovn22.12-22.12.0-34.el9s.x86_64: Public key for ovn22.12-22.12.0-34.el9s.x86_64.rpm is not installed","commit_id":"e6f7f2ce0c38f45e97c993155e2af5ea0f249f3f"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"5057f966d3b1e1b518b73fab3f9025d20196a64e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"977e27c4_e5e91af8","updated":"2023-04-05 19:28:25.000000000","message":"recheck gpg issue for centos NFV repo is resolved","commit_id":"e6f7f2ce0c38f45e97c993155e2af5ea0f249f3f"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"74554ff4d6dfa9b5f3fb993ad2482d6a1a008491","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a78c8f73_6b77a044","updated":"2023-04-04 17:30:49.000000000","message":"recheck rocky failed on tempest","commit_id":"e6f7f2ce0c38f45e97c993155e2af5ea0f249f3f"}],"tasks/haproxy_service_config.yml":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"d3d3072f369bcf8a5045509c77b77dfc4c5f5b5a","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Ensure that new, simplified haproxy_service_configs format is used"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs[0].service is defined | ternary(haproxy_service_configs | map(attribute\u003d\u0027service\u0027), haproxy_service_configs) | list }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"###########################################################################"},{"line_number":23,"context_line":"# Service frontends and backends assembled from fragments into haproxy.conf"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"e3575648_def95f32","line":20,"range":{"start_line":20,"start_character":44,"end_line":20,"end_character":79},"updated":"2023-03-28 12:52:44.000000000","message":"Looking at this now, I kind don\u0027t like this index thing. What if we have smth like that?\n\n```\nhaproxy_service_configs:\n  - haproxy_service_name: group_name\n    haproxy_backend_nodes: \"{{ groups[\u0027group_name\u0027][0] }}\"\n    haproxy_backup_nodes: \"{{ groups[\u0027group_name\u0027][1:] }}\"\n    haproxy_port: 80\n  - service:\n      haproxy_service_name: group_name1\n      haproxy_backend_nodes: \"{{ groups[\u0027group_name1\u0027][0] }}\"\n      haproxy_backup_nodes: \"{{ groups[\u0027group_name1\u0027][1:] }}\"\n      haproxy_port: 443\n```\n\nCan we do some kind of selectattr instead and then just concatenate lists with old and new formats?","commit_id":"4d8e268fd4b4342d44eaf792582a895f5964525a"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"dd0305603a062372ee41114a1b94633076bae0f7","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Ensure that new, simplified haproxy_service_configs format is used"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs[0].service is defined | ternary(haproxy_service_configs | map(attribute\u003d\u0027service\u0027), haproxy_service_configs) | list }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"###########################################################################"},{"line_number":23,"context_line":"# Service frontends and backends assembled from fragments into haproxy.conf"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dd24144f_169832ff","line":20,"range":{"start_line":20,"start_character":44,"end_line":20,"end_character":79},"in_reply_to":"352cd2d9_4e4e9ffd","updated":"2023-03-28 14:29:53.000000000","message":"i slightly changed the logic, now it should also cover mixed format.\nbut the only way i came up with was to do it in a loop.","commit_id":"4d8e268fd4b4342d44eaf792582a895f5964525a"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"f9790c515d76f9b946e9fc22a9488761168560ab","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Ensure that new, simplified haproxy_service_configs format is used"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs[0].service is defined | ternary(haproxy_service_configs | map(attribute\u003d\u0027service\u0027), haproxy_service_configs) | list }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"###########################################################################"},{"line_number":23,"context_line":"# Service frontends and backends assembled from fragments into haproxy.conf"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"de4e846e_3a159402","line":20,"range":{"start_line":20,"start_character":44,"end_line":20,"end_character":79},"in_reply_to":"dd24144f_169832ff","updated":"2023-04-03 10:54:04.000000000","message":"Done","commit_id":"4d8e268fd4b4342d44eaf792582a895f5964525a"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"113ece0442d6c1b219b8f9f524d9928932a2c0bd","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Ensure that new, simplified haproxy_service_configs format is used"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs[0].service is defined | ternary(haproxy_service_configs | map(attribute\u003d\u0027service\u0027), haproxy_service_configs) | list }}\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"###########################################################################"},{"line_number":23,"context_line":"# Service frontends and backends assembled from fragments into haproxy.conf"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"352cd2d9_4e4e9ffd","line":20,"range":{"start_line":20,"start_character":44,"end_line":20,"end_character":79},"in_reply_to":"e3575648_def95f32","updated":"2023-03-28 13:16:33.000000000","message":"well, haproxy_service_configs should be either in old or in a new format.\nFixing \"mixed\" format can be tricky and I\u0027m not sure if it\u0027s really necessary.\nDo you have any idea? can you clarify what do you want to do with selectattr?\n\nPlease note that this patch doesn\u0027t change the logic of how conversion is performed.\nCurrent logic is already merged in https://review.opendev.org/c/openstack/openstack-ansible-haproxy_server/+/871188.\n\nThis patch only adds conversion to the haproxy map file feature because we missed that before and https://review.opendev.org/c/openstack/openstack-ansible/+/876851 can\u0027t be merged now.","commit_id":"4d8e268fd4b4342d44eaf792582a895f5964525a"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"146f7aea2092095a48a3bec33a79647d11e7d704","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"39a3ca52_1337fcd0","line":20,"range":{"start_line":20,"start_character":97,"end_line":20,"end_character":120},"updated":"2023-03-31 11:26:58.000000000","message":"I\u0027m not 100% sure, but I think round brackets must be used here or ternary will be applied not to result","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"146f7aea2092095a48a3bec33a79647d11e7d704","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"27ff3a44_adbc0109","line":20,"range":{"start_line":20,"start_character":4,"end_line":20,"end_character":38},"updated":"2023-03-31 11:26:58.000000000","message":"also I\u0027d name variable `_haproxy_service_configs_simplified` to show it\u0027s a local variable rather then smth that user can/should define.","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"f9790c515d76f9b946e9fc22a9488761168560ab","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"d2eeeea1_b95a41cc","line":20,"range":{"start_line":20,"start_character":4,"end_line":20,"end_character":38},"in_reply_to":"27ff3a44_adbc0109","updated":"2023-04-03 10:54:04.000000000","message":"done","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"f9790c515d76f9b946e9fc22a9488761168560ab","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ce21af69_750f004c","line":20,"range":{"start_line":20,"start_character":97,"end_line":20,"end_character":120},"in_reply_to":"39a3ca52_1337fcd0","updated":"2023-04-03 10:54:04.000000000","message":"according to my tests it works fine, example: https://paste.openstack.org/show/bVPAeY017r2WdbU6iqZi/\n\ndo you have any specific corner case in mind?","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"22fcef5ffdac03fa5c603b52a9f2d52d50d1be68","unresolved":true,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"d3e1138d_61c64a59","line":20,"range":{"start_line":20,"start_character":97,"end_line":20,"end_character":120},"in_reply_to":"ce21af69_750f004c","updated":"2023-04-04 09:15:12.000000000","message":"well perhaps this is the corner case, it is not obvious that one of these examples is completely wrong:\n\n  if foo is defined | ternary(this, that)\n  if foo \u003d\u003d bar | ternary(this, that)\n\nfrom a style perspective it might be nice to see the test always in round brackets, as we\u0027ve more than once merged code that was incorrect but looked OK.","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"6d0f71c287f008f613f6edc226ed1c9034924136","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# conversion will be removed in 2024.1."},{"line_number":18,"context_line":"- name: Append services to haproxy_service_configs_simplified list"},{"line_number":19,"context_line":"  set_fact:"},{"line_number":20,"context_line":"    haproxy_service_configs_simplified: \"{{ haproxy_service_configs_simplified | default([]) + [ item.service is defined | ternary(item.service, item) ] }}\""},{"line_number":21,"context_line":"  loop: \"{{ haproxy_service_configs }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"###########################################################################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"60b51fea_07f5f5c6","line":20,"range":{"start_line":20,"start_character":97,"end_line":20,"end_character":120},"in_reply_to":"d3e1138d_61c64a59","updated":"2023-04-04 13:57:34.000000000","message":"Done","commit_id":"3b15a2772ba75112a0a92bdd5795364d567cd5c8"}]}
