from copy import copy from boltons.cacheutils import cachedproperty from clearml.backend_config.bucket_config import ( S3BucketConfigurations, AzureContainerConfigurations, GSBucketConfigurations, ) from apiserver.config_repo import config log = config.logger(__file__) class StorageBLL: default_aws_configs: S3BucketConfigurations = None conf = config.get("services.storage_credentials") @cachedproperty def _default_aws_configs(self) -> S3BucketConfigurations: return S3BucketConfigurations.from_config(self.conf.get("aws.s3")) @cachedproperty def _default_azure_configs(self) -> AzureContainerConfigurations: return AzureContainerConfigurations.from_config(self.conf.get("azure.storage")) @cachedproperty def _default_gs_configs(self) -> GSBucketConfigurations: return GSBucketConfigurations.from_config(self.conf.get("google.storage")) def get_azure_settings_for_company( self, company_id: str, ) -> AzureContainerConfigurations: return copy(self._default_azure_configs) def get_gs_settings_for_company( self, company_id: str, ) -> GSBucketConfigurations: return copy(self._default_gs_configs) def get_aws_settings_for_company( self, company_id: str, ) -> S3BucketConfigurations: return copy(self._default_aws_configs)