)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c87b06223a083a48e466410c86a6cf8d857b185b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7907d5ab_765d4ee7","updated":"2022-01-07 09:10:05.000000000","message":"I have just noticed other analogous patches for other services. I don\u0027t know what the reasoning is - the abundance of ports seems wrong. Please let me know.","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"e5e54eecd43994e5f9e67d3e0d2992601da63532","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"da4f9d76_5761ea55","updated":"2022-01-05 11:55:07.000000000","message":"LGTM","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ba24567bd8b8dc0592131a7b5be1dde6a431a239","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"518e3c7c_7da24402","updated":"2022-01-07 10:23:24.000000000","message":"Long term the correct way forward would be to address all services URL-based instead of port-based, like devstack does. I\u0027m not yet working on that, but have it on my todo list.\n\nI agree that some kind of explanation as to why you need this added complexity introduce here would be good. Do you want to have both internal and public endpoints on the same IP/FQDN? In that case you would be better off simply using only the public endpoint for everything.","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"631dd3b9d9bd9cc2968d22c5c493ffc07b68fb02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dc3412c0_44e71f21","updated":"2022-01-07 09:07:34.000000000","message":"This is missing required prechecks and a release note plus the inline comment.\nAlso, I don\u0027t think we want it, considering we use the same port in each service (per service) as all endpoints offer the same functionality. We (mostly frickler tbh) are also working on streamlining this and this patch goes the other way.","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"98462235c651c44b95fb5a80a1d30dac18ee9015","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cf91069f_4427a44e","in_reply_to":"355b8846_f8ed3a12","updated":"2022-01-08 15:08:50.000000000","message":"Well, that now makes more sense. Obviously, you need to make haproxy use hostname-based routing as well to enable this. I think this use case makes sense. Just need to discuss details so that we don\u0027t add something that we will regret soon having to keep support for. ;-)\n\nTo summarise for now - no need to add another listen port (it does not make sense). But need to add relevant prechecks.\n\nI would prefer an approach that touches all the services at once.\n\nWe can give up on reno to avoid advertising this widely until we decide on final shape.\n\nAlso, in here, I would avoid defaulting to public port as in other roles we will have public port defaulting to internal and not the other way around which would cause confusion for operators overriding one but not the other.","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"841a3eae10a601cb39f550a8007273333d86cdf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"355b8846_f8ed3a12","in_reply_to":"dc3412c0_44e71f21","updated":"2022-01-08 09:35:35.000000000","message":"I did this, because there are people, that would like to have each endpoint using the standard https port and a specific fqdn for each service - only on the internet facing front.\nI haven’t seen any ,,streamlining’’ work in Yoga priorities, so maybe I have overlooked something - still I believe this approach makes sense.","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e503c1406988a2baf7bcf238a77181a80d2364d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"520240a7_10d07047","updated":"2022-05-11 14:05:31.000000000","message":"it looks WIP - could you mark it in gerrit as such? thanks in advance","commit_id":"0524c4ecbb43a606ba8a0728ed6ed94f2d8dd7aa"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"caab657ee96832c5f242e383c32d33a2ac7a2ff7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":55,"id":"746f97e1_d2855f12","updated":"2022-05-23 10:38:06.000000000","message":"Reno, doc ? ","commit_id":"fc098d05e2e6e85d3abf604fae87329697489d7b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"0754a952b3633ae5ab7eff9fbef72dd3e5093c07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"b4563ef1_341d4ebe","updated":"2023-04-19 08:40:05.000000000","message":"I don\u0027t unterstand the use case, can you be more explicit about how you intend to make use of this? Is it only about different ports?\n\nAlso still missing reno and documentation.","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"88ef169ccbfcc84e143377e6e32b2e17915eee40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"fb15da3f_e3546bdf","in_reply_to":"4d347065_e8f58423","updated":"2023-06-01 12:33:32.000000000","message":"Done","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"dce904c4ee4084b5c14ea56c89a99a597d29243e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":73,"id":"4d347065_e8f58423","in_reply_to":"b4563ef1_341d4ebe","updated":"2023-04-19 10:00:30.000000000","message":"I\u0027ll add reno and docs - the use case is to expose services under different FQDNs on the same port (so 443 instead of multiple high ports that we use by default).\nWanted to follow up in the future with same FQDN but different path (like devstack does).\nI\u0027ll update the commit message so it\u0027s more clear.","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"631dd3b9d9bd9cc2968d22c5c493ffc07b68fb02","unresolved":true,"context_lines":[{"line_number":359,"context_line":"keystone_public_listen_port: \"{{ keystone_public_port }}\""},{"line_number":360,"context_line":"keystone_admin_port: \"35357\""},{"line_number":361,"context_line":"keystone_admin_listen_port: \"{{ keystone_admin_port }}\""},{"line_number":362,"context_line":"keystone_internal_port: \"{{ keystone_public_port }}\""},{"line_number":363,"context_line":"keystone_ssh_port: \"8023\""},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"kibana_server_port: \"5601\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f4f54495_8cbbe988","line":362,"updated":"2022-01-07 09:07:34.000000000","message":"what about listen port then?","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"57d3d7868b0b2a7e69854490886bf546c9eeb15d","unresolved":false,"context_lines":[{"line_number":359,"context_line":"keystone_public_listen_port: \"{{ keystone_public_port }}\""},{"line_number":360,"context_line":"keystone_admin_port: \"35357\""},{"line_number":361,"context_line":"keystone_admin_listen_port: \"{{ keystone_admin_port }}\""},{"line_number":362,"context_line":"keystone_internal_port: \"{{ keystone_public_port }}\""},{"line_number":363,"context_line":"keystone_ssh_port: \"8023\""},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"kibana_server_port: \"5601\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1dac0d4e_50a605bc","line":362,"in_reply_to":"f4f54495_8cbbe988","updated":"2023-02-28 11:26:35.000000000","message":"Done","commit_id":"d330f78c2ab5b916604884ce801f62c73b1979fd"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":194,"context_line":"#######################"},{"line_number":195,"context_line":"elasticsearch_datadir_volume: \"elasticsearch\""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"elasticsearch_internal_endpoint: \"{{ elasticsearch_address | put_address_in_context(\u0027url\u0027) | kolla_url(internal_protocol, elasticsearch_port) }}\""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"###################"},{"line_number":200,"context_line":"# Messaging options"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"64ecd95d_e105b362","line":197,"range":{"start_line":197,"start_character":61,"end_line":197,"end_character":93},"updated":"2022-03-11 17:28:15.000000000","message":"We could do this in the kolla_url filter","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"146cf1895be115dbc6832f31ef86e21ba134f5c0","unresolved":false,"context_lines":[{"line_number":194,"context_line":"#######################"},{"line_number":195,"context_line":"elasticsearch_datadir_volume: \"elasticsearch\""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"elasticsearch_internal_endpoint: \"{{ elasticsearch_address | put_address_in_context(\u0027url\u0027) | kolla_url(internal_protocol, elasticsearch_port) }}\""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"###################"},{"line_number":200,"context_line":"# Messaging options"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"140d9914_c01ded75","line":197,"range":{"start_line":197,"start_character":61,"end_line":197,"end_character":93},"in_reply_to":"64ecd95d_e105b362","updated":"2022-03-21 14:04:38.000000000","message":"Done","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":272,"context_line":"aodh_internal_fqdn: \"{{ kolla_internal_fqdn }}\""},{"line_number":273,"context_line":"aodh_external_fqdn: \"{{ kolla_external_fqdn }}\""},{"line_number":274,"context_line":"aodh_api_port: \"8042\""},{"line_number":275,"context_line":"aodh_api_public_port: \"{{ aodh_api_port }}\""},{"line_number":276,"context_line":"aodh_api_listen_port: \"{{ aodh_api_port }}\""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"barbican_internal_fqdn: \"{{ kolla_internal_fqdn }}\""}],"source_content_type":"text/x-yaml","patch_set":37,"id":"dae579b0_d8fad6b4","line":275,"range":{"start_line":275,"start_character":9,"end_line":275,"end_character":15},"updated":"2022-03-11 17:28:15.000000000","message":"argh, public, external? I suppose this is the port of the public endpoint, which is on the external FQDN.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"39eb19ab80b8d28c062750c7e553f80de70793a8","unresolved":false,"context_lines":[{"line_number":272,"context_line":"aodh_internal_fqdn: \"{{ kolla_internal_fqdn }}\""},{"line_number":273,"context_line":"aodh_external_fqdn: \"{{ kolla_external_fqdn }}\""},{"line_number":274,"context_line":"aodh_api_port: \"8042\""},{"line_number":275,"context_line":"aodh_api_public_port: \"{{ aodh_api_port }}\""},{"line_number":276,"context_line":"aodh_api_listen_port: \"{{ aodh_api_port }}\""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"barbican_internal_fqdn: \"{{ kolla_internal_fqdn }}\""}],"source_content_type":"text/x-yaml","patch_set":37,"id":"7f657415_ac94641d","line":275,"range":{"start_line":275,"start_character":9,"end_line":275,"end_character":15},"in_reply_to":"dae579b0_d8fad6b4","updated":"2022-03-21 15:12:51.000000000","message":"Well, we already had public_port in many cases, so I just continued.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f9d89fad57d1b57bcf71dd1e7b1685e32c04e90a","unresolved":true,"context_lines":[{"line_number":614,"context_line":"trove_api_public_port: \"{{ trove_api_port }}\""},{"line_number":615,"context_line":"trove_api_listen_port: \"{{ trove_api_port }}\""},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"venus_api_port: \"10010\""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"watcher_internal_fqdn: \"{{ kolla_internal_fqdn }}\""},{"line_number":620,"context_line":"watcher_external_fqdn: \"{{ kolla_external_fqdn }}\""}],"source_content_type":"text/x-yaml","patch_set":39,"id":"e072295f_9aee58e0","line":617,"range":{"start_line":617,"start_character":0,"end_line":617,"end_character":14},"updated":"2022-03-22 09:09:51.000000000","message":"Venus is now a thing","commit_id":"d6e5857fdac42546c5ff0f0f694aad97b3c52b48"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"57d3d7868b0b2a7e69854490886bf546c9eeb15d","unresolved":false,"context_lines":[{"line_number":614,"context_line":"trove_api_public_port: \"{{ trove_api_port }}\""},{"line_number":615,"context_line":"trove_api_listen_port: \"{{ trove_api_port }}\""},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"venus_api_port: \"10010\""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"watcher_internal_fqdn: \"{{ kolla_internal_fqdn }}\""},{"line_number":620,"context_line":"watcher_external_fqdn: \"{{ kolla_external_fqdn }}\""}],"source_content_type":"text/x-yaml","patch_set":39,"id":"11b6b925_3d33e13b","line":617,"range":{"start_line":617,"start_character":0,"end_line":617,"end_character":14},"in_reply_to":"e072295f_9aee58e0","updated":"2023-02-28 11:26:35.000000000","message":"Done","commit_id":"d6e5857fdac42546c5ff0f0f694aad97b3c52b48"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7c9dd891d4cfddf40567234b49f81fd7d17d5978","unresolved":true,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":"kafka_port: \"9092\""},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"keystone_public_port: \"{{ haproxy_single_external_frontend_public_port if haproxy_single_external_frontend | bool else \u00275000\u0027 }}\""},{"line_number":381,"context_line":"keystone_public_listen_port: \"5000\""},{"line_number":382,"context_line":"keystone_admin_port: \"35357\""},{"line_number":383,"context_line":"keystone_admin_listen_port: \"{{ keystone_admin_port }}\""}],"source_content_type":"text/x-yaml","patch_set":55,"id":"373bf44d_2930cbce","line":380,"range":{"start_line":380,"start_character":119,"end_line":380,"end_character":125},"updated":"2022-05-23 13:58:00.000000000","message":"{{ keystone_public_listen_port }}","commit_id":"fc098d05e2e6e85d3abf604fae87329697489d7b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8c1d0c1b88fe111ff218f71ed0c1b5299a577caa","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":"kafka_port: \"9092\""},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"keystone_public_port: \"{{ haproxy_single_external_frontend_public_port if haproxy_single_external_frontend | bool else \u00275000\u0027 }}\""},{"line_number":381,"context_line":"keystone_public_listen_port: \"5000\""},{"line_number":382,"context_line":"keystone_admin_port: \"35357\""},{"line_number":383,"context_line":"keystone_admin_listen_port: \"{{ keystone_admin_port }}\""}],"source_content_type":"text/x-yaml","patch_set":55,"id":"64b4eac2_07faa3c4","line":380,"range":{"start_line":380,"start_character":119,"end_line":380,"end_character":125},"in_reply_to":"373bf44d_2930cbce","updated":"2023-01-16 10:00:10.000000000","message":"Done","commit_id":"fc098d05e2e6e85d3abf604fae87329697489d7b"}],"ansible/roles/aodh/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f9d89fad57d1b57bcf71dd1e7b1685e32c04e90a","unresolved":true,"context_lines":[{"line_number":19,"context_line":"        enabled: \"{{ enable_aodh }}\""},{"line_number":20,"context_line":"        mode: \"http\""},{"line_number":21,"context_line":"        external: true"},{"line_number":22,"context_line":"        external_fqdn: \"{{ aodh_external_fqdn }}\""},{"line_number":23,"context_line":"        port: \"{{ aodh_api_public_port }}\""},{"line_number":24,"context_line":"        listen_port: \"{{ aodh_api_listen_port }}\""},{"line_number":25,"context_line":"  aodh-evaluator:"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"becf6d7d_a24768cd","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":21},"updated":"2022-03-22 09:09:51.000000000","message":"nit: could just be fqdn?","commit_id":"d6e5857fdac42546c5ff0f0f694aad97b3c52b48"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"40e65af76a60aff7c66294b4807c4887df0fdd6f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        enabled: \"{{ enable_aodh }}\""},{"line_number":20,"context_line":"        mode: \"http\""},{"line_number":21,"context_line":"        external: true"},{"line_number":22,"context_line":"        external_fqdn: \"{{ aodh_external_fqdn }}\""},{"line_number":23,"context_line":"        port: \"{{ aodh_api_public_port }}\""},{"line_number":24,"context_line":"        listen_port: \"{{ aodh_api_listen_port }}\""},{"line_number":25,"context_line":"  aodh-evaluator:"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"7e936d6a_a9320fc7","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":21},"in_reply_to":"becf6d7d_a24768cd","updated":"2023-08-16 12:43:02.000000000","message":"Ack","commit_id":"d6e5857fdac42546c5ff0f0f694aad97b3c52b48"}],"ansible/roles/haproxy-config/tasks/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"0497e00bea9feaf56f1242ab2c48d62356c33576","unresolved":true,"context_lines":[{"line_number":42,"context_line":"      {% for http_option in frontend_http_extra %}"},{"line_number":43,"context_line":"      {{ http_option }}"},{"line_number":44,"context_line":"      {% endfor %}"},{"line_number":45,"context_line":"      acl domain-{{ haproxy_name }} hdr(host) -i {{ haproxy_service.external_fqdn }}"},{"line_number":46,"context_line":"      use_backend {{ haproxy_name }}_back if domain-{{ haproxy_name }}"},{"line_number":47,"context_line":"      {% endif -%}"},{"line_number":48,"context_line":"      {%- endfor -%}"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"5c65e297_d370366e","line":45,"range":{"start_line":45,"start_character":6,"end_line":45,"end_character":84},"updated":"2022-03-23 08:21:30.000000000","message":"Do the options need to go after here? With \u0027 if domain-{{ haproxy_name }}\u0027 appended?","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"50ddbf0afca8d34256c9c21cb30683f32afec3f9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      {% for http_option in frontend_http_extra %}"},{"line_number":43,"context_line":"      {{ http_option }}"},{"line_number":44,"context_line":"      {% endfor %}"},{"line_number":45,"context_line":"      acl domain-{{ haproxy_name }} hdr(host) -i {{ haproxy_service.external_fqdn }}"},{"line_number":46,"context_line":"      use_backend {{ haproxy_name }}_back if domain-{{ haproxy_name }}"},{"line_number":47,"context_line":"      {% endif -%}"},{"line_number":48,"context_line":"      {%- endfor -%}"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"676abff6_399da73e","line":45,"range":{"start_line":45,"start_character":6,"end_line":45,"end_character":84},"in_reply_to":"0bc9b0a0_8c68fc42","updated":"2022-03-25 12:13:37.000000000","message":"Not so fast:\n[ALERT] 083/120714 (45) : parsing [/etc/haproxy/services.d/external-frontend.cfg:108] : \u0027option forwardfor\u0027 only supports optional values: \u0027except\u0027, \u0027header\u0027 and \u0027if-none\u0027.\n[ALERT] 083/120714 (45) : parsing [/etc/haproxy/services.d/external-frontend.cfg:113] : keyword \u0027httplog\u0027 only supports option \u0027clf\u0027.\n\ntimeout/http options are frontend-wide, we need to live with it.","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c4ec884cda4a0b6fce743d749ea1f6230dfb8e03","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      {% for http_option in frontend_http_extra %}"},{"line_number":43,"context_line":"      {{ http_option }}"},{"line_number":44,"context_line":"      {% endfor %}"},{"line_number":45,"context_line":"      acl domain-{{ haproxy_name }} hdr(host) -i {{ haproxy_service.external_fqdn }}"},{"line_number":46,"context_line":"      use_backend {{ haproxy_name }}_back if domain-{{ haproxy_name }}"},{"line_number":47,"context_line":"      {% endif -%}"},{"line_number":48,"context_line":"      {%- endfor -%}"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"0bc9b0a0_8c68fc42","line":45,"range":{"start_line":45,"start_character":6,"end_line":45,"end_character":84},"in_reply_to":"5c65e297_d370366e","updated":"2022-03-25 10:54:54.000000000","message":"Done","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"}],"ansible/roles/haproxy-config/templates/haproxy_single_service_split.cfg.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":135,"context_line":"{{ userlist_macro(haproxy_name, auth_user, auth_pass) }}"},{"line_number":136,"context_line":"        {% endif %}"},{"line_number":137,"context_line":"        {% if with_frontend %}"},{"line_number":138,"context_line":"            {% if (external|bool and not haproxy_single_external_frontend|bool)"},{"line_number":139,"context_line":"               or not external|bool %}"},{"line_number":140,"context_line":"{{ frontend_macro(haproxy_name, haproxy_service.port, mode, external,"},{"line_number":141,"context_line":"                  frontend_http_extra, frontend_tcp_extra) }}"},{"line_number":142,"context_line":"            {% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"fe2d3094_97048ed0","line":139,"range":{"start_line":138,"start_character":12,"end_line":139,"end_character":38},"updated":"2022-03-11 17:28:15.000000000","message":"{% if not (external|bool and haproxy_single_external_frontend|bool) %}\n\nAlso, where is haproxy_single_external_frontend defined?","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"39eb19ab80b8d28c062750c7e553f80de70793a8","unresolved":false,"context_lines":[{"line_number":135,"context_line":"{{ userlist_macro(haproxy_name, auth_user, auth_pass) }}"},{"line_number":136,"context_line":"        {% endif %}"},{"line_number":137,"context_line":"        {% if with_frontend %}"},{"line_number":138,"context_line":"            {% if (external|bool and not haproxy_single_external_frontend|bool)"},{"line_number":139,"context_line":"               or not external|bool %}"},{"line_number":140,"context_line":"{{ frontend_macro(haproxy_name, haproxy_service.port, mode, external,"},{"line_number":141,"context_line":"                  frontend_http_extra, frontend_tcp_extra) }}"},{"line_number":142,"context_line":"            {% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"5a1b5a50_19f78437","line":139,"range":{"start_line":138,"start_character":12,"end_line":139,"end_character":38},"in_reply_to":"fe2d3094_97048ed0","updated":"2022-03-21 15:12:51.000000000","message":"Done.\n\nWas only defined in loadbalancer role, moved that to group_vars/all.yml for consistency.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"0497e00bea9feaf56f1242ab2c48d62356c33576","unresolved":true,"context_lines":[{"line_number":135,"context_line":"{{ userlist_macro(haproxy_name, auth_user, auth_pass) }}"},{"line_number":136,"context_line":"        {% endif %}"},{"line_number":137,"context_line":"        {% if with_frontend %}"},{"line_number":138,"context_line":"            {% if not (external|bool and haproxy_single_external_frontend|bool) %}"},{"line_number":139,"context_line":"{{ frontend_macro(haproxy_name, haproxy_service.port, mode, external,"},{"line_number":140,"context_line":"                  frontend_http_extra, frontend_tcp_extra) }}"},{"line_number":141,"context_line":"            {% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":41,"id":"4044f9d5_bd46e18d","line":138,"updated":"2022-03-23 08:21:30.000000000","message":"{% if not (external|bool and haproxy_single_external_frontend|bool and mode \u003d\u003d \u0027http\u0027) %}","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c4ec884cda4a0b6fce743d749ea1f6230dfb8e03","unresolved":false,"context_lines":[{"line_number":135,"context_line":"{{ userlist_macro(haproxy_name, auth_user, auth_pass) }}"},{"line_number":136,"context_line":"        {% endif %}"},{"line_number":137,"context_line":"        {% if with_frontend %}"},{"line_number":138,"context_line":"            {% if not (external|bool and haproxy_single_external_frontend|bool) %}"},{"line_number":139,"context_line":"{{ frontend_macro(haproxy_name, haproxy_service.port, mode, external,"},{"line_number":140,"context_line":"                  frontend_http_extra, frontend_tcp_extra) }}"},{"line_number":141,"context_line":"            {% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":41,"id":"bd9454a8_4321e9fa","line":138,"in_reply_to":"4044f9d5_bd46e18d","updated":"2022-03-25 10:54:54.000000000","message":"Done","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"}],"ansible/roles/keystone/defaults/main.yml":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"925fb3509d2c2ed3b8ebacb7a98ad78266017c47","unresolved":true,"context_lines":[{"line_number":15,"context_line":"        enabled: \"{{ enable_keystone }}\""},{"line_number":16,"context_line":"        mode: \"http\""},{"line_number":17,"context_line":"        external: false"},{"line_number":18,"context_line":"        tls_backend: \"{{ keystone_internal_tls_backend }}\""},{"line_number":19,"context_line":"        port: \"{{ keystone_internal_port }}\""},{"line_number":20,"context_line":"        listen_port: \"{{ keystone_public_listen_port }}\""},{"line_number":21,"context_line":"        backend_http_extra: \"{{ [\u0027balance source\u0027] if enable_keystone_federation | bool else [] }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"c4d20932_91f4bd5a","line":18,"updated":"2022-01-04 14:27:08.000000000","message":"this variable is not defined？","commit_id":"9c86ddbb7c77173023f589fe47705d3963916f89"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7a39a960d77d6a9bb9c49d3d5378ee2ecc040afb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"        enabled: \"{{ enable_keystone }}\""},{"line_number":16,"context_line":"        mode: \"http\""},{"line_number":17,"context_line":"        external: false"},{"line_number":18,"context_line":"        tls_backend: \"{{ keystone_internal_tls_backend }}\""},{"line_number":19,"context_line":"        port: \"{{ keystone_internal_port }}\""},{"line_number":20,"context_line":"        listen_port: \"{{ keystone_public_listen_port }}\""},{"line_number":21,"context_line":"        backend_http_extra: \"{{ [\u0027balance source\u0027] if enable_keystone_federation | bool else [] }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"108a374c_dd379926","line":18,"in_reply_to":"c4d20932_91f4bd5a","updated":"2022-01-04 14:45:24.000000000","message":"Done","commit_id":"9c86ddbb7c77173023f589fe47705d3963916f89"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"598f80dbe528352be558d323a3185a426296945f","unresolved":true,"context_lines":[{"line_number":17,"context_line":"        external: false"},{"line_number":18,"context_line":"        tls_backend: \"{{ keystone_internal_tls_backend }}\""},{"line_number":19,"context_line":"        port: \"{{ keystone_internal_port }}\""},{"line_number":20,"context_line":"        listen_port: \"{{ keystone_public_listen_port }}\""},{"line_number":21,"context_line":"        backend_http_extra: \"{{ [\u0027balance source\u0027] if enable_keystone_federation | bool else [] }}\""},{"line_number":22,"context_line":"      keystone_external:"},{"line_number":23,"context_line":"        enabled: \"{{ enable_keystone }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"31dc2f1d_4a37f775","line":20,"updated":"2022-01-04 14:22:24.000000000","message":"I think you wanted to change this line instead of the tls one?","commit_id":"9c86ddbb7c77173023f589fe47705d3963916f89"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7a39a960d77d6a9bb9c49d3d5378ee2ecc040afb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        external: false"},{"line_number":18,"context_line":"        tls_backend: \"{{ keystone_internal_tls_backend }}\""},{"line_number":19,"context_line":"        port: \"{{ keystone_internal_port }}\""},{"line_number":20,"context_line":"        listen_port: \"{{ keystone_public_listen_port }}\""},{"line_number":21,"context_line":"        backend_http_extra: \"{{ [\u0027balance source\u0027] if enable_keystone_federation | bool else [] }}\""},{"line_number":22,"context_line":"      keystone_external:"},{"line_number":23,"context_line":"        enabled: \"{{ enable_keystone }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"0dc72521_669a6572","line":20,"in_reply_to":"31dc2f1d_4a37f775","updated":"2022-01-04 14:45:24.000000000","message":"Actually I just wanted to change port (which is HAProxy frontend port).","commit_id":"9c86ddbb7c77173023f589fe47705d3963916f89"}],"ansible/roles/loadbalancer/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"kolla_externally_managed_cert: False"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"haproxy_single_external_frontend: False"},{"line_number":98,"context_line":"haproxy_single_external_frontend_mode: \"fqdn\""}],"source_content_type":"text/x-yaml","patch_set":37,"id":"47e12485_55a83fe0","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":32},"updated":"2022-03-11 17:28:15.000000000","message":"Does it also need a default in the haproxy-config role?","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"146cf1895be115dbc6832f31ef86e21ba134f5c0","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"kolla_externally_managed_cert: False"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"haproxy_single_external_frontend: False"},{"line_number":98,"context_line":"haproxy_single_external_frontend_mode: \"fqdn\""}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9ff092d0_3f31e4a6","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":32},"in_reply_to":"47e12485_55a83fe0","updated":"2022-03-21 14:04:38.000000000","message":"Done","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"}],"ansible/roles/loadbalancer/templates/haproxy/haproxy.json.j2":[{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7c9dd891d4cfddf40567234b49f81fd7d17d5978","unresolved":true,"context_lines":[{"line_number":25,"context_line":"            \"owner\": \"root\","},{"line_number":26,"context_line":"            \"perm\": \"0600\","},{"line_number":27,"context_line":"            \"optional\": {{ (not haproxy_single_external_frontend | bool) | string | lower }}"},{"line_number":28,"context_line":"        },        "},{"line_number":29,"context_line":"        {"},{"line_number":30,"context_line":"            \"source\": \"{{ container_config_directory }}/haproxy.pem\","},{"line_number":31,"context_line":"            \"dest\": \"/etc/haproxy/haproxy.pem\","}],"source_content_type":"text/x-jinja2","patch_set":55,"id":"9ab9d284_6da1e427","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":18},"updated":"2022-05-23 13:58:00.000000000","message":"whitespace","commit_id":"fc098d05e2e6e85d3abf604fae87329697489d7b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8c1d0c1b88fe111ff218f71ed0c1b5299a577caa","unresolved":false,"context_lines":[{"line_number":25,"context_line":"            \"owner\": \"root\","},{"line_number":26,"context_line":"            \"perm\": \"0600\","},{"line_number":27,"context_line":"            \"optional\": {{ (not haproxy_single_external_frontend | bool) | string | lower }}"},{"line_number":28,"context_line":"        },        "},{"line_number":29,"context_line":"        {"},{"line_number":30,"context_line":"            \"source\": \"{{ container_config_directory }}/haproxy.pem\","},{"line_number":31,"context_line":"            \"dest\": \"/etc/haproxy/haproxy.pem\","}],"source_content_type":"text/x-jinja2","patch_set":55,"id":"557ea13f_6bd58caf","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":18},"in_reply_to":"9ab9d284_6da1e427","updated":"2023-01-16 10:00:10.000000000","message":"Done","commit_id":"fc098d05e2e6e85d3abf604fae87329697489d7b"}],"ansible/roles/loadbalancer/templates/haproxy/haproxy_external_frontend.cfg.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fe0450895c833b306a74b541d2aa1d42bb4826a7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"frontend external_frontend"},{"line_number":2,"context_line":"    mode http"},{"line_number":3,"context_line":"    http-request del-header X-Forwarded-Proto"},{"line_number":4,"context_line":"    option httplog"},{"line_number":5,"context_line":"    option forwardfor"}],"source_content_type":"text/x-jinja2","patch_set":40,"id":"994fbe3d_dbf94176","line":2,"range":{"start_line":2,"start_character":9,"end_line":2,"end_character":13},"updated":"2022-03-22 12:30:57.000000000","message":"The only TCP mode external service is for outward RabbitMQ. Unsure what would happen if it was enabled.","commit_id":"f3b4e0d09459e0823671eee3d7b86f0f9a5f4015"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0b4c4d9fc9fbf8b0e3fad8d29396fefebe29c66d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"frontend external_frontend"},{"line_number":2,"context_line":"    mode http"},{"line_number":3,"context_line":"    http-request del-header X-Forwarded-Proto"},{"line_number":4,"context_line":"    option httplog"},{"line_number":5,"context_line":"    option forwardfor"}],"source_content_type":"text/x-jinja2","patch_set":40,"id":"9e115c18_038c26bc","line":2,"range":{"start_line":2,"start_character":9,"end_line":2,"end_character":13},"in_reply_to":"994fbe3d_dbf94176","updated":"2022-03-31 13:35:31.000000000","message":"Done","commit_id":"f3b4e0d09459e0823671eee3d7b86f0f9a5f4015"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"fe0450895c833b306a74b541d2aa1d42bb4826a7","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    option httplog"},{"line_number":5,"context_line":"    option forwardfor"},{"line_number":6,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":7,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":40,"id":"4e644a3b_74669554","line":7,"updated":"2022-03-22 12:30:57.000000000","message":"I think we\u0027re missing some features here:\n\n* horizon HTTP redirect\n* frontend_http_extra","commit_id":"f3b4e0d09459e0823671eee3d7b86f0f9a5f4015"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e1bece337842502460b7d1a66c6de7db6cd6261d","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    option httplog"},{"line_number":5,"context_line":"    option forwardfor"},{"line_number":6,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":7,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":40,"id":"9409b1f1_db033ee0","line":7,"in_reply_to":"4e644a3b_74669554","updated":"2023-05-29 17:05:50.000000000","message":"frontend_http_extra covered in haproxy_external_single_frontend_options (we can\u0027t distinct by service in this scenario)","commit_id":"f3b4e0d09459e0823671eee3d7b86f0f9a5f4015"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"291a0b320b7d8e399b0cb99da0e99b26dacc2ee1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    option httplog"},{"line_number":5,"context_line":"    option forwardfor"},{"line_number":6,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":7,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":40,"id":"6394ee45_e2952e31","line":7,"in_reply_to":"9409b1f1_db033ee0","updated":"2023-05-30 04:04:45.000000000","message":"horizon redirect is there, if using 443 on external_frontend: https://87a0fe2bf0e6c5e39c7f-478de6dffbc7939c063d04512c6aa14e.ssl.cf1.rackcdn.com/841239/23/check/kolla-ansible-rocky9-haproxy-fqdn/4758d9f/primary/logs/kolla_configs/haproxy/services.d/horizon.cfg","commit_id":"f3b4e0d09459e0823671eee3d7b86f0f9a5f4015"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"0497e00bea9feaf56f1242ab2c48d62356c33576","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    option httplog"},{"line_number":7,"context_line":"    option forwardfor"},{"line_number":8,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":9,"context_line":"    {% if enable_horizon|bool and kolla_enable_tls_external|bool %}"},{"line_number":10,"context_line":"    redirect scheme https code 301 if !{ ssl_fc }"},{"line_number":11,"context_line":"    {% endif %}"},{"line_number":12,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {{ external_tls_bind_info }}"}],"source_content_type":"text/x-jinja2","patch_set":41,"id":"fde40823_9eac65b3","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":15},"updated":"2022-03-23 08:21:30.000000000","message":"This would need to be on a different frontend, port 80.\n\nThe horizon_redirect section has a mode\u003dredirect. If we use single frontend only where mode\u003dhttp, would this \"just work\"?","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0b4c4d9fc9fbf8b0e3fad8d29396fefebe29c66d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    option httplog"},{"line_number":7,"context_line":"    option forwardfor"},{"line_number":8,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":9,"context_line":"    {% if enable_horizon|bool and kolla_enable_tls_external|bool %}"},{"line_number":10,"context_line":"    redirect scheme https code 301 if !{ ssl_fc }"},{"line_number":11,"context_line":"    {% endif %}"},{"line_number":12,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {{ external_tls_bind_info }}"}],"source_content_type":"text/x-jinja2","patch_set":41,"id":"b3034b85_ae2cc860","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":15},"in_reply_to":"ca60edb2_f9eb3c15","updated":"2022-03-31 13:35:31.000000000","message":"Done","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c4ec884cda4a0b6fce743d749ea1f6230dfb8e03","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    option httplog"},{"line_number":7,"context_line":"    option forwardfor"},{"line_number":8,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":9,"context_line":"    {% if enable_horizon|bool and kolla_enable_tls_external|bool %}"},{"line_number":10,"context_line":"    redirect scheme https code 301 if !{ ssl_fc }"},{"line_number":11,"context_line":"    {% endif %}"},{"line_number":12,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {{ external_tls_bind_info }}"}],"source_content_type":"text/x-jinja2","patch_set":41,"id":"ca60edb2_f9eb3c15","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":15},"in_reply_to":"fde40823_9eac65b3","updated":"2022-03-25 10:54:54.000000000","message":"Let me test.","commit_id":"ff5d5237f645202660d7cc457576d0397ca44e7d"}],"ansible/roles/loadbalancer/templates/haproxy/haproxy_main.cfg.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":61,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    {% if haproxy_single_external_frontend_mode \u003d\u003d \u0027fqdn\u0027 %}"},{"line_number":64,"context_line":"    {% for service in haproxy_single_frontend_services %}"},{"line_number":65,"context_line":"    {% if service.enabled | bool %}"},{"line_number":66,"context_line":"    acl domain-{{ service.name }}_external hdr(host) -i {{ service.external_fqdn }}"},{"line_number":67,"context_line":"    use_backend {{ service.name }}_external_back if domain-{{ service.name }}_external"},{"line_number":68,"context_line":"    {% endif %}"},{"line_number":69,"context_line":"    {% endfor %}"},{"line_number":70,"context_line":"    {% endif %}"},{"line_number":71,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"5db65485_c2ca93f2","line":70,"range":{"start_line":63,"start_character":0,"end_line":70,"end_character":15},"updated":"2022-03-11 17:28:15.000000000","message":"Could it be done automatically using the existing haproxy-config role? Write out a snipped for each backend then concatenate them all. I suppose we don\u0027t have the FQDN passed to that role currently.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"146cf1895be115dbc6832f31ef86e21ba134f5c0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":61,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    {% if haproxy_single_external_frontend_mode \u003d\u003d \u0027fqdn\u0027 %}"},{"line_number":64,"context_line":"    {% for service in haproxy_single_frontend_services %}"},{"line_number":65,"context_line":"    {% if service.enabled | bool %}"},{"line_number":66,"context_line":"    acl domain-{{ service.name }}_external hdr(host) -i {{ service.external_fqdn }}"},{"line_number":67,"context_line":"    use_backend {{ service.name }}_external_back if domain-{{ service.name }}_external"},{"line_number":68,"context_line":"    {% endif %}"},{"line_number":69,"context_line":"    {% endfor %}"},{"line_number":70,"context_line":"    {% endif %}"},{"line_number":71,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"bd66197c_9ccb0c85","line":70,"range":{"start_line":63,"start_character":0,"end_line":70,"end_character":15},"in_reply_to":"5db65485_c2ca93f2","updated":"2022-03-21 14:04:38.000000000","message":"Done","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    mode http"},{"line_number":52,"context_line":"    monitor-uri /"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"{% if haproxy_single_external_frontend %}"},{"line_number":55,"context_line":"frontend external_frontend"},{"line_number":56,"context_line":"    mode http"},{"line_number":57,"context_line":"    http-request del-header X-Forwarded-Proto"},{"line_number":58,"context_line":"    option httplog"},{"line_number":59,"context_line":"    option forwardfor"},{"line_number":60,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":61,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    {% if haproxy_single_external_frontend_mode \u003d\u003d \u0027fqdn\u0027 %}"},{"line_number":64,"context_line":"    {% for service in haproxy_single_frontend_services %}"},{"line_number":65,"context_line":"    {% if service.enabled | bool %}"},{"line_number":66,"context_line":"    acl domain-{{ service.name }}_external hdr(host) -i {{ service.external_fqdn }}"},{"line_number":67,"context_line":"    use_backend {{ service.name }}_external_back if domain-{{ service.name }}_external"},{"line_number":68,"context_line":"    {% endif %}"},{"line_number":69,"context_line":"    {% endfor %}"},{"line_number":70,"context_line":"    {% endif %}"},{"line_number":71,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"64670db6_f1437ba4","line":71,"range":{"start_line":54,"start_character":0,"end_line":71,"end_character":11},"updated":"2022-03-11 17:28:15.000000000","message":"I\u0027m tempted to suggest pulling this fiddly bit out into a separate change.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"39eb19ab80b8d28c062750c7e553f80de70793a8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    mode http"},{"line_number":52,"context_line":"    monitor-uri /"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"{% if haproxy_single_external_frontend %}"},{"line_number":55,"context_line":"frontend external_frontend"},{"line_number":56,"context_line":"    mode http"},{"line_number":57,"context_line":"    http-request del-header X-Forwarded-Proto"},{"line_number":58,"context_line":"    option httplog"},{"line_number":59,"context_line":"    option forwardfor"},{"line_number":60,"context_line":"    http-request set-header X-Forwarded-Proto https if { ssl_fc }"},{"line_number":61,"context_line":"    bind {{ kolla_external_vip_address }}:{{ kolla_external_single_frontend_public_port }} {% if kolla_enable_tls_external | bool %}ssl crt /etc/haproxy/haproxy.pem{% endif %}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    {% if haproxy_single_external_frontend_mode \u003d\u003d \u0027fqdn\u0027 %}"},{"line_number":64,"context_line":"    {% for service in haproxy_single_frontend_services %}"},{"line_number":65,"context_line":"    {% if service.enabled | bool %}"},{"line_number":66,"context_line":"    acl domain-{{ service.name }}_external hdr(host) -i {{ service.external_fqdn }}"},{"line_number":67,"context_line":"    use_backend {{ service.name }}_external_back if domain-{{ service.name }}_external"},{"line_number":68,"context_line":"    {% endif %}"},{"line_number":69,"context_line":"    {% endfor %}"},{"line_number":70,"context_line":"    {% endif %}"},{"line_number":71,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":37,"id":"7ebbfd0c_83454753","line":71,"range":{"start_line":54,"start_character":0,"end_line":71,"end_character":11},"in_reply_to":"64670db6_f1437ba4","updated":"2022-03-21 15:12:51.000000000","message":"No fiddly bit anymore.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"}],"ansible/roles/loadbalancer/vars/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7c5aef6bf486891bd24c342d5594e4b17cc5b080","unresolved":true,"context_lines":[{"line_number":5,"context_line":"  - { name: \"aodh_api\", external_fqdn: \"{{ aodh_external_fqdn }}\", enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":6,"context_line":"  - { name: \"barbican_api\", external_fqdn: \"{{ barbican_external_fqdn }}\", enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":7,"context_line":"  - { name: \"blazar_api\", external_fqdn: \"{{ blazar_external_fqdn }}\", enabled: \"{{ enable_blazar | bool }}\" }"},{"line_number":8,"context_line":"  - { name: \"radosgw\", external_fqdn: \"{{ kolla_external_fqdn }}\", enabled: \"false\" }"},{"line_number":9,"context_line":"  - { name: \"cinder_api\", external_fqdn: \"{{ cinder_external_fqdn }}\", enabled: \"{{ enable_cinder | bool }}\" }"},{"line_number":10,"context_line":"  - { name: \"cloudkitty_api\", external_fqdn: \"{{ cloudkitty_external_fqdn }}\", enabled: \"{{ enable_cloudkitty | bool }}\" }"},{"line_number":11,"context_line":"  - { name: \"designate_api\", external_fqdn: \"{{ designate_external_fqdn }}\", enabled: \"{{ enable_designate | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"4563363f_f88e8cc7","line":8,"range":{"start_line":8,"start_character":77,"end_line":8,"end_character":83},"updated":"2022-02-23 16:55:20.000000000","message":"TODO","commit_id":"8eaf9d7b140bd2cc860dec3741732a87b12ff4fd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"57d3d7868b0b2a7e69854490886bf546c9eeb15d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  - { name: \"aodh_api\", external_fqdn: \"{{ aodh_external_fqdn }}\", enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":6,"context_line":"  - { name: \"barbican_api\", external_fqdn: \"{{ barbican_external_fqdn }}\", enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":7,"context_line":"  - { name: \"blazar_api\", external_fqdn: \"{{ blazar_external_fqdn }}\", enabled: \"{{ enable_blazar | bool }}\" }"},{"line_number":8,"context_line":"  - { name: \"radosgw\", external_fqdn: \"{{ kolla_external_fqdn }}\", enabled: \"false\" }"},{"line_number":9,"context_line":"  - { name: \"cinder_api\", external_fqdn: \"{{ cinder_external_fqdn }}\", enabled: \"{{ enable_cinder | bool }}\" }"},{"line_number":10,"context_line":"  - { name: \"cloudkitty_api\", external_fqdn: \"{{ cloudkitty_external_fqdn }}\", enabled: \"{{ enable_cloudkitty | bool }}\" }"},{"line_number":11,"context_line":"  - { name: \"designate_api\", external_fqdn: \"{{ designate_external_fqdn }}\", enabled: \"{{ enable_designate | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"710e5b8a_12d86946","line":8,"range":{"start_line":8,"start_character":77,"end_line":8,"end_character":83},"in_reply_to":"4563363f_f88e8cc7","updated":"2023-02-28 11:26:35.000000000","message":"Done","commit_id":"8eaf9d7b140bd2cc860dec3741732a87b12ff4fd"}],"ansible/roles/nova/defaults/main.yml":[{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7c9dd891d4cfddf40567234b49f81fd7d17d5978","unresolved":true,"context_lines":[{"line_number":186,"context_line":"nova_services_require_policy_json:"},{"line_number":187,"context_line":"  - nova-api"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"nova_enable_external_metadata: \"no\""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"####################"},{"line_number":192,"context_line":"# Keystone"}],"source_content_type":"text/x-yaml","patch_set":55,"id":"6781f403_921d6f84","side":"PARENT","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":35},"updated":"2022-05-23 13:58:00.000000000","message":"why removed from defaults and placed to groups_vars/all.yml ? that\u0027s not needed.","commit_id":"5645a4c008b9dc8cbf97ca8e61fd70cc2fb55b0e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"57d3d7868b0b2a7e69854490886bf546c9eeb15d","unresolved":false,"context_lines":[{"line_number":186,"context_line":"nova_services_require_policy_json:"},{"line_number":187,"context_line":"  - nova-api"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"nova_enable_external_metadata: \"no\""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"####################"},{"line_number":192,"context_line":"# Keystone"}],"source_content_type":"text/x-yaml","patch_set":55,"id":"8db7f275_94528897","side":"PARENT","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":35},"in_reply_to":"6781f403_921d6f84","updated":"2023-02-28 11:26:35.000000000","message":"Done","commit_id":"5645a4c008b9dc8cbf97ca8e61fd70cc2fb55b0e"}],"ansible/roles/opensearch/defaults/main.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"20c761851750c7f627d31f13a5ff1eb596fb7f67","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        enabled: \"{{ enable_opensearch_dashboards_external | bool }}\""},{"line_number":41,"context_line":"        mode: \"http\""},{"line_number":42,"context_line":"        external: true"},{"line_number":43,"context_line":"        external_fqdn: \"{{ opensearch_external_fqdn }}\""},{"line_number":44,"context_line":"        port: \"{{ opensearch_dashboards_port_external }}\""},{"line_number":45,"context_line":"        auth_user: \"{{ opensearch_dashboards_user }}\""},{"line_number":46,"context_line":"        auth_pass: \"{{ opensearch_dashboards_password }}\""}],"source_content_type":"text/x-yaml","patch_set":73,"id":"e5e6ccb6_a6dba827","line":43,"range":{"start_line":43,"start_character":27,"end_line":43,"end_character":51},"updated":"2023-05-26 12:32:12.000000000","message":"This should be opensearch_dashboards_external_fqdn","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e094d15eba8e47866da5e3a4206f4d9fb53e2c6f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        enabled: \"{{ enable_opensearch_dashboards_external | bool }}\""},{"line_number":41,"context_line":"        mode: \"http\""},{"line_number":42,"context_line":"        external: true"},{"line_number":43,"context_line":"        external_fqdn: \"{{ opensearch_external_fqdn }}\""},{"line_number":44,"context_line":"        port: \"{{ opensearch_dashboards_port_external }}\""},{"line_number":45,"context_line":"        auth_user: \"{{ opensearch_dashboards_user }}\""},{"line_number":46,"context_line":"        auth_pass: \"{{ opensearch_dashboards_password }}\""}],"source_content_type":"text/x-yaml","patch_set":73,"id":"ba3a6c18_57a6e8bc","line":43,"range":{"start_line":43,"start_character":27,"end_line":43,"end_character":51},"in_reply_to":"e5e6ccb6_a6dba827","updated":"2023-05-29 17:04:32.000000000","message":"Done","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"}],"kolla_ansible/kolla_url.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"0754a952b3633ae5ab7eff9fbef72dd3e5093c07","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    :param fqdn:"},{"line_number":24,"context_line":"    :param protocol: http, ws, https or wss"},{"line_number":25,"context_line":"    :param port: port (omits 80 on http and 443 on https in output)"},{"line_number":26,"context_line":"    :param path: path - optional"},{"line_number":27,"context_line":"    :returns: string with url"},{"line_number":28,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":73,"id":"51e5356e_ba6457ee","line":25,"updated":"2023-04-19 08:40:05.000000000","message":"This should mention ws/wss too.","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e094d15eba8e47866da5e3a4206f4d9fb53e2c6f","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    :param fqdn:"},{"line_number":24,"context_line":"    :param protocol: http, ws, https or wss"},{"line_number":25,"context_line":"    :param port: port (omits 80 on http and 443 on https in output)"},{"line_number":26,"context_line":"    :param path: path - optional"},{"line_number":27,"context_line":"    :returns: string with url"},{"line_number":28,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":73,"id":"b6403dda_0bb24fc1","line":25,"in_reply_to":"51e5356e_ba6457ee","updated":"2023-05-29 17:04:32.000000000","message":"Done","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"0754a952b3633ae5ab7eff9fbef72dd3e5093c07","unresolved":true,"context_lines":[{"line_number":33,"context_line":"       (protocol \u003d\u003d \u0027https\u0027 and port \u003d\u003d 443) or"},{"line_number":34,"context_line":"       (protocol \u003d\u003d \u0027ws\u0027 and port \u003d\u003d 80) or"},{"line_number":35,"context_line":"       (protocol \u003d\u003d \u0027wss\u0027 and port \u003d\u003d 443)):"},{"line_number":36,"context_line":"        if path !\u003d \u0027\u0027:"},{"line_number":37,"context_line":"            address \u003d f\"{protocol}://{fqdn}{path}\""},{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            address \u003d f\"{protocol}://{fqdn}\""}],"source_content_type":"text/x-python","patch_set":73,"id":"c6f1d24f_551094a8","line":36,"updated":"2023-04-19 08:40:05.000000000","message":"This conditional seems unneeded, if path\u003d\u003d\u0027\u0027 the result will still be the same.","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e094d15eba8e47866da5e3a4206f4d9fb53e2c6f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"       (protocol \u003d\u003d \u0027https\u0027 and port \u003d\u003d 443) or"},{"line_number":34,"context_line":"       (protocol \u003d\u003d \u0027ws\u0027 and port \u003d\u003d 80) or"},{"line_number":35,"context_line":"       (protocol \u003d\u003d \u0027wss\u0027 and port \u003d\u003d 443)):"},{"line_number":36,"context_line":"        if path !\u003d \u0027\u0027:"},{"line_number":37,"context_line":"            address \u003d f\"{protocol}://{fqdn}{path}\""},{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            address \u003d f\"{protocol}://{fqdn}\""}],"source_content_type":"text/x-python","patch_set":73,"id":"07ffef93_42f6abc0","line":36,"in_reply_to":"c6f1d24f_551094a8","updated":"2023-05-29 17:04:32.000000000","message":"Done","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"0754a952b3633ae5ab7eff9fbef72dd3e5093c07","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            address \u003d f\"{protocol}://{fqdn}\""},{"line_number":40,"context_line":"    else:"},{"line_number":41,"context_line":"        if path !\u003d \u0027\u0027:"},{"line_number":42,"context_line":"            address \u003d f\"{protocol}://{fqdn}:{port}{path}\""},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            address \u003d f\"{protocol}://{fqdn}:{port}\""}],"source_content_type":"text/x-python","patch_set":73,"id":"78be8815_e164f19b","line":41,"updated":"2023-04-19 08:40:05.000000000","message":"dito","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e094d15eba8e47866da5e3a4206f4d9fb53e2c6f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            address \u003d f\"{protocol}://{fqdn}\""},{"line_number":40,"context_line":"    else:"},{"line_number":41,"context_line":"        if path !\u003d \u0027\u0027:"},{"line_number":42,"context_line":"            address \u003d f\"{protocol}://{fqdn}:{port}{path}\""},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            address \u003d f\"{protocol}://{fqdn}:{port}\""}],"source_content_type":"text/x-python","patch_set":73,"id":"bba89efb_b65d2afe","line":41,"in_reply_to":"78be8815_e164f19b","updated":"2023-05-29 17:04:32.000000000","message":"Done","commit_id":"a9cf45cba681b4e104e5f0a05211a82d330b8f53"}],"kolla_ansible/tests/unit/test_address_filters.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"c5fd14852621c23b5817597c6f2f1b67b1d4e6c9","unresolved":true,"context_lines":[{"line_number":317,"context_line":"        self.assertEqual(addr, kolla_address(context, \u0027api\u0027))"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"class TestKollaUrlFilter(unittest.TestCase):"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def test_https_443(self):"},{"line_number":323,"context_line":"        protocol \u003d \u0027https\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"b8d889de_ca0a64c1","line":320,"updated":"2022-03-11 17:28:15.000000000","message":"Needs some tests without paths.","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"146cf1895be115dbc6832f31ef86e21ba134f5c0","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        self.assertEqual(addr, kolla_address(context, \u0027api\u0027))"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"class TestKollaUrlFilter(unittest.TestCase):"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def test_https_443(self):"},{"line_number":323,"context_line":"        protocol \u003d \u0027https\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"06d54cda_d9ac5846","line":320,"in_reply_to":"b8d889de_ca0a64c1","updated":"2022-03-21 14:04:38.000000000","message":"Done","commit_id":"6d9d98c72476080803683760b401cc3e14075c9d"}]}
