)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"13a4ae71d1eac307c0ec44d8bb12828fed4d2c20","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-03 00:26:05 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default_hostgroup for users in proyxsql"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4f3380a83fa992c3413e82a4692c26a07b25d57f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"64f14a1a_d6136425","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":21},"updated":"2025-06-03 05:45:42.000000000","message":"Can you explain a bit here why this change is useful? Also for the uninitiated, how is `default_hostgroup` related to the `shard_id` parameter?","commit_id":"4f4073e1aa2be76f1464d76608f633b95e4746b6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"713b6b361dbbd1effe33903ee9c9522db3c09dbc","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-03 00:26:05 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default_hostgroup for users in proyxsql"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4f3380a83fa992c3413e82a4692c26a07b25d57f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b6c85c3d_33c95c23","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":21},"in_reply_to":"64f14a1a_d6136425","updated":"2025-06-03 05:54:54.000000000","message":"Agree with frickler - either needs a bug describing what is the problem and fix, or we need more in the commit message.\nAlso - do we need to backport it?","commit_id":"4f4073e1aa2be76f1464d76608f633b95e4746b6"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4cda1830f4dcdaa96f0020e4c1e5c8f03e5c3569","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Michal Arbet \u003cmichal.arbet@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-03 00:26:05 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default_hostgroup for users in proyxsql"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4f3380a83fa992c3413e82a4692c26a07b25d57f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d55122b2_866530fa","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":21},"in_reply_to":"b6c85c3d_33c95c23","updated":"2025-06-03 11:02:00.000000000","message":"Commit message updated - with explanation and bug attached.","commit_id":"4f4073e1aa2be76f1464d76608f633b95e4746b6"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"13a4ae71d1eac307c0ec44d8bb12828fed4d2c20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d90e89e8_a36c5525","updated":"2025-06-03 05:45:42.000000000","message":"is this a bug fix or general improvement that also could get backported? in that case a small reno might be good\n\nwill the settings get updated on upgrades or will this only take effect for new deployments?","commit_id":"4f4073e1aa2be76f1464d76608f633b95e4746b6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"15903a7cf85efcc0007a842d5115ebb9a67651d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3ac55b1f_648159d9","updated":"2025-06-04 05:01:03.000000000","message":"I\u0027m a bit uneasy about the nova-cell part, but I won\u0027t block this patch, either","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"713c3b4df93003ee4830e498bb25c4e96989959a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8d64863d_82e91a7b","updated":"2025-06-03 22:08:54.000000000","message":"hmm, lets mi improve more :)","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"727de85d278bcba005dd6ac121fda2d5f35a1a42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4a6a2e3b_d615475e","updated":"2025-06-04 08:50:26.000000000","message":"https://paste.openstack.org/show/bbwhMsoetPpH92zCWfl7/ \u003c\u003c current installed my testing stack","commit_id":"3cb0df5f1d05b5f6a7016507c5a1ddaec63a0ee7"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"f3d83444d8354a56c518d06fd57a8996beee5bf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e25ea6e1_8e1906ff","updated":"2025-06-04 09:39:22.000000000","message":"recheck as I am watching zuul online report and there is intermittent failure for mysql full backup, will introduce some retry mechanism to mysql backup script, but this is not the issue for this patch","commit_id":"3cb0df5f1d05b5f6a7016507c5a1ddaec63a0ee7"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"80147eda4204bd6529e1400fa45eab1f191d5d80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"155ea200_a1c638df","updated":"2025-06-04 08:27:02.000000000","message":"recheck new kolla depends on patch","commit_id":"3cb0df5f1d05b5f6a7016507c5a1ddaec63a0ee7"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"2f132eb0ffe06d2064d73457fc6f9c0ef69ac02c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d915ee1e_fa44c2ca","updated":"2025-06-04 20:43:58.000000000","message":"recheck - old image ?","commit_id":"4ee31dbe78868d253b07f3f5c3293c065f20b46a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ab92b1fea7c0f34de447d784261282b3c903b199","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"58c5b381_086abcaa","updated":"2025-06-04 18:33:44.000000000","message":"recheck Debian upgrade failed oom","commit_id":"4ee31dbe78868d253b07f3f5c3293c065f20b46a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"19955cbc29a5ae4ffa1a2ee5849fc2ba5e00157d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"2ba8a55a_95035ab7","updated":"2025-06-05 03:21:10.000000000","message":"recheck images ?","commit_id":"4ee31dbe78868d253b07f3f5c3293c065f20b46a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"81bebf12fb1f0d5388ad6aab95a282a987fe3821","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"774f3b69_fc2d090b","updated":"2025-06-05 06:40:04.000000000","message":"actually simple change..passing","commit_id":"aecefb1b8714c9e2b3fee6996f3e2f2276389d56"}],"ansible/roles/nova-cell/defaults/main.yml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"15903a7cf85efcc0007a842d5115ebb9a67651d9","unresolved":true,"context_lines":[{"line_number":187,"context_line":"nova_cell_database_shard_root_user: \"{% if enable_proxysql | bool %}root_shard_{{ nova_cell_database_shard_id | default(nova_database_shard_id) }}{% else %}{{ database_user }}{% endif %}\""},{"line_number":188,"context_line":"nova_cell_database_shard:"},{"line_number":189,"context_line":"  users: \"{% set users \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set user \u003d hostvars[host][\u0027nova_cell_database_user\u0027] if \u0027nova_cell_database_user\u0027 in hostvars[host] else (\u0027nova_\u0027 ~ hostvars[host][\u0027nova_cell_name\u0027] if \u0027nova_cell_name\u0027 in hostvars[host] else \u0027nova\u0027) %}{% set shard \u003d hostvars[host][\u0027nova_cell_database_shard_id\u0027] if \u0027nova_cell_database_shard_id\u0027 in hostvars[host] else nova_database_shard_id %}{% if user not in seen %}{{ seen.append(user) }}{{ users.append({\u0027user\u0027: user, \u0027password\u0027: nova_cell_database_password, \u0027shard_id\u0027: shard}) }}{% endif %}{% endfor %}{{ users }}\""},{"line_number":190,"context_line":"  rules: \"{% set rules \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set cell \u003d hostvars[host][\u0027nova_cell_name\u0027] if hostvars[host][\u0027nova_cell_name\u0027] is defined else \u0027\u0027 %}{% set schema \u003d \u0027nova_\u0027 ~ cell if cell else \u0027nova\u0027 %}{% if schema not in seen %}{{ seen.append(schema) }}{{ rules.append({\u0027schema\u0027: schema, \u0027shard_id\u0027: hostvars[host][\u0027nova_cell_database_shard_id\u0027] if hostvars[host][\u0027nova_cell_database_shard_id\u0027] is defined else nova_database_shard_id}) }}{% endif %}{% endfor %}{{ rules }}\""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f4afc6c7_c3715746","line":190,"updated":"2025-06-04 05:01:03.000000000","message":"from my pov these monster expressions are essantially unreviewable, I\u0027m just assuming that we have enough CI coverage to ensure they work in the basic cases","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ab92b1fea7c0f34de447d784261282b3c903b199","unresolved":false,"context_lines":[{"line_number":187,"context_line":"nova_cell_database_shard_root_user: \"{% if enable_proxysql | bool %}root_shard_{{ nova_cell_database_shard_id | default(nova_database_shard_id) }}{% else %}{{ database_user }}{% endif %}\""},{"line_number":188,"context_line":"nova_cell_database_shard:"},{"line_number":189,"context_line":"  users: \"{% set users \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set user \u003d hostvars[host][\u0027nova_cell_database_user\u0027] if \u0027nova_cell_database_user\u0027 in hostvars[host] else (\u0027nova_\u0027 ~ hostvars[host][\u0027nova_cell_name\u0027] if \u0027nova_cell_name\u0027 in hostvars[host] else \u0027nova\u0027) %}{% set shard \u003d hostvars[host][\u0027nova_cell_database_shard_id\u0027] if \u0027nova_cell_database_shard_id\u0027 in hostvars[host] else nova_database_shard_id %}{% if user not in seen %}{{ seen.append(user) }}{{ users.append({\u0027user\u0027: user, \u0027password\u0027: nova_cell_database_password, \u0027shard_id\u0027: shard}) }}{% endif %}{% endfor %}{{ users }}\""},{"line_number":190,"context_line":"  rules: \"{% set rules \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set cell \u003d hostvars[host][\u0027nova_cell_name\u0027] if hostvars[host][\u0027nova_cell_name\u0027] is defined else \u0027\u0027 %}{% set schema \u003d \u0027nova_\u0027 ~ cell if cell else \u0027nova\u0027 %}{% if schema not in seen %}{{ seen.append(schema) }}{{ rules.append({\u0027schema\u0027: schema, \u0027shard_id\u0027: hostvars[host][\u0027nova_cell_database_shard_id\u0027] if hostvars[host][\u0027nova_cell_database_shard_id\u0027] is defined else nova_database_shard_id}) }}{% endif %}{% endfor %}{{ rules }}\""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3cdd4e19_d84a337b","line":190,"in_reply_to":"a2ebf5c8_99b039bb","updated":"2025-06-04 18:33:44.000000000","message":"Done","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8f7d44b8d576b66b1ea615ed4d34e1fcec4b31ad","unresolved":true,"context_lines":[{"line_number":187,"context_line":"nova_cell_database_shard_root_user: \"{% if enable_proxysql | bool %}root_shard_{{ nova_cell_database_shard_id | default(nova_database_shard_id) }}{% else %}{{ database_user }}{% endif %}\""},{"line_number":188,"context_line":"nova_cell_database_shard:"},{"line_number":189,"context_line":"  users: \"{% set users \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set user \u003d hostvars[host][\u0027nova_cell_database_user\u0027] if \u0027nova_cell_database_user\u0027 in hostvars[host] else (\u0027nova_\u0027 ~ hostvars[host][\u0027nova_cell_name\u0027] if \u0027nova_cell_name\u0027 in hostvars[host] else \u0027nova\u0027) %}{% set shard \u003d hostvars[host][\u0027nova_cell_database_shard_id\u0027] if \u0027nova_cell_database_shard_id\u0027 in hostvars[host] else nova_database_shard_id %}{% if user not in seen %}{{ seen.append(user) }}{{ users.append({\u0027user\u0027: user, \u0027password\u0027: nova_cell_database_password, \u0027shard_id\u0027: shard}) }}{% endif %}{% endfor %}{{ users }}\""},{"line_number":190,"context_line":"  rules: \"{% set rules \u003d [] %}{% set seen \u003d [] %}{% for host in (groups[\u0027nova\u0027] + groups[\u0027compute\u0027]) %}{% set cell \u003d hostvars[host][\u0027nova_cell_name\u0027] if hostvars[host][\u0027nova_cell_name\u0027] is defined else \u0027\u0027 %}{% set schema \u003d \u0027nova_\u0027 ~ cell if cell else \u0027nova\u0027 %}{% if schema not in seen %}{{ seen.append(schema) }}{{ rules.append({\u0027schema\u0027: schema, \u0027shard_id\u0027: hostvars[host][\u0027nova_cell_database_shard_id\u0027] if hostvars[host][\u0027nova_cell_database_shard_id\u0027] is defined else nova_database_shard_id}) }}{% endif %}{% endfor %}{{ rules }}\""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"a2ebf5c8_99b039bb","line":190,"in_reply_to":"f4afc6c7_c3715746","updated":"2025-06-04 08:11:08.000000000","message":"I\u0027ve already rewritten it to be simpler, and also adjusted it a bit so that it makes semantic sense based on the role.\n\nUnfortunately, querying vars directly from the host is necessary, because that\u0027s how the nova-cell role was originally written. I need to generate a dictionary for ProxySQL and its rules. The documentation should help you understand several variables.\n\nIn short, here\u0027s what the nova and nova-cell roles do in terms of rules:\nWe have 3 databases — nova_api, nova_cell0, and nova (which is the default unnamed cell).\n\nCurrently, the nova role generates:\n\nuser: nova-api, default hostgroup for him, \nrule: schemaname nova_api and destination group, user nova_api destination group\n\nThe nova-cell role generates:\nuser: nova, default hostgroup for him (same group as nova_api,nova_cell0 and default nova (unnamed) cell)\n\nOther cell users and groups (if groups and nova_cell_name are defined, as per the documentation) get added to the dictionary that is then provided to ProxySQL, which generates rules based on it.\n\nIn CI, we have a cells job for this purpose. It assumes one database with two nodes and another database with a single node — where one cell maps to one, and the other to the other.\n\nYou can check the inventory, globals, and individual nova.conf files and their database configs on the end after CI run. I know it\u0027s a bit complicated... But I tested it thoroughly in my testing setup from all angles, and I’ve been struggling with this few days :) So I hope you trust me a little.","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"}],"releasenotes/notes/bug-2112339-3f67eefc7f0062cc.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"15903a7cf85efcc0007a842d5115ebb9a67651d9","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes routing of queries without selected schema by setting"},{"line_number":5,"context_line":"    ``default_hostgroup`` for users."},{"line_number":6,"context_line":"    `LP#2112339 \u003chttps://launchpad.net/bugs/2112339\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f3dd5c60_81d2b735","line":4,"updated":"2025-06-04 05:01:03.000000000","message":"might be helpful to mention that this is for proxysql?","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"32fafa459ee8c1011ebc51dac0bc8557d9137ad0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes routing of queries without selected schema by setting"},{"line_number":5,"context_line":"    ``default_hostgroup`` for users."},{"line_number":6,"context_line":"    `LP#2112339 \u003chttps://launchpad.net/bugs/2112339\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"a572ca1a_ac03f518","line":4,"in_reply_to":"96dac014_6980de81","updated":"2025-06-04 08:18:23.000000000","message":"Done","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8f7d44b8d576b66b1ea615ed4d34e1fcec4b31ad","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes routing of queries without selected schema by setting"},{"line_number":5,"context_line":"    ``default_hostgroup`` for users."},{"line_number":6,"context_line":"    `LP#2112339 \u003chttps://launchpad.net/bugs/2112339\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"96dac014_6980de81","line":4,"in_reply_to":"f3dd5c60_81d2b735","updated":"2025-06-04 08:11:08.000000000","message":"Ack","commit_id":"df5e7cc68bdee995a4481ffb68623bbbe2403c0a"}]}
