)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"67eba7d0195ce12522752dbe4bdb820837646e57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df7a2c45_7f5f9148","updated":"2025-12-12 17:34:53.000000000","message":"I think I\u0027m ok with this proposal, though the lack of discoverability (see inline comments) bothers me a bit.  But that doesn\u0027t necessarily have to be handled as part of this spec.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3939d104_bd107ed8","updated":"2026-01-08 14:45:15.000000000","message":"Again, a linting review.","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"77adb200eb11966f01962e94451351a570ba1c69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"24f34754_d1e0dc35","updated":"2026-01-08 14:52:20.000000000","message":"Looking at this spec and the complementary spec I see a couple of things you might want to think about:\n\n1. Add something in the documentation that explicitly states \"When templating expands the container namespace, ``backup_create_containers\u003dFalse`` requires operators to pre-create all possible template outputs.\"\n\n2. User experience may not be great in certain circumstances due to timing clashes. The template name is resolved at runtime, bu the existence check is asynchronous, so a user could submit a backup request that passes the API validation, resolves to a container name they\u0027ve never seen and later fails with a 404. The templating increases the risk of this happening.\n\n4. I would want the implementation to folow in a specific order:\n   * Resolve ``backup_container_name_template``\n   * Produce a single, final container name\n   * Perform existence check on the backend\n   * Enforce ``backup_create_containers``\n   This will ensure consistent behaviour across drivers.","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"a4055663749f2298959098c5acf7558da3273d61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e304289f_14512aa6","in_reply_to":"24f34754_d1e0dc35","updated":"2026-01-14 16:34:10.000000000","message":"1. So I made these 2 specs independent ones. I think I will be proposing a follow-up patch with a dependency to address documentation.\n\n2. Frankly... I kinda not sure that users should be able to supply an arbitrary container name to begin with. This makes limited sense in any public cloud, as this may allow to get out of the expected quota/billing/etc. And in case of POSIX driver there\u0027s really possibility to get Denial of Service, in case operator naively defined some mount to default container name, instead of /var/lib/cinder. But also 404, or some kind of 403 can be easily received in GCS and S3 driver under same conditions.\nI agree though that timing is bad, but doing it during the request would mean to change design quite significantly and tighten API to RPC communications. Which is not implicilty bad, but should be done separately as a generic effort for service refactoring.\n\n3. I think this is actually what happens today? As `backup_container_name_template` is resolved in chunkeddriver, so all other backup drivers will use it as \"final container name\", including check verification. So I\u0027d say this all accounted for now as of today with reference implementations.","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"be8e779c142d92bda780d05ce759eb1bed429c64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5b8b1434_b049b3f1","in_reply_to":"3939d104_bd107ed8","updated":"2026-01-14 17:06:38.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"36d0b438726c493378eb68311cc2115e79ebd4e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1546f8d9_8e7980bb","in_reply_to":"e304289f_14512aa6","updated":"2026-01-14 17:09:49.000000000","message":"1. So implementations (https://review.opendev.org/c/openstack/cinder/+/959425 and https://review.opendev.org/c/openstack/cinder/+/962909) are in a merge conflict now anyway, so I will update the patch during the rebase, depending on what merges first, to make sure the options are cross-referenced and their impact explained.","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"be8e779c142d92bda780d05ce759eb1bed429c64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"002a6ef6_040d0d65","updated":"2026-01-14 17:06:38.000000000","message":"Looks good from my side","commit_id":"0f0a231b656e9d0e67c74bfac33d67c0b576f7d5"}],"specs/2026.1/restrict-backup-container-creation.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"67eba7d0195ce12522752dbe4bdb820837646e57","unresolved":true,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c37e2163_31f46227","line":65,"updated":"2025-12-12 17:34:53.000000000","message":"This is a key point to make clear in the documentation.  I suppose we could allow creation of the default container, but maybe that would introduce unnecessary complexity.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e4814ff9526cc49307cb990e53bf359db61659d4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c16b49f4_deb2be12","line":65,"in_reply_to":"c37e2163_31f46227","updated":"2025-12-15 09:54:44.000000000","message":"I\u0027m not sure we can do it cleanly, as at the driver level we already get resulting container name. We ofc can pull up property from the config and compare, but it might worth to keep it simple indeed.\n\nThen also I\u0027m thinking about the usecase of restricting issued S3 credentials from creating new buckets, which is totally possible and might be preferable to do for fine-grained ACLs.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"67eba7d0195ce12522752dbe4bdb820837646e57","unresolved":true,"context_lines":[{"line_number":87,"context_line":"parameter which will not be found on backends with"},{"line_number":88,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":89,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":90,"context_line":"``backups`` table."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Security impact"},{"line_number":93,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"131c1c51_69daca0a","line":90,"updated":"2025-12-12 17:34:53.000000000","message":"It\u0027s too bad we can\u0027t do a fast fail from the REST API, but there\u0027s no way to know what containers are available until the driver goes out to the backend and looks.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e4814ff9526cc49307cb990e53bf359db61659d4","unresolved":false,"context_lines":[{"line_number":87,"context_line":"parameter which will not be found on backends with"},{"line_number":88,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":89,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":90,"context_line":"``backups`` table."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Security impact"},{"line_number":93,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dac769e8_decc91a1","line":90,"in_reply_to":"131c1c51_69daca0a","updated":"2025-12-15 09:54:44.000000000","message":"Yeah, I was also thinking about it, but I have no idea on how to do that actually with current design, where response from the cinder-backup is asynchronous and executed after API call is finished.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"67eba7d0195ce12522752dbe4bdb820837646e57","unresolved":true,"context_lines":[{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"When ``backup_create_containers\u003dFalse`` users will be unable to create backups"},{"line_number":115,"context_line":"under arbitrary supplied container names."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":118,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fff205ce_796ffb91","line":115,"updated":"2025-12-12 17:34:53.000000000","message":"The \u0027container\u0027 isn\u0027t in the default backup resource filters [0], so end users wouldn\u0027t expect to be able to filter the list-backups-detail call by container.  What I mean is I don\u0027t think we\u0027re taking away an ability for end users to organize their backups by putting them into specific containers.\n\n[0] https://opendev.org/openstack/cinder/src/commit/a2c9aadc3fde1406cdc7a517fdae42b567338d6d/etc/cinder/resource_filters.json#L6","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e4814ff9526cc49307cb990e53bf359db61659d4","unresolved":false,"context_lines":[{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"When ``backup_create_containers\u003dFalse`` users will be unable to create backups"},{"line_number":115,"context_line":"under arbitrary supplied container names."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":118,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"}],"source_content_type":"text/x-rst","patch_set":3,"id":"aba8dc95_724cbc55","line":115,"in_reply_to":"fff205ce_796ffb91","updated":"2025-12-15 09:54:44.000000000","message":"Ok, right, what I meant to say was that list of available container names should is defined by the cloud provider. Changed the wording.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"67eba7d0195ce12522752dbe4bdb820837646e57","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":118,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"},{"line_number":119,"context_line":"an error on issuing API request, but will see backup creation failure instead."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Performance Impact"},{"line_number":122,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"2ed57544_c0db2ad8","line":119,"updated":"2025-12-12 17:34:53.000000000","message":"Also, there\u0027s no way to tell in advance what the backup_create_containers setting is in a particular cloud, and no way to discover what the valid container names are.  I guess it will be up to the operator to supply good user documentation on this.","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e4814ff9526cc49307cb990e53bf359db61659d4","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":118,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"},{"line_number":119,"context_line":"an error on issuing API request, but will see backup creation failure instead."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Performance Impact"},{"line_number":122,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e99381f8_5cc8b5b3","line":119,"in_reply_to":"2ed57544_c0db2ad8","updated":"2025-12-15 09:54:44.000000000","message":"Acknowledged","commit_id":"28e53a079c001d74a0306a1c5626a063b76cc111"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/cinder/+spec/restrict-backup-container-creation"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"6ae3409a_782317a8","line":16,"range":{"start_line":16,"start_character":37,"end_line":16,"end_character":46},"updated":"2026-01-08 14:45:15.000000000","message":"nit: existent","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/cinder/+spec/restrict-backup-container-creation"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"feb15223_05d1af38","line":16,"range":{"start_line":15,"start_character":44,"end_line":16,"end_character":24},"updated":"2026-01-08 14:45:15.000000000","message":"reads better as “restrict new container creation by users during backup creation”","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/cinder/+spec/restrict-backup-container-creation"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"f397768a_320c9926","line":16,"range":{"start_line":16,"start_character":37,"end_line":16,"end_character":46},"in_reply_to":"6ae3409a_782317a8","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/cinder/+spec/restrict-backup-container-creation"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"e8e7d3b1_a41dfdd2","line":16,"range":{"start_line":15,"start_character":44,"end_line":16,"end_character":24},"in_reply_to":"feb15223_05d1af38","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5d57ac21_ed57befa","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":28},"updated":"2026-01-08 14:45:15.000000000","message":"nit: add \"a\" here","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is designed to allow operators to restrict new container creation by"},{"line_number":16,"context_line":"users on backup creation, when a non-existing container is passed as"},{"line_number":17,"context_line":"``container`` argument with POST ``/v3/{project_id}/backups`` request."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dea05d32_1e0285d8","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":28},"in_reply_to":"5d57ac21_ed57befa","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"While creating Cinder Backups, users are able to supply an arbitrary container"},{"line_number":24,"context_line":"name, where the backup will be stored. While this behavior makes total sense"},{"line_number":25,"context_line":"with Swift driver and ``backup_swift_auth\u003dper_user``, as this will utilize"},{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"33239f1b_6bf48cf0","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":29},"updated":"2026-01-08 14:45:15.000000000","message":"nit: check your capitization. You are inconsistent throughout. Lowercase\u0027b\u0027 is preferred","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"While creating Cinder Backups, users are able to supply an arbitrary container"},{"line_number":24,"context_line":"name, where the backup will be stored. While this behavior makes total sense"},{"line_number":25,"context_line":"with Swift driver and ``backup_swift_auth\u003dper_user``, as this will utilize"},{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"811087f6_91747a09","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":29},"in_reply_to":"33239f1b_6bf48cf0","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"While creating Cinder Backups, users are able to supply an arbitrary container"},{"line_number":24,"context_line":"name, where the backup will be stored. While this behavior makes total sense"},{"line_number":25,"context_line":"with Swift driver and ``backup_swift_auth\u003dper_user``, as this will utilize"},{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"},{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"79551f1c_920f07a2","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":5},"updated":"2026-01-08 14:45:15.000000000","message":"nit: add \"the\" here","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"While creating Cinder Backups, users are able to supply an arbitrary container"},{"line_number":24,"context_line":"name, where the backup will be stored. While this behavior makes total sense"},{"line_number":25,"context_line":"with Swift driver and ``backup_swift_auth\u003dper_user``, as this will utilize"},{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"},{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f565efc_2130bec6","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":5},"in_reply_to":"79551f1c_920f07a2","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"},{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."}],"source_content_type":"text/x-rst","patch_set":4,"id":"a43a144e_44dbd718","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":75},"updated":"2026-01-08 14:45:15.000000000","message":"nit: when users use","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":26,"context_line":"tenant quota and data will be accounted properly, using arbitrary containers"},{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."}],"source_content_type":"text/x-rst","patch_set":4,"id":"8accc7af_0fd0f100","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":75},"in_reply_to":"a43a144e_44dbd718","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"641b9ff7_3bfc9967","line":30,"range":{"start_line":30,"start_character":40,"end_line":30,"end_character":47},"updated":"2026-01-08 14:45:15.000000000","message":"nit: being unable","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":27,"context_line":"might be unwanted by operators while using other drivers."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"370c5817_b53a92a5","line":30,"range":{"start_line":30,"start_character":40,"end_line":30,"end_character":47},"in_reply_to":"641b9ff7_3bfc9967","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"At the moment container creation is supported by the following drivers:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"4df2622a_4206526a","line":32,"range":{"start_line":32,"start_character":9,"end_line":32,"end_character":19},"updated":"2026-01-08 14:45:15.000000000","message":"nit: two words - disk space","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Current behavior may cause various negative side-effects when user will use"},{"line_number":30,"context_line":"arbitrary container names, for example: unable to enforce storage policies,"},{"line_number":31,"context_line":"going out of designed quota for backups, complications for accounting of"},{"line_number":32,"context_line":"consumed diskspace and billing, etc."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"At the moment container creation is supported by the following drivers:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ed4d33d_45a01471","line":32,"range":{"start_line":32,"start_character":9,"end_line":32,"end_character":19},"in_reply_to":"4df2622a_4206526a","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"At the moment container creation is supported by the following drivers:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* swift"},{"line_number":37,"context_line":"* s3"},{"line_number":38,"context_line":"* gcs"},{"line_number":39,"context_line":"* posix"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fe2007cf_74fa5c9a","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":7},"updated":"2026-01-08 14:45:15.000000000","message":"nit: capitalize?","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"At the moment container creation is supported by the following drivers:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* swift"},{"line_number":37,"context_line":"* s3"},{"line_number":38,"context_line":"* gcs"},{"line_number":39,"context_line":"* posix"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"af80ddb5_68713d7a","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":7},"in_reply_to":"fe2007cf_74fa5c9a","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"For instance, with S3/GCS driver as operator I want to pre-create a series of"},{"line_number":46,"context_line":"buckets with different policies like object locking with various retention"},{"line_number":47,"context_line":"rules or different storage classes. While current behavior might work, ability"},{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"21454156_fe4aa135","line":45,"range":{"start_line":45,"start_character":14,"end_line":45,"end_character":51},"updated":"2026-01-08 14:45:15.000000000","message":"prefer \"with the S3/GCS driver, as an operator, I want\"","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"9ca2e5b4e837272a9e873e421e15c1cd95fbe73b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"For instance, with S3/GCS driver as operator I want to pre-create a series of"},{"line_number":46,"context_line":"buckets with different policies like object locking with various retention"},{"line_number":47,"context_line":"rules or different storage classes. While current behavior might work, ability"},{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ce40b421_9bd0ac48","line":45,"range":{"start_line":45,"start_character":14,"end_line":45,"end_character":51},"in_reply_to":"21454156_fe4aa135","updated":"2026-01-14 17:05:04.000000000","message":"Done\n\nI think I just missed to mark it as done when sending the patch.","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":45,"context_line":"For instance, with S3/GCS driver as operator I want to pre-create a series of"},{"line_number":46,"context_line":"buckets with different policies like object locking with various retention"},{"line_number":47,"context_line":"rules or different storage classes. While current behavior might work, ability"},{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"},{"line_number":49,"context_line":"as due to typos backups may end in unexpected locations."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9234c12d_f30aaa14","line":48,"range":{"start_line":48,"start_character":44,"end_line":48,"end_character":77},"updated":"2026-01-08 14:45:15.000000000","message":"nit: in an approach that is error-prone","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":45,"context_line":"For instance, with S3/GCS driver as operator I want to pre-create a series of"},{"line_number":46,"context_line":"buckets with different policies like object locking with various retention"},{"line_number":47,"context_line":"rules or different storage classes. While current behavior might work, ability"},{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"},{"line_number":49,"context_line":"as due to typos backups may end in unexpected locations."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"81c68f0b_e8c25eac","line":48,"range":{"start_line":48,"start_character":44,"end_line":48,"end_character":77},"in_reply_to":"9234c12d_f30aaa14","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"},{"line_number":49,"context_line":"as due to typos backups may end in unexpected locations."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"},{"line_number":52,"context_line":"underlying storages per \"container\". With current behavior this approach is"},{"line_number":53,"context_line":"impossible as users may go out of mounts bound by creating a new path based of"},{"line_number":54,"context_line":"arbitrary container name."}],"source_content_type":"text/x-rst","patch_set":4,"id":"b10f2353_41ffeafd","line":51,"range":{"start_line":51,"start_character":5,"end_line":51,"end_character":11},"updated":"2026-01-08 14:45:15.000000000","message":"nit: the POSIX","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":48,"context_line":"for users to create new buckets will result in approach not being error-prone,"},{"line_number":49,"context_line":"as due to typos backups may end in unexpected locations."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"},{"line_number":52,"context_line":"underlying storages per \"container\". With current behavior this approach is"},{"line_number":53,"context_line":"impossible as users may go out of mounts bound by creating a new path based of"},{"line_number":54,"context_line":"arbitrary container name."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ee01564a_31df274e","line":51,"range":{"start_line":51,"start_character":5,"end_line":51,"end_character":11},"in_reply_to":"b10f2353_41ffeafd","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"},{"line_number":52,"context_line":"underlying storages per \"container\". With current behavior this approach is"},{"line_number":53,"context_line":"impossible as users may go out of mounts bound by creating a new path based of"},{"line_number":54,"context_line":"arbitrary container name."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4914ea66_08ee5f94","line":53,"range":{"start_line":53,"start_character":14,"end_line":53,"end_character":69},"updated":"2026-01-08 14:45:15.000000000","message":"rephrase to: “users may bypass the defined mount boundaries by creating a new path”","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"With posix driver as example, as operator I want to have different mounts and"},{"line_number":52,"context_line":"underlying storages per \"container\". With current behavior this approach is"},{"line_number":53,"context_line":"impossible as users may go out of mounts bound by creating a new path based of"},{"line_number":54,"context_line":"arbitrary container name."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ea069359_ef25a491","line":53,"range":{"start_line":53,"start_character":14,"end_line":53,"end_character":69},"in_reply_to":"4914ea66_08ee5f94","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"It is proposed to introduce a new configuration option"},{"line_number":60,"context_line":"``backup_create_containers``, which will control whether Cinder Backup will"},{"line_number":61,"context_line":"attempt to create a new container when user has supplied a non-existing"},{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b208c1e0_f79d31b2","line":61,"range":{"start_line":61,"start_character":34,"end_line":61,"end_character":43},"updated":"2026-01-08 14:45:15.000000000","message":"nit: when a user","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"It is proposed to introduce a new configuration option"},{"line_number":60,"context_line":"``backup_create_containers``, which will control whether Cinder Backup will"},{"line_number":61,"context_line":"attempt to create a new container when user has supplied a non-existing"},{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fce09984_a3c10161","line":61,"range":{"start_line":61,"start_character":34,"end_line":61,"end_character":43},"in_reply_to":"b208c1e0_f79d31b2","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities. This means, that all"},{"line_number":66,"context_line":"containers, including the default one, must be pre-created before any backup"},{"line_number":67,"context_line":"can be done."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"b9b1a748_1b894c78","line":65,"range":{"start_line":65,"start_character":66,"end_line":65,"end_character":68},"updated":"2026-01-08 14:45:15.000000000","message":"nit: remove comma","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities. This means, that all"},{"line_number":66,"context_line":"containers, including the default one, must be pre-created before any backup"},{"line_number":67,"context_line":"can be done."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"65f6b5c5_092c4cf3","line":65,"range":{"start_line":65,"start_character":38,"end_line":65,"end_character":54},"updated":"2026-01-08 14:45:15.000000000","message":"nit: responsibility","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities. This means, that all"},{"line_number":66,"context_line":"containers, including the default one, must be pre-created before any backup"},{"line_number":67,"context_line":"can be done."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"71bfa8a9_2c706159","line":65,"range":{"start_line":65,"start_character":38,"end_line":65,"end_character":54},"in_reply_to":"65f6b5c5_092c4cf3","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":62,"context_line":"container name in request or fail such request."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"When this option is set to False, duty of creating all containers, including"},{"line_number":65,"context_line":"the default one, falls under operator responsibilities. This means, that all"},{"line_number":66,"context_line":"containers, including the default one, must be pre-created before any backup"},{"line_number":67,"context_line":"can be done."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"8db1cebc_9bc4b977","line":65,"range":{"start_line":65,"start_character":66,"end_line":65,"end_character":68},"in_reply_to":"b9b1a748_1b894c78","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":72,"context_line":"Alternative approach would be to introduce a separate policy, which may allow"},{"line_number":73,"context_line":"users with required privileges to create containers with backups."},{"line_number":74,"context_line":"However, implementation of this approach is more complex while not providing"},{"line_number":75,"context_line":"much more benefits for the usecase, given that operators are usually not"},{"line_number":76,"context_line":"executing backup creation on their own."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b7620839_9aadc675","line":75,"range":{"start_line":75,"start_character":27,"end_line":75,"end_character":34},"updated":"2026-01-08 14:45:15.000000000","message":"nit: use case","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Alternative approach would be to introduce a separate policy, which may allow"},{"line_number":73,"context_line":"users with required privileges to create containers with backups."},{"line_number":74,"context_line":"However, implementation of this approach is more complex while not providing"},{"line_number":75,"context_line":"much more benefits for the usecase, given that operators are usually not"},{"line_number":76,"context_line":"executing backup creation on their own."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ec4df61f_508e53af","line":75,"range":{"start_line":75,"start_character":27,"end_line":75,"end_character":34},"in_reply_to":"b7620839_9aadc675","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":86,"context_line":"No direct impact on REST API."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fe60ca50_6a732416","line":89,"range":{"start_line":89,"start_character":10,"end_line":89,"end_character":33},"updated":"2026-01-08 14:45:15.000000000","message":"nit: that is not found","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":86,"context_line":"No direct impact on REST API."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."}],"source_content_type":"text/x-rst","patch_set":4,"id":"42480f84_e1bc02f4","line":89,"range":{"start_line":89,"start_character":10,"end_line":89,"end_character":33},"in_reply_to":"fe60ca50_6a732416","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"98450323_d5359c1a","line":91,"range":{"start_line":91,"start_character":41,"end_line":91,"end_character":44},"updated":"2026-01-08 14:45:15.000000000","message":"nit: in","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1fbe387e_250db0a5","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":5},"updated":"2026-01-08 14:45:15.000000000","message":"nit: with the","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"800ab045_a994d88b","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":5},"in_reply_to":"1fbe387e_250db0a5","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":88,"context_line":"POST requests to ``/v3/{project_id}/backups`` supplying ``container``"},{"line_number":89,"context_line":"parameter which will not be found on backends with"},{"line_number":90,"context_line":"``backup_create_containers\u003dFalse`` will result in backup creation failures,"},{"line_number":91,"context_line":"with corresponding reason being recorded to ``fail_reason`` column of"},{"line_number":92,"context_line":"``backups`` table."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e40fc898_f773e76a","line":91,"range":{"start_line":91,"start_character":41,"end_line":91,"end_character":44},"in_reply_to":"98450323_d5359c1a","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"This change should positively impact overall security of Cinder Backup,"},{"line_number":98,"context_line":"as allows to restrict potentially too open possibilities of container"},{"line_number":99,"context_line":"creation, which depending on deployment design and driver may result in"},{"line_number":100,"context_line":"an unexpected behavior or even result in denial of service."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"4344eae0_e7f52038","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":21},"updated":"2026-01-08 14:45:15.000000000","message":"better as \"as it allows restricting\"","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"This change should positively impact overall security of Cinder Backup,"},{"line_number":98,"context_line":"as allows to restrict potentially too open possibilities of container"},{"line_number":99,"context_line":"creation, which depending on deployment design and driver may result in"},{"line_number":100,"context_line":"an unexpected behavior or even result in denial of service."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"87d8379f_0aa4ba34","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":21},"in_reply_to":"4344eae0_e7f52038","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"This change should positively impact overall security of Cinder Backup,"},{"line_number":98,"context_line":"as allows to restrict potentially too open possibilities of container"},{"line_number":99,"context_line":"creation, which depending on deployment design and driver may result in"},{"line_number":100,"context_line":"an unexpected behavior or even result in denial of service."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Active/Active HA impact"},{"line_number":103,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5ae22027_9f38e8d1","line":100,"range":{"start_line":99,"start_character":58,"end_line":100,"end_character":58},"updated":"2026-01-08 14:45:15.000000000","message":"better as: “may lead to unexpected behavior or even denial of service\"","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"This change should positively impact overall security of Cinder Backup,"},{"line_number":98,"context_line":"as allows to restrict potentially too open possibilities of container"},{"line_number":99,"context_line":"creation, which depending on deployment design and driver may result in"},{"line_number":100,"context_line":"an unexpected behavior or even result in denial of service."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Active/Active HA impact"},{"line_number":103,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c43cb4ae_83f1e939","line":100,"range":{"start_line":99,"start_character":58,"end_line":100,"end_character":58},"in_reply_to":"5ae22027_9f38e8d1","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"When ``backup_create_containers\u003dFalse`` users will be able to create backups"},{"line_number":117,"context_line":"only in pre-defined by cloud provider set of container names and will not be"},{"line_number":118,"context_line":"able to use an arbitrary container names."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"99e6dd5b_f635bb5e","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":60},"updated":"2026-01-08 14:45:15.000000000","message":"reads better as \"only in a predefined set of container names provided by the cloud provider”","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"When ``backup_create_containers\u003dFalse`` users will be able to create backups"},{"line_number":117,"context_line":"only in pre-defined by cloud provider set of container names and will not be"},{"line_number":118,"context_line":"able to use an arbitrary container names."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a834118_0e43f076","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":60},"in_reply_to":"99e6dd5b_f635bb5e","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"When ``backup_create_containers\u003dFalse`` users will be able to create backups"},{"line_number":117,"context_line":"only in pre-defined by cloud provider set of container names and will not be"},{"line_number":118,"context_line":"able to use an arbitrary container names."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":121,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c584a807_1832496b","line":118,"range":{"start_line":118,"start_character":12,"end_line":118,"end_character":15},"updated":"2026-01-08 14:45:15.000000000","message":"nit: remove \u0027an\u0027","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"When ``backup_create_containers\u003dFalse`` users will be able to create backups"},{"line_number":117,"context_line":"only in pre-defined by cloud provider set of container names and will not be"},{"line_number":118,"context_line":"able to use an arbitrary container names."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":121,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a77b1145_5618eb80","line":118,"range":{"start_line":118,"start_character":12,"end_line":118,"end_character":15},"in_reply_to":"c584a807_1832496b","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":121,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"},{"line_number":122,"context_line":"an error on issuing API request, but will see a 404 error as a reason for"},{"line_number":123,"context_line":"backup creation failure instead."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9c4208b5_2accf94c","line":123,"range":{"start_line":122,"start_character":37,"end_line":123,"end_character":31},"updated":"2026-01-08 14:45:15.000000000","message":"might be worth explicitly stating that this 404 is surfaced in the backup status not the API response","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"A disadvantage of the approach, is that check for container existence is"},{"line_number":121,"context_line":"performed asynchronously by cinder-backup service, so user will not receive"},{"line_number":122,"context_line":"an error on issuing API request, but will see a 404 error as a reason for"},{"line_number":123,"context_line":"backup creation failure instead."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d7880143_6a281743","line":123,"range":{"start_line":122,"start_character":37,"end_line":123,"end_character":31},"in_reply_to":"9c4208b5_2accf94c","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":122,"context_line":"an error on issuing API request, but will see a 404 error as a reason for"},{"line_number":123,"context_line":"backup creation failure instead."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"},{"line_number":127,"context_line":"not. It is a cloud provider responsibility to inform users about cases, where"},{"line_number":128,"context_line":"``backup_create_containers`` is set to ``False``."}],"source_content_type":"text/x-rst","patch_set":4,"id":"838ba919_6dd8a54c","line":125,"range":{"start_line":125,"start_character":17,"end_line":125,"end_character":33},"updated":"2026-01-08 14:45:15.000000000","message":"nit: discoverability mechanism","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":122,"context_line":"an error on issuing API request, but will see a 404 error as a reason for"},{"line_number":123,"context_line":"backup creation failure instead."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"},{"line_number":127,"context_line":"not. It is a cloud provider responsibility to inform users about cases, where"},{"line_number":128,"context_line":"``backup_create_containers`` is set to ``False``."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfa40532_ff87022c","line":125,"range":{"start_line":125,"start_character":17,"end_line":125,"end_character":33},"in_reply_to":"838ba919_6dd8a54c","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"},{"line_number":127,"context_line":"not. It is a cloud provider responsibility to inform users about cases, where"},{"line_number":128,"context_line":"``backup_create_containers`` is set to ``False``."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0889ff0c_605c2f49","line":127,"range":{"start_line":127,"start_character":11,"end_line":127,"end_character":13},"updated":"2026-01-08 14:45:15.000000000","message":"nit: the","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"There is also no discoverability if this property is enabled or not, so user"},{"line_number":126,"context_line":"is not able to know in advance if ``backup_create_containers`` is enabled or"},{"line_number":127,"context_line":"not. It is a cloud provider responsibility to inform users about cases, where"},{"line_number":128,"context_line":"``backup_create_containers`` is set to ``False``."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9291ff3b_4f199cb6","line":127,"range":{"start_line":127,"start_character":11,"end_line":127,"end_character":13},"in_reply_to":"0889ff0c_605c2f49","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3573d1215f897d031cb1598ca33eb4c9af51212b","unresolved":true,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Default value of ``backup_create_containers`` is proposed to be set to"},{"line_number":139,"context_line":"``True``, to preserve existing behavior."},{"line_number":140,"context_line":"Thus, no deployer impact is expected."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Developer impact"},{"line_number":143,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"439f4739_a7bc7d7d","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":4},"updated":"2026-01-08 14:45:15.000000000","message":"nit: Therefore","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"00d224022d565fcb1922be6f55f30f9ffdca0609","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Default value of ``backup_create_containers`` is proposed to be set to"},{"line_number":139,"context_line":"``True``, to preserve existing behavior."},{"line_number":140,"context_line":"Thus, no deployer impact is expected."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Developer impact"},{"line_number":143,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"55a005a0_dc217911","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":4},"in_reply_to":"439f4739_a7bc7d7d","updated":"2026-01-14 16:58:34.000000000","message":"Done","commit_id":"61f3204d658d9e6593257ef4ec7b6b4697b63398"}]}
