)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cbdcb879909e4dba682f66bd6ede20d1e4ba8cfa","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Damian Dabrowski \u003cdamian.dabrowski@cleura.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-02-26 21:30:12 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement backup_default_availability_zone variable"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When creating backup, cinder-scheduler reads `availability_zone`"},{"line_number":10,"context_line":"parameter(if it\u0027s defined) and looks for cinder-backup service in that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"84efb90d_5d16c11a","line":7,"updated":"2026-06-02 19:01:17.000000000","message":"This would be better as:\n\nAdd backup_default_availability_zone config opt","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"a1b66f5611091500b595461e1153a4da63f7906b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Damian Dabrowski \u003cdamian.dabrowski@cleura.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-02-26 21:30:12 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement backup_default_availability_zone variable"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When creating backup, cinder-scheduler reads `availability_zone`"},{"line_number":10,"context_line":"parameter(if it\u0027s defined) and looks for cinder-backup service in that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"501d8713_feb5fa29","line":7,"in_reply_to":"84efb90d_5d16c11a","updated":"2026-06-03 10:01:35.000000000","message":"Done","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cbdcb879909e4dba682f66bd6ede20d1e4ba8cfa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a8755c65_ac989df9","updated":"2026-06-02 19:01:17.000000000","message":"Looks good! A few minor points noted inline, but otherwise this is fine.","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"686985894911f77764ea1e7f8c07b260dd1e1e3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bb380aee_cfdd3315","updated":"2026-03-06 15:55:25.000000000","message":"recheck - now cinder-plugin-ceph-tempest failed (it didn\u0027t fail before)","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"38bb2417c6644ddf23d3387910d33b960b78a53d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b4f463e6_4d081049","updated":"2026-03-06 13:06:29.000000000","message":"recheck - tempest failed in a really unexpected way...it doesn\u0027t seem related to this patch. In logs I see msgs like:\n\n```\nFeb 26 22:11:05.627659 np8ba8b88085fb4 cinder-scheduler[88212]: ERROR cinder.scheduler.flows.create_volume [None req-7e7e5f01-81db-4622-9a67-bd2d4f386542 tempest-VolumeAndVolumeTypeFromImageTest-1494382889 None] Failed to run task cinder.scheduler.flows.create_volume.ScheduleCreateVolumeTask;volume:create: No valid backend was found. No weighed backends available: cinder.exception.NoValidBackend: No valid backend was found. No weighed backends available\n```\n\n```\nFeb 26 21:31:42.030620 np8ba8b88085fb4 devstack@c-api.service[87434]: ERROR cinder.volume.api [None req-b94bd1c9-0fba-40d7-92c6-34efb021a457 tempest-VolumeQuotasNegativeTestJSON-2009305400 tempest-VolumeQuotasNegativeTestJSON-2009305400-project-member] Quota exceeded for fe6371e4ac184f7ab75c361ada49e303, tried to extend volume by 1G, (1G of 1G already consumed).: cinder.exception.OverQuota: Quota exceeded for resources: [\u0027gigabytes\u0027]\n```","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"a1b66f5611091500b595461e1153a4da63f7906b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e14eaf39_289c69e9","in_reply_to":"a8755c65_ac989df9","updated":"2026-06-03 10:01:35.000000000","message":"thanks for the review! I addressed all your comments.","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"e710be644f52a96ad8954bb5afeab59ad9d4b5eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2ac0a87d_8be10ed7","updated":"2026-06-03 18:47:56.000000000","message":"looks ok to me.","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ea34f19d843344a69656138f7607a7b6992d9df8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5e0c0536_35afa3ef","updated":"2026-10-09 17:58:41.000000000","message":"LGTM.","commit_id":"8c9eef65c7e05c1f0377e23963a70277c87e1dc2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"cfa61c251003a13955b22974f6a9320818a12c1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"83e57503_fedc8dee","updated":"2026-10-08 13:34:57.000000000","message":"recheck","commit_id":"8c9eef65c7e05c1f0377e23963a70277c87e1dc2"}],"cinder/common/config.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"351534c4f19d3d23e3f67725bf60fc06d3b9b231","unresolved":true,"context_lines":[{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027Default availability zone for volume backups when no \u0027"},{"line_number":97,"context_line":"                    \u0027availability zone is requested explicitly. If not set, \u0027"},{"line_number":98,"context_line":"                    \u0027the source volume availability zone is used.\u0027),"},{"line_number":99,"context_line":"    cfg.BoolOpt(\u0027allow_availability_zone_fallback\u0027,"},{"line_number":100,"context_line":"                default\u003dFalse,"},{"line_number":101,"context_line":"                help\u003d\u0027If the requested Cinder availability zone is \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"91370c9d_9d8b75ba","line":98,"updated":"2026-08-10 13:24:48.000000000","message":"We need to document the proper precedence here: backup_default_availability_zone \u003e availability_zone \u003e volume.availability_zone","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"9c6e135ea196d860682eb0a88ceb0e6db759f4a8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027Default availability zone for volume backups when no \u0027"},{"line_number":97,"context_line":"                    \u0027availability zone is requested explicitly. If not set, \u0027"},{"line_number":98,"context_line":"                    \u0027the source volume availability zone is used.\u0027),"},{"line_number":99,"context_line":"    cfg.BoolOpt(\u0027allow_availability_zone_fallback\u0027,"},{"line_number":100,"context_line":"                default\u003dFalse,"},{"line_number":101,"context_line":"                help\u003d\u0027If the requested Cinder availability zone is \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"62437242_44a9bb68","line":98,"in_reply_to":"91370c9d_9d8b75ba","updated":"2026-10-07 20:23:00.000000000","message":"done, but the precedence is a bit different:\n\navailability_zone -\u003e backup_default_availability_zone -\u003e volume.availability_zone","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"}],"cinder/scheduler/host_manager.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"351534c4f19d3d23e3f67725bf60fc06d3b9b231","unresolved":true,"context_lines":[{"line_number":996,"context_line":"               availability_zone: Union[str, None]) -\u003e Union[str, None]:"},{"line_number":997,"context_line":"        if availability_zone:"},{"line_number":998,"context_line":"            az \u003d availability_zone"},{"line_number":999,"context_line":"        elif CONF.backup_default_availability_zone:"},{"line_number":1000,"context_line":"            az \u003d CONF.backup_default_availability_zone"},{"line_number":1001,"context_line":"        elif volume:"},{"line_number":1002,"context_line":"            az \u003d volume.availability_zone"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9489ab4_d148e4d4","line":999,"range":{"start_line":999,"start_character":18,"end_line":999,"end_character":50},"updated":"2026-08-10 13:24:48.000000000","message":"backup_default_availability_zone should take precedence over availability_zone, in these behavior should be documented in the docstring.","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"c0ff77d5186c4227e0974e52607188cd0cb2d5de","unresolved":true,"context_lines":[{"line_number":996,"context_line":"               availability_zone: Union[str, None]) -\u003e Union[str, None]:"},{"line_number":997,"context_line":"        if availability_zone:"},{"line_number":998,"context_line":"            az \u003d availability_zone"},{"line_number":999,"context_line":"        elif CONF.backup_default_availability_zone:"},{"line_number":1000,"context_line":"            az \u003d CONF.backup_default_availability_zone"},{"line_number":1001,"context_line":"        elif volume:"},{"line_number":1002,"context_line":"            az \u003d volume.availability_zone"}],"source_content_type":"text/x-python","patch_set":2,"id":"f0f35801_67dd3b81","line":999,"range":{"start_line":999,"start_character":18,"end_line":999,"end_character":50},"in_reply_to":"a9489ab4_d148e4d4","updated":"2026-08-11 12:20:11.000000000","message":"Thanks for flagging this\n\nTracing where the availability_zone argument to `get_az()` actually comes from: it\u0027s the value a user passes on `openstack volume backup create --availability-zone \u003caz\u003e`, stored as backup.availability_zone in cinder/backup/api.py, and forwarded unchanged through scheduler/manager.py to get_backup_host() to get_az().\n\nIf backup_default_availability_zone took precedence over that, then any deployment with the option set would silently ignore `--availability-zone` on every backup create call, with no error and no warning, since the user\u0027s explicit request just gets discarded in favor of the operator\u0027s default. That breaks a working, documented feature (per-backup AZ override) and would be very confusing to debug, since nothing indicates the flag was ignored.","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"8f61f8fe89ced609246b3da4727a7314c38e2794","unresolved":true,"context_lines":[{"line_number":996,"context_line":"               availability_zone: Union[str, None]) -\u003e Union[str, None]:"},{"line_number":997,"context_line":"        if availability_zone:"},{"line_number":998,"context_line":"            az \u003d availability_zone"},{"line_number":999,"context_line":"        elif CONF.backup_default_availability_zone:"},{"line_number":1000,"context_line":"            az \u003d CONF.backup_default_availability_zone"},{"line_number":1001,"context_line":"        elif volume:"},{"line_number":1002,"context_line":"            az \u003d volume.availability_zone"}],"source_content_type":"text/x-python","patch_set":2,"id":"3d00084d_36862a52","line":999,"range":{"start_line":999,"start_character":18,"end_line":999,"end_character":50},"in_reply_to":"cc371767_13ab03c6","updated":"2026-10-07 20:21:19.000000000","message":"I\u0027m super sorry for the long response :( I’ve updated the docstring.","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"35ab18c205e83465b8a3359d4c8112098997a39b","unresolved":true,"context_lines":[{"line_number":996,"context_line":"               availability_zone: Union[str, None]) -\u003e Union[str, None]:"},{"line_number":997,"context_line":"        if availability_zone:"},{"line_number":998,"context_line":"            az \u003d availability_zone"},{"line_number":999,"context_line":"        elif CONF.backup_default_availability_zone:"},{"line_number":1000,"context_line":"            az \u003d CONF.backup_default_availability_zone"},{"line_number":1001,"context_line":"        elif volume:"},{"line_number":1002,"context_line":"            az \u003d volume.availability_zone"}],"source_content_type":"text/x-python","patch_set":2,"id":"cc371767_13ab03c6","line":999,"range":{"start_line":999,"start_character":18,"end_line":999,"end_character":50},"in_reply_to":"f0f35801_67dd3b81","updated":"2026-09-17 15:31:45.000000000","message":"Hey Damian you are right. So, I see that there are 3 ways to set the AZ for the volume:\n\n1. availability_zone: set by the user during backup creation;\n2. CONF.backup_default_availability_zone: the operator setting we are adding;\n3. volume.availability_zone: set during volume creation;\n\nCan you document this behaviour new options help string?","commit_id":"b90e8808b65b72c149ed4b2c2ec21dace2d73ecd"}],"cinder/tests/unit/scheduler/test_scheduler.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cbdcb879909e4dba682f66bd6ede20d1e4ba8cfa","unresolved":true,"context_lines":[{"line_number":675,"context_line":"        self.assertEqual(\u0027backup_default_az\u0027, az)"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def test_get_az_falls_back_to_volume_az(self):"},{"line_number":678,"context_line":"        self.flags(backup_default_availability_zone\u003dNone)"},{"line_number":679,"context_line":"        volume \u003d fake_volume.fake_volume_obj("},{"line_number":680,"context_line":"            self.context, availability_zone\u003d\u0027volume_az\u0027)"},{"line_number":681,"context_line":"        hm \u003d fake_scheduler.FakeHostManager()"}],"source_content_type":"text/x-python","patch_set":1,"id":"f419ed73_492332ba","line":678,"range":{"start_line":678,"start_character":8,"end_line":678,"end_character":57},"updated":"2026-06-02 19:01:17.000000000","message":"This is a good test, but instead of setting the value to None, it might be better to leave it unset and just use the default.  That way, if someone monkeys with the default value, this test will break, which is good, because we want the default to be None to preserve the standard behavior.  (Because you\u0027re using the \"flags\" function in the previous test, the change in value there won\u0027t affect this test.)","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"a1b66f5611091500b595461e1153a4da63f7906b","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        self.assertEqual(\u0027backup_default_az\u0027, az)"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def test_get_az_falls_back_to_volume_az(self):"},{"line_number":678,"context_line":"        self.flags(backup_default_availability_zone\u003dNone)"},{"line_number":679,"context_line":"        volume \u003d fake_volume.fake_volume_obj("},{"line_number":680,"context_line":"            self.context, availability_zone\u003d\u0027volume_az\u0027)"},{"line_number":681,"context_line":"        hm \u003d fake_scheduler.FakeHostManager()"}],"source_content_type":"text/x-python","patch_set":1,"id":"e00b9b30_4391a5e4","line":678,"range":{"start_line":678,"start_character":8,"end_line":678,"end_character":57},"in_reply_to":"f419ed73_492332ba","updated":"2026-06-03 10:01:35.000000000","message":"Done","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"}],"releasenotes/notes/backup_default_availability_zone-895d6743a6d61328.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cbdcb879909e4dba682f66bd6ede20d1e4ba8cfa","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``backup_default_availability_zone`` variable that can be used to"},{"line_number":5,"context_line":"    define default availability zone for backups."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"be4acc12_630059e8","line":4,"range":{"start_line":4,"start_character":47,"end_line":4,"end_character":55},"updated":"2026-06-02 19:01:17.000000000","message":"s/variable/configuration option/","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"a1b66f5611091500b595461e1153a4da63f7906b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``backup_default_availability_zone`` variable that can be used to"},{"line_number":5,"context_line":"    define default availability zone for backups."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dbfe76e6_0f628fb4","line":4,"range":{"start_line":4,"start_character":47,"end_line":4,"end_character":55},"in_reply_to":"be4acc12_630059e8","updated":"2026-06-03 10:01:35.000000000","message":"Done","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cbdcb879909e4dba682f66bd6ede20d1e4ba8cfa","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``backup_default_availability_zone`` variable that can be used to"},{"line_number":5,"context_line":"    define default availability zone for backups."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1fcca293_e7518379","line":5,"updated":"2026-06-02 19:01:17.000000000","message":"I suggest adding: for deployments where volume availability zones do not match backup availability zones.  The default value is ``None``, which respects the current behavior.\n\n(you can elaborate more if you want, this is the text that operators will see, so you want them to know both that the new option exists and what it\u0027s for)","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"a1b66f5611091500b595461e1153a4da63f7906b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``backup_default_availability_zone`` variable that can be used to"},{"line_number":5,"context_line":"    define default availability zone for backups."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"808bc434_af6d5382","line":5,"in_reply_to":"1fcca293_e7518379","updated":"2026-06-03 10:01:35.000000000","message":"Done","commit_id":"3dcda844ae73ddb06993c2bbcffd9829f52f216d"}]}
