diff --git a/README.md b/README.md index 72a3697..dbc57b5 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,10 @@ Besides, the attachment location should be set to `s3` (this is automatically done by the `install` methods of the `cloud_platform` module). * `ir.config_parameter` `ir_attachment.location`: `s3` +Structure of bucket name is checked against environment. +It is possible to by-pass this behavior by using the following environment variable: +`AWS_BUCKETNAME_UNSTRUCTURED`. + ### Attachments in the Object Storage Swift @@ -100,6 +104,10 @@ Besides, the attachment location should be set to `swift` (this is automatically done by the `install` methods of the `cloud_platform` module). * `ir.config_parameter` `ir_attachment.location`: `swift` +Structure of container name is checked against environment. +It is possible to by-pass this behavior by using the following environment variable: +`SWIFT_WRITE_CONTAINER_UNSTRUCTURED`. + ### Sessions in Redis * prod: diff --git a/cloud_platform/models/cloud_platform.py b/cloud_platform/models/cloud_platform.py index 8605634..8bb3209 100644 --- a/cloud_platform/models/cloud_platform.py +++ b/cloud_platform/models/cloud_platform.py @@ -116,6 +116,13 @@ class CloudPlatform(models.AbstractModel): ) prod_container = bool(re.match(r'[a-z0-9-]+-odoo-prod', container_name)) + # A bucket name is defined under the following format + # -odoo- + # + # Use SWIFT_WRITE_CONTAINER_UNSTRUCTURED to by-pass check on bucket name + # structure + if os.environ.get('SWIFT_WRITE_CONTAINER_UNSTRUCTURED'): + return if environment_name == 'prod': assert prod_container, ( "SWIFT_WRITE_CONTAINER should match '-odoo-prod', " @@ -170,6 +177,13 @@ class CloudPlatform(models.AbstractModel): "If you don't actually need a bucket, change the" " 'ir_attachment.location' parameter." ) + # A bucket name is defined under the following format + # -odoo- + # + # Use AWS_BUCKETNAME_UNSTRUCTURED to by-pass check on bucket name + # structure + if os.environ.get('AWS_BUCKETNAME_UNSTRUCTURED'): + return prod_bucket = bool(re.match(r'[a-z-0-9]+-odoo-prod', bucket_name)) if environment_name == 'prod': assert prod_bucket, (