Files
notifications-api/app/cloudfoundry_config.py

36 lines
1.0 KiB
Python
Raw Normal View History

2016-12-08 12:12:45 +00:00
import json
from os import getenv
2016-12-08 12:12:45 +00:00
2022-10-31 15:37:12 -04:00
class CloudfoundryConfig:
def __init__(self):
self.parsed_services = json.loads(getenv('VCAP_SERVICES') or '{}')
2022-10-31 15:37:12 -04:00
buckets = self.parsed_services.get('s3') or []
self.s3_buckets = {bucket['name']: bucket['credentials'] for bucket in buckets}
self._empty_bucket_credentials = {
'bucket': '',
'access_key_id': '',
'secret_access_key': '',
'region': ''
}
@property
def database_url(self):
return getenv('DATABASE_URL', '').replace('postgres://', 'postgresql://')
2022-10-31 15:37:12 -04:00
@property
def redis_url(self):
try:
return self.parsed_services['aws-elasticache-redis'][0]['credentials']['uri'].replace(
'redis://',
'rediss://'
)
except KeyError:
return getenv('REDIS_URL')
2022-10-05 01:12:35 +00:00
2022-10-31 15:37:12 -04:00
def s3_credentials(self, service_name):
return self.s3_buckets.get(service_name) or self._empty_bucket_credentials
2016-12-08 12:12:45 +00:00
2022-10-31 15:37:12 -04:00
cloud_config = CloudfoundryConfig()