)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29268,"name":"Matthew Heler","email":"matthew.heler@hotmail.com","username":"mheler"},"change_message_id":"12c743e0febd5a4eb9b2bbf4ffed4fd4811965d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"af44c02e_c8fac1f2","updated":"2025-02-26 21:52:59.000000000","message":"Seen the same issue, but also with Cinder when redis is used for the coordination backend.","commit_id":"5b811517eafb2e8016bcca4295c8f77cf7d88be5"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"030b2a10c5c57b7669e47687925ca7bb619d72be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4c8a5662_11fb4331","in_reply_to":"632ae8c9_6a6b3497","updated":"2025-03-05 10:04:05.000000000","message":"Done","commit_id":"5b811517eafb2e8016bcca4295c8f77cf7d88be5"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"dada063f1ebf5c939211dd418fc7e049941f6a1a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"632ae8c9_6a6b3497","in_reply_to":"af44c02e_c8fac1f2","updated":"2025-02-26 22:10:30.000000000","message":"hmm, nope cinder has sentinel in connection string ..jobboard didn\u0027t have ...","commit_id":"5b811517eafb2e8016bcca4295c8f77cf7d88be5"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"6877fd2699cb5dd81642442295e8d42402b7289c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"199e4bca_3026d8f9","updated":"2025-03-12 08:54:38.000000000","message":"also I assume you verified this change locally? do we need a multinode octavia job for a scenario like this?","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ee68db2fd10695060d85c69110eab17a157c3664","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d3cb0f39_965461b9","updated":"2025-03-12 08:53:28.000000000","message":"just a minor question inline","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"19ab09f98c855042708832bf81ba4726e87d7ea2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ec1dc36e_dae82055","updated":"2025-03-13 18:56:43.000000000","message":"And I\u0027ve tested this locally of course on my stack.","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"db85fa901485abb70d05cea23d48e6468ff51d66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8957d6e0_2543fb02","updated":"2025-03-14 10:08:22.000000000","message":"recheck fix for podman has merged, not sure about all the other failures yet","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"9bed38712ded9d2000fa4a9881e0ff51c05f34b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"153093f3_0aeba34a","updated":"2025-03-20 10:28:48.000000000","message":"any second +2  ?","commit_id":"ce9cba2cbc92fb4dee1d9605c45073631fc66af3"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fa9bb5aac80d1147c2c15df256e28c85fc7052d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"46f4a9a1_a43fff5d","updated":"2025-03-19 08:18:09.000000000","message":"recheck CI should be fixed","commit_id":"ce9cba2cbc92fb4dee1d9605c45073631fc66af3"}],"ansible/roles/octavia/templates/octavia.conf.j2":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"ef71cd084d731a1b43bec61aa1618be799e68d13","unresolved":true,"context_lines":[{"line_number":159,"context_line":"[task_flow]"},{"line_number":160,"context_line":"persistence_connection \u003d mysql+pymysql://{{ octavia_persistence_database_user }}:{{ octavia_persistence_database_password }}@{{ octavia_persistence_database_address }}/{{ octavia_persistence_database_name }}"},{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel_ssl_options \u003d"},{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"26b1ea52_4a24f732","line":162,"range":{"start_line":162,"start_character":36,"end_line":162,"end_character":37},"updated":"2025-03-13 11:19:05.000000000","message":"why this empty? this is the dict, may be it should be {} ?\nhttps://docs.openstack.org/octavia/latest/configuration/configref.html#task-flow","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"67a0ef6c71b3be10ead7183f133cf46a83f2d353","unresolved":false,"context_lines":[{"line_number":159,"context_line":"[task_flow]"},{"line_number":160,"context_line":"persistence_connection \u003d mysql+pymysql://{{ octavia_persistence_database_user }}:{{ octavia_persistence_database_password }}@{{ octavia_persistence_database_address }}/{{ octavia_persistence_database_name }}"},{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel_ssl_options \u003d"},{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"fabdf719_226edda8","line":162,"range":{"start_line":162,"start_character":36,"end_line":162,"end_character":37},"in_reply_to":"26b1ea52_4a24f732","updated":"2025-03-13 17:07:43.000000000","message":"Fixed to be dict and overrided default value. Default value is not working \n\n```\n2025-03-13 16:09:43.298 6 INFO cotyledon._service_manager [-] Child 88 exited with status 2\n2025-03-13 16:09:43.321 92 INFO octavia.controller.queue.v2.consumer [-] Starting V2 consumer...\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils [-] Unhandled exception: TypeError: __init__() got an unexpected keyword argument \u0027ssl_keyfile\u0027\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils Traceback (most recent call last):\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1415, in get_connection\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     connection \u003d self._available_connections.pop()\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils IndexError: pop from empty list\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils \n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils During handling of the above exception, another exception occurred:\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils \n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils Traceback (most recent call last):\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/cotyledon/_utils.py\", line 95, in exit_on_exception\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     yield\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/cotyledon/_service.py\", line 139, in _run\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     self.run()\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/octavia/controller/queue/v2/consumer.py\", line 55, in run\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     e.worker.services_controller.run_conductor(\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/octavia/common/base_taskflow.py\", line 208, in run_conductor\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     with self.driver.job_board(persistence) as board:\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/usr/lib/python3.9/contextlib.py\", line 117, in __enter__\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     return next(self.gen)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/taskflow/jobs/backends/__init__.py\", line 74, in backend\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     jb.connect()\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/fasteners/lock.py\", line 226, in wrapper\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     return f(self, *args, **kwargs)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/taskflow/jobs/backends/impl_redis.py\", line 680, in connect\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     self._client.ping()\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/commands/core.py\", line 1212, in ping\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     return self.execute_command(\"PING\", **kwargs)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/client.py\", line 559, in execute_command\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     return self._execute_command(*args, **options)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/client.py\", line 565, in _execute_command\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     conn \u003d self.connection or pool.get_connection(command_name, **options)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1417, in get_connection\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     connection \u003d self.make_connection()\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1463, in make_connection\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     return self.connection_class(**self.connection_kwargs)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/sentinel.py\", line 23, in __init__\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     super().__init__(**kwargs)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 684, in __init__\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils     super().__init__(**kwargs)\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils TypeError: __init__() got an unexpected keyword argument \u0027ssl_keyfile\u0027\n2025-03-13 16:09:43.617 92 ERROR cotyledon._utils \n2025-03-13 16:09:43.634 6 INFO cotyledon._service_manager [-] Child 92 exited with status 2\n2025-03-13 16:09:43.658 96 INFO octavia.controller.queue.v2.consumer [-] Starting V2 consumer...\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils [-] Unhandled exception: TypeError: __init__() got an unexpected keyword argument \u0027ssl_keyfile\u0027\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils Traceback (most recent call last):\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1415, in get_connection\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     connection \u003d self._available_connections.pop()\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils IndexError: pop from empty list\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils \n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils During handling of the above exception, another exception occurred:\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils \n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils Traceback (most recent call last):\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/cotyledon/_utils.py\", line 95, in exit_on_exception\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     yield\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/cotyledon/_service.py\", line 139, in _run\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     self.run()\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/octavia/controller/queue/v2/consumer.py\", line 55, in run\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     e.worker.services_controller.run_conductor(\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/octavia/common/base_taskflow.py\", line 208, in run_conductor\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     with self.driver.job_board(persistence) as board:\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/usr/lib/python3.9/contextlib.py\", line 117, in __enter__\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     return next(self.gen)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/taskflow/jobs/backends/__init__.py\", line 74, in backend\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     jb.connect()\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/fasteners/lock.py\", line 226, in wrapper\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     return f(self, *args, **kwargs)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/taskflow/jobs/backends/impl_redis.py\", line 680, in connect\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     self._client.ping()\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/commands/core.py\", line 1212, in ping\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     return self.execute_command(\"PING\", **kwargs)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/client.py\", line 559, in execute_command\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     return self._execute_command(*args, **options)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/client.py\", line 565, in _execute_command\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     conn \u003d self.connection or pool.get_connection(command_name, **options)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1417, in get_connection\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     connection \u003d self.make_connection()\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 1463, in make_connection\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     return self.connection_class(**self.connection_kwargs)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/sentinel.py\", line 23, in __init__\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     super().__init__(**kwargs)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils   File \"/var/lib/kolla/venv/lib/python3.9/site-packages/redis/connection.py\", line 684, in __init__\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils     super().__init__(**kwargs)\n2025-03-13 16:09:44.001 96 ERROR cotyledon._utils TypeError: __init__() got an unexpected keyword argument \u0027ssl_keyfile\u0027\n```","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"ef71cd084d731a1b43bec61aa1618be799e68d13","unresolved":true,"context_lines":[{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel_ssl_options \u003d"},{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d \"{{ redis_sentinel_port }}\""}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"b642ad86_9417c0cb","line":164,"range":{"start_line":164,"start_character":35,"end_line":164,"end_character":36},"updated":"2025-03-13 11:19:05.000000000","message":"ditto","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"67a0ef6c71b3be10ead7183f133cf46a83f2d353","unresolved":false,"context_lines":[{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel_ssl_options \u003d"},{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d \"{{ redis_sentinel_port }}\""}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"f3fb269a_e1f526fc","line":164,"range":{"start_line":164,"start_character":35,"end_line":164,"end_character":36},"in_reply_to":"b642ad86_9417c0cb","updated":"2025-03-13 17:07:43.000000000","message":"check above comment - same","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ee68db2fd10695060d85c69110eab17a157c3664","unresolved":true,"context_lines":[{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d \"{{ redis_sentinel_port }}\""},{"line_number":168,"context_line":"jobboard_backend_hosts \u003d {% for host in groups[\u0027redis\u0027] %}{{ \u0027api\u0027 | kolla_address(host) | put_address_in_context(\u0027url\u0027) }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":169,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"83ed821a_f9008d41","line":166,"updated":"2025-03-12 08:53:28.000000000","message":"why are you dropping the quotes here? aren\u0027t they needed in case the password contains a space or other weird characters?","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"67a0ef6c71b3be10ead7183f133cf46a83f2d353","unresolved":false,"context_lines":[{"line_number":163,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d \"{{ redis_sentinel_port }}\""},{"line_number":168,"context_line":"jobboard_backend_hosts \u003d {% for host in groups[\u0027redis\u0027] %}{{ \u0027api\u0027 | kolla_address(host) | put_address_in_context(\u0027url\u0027) }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":169,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"a638d1d0_01864635","line":166,"in_reply_to":"83ed821a_f9008d41","updated":"2025-03-13 17:07:43.000000000","message":"Because I am following what is standard in all others configs where we are not using \"\". If we want to support passes with spaces, we should do it also in all other confs. Moreover, kolla-genpwd generating passwords without spaces of course. And generating passwords are covered by kolla-ansible documentation. Marking resolved.","commit_id":"b01cfb18c16dbe871ffde017a83794ddbc022092"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0f2e46b1873895db334f27bcccc2fe7505bad73b","unresolved":true,"context_lines":[{"line_number":159,"context_line":"[task_flow]"},{"line_number":160,"context_line":"persistence_connection \u003d mysql+pymysql://{{ octavia_persistence_database_user }}:{{ octavia_persistence_database_password }}@{{ octavia_persistence_database_address }}/{{ octavia_persistence_database_name }}"},{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":163,"context_line":"jobboard_redis_sentinel_ssl_options \u003d ssl:False"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d ssl:False"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"}],"source_content_type":"text/x-jinja2","patch_set":7,"id":"ae275b29_74adc902","line":162,"updated":"2025-03-17 09:21:52.000000000","message":"Can we sort that a bit more alphabetically?","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"56ae80ad03b3f2186994ef154b4cf45ce94fce6f","unresolved":false,"context_lines":[{"line_number":159,"context_line":"[task_flow]"},{"line_number":160,"context_line":"persistence_connection \u003d mysql+pymysql://{{ octavia_persistence_database_user }}:{{ octavia_persistence_database_password }}@{{ octavia_persistence_database_address }}/{{ octavia_persistence_database_name }}"},{"line_number":161,"context_line":"jobboard_enabled \u003d true"},{"line_number":162,"context_line":"jobboard_redis_sentinel \u003d kolla"},{"line_number":163,"context_line":"jobboard_redis_sentinel_ssl_options \u003d ssl:False"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d ssl:False"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"}],"source_content_type":"text/x-jinja2","patch_set":7,"id":"25fd5214_e372b21a","line":162,"in_reply_to":"ae275b29_74adc902","updated":"2025-03-18 11:50:44.000000000","message":"Done","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"e027668d32c819e04826cdd4ca4ccbbc2de5db4a","unresolved":true,"context_lines":[{"line_number":163,"context_line":"jobboard_redis_sentinel_ssl_options \u003d ssl:False"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d ssl:False"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d {{ redis_sentinel_port }}"},{"line_number":168,"context_line":"jobboard_backend_hosts \u003d {% for host in groups[\u0027redis\u0027] %}{{ \u0027api\u0027 | kolla_address(host) | put_address_in_context(\u0027url\u0027) }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":169,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":7,"id":"c02a8c1d_f32444b8","line":166,"range":{"start_line":166,"start_character":28,"end_line":166,"end_character":55},"updated":"2025-03-14 12:26:15.000000000","message":"The password value should be quoted, since it can contain special characters.","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fa9bb5aac80d1147c2c15df256e28c85fc7052d4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"jobboard_redis_sentinel_ssl_options \u003d ssl:False"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d ssl:False"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d {{ redis_sentinel_port }}"},{"line_number":168,"context_line":"jobboard_backend_hosts \u003d {% for host in groups[\u0027redis\u0027] %}{{ \u0027api\u0027 | kolla_address(host) | put_address_in_context(\u0027url\u0027) }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":169,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":7,"id":"e33f7b16_c7f135b2","line":166,"range":{"start_line":166,"start_character":28,"end_line":166,"end_character":55},"in_reply_to":"6d0ba134_f702905f","updated":"2025-03-19 08:18:09.000000000","message":"Acknowledged","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"c761435a14d23c6c21c92b88c82e5fa42fdb52ed","unresolved":true,"context_lines":[{"line_number":163,"context_line":"jobboard_redis_sentinel_ssl_options \u003d ssl:False"},{"line_number":164,"context_line":"jobboard_redis_backend_ssl_options \u003d ssl:False"},{"line_number":165,"context_line":"jobboard_backend_username \u003d default"},{"line_number":166,"context_line":"jobboard_backend_password \u003d {{ redis_master_password }}"},{"line_number":167,"context_line":"jobboard_backend_port \u003d {{ redis_sentinel_port }}"},{"line_number":168,"context_line":"jobboard_backend_hosts \u003d {% for host in groups[\u0027redis\u0027] %}{{ \u0027api\u0027 | kolla_address(host) | put_address_in_context(\u0027url\u0027) }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":169,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":7,"id":"6d0ba134_f702905f","line":166,"range":{"start_line":166,"start_character":28,"end_line":166,"end_character":55},"in_reply_to":"c02a8c1d_f32444b8","updated":"2025-03-14 14:15:56.000000000","message":"Hmm, okay, we can do it in another patch as followup. But for now I would prefer to leave it as is now without quotes so I can change all occurences in one patch then.\n\nAnd maybe a quick look at how it is everywhere at the moment:\n\n```\nansible/roles/aodh/templates/aodh.conf.j2:password \u003d {{ aodh_keystone_password }}\nansible/roles/aodh/templates/aodh.conf.j2:password \u003d {{ aodh_keystone_password }}\nansible/roles/barbican/templates/barbican.conf.j2:password \u003d {{ barbican_keystone_password }}\nansible/roles/blazar/templates/blazar.conf.j2:os_admin_password \u003d {{ blazar_keystone_password }}\nansible/roles/blazar/templates/blazar.conf.j2:password \u003d {{ blazar_keystone_password }}\nansible/roles/ceilometer/templates/ceilometer.conf.j2:password \u003d {{ ceilometer_keystone_password }}\nansible/roles/ceilometer/templates/ceilometer.conf.j2:host_password \u003d {{ vmware_vcenter_host_password }}\nansible/roles/cinder/templates/cinder.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/cinder/templates/cinder.conf.j2:password \u003d {{ cinder_keystone_password }}\nansible/roles/cinder/templates/cinder.conf.j2:vmware_host_password \u003d {{ vmware_vcenter_host_password }}\nansible/roles/cinder/templates/cinder.conf.j2:vmware_host_password \u003d {{ vmware_vcenter_host_password }}\nansible/roles/cloudkitty/templates/cloudkitty.conf.j2:password \u003d {{ cloudkitty_keystone_password }}\nansible/roles/cloudkitty/templates/cloudkitty.conf.j2:prometheus_password \u003d {{ prometheus_password }}\nansible/roles/cloudkitty/templates/cloudkitty.conf.j2:prometheus_password \u003d {{ prometheus_password }}\nansible/roles/common/templates/admin-openrc.sh.j2:export OS_PASSWORD\u003d\u0027{{ keystone_admin_password }}\u0027\nansible/roles/common/templates/admin-openrc-system.sh.j2:export OS_PASSWORD\u003d\u0027{{ keystone_admin_password }}\u0027\nansible/roles/common/templates/public-openrc-system.sh.j2:export OS_PASSWORD\u003d{{ keystone_admin_password }}\nansible/roles/common/templates/public-openrc.sh.j2:export OS_PASSWORD\u003d{{ keystone_admin_password }}\nansible/roles/cyborg/templates/cyborg.conf.j2:password \u003d {{ cyborg_keystone_password }}\nansible/roles/cyborg/templates/cyborg.conf.j2:password \u003d {{ placement_keystone_password }}\nansible/roles/cyborg/templates/cyborg.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/designate/templates/designate.conf.j2:password \u003d {{ designate_keystone_password }}\nansible/roles/glance/templates/glance-cache.conf.j2:admin_password \u003d {{ glance_keystone_password }}\nansible/roles/glance/templates/glance-api.conf.j2:password \u003d {{ glance_keystone_password }}\nansible/roles/glance/templates/glance-api.conf.j2:vmware_server_password \u003d {{ vmware_vcenter_host_password }}\nansible/roles/gnocchi/templates/gnocchi.conf.j2:password \u003d {{ gnocchi_keystone_password }}\nansible/roles/grafana/templates/grafana.ini.j2:password \u003d {{ grafana_database_password }}\nansible/roles/grafana/templates/grafana.ini.j2:admin_password \u003d {{ grafana_admin_password }}\nansible/roles/heat/templates/heat.conf.j2:stack_domain_admin_password \u003d {{ heat_domain_admin_password }}\nansible/roles/heat/templates/heat.conf.j2:password \u003d {{ heat_keystone_password }}\nansible/roles/heat/templates/heat.conf.j2:password \u003d {{ heat_keystone_password }}\nansible/roles/ironic/templates/ironic-inspector.conf.j2:password \u003d {{ ironic_inspector_keystone_password }}\nansible/roles/ironic/templates/ironic-inspector.conf.j2:password \u003d {{ ironic_inspector_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/ironic/templates/ironic.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:      --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/keystone/tasks/register_identity_providers.yml:    --os-password\u003d{{ openstack_auth.password }}\nansible/roles/kuryr/templates/kuryr.conf.j2:password \u003d {{ kuryr_keystone_password }}\nansible/roles/magnum/templates/magnum.conf.j2:password \u003d {{ magnum_keystone_password }}\nansible/roles/magnum/templates/magnum.conf.j2:password \u003d {{ magnum_keystone_password }}\nansible/roles/magnum/templates/magnum.conf.j2:trustee_domain_admin_password \u003d {{ magnum_keystone_password }}\nansible/roles/manila/templates/manila-share.conf.j2:password \u003d {{ glance_keystone_password }}\nansible/roles/manila/templates/manila-share.conf.j2:password \u003d {{ cinder_keystone_password }}\nansible/roles/manila/templates/manila-share.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/manila/templates/manila-share.conf.j2:password \u003d {{ neutron_keystone_password }}\nansible/roles/manila/templates/manila-share.conf.j2:service_instance_password \u003d {{ manila_service_instance_password }}\nansible/roles/manila/templates/manila-share.conf.j2:hitachi_hnas_password \u003d {{ hnas_password }}\nansible/roles/manila/templates/manila-share.conf.j2:{% if manila_glusterfs_ssh_password is defined %}glusterfs_server_password \u003d {{ manila_glusterfs_ssh_password }}{% endif %}\nansible/roles/manila/templates/manila.conf.j2:password \u003d {{ manila_keystone_password }}\nansible/roles/mariadb/templates/backup.my.cnf.j2:password\u003d{{ mariadb_backup_database_password }}\nansible/roles/masakari/templates/auth.conf.j2:password\u003d{{ libvirt_sasl_password }}\nansible/roles/masakari/templates/masakari-monitors.conf.j2:password \u003d {{ masakari_keystone_password }}\nansible/roles/masakari/templates/masakari.conf.j2:os_privileged_user_password \u003d {{ nova_keystone_password }}\nansible/roles/masakari/templates/masakari.conf.j2:password \u003d {{ masakari_keystone_password }}\nansible/roles/mistral/templates/mistral.conf.j2:password \u003d {{ mistral_keystone_password }}\nansible/roles/neutron/templates/ironic_neutron_agent.ini.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/neutron/templates/nsx.ini.j2:password \u003d {{ vmware_nsxv_password }}\nansible/roles/neutron/templates/nsx.ini.j2:nsx_api_password \u003d {{ nsxv3_api_password }}\nansible/roles/neutron/templates/nsx.ini.j2:nsx_api_password \u003d {{ vmware_nsxp_api_password }}\nansible/roles/neutron/templates/nsx.ini.j2:host_password \u003d {{ vmware_dvs_host_password }}\nansible/roles/neutron/templates/neutron.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/neutron/templates/neutron.conf.j2:password \u003d {{ neutron_keystone_password }}\nansible/roles/neutron/templates/neutron.conf.j2:password \u003d {{ designate_keystone_password }}\nansible/roles/neutron/templates/neutron.conf.j2:password \u003d {{ placement_keystone_password }}\nansible/roles/neutron/templates/neutron.conf.j2:keystone_admin_password \u003d {{ neutron_keystone_password }}\nansible/roles/neutron/templates/neutron.conf.j2:admin_password \u003d {{ infoblox_admin_password }}\nansible/roles/nova-cell/templates/auth.conf.j2:password\u003d{{ libvirt_sasl_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:password \u003d {{ ironic_keystone_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:password \u003d {{ cinder_keystone_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:password \u003d {{ neutron_keystone_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:host_password \u003d {{ vmware_vcenter_host_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:password \u003d {{ placement_keystone_password }}\nansible/roles/nova-cell/templates/nova.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/nova/templates/nova.conf.j2:password \u003d {{ cinder_keystone_password }}\nansible/roles/nova/templates/nova.conf.j2:password \u003d {{ neutron_keystone_password }}\nansible/roles/nova/templates/nova.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/nova/templates/nova.conf.j2:password \u003d {{ placement_keystone_password }}\nansible/roles/nova/templates/nova.conf.j2:password \u003d {{ nova_keystone_password }}\nansible/roles/octavia/templates/octavia-openrc.sh.j2:export OS_PASSWORD\u003d\u0027{{ octavia_keystone_password }}\u0027\nansible/roles/octavia/templates/octavia.conf.j2:password \u003d {{ octavia_keystone_password }}\nansible/roles/octavia/templates/octavia.conf.j2:password \u003d {{ octavia_keystone_password }}\nansible/roles/octavia/templates/octavia.conf.j2:jobboard_backend_password \u003d \"{{ redis_master_password }}\"\nansible/roles/placement/templates/placement.conf.j2:password \u003d {{ placement_keystone_password }}\nansible/roles/prometheus/templates/my.cnf.j2:password\u003d{{ prometheus_mysql_exporter_database_password }}\nansible/roles/swift/templates/proxy-server.conf.j2:password \u003d {{ swift_keystone_password }}\nansible/roles/tacker/templates/tacker.conf.j2:password \u003d {{ tacker_keystone_password }}\nansible/roles/tacker/templates/tacker.conf.j2:password \u003d {{ tacker_keystone_password }}\nansible/roles/telegraf/templates/telegraf.conf.j2:  password \u003d \"{{ rabbitmq_password }}\"\nansible/roles/trove/templates/trove-guestagent.conf.j2:password \u003d {{ trove_keystone_password }}\nansible/roles/trove/templates/trove.conf.j2:password \u003d {{ trove_keystone_password }}\nansible/roles/trove/templates/trove.conf.j2:password \u003d {{ trove_keystone_password }}\nansible/roles/venus/templates/venus.conf.j2:password \u003d {{ venus_keystone_password }}\nansible/roles/watcher/templates/watcher.conf.j2:password \u003d {{ watcher_keystone_password }}\nansible/roles/watcher/templates/watcher.conf.j2:password \u003d {{ watcher_keystone_password }}\nansible/roles/zun/templates/zun.conf.j2:password \u003d {{ zun_keystone_password }}\nansible/roles/zun/templates/zun.conf.j2:password \u003d {{ zun_keystone_password }}\n```\n\nmichalarbet@pixla:~/ultimum/git/upstream/kolla-ansible$ grep -Ri \u0027password.*\u003d.*{{\u0027 | wc -l \n111\n\nmichalarbet@pixla:~/ultimum/git/upstream/kolla-ansible$ grep -Ri \u0027password.*\u003d.*\"{{\u0027 \nansible/roles/octavia/templates/octavia.conf.j2:jobboard_backend_password \u003d \"{{ redis_master_password }}\"\nansible/roles/telegraf/templates/telegraf.conf.j2:  password \u003d \"{{ rabbitmq_password }}\"\n\nmichalarbet@pixla:~/ultimum/git/upstream/kolla-ansible$ grep -Ri \u0027password.*\u003d.*\"{{\u0027 \nansible/roles/octavia/templates/octavia.conf.j2:jobboard_backend_password \u003d \"{{ redis_master_password }}\"\nansible/roles/telegraf/templates/telegraf.conf.j2:  password \u003d \"{{ \nrabbitmq_password }}\"\n\n\nOnly two","commit_id":"148f55866d2642d8bd0909ef2879b6534926c6e5"}]}
