)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36702,"name":"Roman Krcek","display_name":"Roman Krček","email":"roman.krcek@tietoevry.com","username":"r-krcek"},"change_message_id":"daa2027d11dd864fc9739504ba9c77589d19f2dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5614d6c8_dd29a3c8","updated":"2025-07-16 08:24:29.000000000","message":"I\u0027ve been following this undertaking on IRC and Gerrit. And I do understand the maintainers\u0027 reasons behind the removal of swift support. However, when looking at the user survey of OpenStack, I\u0027ve noticed that according to the survey 40% of production systems do run Swift. And other 15% of users are either testing or interested. [1] Just food for thought for the maintainers :)\n\n[1] - https://openinfra.org/user-survey/","commit_id":"e3a63fcda0154735dbb8813bd0e8771267ffdbac"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"de9a7ecff327a7f625feda99353fa2533bb03a75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fe8c11c8_0388e84c","in_reply_to":"5614d6c8_dd29a3c8","updated":"2025-07-24 08:25:04.000000000","message":"Thanks for sharing this! This data is one of the reasons why I started this patch. I appreciate the support.","commit_id":"e3a63fcda0154735dbb8813bd0e8771267ffdbac"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"1dad0f7ef184c23280d7c494b6bdfd8fad41ecb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4a157397_0141211f","updated":"2025-08-06 12:55:05.000000000","message":"Hi reviewers,\n\nThis patch set is now ready for its initial review. The primary goal is to restore Swift support.\n\nThis is part of a two-patch series. The core logic is complete and I\u0027m currently working on addressing the Zuul functional tests.\n\nLooking forward to your feedback and suggestions.\n\nThanks!","commit_id":"9e9156fc48b42190408d186640cc50ddb89bc511"},{"author":{"_account_id":36702,"name":"Roman Krcek","display_name":"Roman Krček","email":"roman.krcek@tietoevry.com","username":"r-krcek"},"change_message_id":"02351e3348b2375647b6b0e551726b140d1bdc6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"44567669_1257f895","updated":"2025-08-14 08:23:11.000000000","message":"Small tip: you can comment out most of the jobs in zuuld./project.yml and leave only the linters and basic jobs together with swift. This way Zuul won\u0027t have to do as much work and you\u0027ll have your test results sooner.","commit_id":"f735b3a397b890b2832e8854b4b6a91c095b095d"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"a37da7043900a9c0b50e4f2c0847af57e930d537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":89,"id":"bc4951cb_4da2875a","updated":"2025-12-13 14:40:06.000000000","message":"recheck","commit_id":"7f09703beb43b0a6755607124ef41a460b41c4ab"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":293,"context_line":"dpdk_tunnel_interface: \"{{ neutron_external_interface }}\""},{"line_number":294,"context_line":"ironic_http_interface: \"{{ api_interface }}\""},{"line_number":295,"context_line":"ironic_tftp_interface: \"{{ api_interface }}\""},{"line_number":296,"context_line":"swift_storage_interface: \"{{ network_interface }}\""},{"line_number":297,"context_line":"swift_replication_interface: \"{{ swift_storage_interface }}\""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"# Configure the address family (AF) per network."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"4f9fd916_10939727","line":296,"updated":"2025-09-08 07:28:24.000000000","message":"Is it used by any other role than swift?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"462477fb4b2389366c245e897ff62c2ebe3db6d6","unresolved":false,"context_lines":[{"line_number":293,"context_line":"dpdk_tunnel_interface: \"{{ neutron_external_interface }}\""},{"line_number":294,"context_line":"ironic_http_interface: \"{{ api_interface }}\""},{"line_number":295,"context_line":"ironic_tftp_interface: \"{{ api_interface }}\""},{"line_number":296,"context_line":"swift_storage_interface: \"{{ network_interface }}\""},{"line_number":297,"context_line":"swift_replication_interface: \"{{ swift_storage_interface }}\""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"# Configure the address family (AF) per network."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"19301e21_9920a32c","line":296,"in_reply_to":"4f9fd916_10939727","updated":"2025-09-21 14:50:26.000000000","message":"Thanks, moved those vars to swift defaults – issue resolved.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":294,"context_line":"ironic_http_interface: \"{{ api_interface }}\""},{"line_number":295,"context_line":"ironic_tftp_interface: \"{{ api_interface }}\""},{"line_number":296,"context_line":"swift_storage_interface: \"{{ network_interface }}\""},{"line_number":297,"context_line":"swift_replication_interface: \"{{ swift_storage_interface }}\""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"# Configure the address family (AF) per network."},{"line_number":300,"context_line":"# Valid options are [ ipv4, ipv6 ]"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"8a061d06_230b1518","line":297,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e1b52f117a61fe275ebaea4fc5f761be1d0ef131","unresolved":false,"context_lines":[{"line_number":294,"context_line":"ironic_http_interface: \"{{ api_interface }}\""},{"line_number":295,"context_line":"ironic_tftp_interface: \"{{ api_interface }}\""},{"line_number":296,"context_line":"swift_storage_interface: \"{{ network_interface }}\""},{"line_number":297,"context_line":"swift_replication_interface: \"{{ swift_storage_interface }}\""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"# Configure the address family (AF) per network."},{"line_number":300,"context_line":"# Valid options are [ ipv4, ipv6 ]"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"923d138b_9aaa9fc1","line":297,"in_reply_to":"8a061d06_230b1518","updated":"2025-09-21 14:50:37.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":309,"context_line":"dpdk_tunnel_address_family: \"{{ network_address_family }}\""},{"line_number":310,"context_line":"ironic_http_address_family: \"{{ api_address_family }}\""},{"line_number":311,"context_line":"ironic_tftp_address_family: \"{{ api_address_family }}\""},{"line_number":312,"context_line":"swift_storage_address_family: \"{{ storage_address_family }}\""},{"line_number":313,"context_line":"swift_replication_address_family: \"{{ swift_storage_address_family }}\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"migration_interface_address: \"{{ \u0027migration\u0027 | kolla_address }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e0c0da68_f0976bd2","line":312,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"96f3f59a79b9e71e64efe68c366e0b8616c5754f","unresolved":false,"context_lines":[{"line_number":309,"context_line":"dpdk_tunnel_address_family: \"{{ network_address_family }}\""},{"line_number":310,"context_line":"ironic_http_address_family: \"{{ api_address_family }}\""},{"line_number":311,"context_line":"ironic_tftp_address_family: \"{{ api_address_family }}\""},{"line_number":312,"context_line":"swift_storage_address_family: \"{{ storage_address_family }}\""},{"line_number":313,"context_line":"swift_replication_address_family: \"{{ swift_storage_address_family }}\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"migration_interface_address: \"{{ \u0027migration\u0027 | kolla_address }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e96a6fa6_21885987","line":312,"in_reply_to":"e0c0da68_f0976bd2","updated":"2025-09-21 14:50:48.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":310,"context_line":"ironic_http_address_family: \"{{ api_address_family }}\""},{"line_number":311,"context_line":"ironic_tftp_address_family: \"{{ api_address_family }}\""},{"line_number":312,"context_line":"swift_storage_address_family: \"{{ storage_address_family }}\""},{"line_number":313,"context_line":"swift_replication_address_family: \"{{ swift_storage_address_family }}\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"migration_interface_address: \"{{ \u0027migration\u0027 | kolla_address }}\""},{"line_number":316,"context_line":"tunnel_interface_address: \"{{ \u0027tunnel\u0027 | kolla_address }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ad341c88_c7230dfc","line":313,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"3e70879c20799eec98a95e4e850d590668f001d9","unresolved":false,"context_lines":[{"line_number":310,"context_line":"ironic_http_address_family: \"{{ api_address_family }}\""},{"line_number":311,"context_line":"ironic_tftp_address_family: \"{{ api_address_family }}\""},{"line_number":312,"context_line":"swift_storage_address_family: \"{{ storage_address_family }}\""},{"line_number":313,"context_line":"swift_replication_address_family: \"{{ swift_storage_address_family }}\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"migration_interface_address: \"{{ \u0027migration\u0027 | kolla_address }}\""},{"line_number":316,"context_line":"tunnel_interface_address: \"{{ \u0027tunnel\u0027 | kolla_address }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e58ef479_76ccf977","line":313,"in_reply_to":"ad341c88_c7230dfc","updated":"2025-09-21 14:50:55.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/group_vars/all/swift.yml":[{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"0e728328bf4a853bb4ef09d416130bcb01e83d7c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"enable_swift: \"no\""},{"line_number":3,"context_line":"enable_swift_s3api: \"no\""},{"line_number":4,"context_line":"enable_swift_recon: \"no\""}],"source_content_type":"text/x-yaml","patch_set":89,"id":"27eaf380_92b851e9","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":3},"updated":"2025-12-13 13:29:07.000000000","message":"recheck\n\nLooks like infra failure.","commit_id":"7f09703beb43b0a6755607124ef41a460b41c4ab"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"6ed5b680063ceb07f8549ed0e1d4087bb666fa15","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"enable_swift: \"no\""},{"line_number":3,"context_line":"enable_swift_s3api: \"no\""},{"line_number":4,"context_line":"enable_swift_recon: \"no\""}],"source_content_type":"text/x-yaml","patch_set":89,"id":"a32f6997_195f99c4","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":3},"in_reply_to":"27eaf380_92b851e9","updated":"2025-12-13 14:36:34.000000000","message":"recheck","commit_id":"7f09703beb43b0a6755607124ef41a460b41c4ab"}],"ansible/roles/destroy/tasks/cleanup_host.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":4,"context_line":"  script: ../tools/cleanup-host"},{"line_number":5,"context_line":"  environment:"},{"line_number":6,"context_line":"    enable_haproxy: \"{{ enable_haproxy }}\""},{"line_number":7,"context_line":"    enable_swift: \"{{ enable_swift }}\""},{"line_number":8,"context_line":"    glance_file_datadir_volume: \"{{ glance_file_datadir_volume }}\""},{"line_number":9,"context_line":"    nova_instance_datadir_volume: \"{{ nova_instance_datadir_volume }}\""},{"line_number":10,"context_line":"    gnocchi_metric_datadir_volume: \"{{ gnocchi_metric_datadir_volume }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"f9fd4d07_2681a0e7","line":7,"updated":"2025-09-08 07:28:24.000000000","message":"bool","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e752272dc729ff82890c0292227fb58827ca0239","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  script: ../tools/cleanup-host"},{"line_number":5,"context_line":"  environment:"},{"line_number":6,"context_line":"    enable_haproxy: \"{{ enable_haproxy }}\""},{"line_number":7,"context_line":"    enable_swift: \"{{ enable_swift }}\""},{"line_number":8,"context_line":"    glance_file_datadir_volume: \"{{ glance_file_datadir_volume }}\""},{"line_number":9,"context_line":"    nova_instance_datadir_volume: \"{{ nova_instance_datadir_volume }}\""},{"line_number":10,"context_line":"    gnocchi_metric_datadir_volume: \"{{ gnocchi_metric_datadir_volume }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"c3b36809_5a39f8bc","line":7,"in_reply_to":"f9fd4d07_2681a0e7","updated":"2025-12-15 08:02:26.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/horizon/templates/_9998-kolla-settings.py.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":133,"context_line":"DROPDOWN_MAX_ITEMS \u003d 30"},{"line_number":134,"context_line":"TIME_ZONE \u003d \"UTC\""},{"line_number":135,"context_line":"POLICY_FILES_PATH \u003d \u0027/etc/openstack-dashboard\u0027"},{"line_number":136,"context_line":"SWIFT_FILE_TRANSFER_CHUNK_SIZE \u003d 512 * 1024"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"{% if horizon_custom_themes | length \u003e 0 %}"},{"line_number":139,"context_line":"AVAILABLE_THEMES \u003d ["}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"92e633e4_9693ba33","line":136,"updated":"2025-09-08 07:28:24.000000000","message":"Why? Where does that number come from?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"568a724b4d946e4dd1f0d046d76dc4c12a923b54","unresolved":false,"context_lines":[{"line_number":133,"context_line":"DROPDOWN_MAX_ITEMS \u003d 30"},{"line_number":134,"context_line":"TIME_ZONE \u003d \"UTC\""},{"line_number":135,"context_line":"POLICY_FILES_PATH \u003d \u0027/etc/openstack-dashboard\u0027"},{"line_number":136,"context_line":"SWIFT_FILE_TRANSFER_CHUNK_SIZE \u003d 512 * 1024"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"{% if horizon_custom_themes | length \u003e 0 %}"},{"line_number":139,"context_line":"AVAILABLE_THEMES \u003d ["}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"992f0afb_93907562","line":136,"in_reply_to":"92e633e4_9693ba33","updated":"2025-09-21 15:01:54.000000000","message":"Good catch. Dropped it to rely on Horizon’s default.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/loadbalancer/tasks/precheck.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":738,"context_line":"    - haproxy_stat.find(\u0027zun_api\u0027) \u003d\u003d -1"},{"line_number":739,"context_line":"    - haproxy_vip_prechecks"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"- name: Checking free port for Swift Proxy Server HAProxy"},{"line_number":742,"context_line":"  wait_for:"},{"line_number":743,"context_line":"    host: \"{{ kolla_internal_vip_address }}\""},{"line_number":744,"context_line":"    port: \"{{ swift_proxy_server_port }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"8d1c4974_4506dd34","line":741,"updated":"2025-09-08 07:28:24.000000000","message":"We agreed to support additional haproxy for Swift, ideally on some dedicated host group - where is that support?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"7146599a8e256ff11bacb98558073a4dc52c2b94","unresolved":true,"context_lines":[{"line_number":738,"context_line":"    - haproxy_stat.find(\u0027zun_api\u0027) \u003d\u003d -1"},{"line_number":739,"context_line":"    - haproxy_vip_prechecks"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"- name: Checking free port for Swift Proxy Server HAProxy"},{"line_number":742,"context_line":"  wait_for:"},{"line_number":743,"context_line":"    host: \"{{ kolla_internal_vip_address }}\""},{"line_number":744,"context_line":"    port: \"{{ swift_proxy_server_port }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"f384605e_76aa9f7b","line":741,"in_reply_to":"380835dc_bd58f83c","updated":"2025-10-20 12:58:56.000000000","message":"Hi Sarah,\nThank you for your thoughtful feedback and for engaging with this topic.\nI’m exploring several approaches to support a dedicated load balancer for Swift, including extending the current role and creating a separate Swift-specific LB role. While a dedicated role seems the cleanest long-term option, it involves cross-role changes and would benefit from broader input.\n\n@mnasiadka@gmail.com, I’d value your perspective on the trade-offs between reusing the existing role versus introducing a new one, particularly around maintainability and isolation.\n\n@sarah.kh09@gmail.com, feel free to share any thoughts or experiments you’ve started. Let’s refine this together!\n\nBest regards,\nAmir","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":38032,"name":"Sara Khosravi","display_name":"Sarah","email":"sarah.kh09@gmail.com","username":"Sarah.Kh"},"change_message_id":"736d8f705ca5ceff4ea99ba89e003ae9d6c4e0f1","unresolved":true,"context_lines":[{"line_number":738,"context_line":"    - haproxy_stat.find(\u0027zun_api\u0027) \u003d\u003d -1"},{"line_number":739,"context_line":"    - haproxy_vip_prechecks"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"- name: Checking free port for Swift Proxy Server HAProxy"},{"line_number":742,"context_line":"  wait_for:"},{"line_number":743,"context_line":"    host: \"{{ kolla_internal_vip_address }}\""},{"line_number":744,"context_line":"    port: \"{{ swift_proxy_server_port }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"380835dc_bd58f83c","line":741,"in_reply_to":"8d1c4974_4506dd34","updated":"2025-10-20 12:32:52.000000000","message":"Hi Michal and Amir,\nAs is clear, one of the main concerns of this change is how to handle the large volume of data exchanged between the user and the Swift service. It seems that creating a dedicated load balancer for Swift and relocating the swift-proxy service could be a good solution.\n\nI’m also working on this topic, and a question came to my mind regarding which of the following approaches would be more optimal as a first step to introduce this solution:\n\n1- Modifying the existing load balancer role to support two separate deployments of the load balancer.\n\n2- Managing the HAProxy and Keepalived services directly within the Swift role.\n\n3- Creating a separate, dedicated load balancer role specifically for Swift.\n\nAlthough creating a separate role is a cleaner solution, I believe that since this would involve changes outside of the Swift role, it will likely require your approval as the reviewer and patch owner.\n\nThanks in advance.\n\n@mnasiadka@gmail.com\n@sahahmadi96@gmail.com","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"6f9422198c647791a7ad1f7c7557c2a942a89427","unresolved":false,"context_lines":[{"line_number":738,"context_line":"    - haproxy_stat.find(\u0027zun_api\u0027) \u003d\u003d -1"},{"line_number":739,"context_line":"    - haproxy_vip_prechecks"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"- name: Checking free port for Swift Proxy Server HAProxy"},{"line_number":742,"context_line":"  wait_for:"},{"line_number":743,"context_line":"    host: \"{{ kolla_internal_vip_address }}\""},{"line_number":744,"context_line":"    port: \"{{ swift_proxy_server_port }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e611ff4a_2f022395","line":741,"in_reply_to":"f384605e_76aa9f7b","updated":"2025-12-15 08:05:18.000000000","message":"Hi all,\nafter further discussion, we’ve agreed to defer the HA-related work for Swift to a separate, future patchset.\nFor now, this change will focus on the current scope, and the dedicated HA/load-balancer improvements will be developed and proposed independently once the design is finalized.\n\nThanks everyone for the constructive discussion and input.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/tasks/check.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking Swift containers # NOTE(amir58118): Temporary addition; will be fully integrated later."},{"line_number":3,"context_line":"  import_role:"},{"line_number":4,"context_line":"    role: service-check"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"6599661b_dab1873e","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"What does that mean?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"a28c6c9ad0fd08cd2f935f203b551f4dd20c7f5e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking Swift containers # NOTE(amir58118): Temporary addition; will be fully integrated later."},{"line_number":3,"context_line":"  import_role:"},{"line_number":4,"context_line":"    role: service-check"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5a7f5c9f_209f21c2","line":2,"in_reply_to":"4a10f74c_16f8e409","updated":"2025-09-23 11:22:02.000000000","message":"My mistake, I will remove the note section.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"4862d3196679841908e8d58dda6291dbd5779774","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking Swift containers # NOTE(amir58118): Temporary addition; will be fully integrated later."},{"line_number":3,"context_line":"  import_role:"},{"line_number":4,"context_line":"    role: service-check"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"4a10f74c_16f8e409","line":2,"in_reply_to":"6599661b_dab1873e","updated":"2025-09-21 15:06:10.000000000","message":"This is a temporary placeholder to prepare for future Swift container checks; not actively used yet.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/tasks/config-disk.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":15,"context_line":"      mount:"},{"line_number":16,"context_line":"        src: \"UUID\u003d{{ item.fs_uuid }}\""},{"line_number":17,"context_line":"        fstype: xfs"},{"line_number":18,"context_line":"        opts: \"noatime,nodiratime,nofail\" # NOTE(amir58118): The \u0027nofail\u0027 option has been added to ensure service stability. It should be removed in the future after further testing and validation."},{"line_number":19,"context_line":"        state: mounted"},{"line_number":20,"context_line":"        name: \"{{ swift_devices_mount_point }}/{{ item.fs_label }}\""},{"line_number":21,"context_line":"      with_items: \"{{ swift_disks.disks }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"661241eb_a2c09938","line":18,"updated":"2025-09-08 07:28:24.000000000","message":"Firstly nofail allows the boot sequence to continue even if the drive fails to mount - does that mean Swift will start even if this fails to mount? What\u0027s the effect of such start?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e17bfd774616f6b56e20794b1e45e64fb58ecf6d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"      mount:"},{"line_number":16,"context_line":"        src: \"UUID\u003d{{ item.fs_uuid }}\""},{"line_number":17,"context_line":"        fstype: xfs"},{"line_number":18,"context_line":"        opts: \"noatime,nodiratime,nofail\" # NOTE(amir58118): The \u0027nofail\u0027 option has been added to ensure service stability. It should be removed in the future after further testing and validation."},{"line_number":19,"context_line":"        state: mounted"},{"line_number":20,"context_line":"        name: \"{{ swift_devices_mount_point }}/{{ item.fs_label }}\""},{"line_number":21,"context_line":"      with_items: \"{{ swift_disks.disks }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"c37747aa_c5c7c851","line":18,"in_reply_to":"661241eb_a2c09938","updated":"2025-09-21 15:10:31.000000000","message":"Added nofail temporarily due to issues during my local testing with /etc/fstab; Swift setup itself works fine. Will remove this option in the next commit.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/tasks/precheck.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"- name: Fail if ring files don\u0027t exist"},{"line_number":125,"context_line":"  run_once: True"},{"line_number":126,"context_line":"  fail:"},{"line_number":127,"context_line":"    msg: \u003e-"},{"line_number":128,"context_line":"      Swift ring files do not exist."},{"line_number":129,"context_line":"      Ensure .builder and .gz are available for each of account/container/object under {{ node_custom_config }}/swift before deploying Swift."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"c9b7889b_0eb36395","line":126,"updated":"2025-09-08 07:28:24.000000000","message":"use assert instead","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"827a0ef6a84f566ea26f2e15dca894d0a3c3eba6","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"- name: Fail if ring files don\u0027t exist"},{"line_number":125,"context_line":"  run_once: True"},{"line_number":126,"context_line":"  fail:"},{"line_number":127,"context_line":"    msg: \u003e-"},{"line_number":128,"context_line":"      Swift ring files do not exist."},{"line_number":129,"context_line":"      Ensure .builder and .gz are available for each of account/container/object under {{ node_custom_config }}/swift before deploying Swift."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"d0b788ad_a7874ac9","line":126,"in_reply_to":"c9b7889b_0eb36395","updated":"2025-09-21 15:13:18.000000000","message":"Done","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/tasks/rolling_upgrade.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Upgrade swift storage nodes first"},{"line_number":3,"context_line":"- block:"},{"line_number":4,"context_line":"    - name: Disabling swift-proxy-server service"},{"line_number":5,"context_line":"      set_fact:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"0404a7ab_a05b6696","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"Format is # NOTE(nick): content","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"39bcaa40eba9e8960b85b3f59696f04539898973","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Upgrade swift storage nodes first"},{"line_number":3,"context_line":"- block:"},{"line_number":4,"context_line":"    - name: Disabling swift-proxy-server service"},{"line_number":5,"context_line":"      set_fact:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e3592a3e_ce82220d","line":2,"in_reply_to":"0404a7ab_a05b6696","updated":"2025-09-21 15:14:20.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":16,"context_line":"    inventory_hostname in groups[\u0027swift-container-server\u0027] or"},{"line_number":17,"context_line":"    inventory_hostname in groups[\u0027swift-object-server\u0027]"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Upgrade swift proxy nodes"},{"line_number":20,"context_line":"- block:"},{"line_number":21,"context_line":"    - name: Enabling swift-proxy-server service"},{"line_number":22,"context_line":"      set_fact:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"c5cc9e63_66a59aa8","line":19,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"efd7143de8f9b1dd32bafa195f5b409ac3d63b78","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    inventory_hostname in groups[\u0027swift-container-server\u0027] or"},{"line_number":17,"context_line":"    inventory_hostname in groups[\u0027swift-object-server\u0027]"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Upgrade swift proxy nodes"},{"line_number":20,"context_line":"- block:"},{"line_number":21,"context_line":"    - name: Enabling swift-proxy-server service"},{"line_number":22,"context_line":"      set_fact:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"278791e0_e2560535","line":19,"in_reply_to":"c5cc9e63_66a59aa8","updated":"2025-09-21 15:14:31.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/container-sync-realms.conf.j2":[{"author":{"_account_id":38032,"name":"Sara Khosravi","display_name":"Sarah","email":"sarah.kh09@gmail.com","username":"Sarah.Kh"},"change_message_id":"e1f4450103e45fd6c651b43f634fbb35b1088899","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"221acc2c_56e799ed","line":23,"updated":"2025-09-07 08:53:40.000000000","message":"Hi, and thank you for your work on introducing the new Swift role. Great work!\nI noticed that the file is referenced in the source code and appears to be in Jinja2 (.j2) format. I was wondering: would it be feasible in the future to expose container-sync-related variables via the globals.yml file?","commit_id":"ae41eb29f7292a0f87db9a80dc6b917c043b942c"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"5c40cd15c5dd9eb9f90907620b15ce3386da62cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"b0fe150f_9fd22019","line":23,"in_reply_to":"221acc2c_56e799ed","updated":"2025-09-07 09:13:47.000000000","message":"thanks for your feedback.\n\nYes, exposing container-sync variables via globals.yml is definitely possible in the future. For now, the template is just a placeholder until we finalize best practices with the Swift core team. Once that’s done, we can make it configurable.","commit_id":"ae41eb29f7292a0f87db9a80dc6b917c043b942c"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# This configuration file is required by recent versions of Swift for the"},{"line_number":2,"context_line":"# container-sync feature."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# This template is added as a placeholder to satisfy Swift\u0027s requirement"}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"d35ec6d4_79cb782a","line":1,"updated":"2025-09-08 07:28:24.000000000","message":"Do we need an empty example config file?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"cc7eb66a8a0ab1e3180456fbc2ecfc8222491143","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# This configuration file is required by recent versions of Swift for the"},{"line_number":2,"context_line":"# container-sync feature."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# This template is added as a placeholder to satisfy Swift\u0027s requirement"}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"fa3eb1fc_04f139fe","line":1,"in_reply_to":"d35ec6d4_79cb782a","updated":"2025-09-23 13:24:06.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/rsyncd.conf.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"address \u003d {{ \u0027swift_replication\u0027 | kolla_address }}"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"{% if inventory_hostname in groups[\u0027swift-account-server\u0027] %}"},{"line_number":4,"context_line":"[account]"}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"6ecdc1b0_40fd493f","line":1,"updated":"2025-09-08 07:28:24.000000000","message":"rsyncd without any auth and chroot?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"7f3b776428310babf778990cd3e98957e0427eeb","unresolved":true,"context_lines":[{"line_number":1,"context_line":"address \u003d {{ \u0027swift_replication\u0027 | kolla_address }}"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"{% if inventory_hostname in groups[\u0027swift-account-server\u0027] %}"},{"line_number":4,"context_line":"[account]"}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"d9cde3a4_d6cb826c","line":1,"in_reply_to":"6ecdc1b0_40fd493f","updated":"2025-12-10 07:16:37.000000000","message":"You\u0027re right. rsyncd without auth can be risky. At least keeping \u0027chroot \u003d yes\u0027 helps contain any potential impact to the Swift device directory. If needed, we can also explore adding minimal auth on top of that.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e752272dc729ff82890c0292227fb58827ca0239","unresolved":false,"context_lines":[{"line_number":1,"context_line":"address \u003d {{ \u0027swift_replication\u0027 | kolla_address }}"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"{% if inventory_hostname in groups[\u0027swift-account-server\u0027] %}"},{"line_number":4,"context_line":"[account]"}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"73b733f2_cda8d835","line":1,"in_reply_to":"d9cde3a4_d6cb826c","updated":"2025-12-15 08:02:26.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":38032,"name":"Sara Khosravi","display_name":"Sarah","email":"sarah.kh09@gmail.com","username":"Sarah.Kh"},"change_message_id":"a6cff4db6f8d894e6ee7c708071f4859dfe8dba7","unresolved":true,"context_lines":[{"line_number":5,"context_line":"max connections \u003d 2"},{"line_number":6,"context_line":"path \u003d {{ swift_devices_mount_point }}"},{"line_number":7,"context_line":"read only \u003d false"},{"line_number":8,"context_line":"use chroot \u003d yes"},{"line_number":9,"context_line":"lock file \u003d /var/lib/swift/lock/account.lock"},{"line_number":10,"context_line":"{% endif %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":77,"id":"d1e397fe_0ceb5ae8","line":8,"updated":"2025-12-10 06:59:46.000000000","message":"Hi Amir,  \nCan we set `chroot \u003d no`, or do you see any concerns with that approach?","commit_id":"2bd4e7b762dc7d6e3c171f35c58c3c7b83487f0c"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e752272dc729ff82890c0292227fb58827ca0239","unresolved":false,"context_lines":[{"line_number":5,"context_line":"max connections \u003d 2"},{"line_number":6,"context_line":"path \u003d {{ swift_devices_mount_point }}"},{"line_number":7,"context_line":"read only \u003d false"},{"line_number":8,"context_line":"use chroot \u003d yes"},{"line_number":9,"context_line":"lock file \u003d /var/lib/swift/lock/account.lock"},{"line_number":10,"context_line":"{% endif %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":77,"id":"b6d6606d_b63b1461","line":8,"in_reply_to":"237f3b34_aefe652b","updated":"2025-12-15 08:02:26.000000000","message":"Acknowledged","commit_id":"2bd4e7b762dc7d6e3c171f35c58c3c7b83487f0c"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"9748aa79afd1e30338fe37fadc6e2701916fcb0a","unresolved":true,"context_lines":[{"line_number":5,"context_line":"max connections \u003d 2"},{"line_number":6,"context_line":"path \u003d {{ swift_devices_mount_point }}"},{"line_number":7,"context_line":"read only \u003d false"},{"line_number":8,"context_line":"use chroot \u003d yes"},{"line_number":9,"context_line":"lock file \u003d /var/lib/swift/lock/account.lock"},{"line_number":10,"context_line":"{% endif %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":77,"id":"237f3b34_aefe652b","line":8,"in_reply_to":"d1e397fe_0ceb5ae8","updated":"2025-12-10 07:17:38.000000000","message":"I haven’t tested \u0027chroot \u003d no\u0027, but keeping chroot \u003d yes adds a security boundary by restricting rsyncd to the Swift device directory. Unless there’s a functional reason to disable it, I don’t see a benefit in turning it off.","commit_id":"2bd4e7b762dc7d6e3c171f35c58c3c7b83487f0c"}],"ansible/roles/swift/templates/swift-account-auditor.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-auditor /etc/swift/account-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"c808d1c9_2019dbc7","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"Why --verbose?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"140a508b4f0dc2da4383d4bd28c9176ce469fde3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-auditor /etc/swift/account-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"300e175f_059d02c5","line":2,"in_reply_to":"5c326af6_14026fb5","updated":"2025-09-22 12:23:01.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"05f3ae148b53b2aa74ac712b271b88c8df21ac43","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-auditor /etc/swift/account-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"5c326af6_14026fb5","line":2,"in_reply_to":"c808d1c9_2019dbc7","updated":"2025-09-22 11:57:51.000000000","message":"It\u0027s for operational visibility. The logs act as a health check to confirm the service is running, and they provide context to debug errors much faster.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-account-reaper.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-reaper /etc/swift/account-reaper.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"60d749f7_b004b222","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-reaper /etc/swift/account-reaper.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"da171064_60df7620","line":2,"in_reply_to":"60d749f7_b004b222","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-account-replication-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-server /etc/swift/account-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"6a2e3407_978e49d8","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-server /etc/swift/account-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"8ff8d538_f58a4000","line":2,"in_reply_to":"6a2e3407_978e49d8","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-account-replicator.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-replicator /etc/swift/account-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"eff9ed66_27fa59c6","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-replicator /etc/swift/account-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"e59c15d1_becd770b","line":2,"in_reply_to":"eff9ed66_27fa59c6","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-account-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-server /etc/swift/account-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"8ec1149c_b6517b15","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-account-server /etc/swift/account-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"94114c90_c45ed21f","line":2,"in_reply_to":"8ec1149c_b6517b15","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-container-auditor.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-auditor /etc/swift/container-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"9e4defa3_24fb980b","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-auditor /etc/swift/container-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"2ca13631_e660cdce","line":2,"in_reply_to":"9e4defa3_24fb980b","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-container-replication-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-server /etc/swift/container-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"e15b1cdb_1972bec4","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-server /etc/swift/container-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"91fb2bf3_104b5a62","line":2,"in_reply_to":"e15b1cdb_1972bec4","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-container-replicator.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-replicator /etc/swift/container-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"bcb32102_c8f1a345","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-replicator /etc/swift/container-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"994c86d8_ead0b19e","line":2,"in_reply_to":"bcb32102_c8f1a345","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-container-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-server /etc/swift/container-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"4375f6ce_df61f2e9","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-server /etc/swift/container-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"a7f5f9b1_fe4c9519","line":2,"in_reply_to":"4375f6ce_df61f2e9","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-container-updater.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-updater /etc/swift/container-updater.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"c967676d_04a979d1","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-container-updater /etc/swift/container-updater.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"7f473057_fc86a698","line":2,"in_reply_to":"c967676d_04a979d1","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-auditor.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-auditor /etc/swift/object-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"367c17db_ddea6601","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-auditor /etc/swift/object-auditor.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"e40a0008_025b27ba","line":2,"in_reply_to":"367c17db_ddea6601","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-expirer.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-expirer /etc/swift/object-expirer.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"f0970fa1_151386bb","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-expirer /etc/swift/object-expirer.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"34eae773_c4efb126","line":2,"in_reply_to":"f0970fa1_151386bb","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-replication-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-server /etc/swift/object-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"5ef08442_6fd63797","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-server /etc/swift/object-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"ff2bc15f_e44c3bc5","line":2,"in_reply_to":"5ef08442_6fd63797","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-replicator.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-replicator /etc/swift/object-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"4c89bf29_29eabfca","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-replicator /etc/swift/object-replicator.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"19dd4953_d25b2a7f","line":2,"in_reply_to":"4c89bf29_29eabfca","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-server /etc/swift/object-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"2fc0d818_e3392c76","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-server /etc/swift/object-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"51288bdb_da30b840","line":2,"in_reply_to":"2fc0d818_e3392c76","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-object-updater.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-updater /etc/swift/object-updater.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"ae52392f_0432cdc1","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-object-updater /etc/swift/object-updater.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/container.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"270939a3_68340d1b","line":2,"in_reply_to":"ae52392f_0432cdc1","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"ansible/roles/swift/templates/swift-proxy-server.json.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-proxy-server /etc/swift/proxy-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"119f2019_666c262e","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"swift-proxy-server /etc/swift/proxy-server.conf --verbose\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"/var/lib/kolla/swift/account.ring.gz\","}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"f283e242_bbbf5184","line":2,"in_reply_to":"119f2019_666c262e","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"etc/kolla/passwords.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":248,"context_line":"# Swift"},{"line_number":249,"context_line":"############"},{"line_number":250,"context_line":"swift_keystone_password:"},{"line_number":251,"context_line":"swift_hash_path_suffix:"},{"line_number":252,"context_line":"swift_hash_path_prefix:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"83ab671e_94658c46","line":251,"updated":"2025-09-08 07:28:24.000000000","message":"Is this really a secret/password?","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"ecb888c2b9e798de1ff8b01d93b87c4f3bb5b5f8","unresolved":false,"context_lines":[{"line_number":248,"context_line":"# Swift"},{"line_number":249,"context_line":"############"},{"line_number":250,"context_line":"swift_keystone_password:"},{"line_number":251,"context_line":"swift_hash_path_suffix:"},{"line_number":252,"context_line":"swift_hash_path_prefix:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"65e98320_95f9e6e1","line":251,"in_reply_to":"83ab671e_94658c46","updated":"2025-09-22 12:22:10.000000000","message":"Yes, they are secrets. They function as hashing salts for determining object placement. If exposed, an attacker could predict the physical location of data.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"releasenotes/notes/swift-reintroduce-flamingo-64f97e2d1a4c3b5f.yaml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"20416cd7_b9afc550","line":2,"updated":"2025-09-08 07:28:24.000000000","message":"feature","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"17f2bd5f98cae0553f23f40eea0630dda929f1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"3199ef98_d2430487","line":2,"in_reply_to":"20416cd7_b9afc550","updated":"2025-09-22 12:03:41.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"9a5a81bc_041cd952","line":5,"updated":"2025-09-08 07:28:24.000000000","message":"not giving any useful information to operators/users","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"227754e9993c678d1b6da67e23c8a8e8a3685024","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"d62017c3_13f0db04","line":5,"in_reply_to":"9a5a81bc_041cd952","updated":"2025-09-22 12:04:20.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"101f704e_559db81b","line":6,"updated":"2025-09-08 07:28:24.000000000","message":"ditto","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e0cc63aad97a167e01688ad267e1f2c26d32545f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"2d372a64_cc5c87a3","line":6,"in_reply_to":"101f704e_559db81b","updated":"2025-09-22 12:04:42.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e3a405f5_09c123af","line":7,"updated":"2025-09-08 07:28:24.000000000","message":"It\u0027s only in CI, remove that please.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e0cc63aad97a167e01688ad267e1f2c26d32545f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Reintroduce the Swift role and restore full Swift deployment support:"},{"line_number":5,"context_line":"    * Modernize Swift role layout and task sequencing"},{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"d2ad18a9_8d37da14","line":7,"in_reply_to":"e3a405f5_09c123af","updated":"2025-09-22 12:04:42.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"5606428c_9c99de27","line":9,"updated":"2025-09-08 07:28:24.000000000","message":"Adds, not enables - if so.","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"e0cc63aad97a167e01688ad267e1f2c26d32545f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    * Reinstate all Swift templates, handlers and checks"},{"line_number":7,"context_line":"    * Include python-swiftclient as a managed dependency"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This change enables end-to-end Swift provisioning via kolla-ansible."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"bb5d5de6_4baaebb9","line":9,"in_reply_to":"5606428c_9c99de27","updated":"2025-09-22 12:04:42.000000000","message":"Acknowledged","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"roles/kolla-ansible-swift-setup-disks/tasks/main.yml":[{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"31bc1c66cdb1464993b9c7ecd108d5fd780e27f3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Assert Swift disk file path is defined"},{"line_number":3,"context_line":"  ansible.builtin.assert:"},{"line_number":4,"context_line":"    that:"}],"source_content_type":"text/x-yaml","patch_set":105,"id":"aca41846_0ad5f500","line":1,"updated":"2026-02-14 07:59:44.000000000","message":"recheck - tempest scenario failed.","commit_id":"c7127db18400fdace78008af5bc8d0163ff8056f"}],"roles/openstack-clients/defaults/main.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027magnum\u0027 }}\""},{"line_number":27,"context_line":"  - package: python-zunclient"},{"line_number":28,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027zun\u0027 }}\""},{"line_number":29,"context_line":"  - package: python-swiftclient"},{"line_number":30,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027swift\u0027 }}\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack_clients_venv_base: \"{{ ansible_user_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"56a17608_243b68a4","line":29,"updated":"2025-09-08 07:28:24.000000000","message":"alphabetical order please","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"eaefda08ccd5b9de9e6f78df1ce37525d38c2701","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027magnum\u0027 }}\""},{"line_number":27,"context_line":"  - package: python-zunclient"},{"line_number":28,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027zun\u0027 }}\""},{"line_number":29,"context_line":"  - package: python-swiftclient"},{"line_number":30,"context_line":"    enabled: \"{{ scenario \u003d\u003d \u0027swift\u0027 }}\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack_clients_venv_base: \"{{ ansible_user_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"e15550fb_a3b95b52","line":29,"in_reply_to":"56a17608_243b68a4","updated":"2025-09-22 12:08:17.000000000","message":"Done","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}],"tests/templates/globals-default.j2":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e854154caab1ba3e79f60cf9781f50bf163f5b00","unresolved":true,"context_lines":[{"line_number":14,"context_line":"docker_apt_url: \"http://{{ zuul_site_mirror_fqdn }}:8080/docker/{{ ansible_facts.distribution | lower }}\""},{"line_number":15,"context_line":"docker_yum_url: \"http://{{ zuul_site_mirror_fqdn }}:8080/docker/centos\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# NOTE(bbezak): 28.3.2 is the last known-good release for Kolla CI."},{"line_number":18,"context_line":"# Remove these pins once the push bug is fixed."},{"line_number":19,"context_line":"docker_apt_package_pin:  \"5:28.3.2*\""},{"line_number":20,"context_line":"docker_yum_package_pin:  \"28.3.2*\""}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"b497d4bf_5747333e","line":17,"updated":"2025-09-08 07:28:24.000000000","message":"Remove this","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"},{"author":{"_account_id":37855,"name":"Amir Hossein Ahmadi","display_name":"Amir Hossein","email":"sahahmadi96@gmail.com","username":"amir58118"},"change_message_id":"bb18517c78cb21d8f899274a7e64ca6d45d8d876","unresolved":false,"context_lines":[{"line_number":14,"context_line":"docker_apt_url: \"http://{{ zuul_site_mirror_fqdn }}:8080/docker/{{ ansible_facts.distribution | lower }}\""},{"line_number":15,"context_line":"docker_yum_url: \"http://{{ zuul_site_mirror_fqdn }}:8080/docker/centos\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# NOTE(bbezak): 28.3.2 is the last known-good release for Kolla CI."},{"line_number":18,"context_line":"# Remove these pins once the push bug is fixed."},{"line_number":19,"context_line":"docker_apt_package_pin:  \"5:28.3.2*\""},{"line_number":20,"context_line":"docker_yum_package_pin:  \"28.3.2*\""}],"source_content_type":"text/x-jinja2","patch_set":25,"id":"8acf5db3_85e99252","line":17,"in_reply_to":"b497d4bf_5747333e","updated":"2025-09-21 14:35:20.000000000","message":"Done","commit_id":"bb4fb38c971d15f67e1bfb4423c3f90eca3f211e"}]}
