This commit is contained in:
Kenneth Kehl
2023-08-29 14:54:30 -07:00
parent 19dcd7a48b
commit 1ecb747c6d
588 changed files with 34100 additions and 23589 deletions

View File

@@ -4,29 +4,28 @@ from os import getenv
class CloudfoundryConfig:
def __init__(self):
self.parsed_services = json.loads(getenv('VCAP_SERVICES') or '{}')
buckets = self.parsed_services.get('s3') or []
self.s3_buckets = {bucket['name']: bucket['credentials'] for bucket in buckets}
self.parsed_services = json.loads(getenv("VCAP_SERVICES") or "{}")
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': ''
"bucket": "",
"access_key_id": "",
"secret_access_key": "",
"region": "",
}
@property
def database_url(self):
return getenv('DATABASE_URL', '').replace('postgres://', 'postgresql://')
return getenv("DATABASE_URL", "").replace("postgres://", "postgresql://")
@property
def redis_url(self):
try:
return self.parsed_services['aws-elasticache-redis'][0]['credentials']['uri'].replace(
'redis://',
'rediss://'
)
return self.parsed_services["aws-elasticache-redis"][0]["credentials"][
"uri"
].replace("redis://", "rediss://")
except KeyError:
return getenv('REDIS_URL')
return getenv("REDIS_URL")
def s3_credentials(self, service_name):
return self.s3_buckets.get(service_name) or self._empty_bucket_credentials
@@ -34,78 +33,78 @@ class CloudfoundryConfig:
@property
def ses_email_domain(self):
try:
domain_arn = self._ses_credentials('domain_arn')
domain_arn = self._ses_credentials("domain_arn")
except KeyError:
domain_arn = getenv('SES_DOMAIN_ARN', 'dev.notify.gov')
return domain_arn.split('/')[-1]
domain_arn = getenv("SES_DOMAIN_ARN", "dev.notify.gov")
return domain_arn.split("/")[-1]
# TODO remove this after notifications-api #258
@property
def ses_domain_arn(self):
try:
domain_arn = self._ses_credentials('domain_arn')
domain_arn = self._ses_credentials("domain_arn")
except KeyError:
domain_arn = getenv('SES_DOMAIN_ARN', 'dev.notify.gov')
domain_arn = getenv("SES_DOMAIN_ARN", "dev.notify.gov")
return domain_arn
@property
def ses_region(self):
try:
return self._ses_credentials('region')
return self._ses_credentials("region")
except KeyError:
return getenv('SES_AWS_REGION', 'us-west-1')
return getenv("SES_AWS_REGION", "us-west-1")
@property
def ses_access_key(self):
try:
return self._ses_credentials('smtp_user')
return self._ses_credentials("smtp_user")
except KeyError:
return getenv('SES_AWS_ACCESS_KEY_ID')
return getenv("SES_AWS_ACCESS_KEY_ID")
@property
def ses_secret_key(self):
try:
return self._ses_credentials('secret_access_key')
return self._ses_credentials("secret_access_key")
except KeyError:
return getenv('SES_AWS_SECRET_ACCESS_KEY')
return getenv("SES_AWS_SECRET_ACCESS_KEY")
@property
def sns_access_key(self):
try:
return self._sns_credentials('aws_access_key_id')
return self._sns_credentials("aws_access_key_id")
except KeyError:
return getenv('SNS_AWS_ACCESS_KEY_ID')
return getenv("SNS_AWS_ACCESS_KEY_ID")
@property
def sns_secret_key(self):
try:
return self._sns_credentials('aws_secret_access_key')
return self._sns_credentials("aws_secret_access_key")
except KeyError:
return getenv('SNS_AWS_SECRET_ACCESS_KEY')
return getenv("SNS_AWS_SECRET_ACCESS_KEY")
@property
def sns_region(self):
try:
return self._sns_credentials('region')
return self._sns_credentials("region")
except KeyError:
return getenv('SNS_AWS_REGION', 'us-west-1')
return getenv("SNS_AWS_REGION", "us-west-1")
@property
def sns_topic_arns(self):
try:
return [
self._ses_credentials('bounce_topic_arn'),
self._ses_credentials('complaint_topic_arn'),
self._ses_credentials('delivery_topic_arn')
self._ses_credentials("bounce_topic_arn"),
self._ses_credentials("complaint_topic_arn"),
self._ses_credentials("delivery_topic_arn"),
]
except KeyError:
return []
def _ses_credentials(self, key):
return self.parsed_services['datagov-smtp'][0]['credentials'][key]
return self.parsed_services["datagov-smtp"][0]["credentials"][key]
def _sns_credentials(self, key):
return self.parsed_services['ttsnotify-sms'][0]['credentials'][key]
return self.parsed_services["ttsnotify-sms"][0]["credentials"][key]
cloud_config = CloudfoundryConfig()