2016-12-08 16:50:37 +00:00
|
|
|
import json
|
2018-02-20 11:22:17 +00:00
|
|
|
import os
|
2016-12-08 16:50:37 +00:00
|
|
|
|
|
|
|
|
|
2022-10-20 08:03:32 -04:00
|
|
|
class CloudfoundryConfig:
|
|
|
|
|
def __init__(self):
|
2023-08-25 09:12:23 -07:00
|
|
|
self.parsed_services = json.loads(os.environ.get("VCAP_SERVICES") or "{}")
|
|
|
|
|
buckets = self.parsed_services.get("s3") or []
|
|
|
|
|
self.s3_buckets = {bucket["name"]: bucket["credentials"] for bucket in buckets}
|
2022-10-20 08:03:32 -04:00
|
|
|
self._empty_bucket_credentials = {
|
2023-08-25 09:12:23 -07:00
|
|
|
"bucket": "",
|
|
|
|
|
"access_key_id": "",
|
|
|
|
|
"secret_access_key": "",
|
|
|
|
|
"region": "",
|
2022-10-20 08:03:32 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def redis_url(self):
|
|
|
|
|
try:
|
2023-08-25 09:12:23 -07:00
|
|
|
return self.parsed_services["aws-elasticache-redis"][0]["credentials"][
|
|
|
|
|
"uri"
|
|
|
|
|
].replace("redis://", "rediss://")
|
2022-10-20 08:03:32 -04:00
|
|
|
except KeyError:
|
2023-08-25 09:12:23 -07:00
|
|
|
return os.environ.get("REDIS_URL")
|
2022-10-20 08:03:32 -04:00
|
|
|
|
|
|
|
|
def s3_credentials(self, service_name):
|
|
|
|
|
return self.s3_buckets.get(service_name) or self._empty_bucket_credentials
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cloud_config = CloudfoundryConfig()
|