From f3a6a5413da3f835c9e9f59cb8836147671f18ae Mon Sep 17 00:00:00 2001 From: Iain Learmonth Date: Wed, 11 May 2022 10:38:27 +0100 Subject: [PATCH] lists: mirror mappings version 1.1 adds s3_buckets --- app/lists/mirror_mapping.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/app/lists/mirror_mapping.py b/app/lists/mirror_mapping.py index 4558aa3..80eca79 100644 --- a/app/lists/mirror_mapping.py +++ b/app/lists/mirror_mapping.py @@ -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):