lists: mirror mappings version 1.1

adds s3_buckets
This commit is contained in:
Iain Learmonth 2022-05-11 10:38:27 +01:00
parent bac83dc6b4
commit f3a6a5413d

View file

@ -1,10 +1,12 @@
import builtins
from typing import Dict
from typing import Dict, List
from pydantic import BaseModel, Field
from tldextract import extract
from app import Proxy
from app import app
from app.models.base import Group
from app.models.mirrors import Proxy
class MMMirror(BaseModel):
@ -20,19 +22,29 @@ class MirrorMapping(BaseModel):
mappings: Dict[str, MMMirror] = Field(
description="The domain name for the mirror"
)
s3_buckets: List[str] = Field(
description="The names of all S3 buckets used for CloudFront logs"
)
class Config:
title = "Mirror Mapping Version 1"
title = "Mirror Mapping Version 1.1"
def mirror_mapping():
return MirrorMapping(version="1.0", mappings={
d.url.lstrip("https://"): MMMirror(
origin_domain=d.origin.domain_name,
origin_domain_normalized=d.origin.domain_name.lstrip("www."),
origin_domain_root=extract(d.origin.domain_name).registered_domain
) for d in Proxy.query.all() if d.url is not None
}).dict()
return MirrorMapping(
version="1.1",
mappings={
d.url.lstrip("https://"): MMMirror(
origin_domain=d.origin.domain_name,
origin_domain_normalized=d.origin.domain_name.lstrip("www."),
origin_domain_root=extract(d.origin.domain_name).registered_domain
) for d in Proxy.query.all() if d.url is not None
},
s3_buckets=[
f"{app.config['GLOBAL_NAMESPACE']}-{g.group_name}-logs-cloudfront"
for g in Group.query.filter(Group.destroyed == None).all()
]
).dict()
if getattr(builtins, "__sphinx_build__", False):