From 2515c4bfdc864c8e43a9daea45e8321127adc3e6 Mon Sep 17 00:00:00 2001 From: Patrick Tombez Date: Wed, 4 Aug 2021 10:50:05 +0200 Subject: [PATCH] [14.0][IMP] attachment_azure: Allow storage name override --- attachment_azure/README.rst | 4 ++++ attachment_azure/models/ir_attachment.py | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/attachment_azure/README.rst b/attachment_azure/README.rst index 6247ee9..48e3c99 100644 --- a/attachment_azure/README.rst +++ b/attachment_azure/README.rst @@ -23,6 +23,10 @@ Configure accesses with environment variables: One container will be created per database using the `RUNNING_ENV` environment variable and the name of the database. By default, `RUNNING_ENV` is set to `dev`. +The container name can be overridden with environment variable ``AZURE_STORAGE_NAME``. +The strings ``{db}`` and ``{env}`` can be used inside that variable and the values +will be replaced respectively by the database name and environment name. + This addon must be added in the server wide addons with (``--load`` option): ``--load=web,attachment_azure`` diff --git a/attachment_azure/models/ir_attachment.py b/attachment_azure/models/ir_attachment.py index 134d860..dcf76fc 100644 --- a/attachment_azure/models/ir_attachment.py +++ b/attachment_azure/models/ir_attachment.py @@ -117,10 +117,15 @@ class IrAttachment(models.Model): https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#container-names """ running_env = os.environ.get("RUNNING_ENV", "dev") + storage_name = os.environ.get('AZURE_STORAGE_NAME', r'{env}-{db}') + storage_name = storage_name.format( + env=running_env, + db=self.env.cr.dbname + ) # replace invalid characters by _ - dbname_cleaned = re.sub(r"[\W_]+", "-", self.env.cr.dbname) + storage_name = re.sub(r"[\W_]+", "-", storage_name) # lowercase, max 63 chars - return str.lower(running_env + "-" + dbname_cleaned)[:63] + return str.lower(storage_name)[:63] @api.model def _get_azure_container(self):