Require AWS_BUCKETNAME for prod, integration and labs environments only

AWS_BUCKETNAME is only needed in order to write on the bucket, but
read-only access should be allowed for other environments.

Fixes bug introduced by 6c3b610610
This commit is contained in:
Akim Juillerat
2020-02-25 15:51:29 +01:00
parent ccbae04ae0
commit 33ba2631d3
+24 -22
View File
@@ -100,17 +100,18 @@ class CloudPlatform(models.AbstractModel):
"SWIFT_PASSWORD environment variable is required when " "SWIFT_PASSWORD environment variable is required when "
"ir_attachment.location is 'swift'." "ir_attachment.location is 'swift'."
) )
container_name = os.environ.get('SWIFT_WRITE_CONTAINER') container_name = os.environ.get('SWIFT_WRITE_CONTAINER', '')
assert container_name, ( if environment_name in ('prod', 'integration', 'labs'):
"SWIFT_WRITE_CONTAINER environment variable is required when " assert container_name, (
"ir_attachment.location is 'swift'.\n" "SWIFT_WRITE_CONTAINER environment variable is required when "
"Normally, 'swift' is activated on labs, integration " "ir_attachment.location is 'swift'.\n"
"and production, but should not be used in dev environment" "Normally, 'swift' is activated on labs, integration "
" (or using a dedicated dev bucket, never using the " "and production, but should not be used in dev environment"
"integration/prod bucket).\n" " (or using a dedicated dev bucket, never using the "
"If you don't actually need a bucket, change the" "integration/prod bucket).\n"
" 'ir_attachment.location' parameter." "If you don't actually need a bucket, change the"
) " 'ir_attachment.location' parameter."
)
prod_container = bool(re.match(r'[a-z0-9-]+-odoo-prod', prod_container = bool(re.match(r'[a-z0-9-]+-odoo-prod',
container_name)) container_name))
if environment_name == 'prod': if environment_name == 'prod':
@@ -156,17 +157,18 @@ class CloudPlatform(models.AbstractModel):
"AWS_SECRET_ACCESS_KEY environment variable is required when " "AWS_SECRET_ACCESS_KEY environment variable is required when "
"ir_attachment.location is 's3'." "ir_attachment.location is 's3'."
) )
bucket_name = os.environ.get('AWS_BUCKETNAME') bucket_name = os.environ.get('AWS_BUCKETNAME', '')
assert bucket_name, ( if environment_name in ('prod', 'integration', 'labs'):
"AWS_BUCKETNAME environment variable is required when " assert bucket_name, (
"ir_attachment.location is 's3'.\n" "AWS_BUCKETNAME environment variable is required when "
"Normally, 's3' is activated on labs, integration " "ir_attachment.location is 's3'.\n"
"and production, but should not be used in dev environment" "Normally, 's3' is activated on labs, integration "
" (or using a dedicated dev bucket, never using the " "and production, but should not be used in dev environment"
"integration/prod bucket).\n" " (or using a dedicated dev bucket, never using the "
"If you don't actually need a bucket, change the" "integration/prod bucket).\n"
" 'ir_attachment.location' parameter." "If you don't actually need a bucket, change the"
) " 'ir_attachment.location' parameter."
)
prod_bucket = bool(re.match(r'[a-z-0-9]+-odoo-prod', bucket_name)) prod_bucket = bool(re.match(r'[a-z-0-9]+-odoo-prod', bucket_name))
if environment_name == 'prod': if environment_name == 'prod':
assert prod_bucket, ( assert prod_bucket, (