automate: move working_dir to be set in constructor
This commit is contained in:
parent
efdaad977a
commit
109851745b
7 changed files with 59 additions and 43 deletions
|
@ -14,28 +14,29 @@ from app.terraform.proxy.azure_cdn import ProxyAzureCdnAutomation
|
|||
from app.terraform.proxy.cloudfront import ProxyCloudfrontAutomation
|
||||
from app.terraform.proxy.fastly import ProxyFastlyAutomation
|
||||
|
||||
PROXY_PROVIDERS = {p.provider: p for p in [ # In order of preference
|
||||
PROXY_PROVIDERS = {p.provider: p for p in [ # type: ignore[attr-defined]
|
||||
# In order of preference
|
||||
ProxyCloudfrontAutomation,
|
||||
ProxyFastlyAutomation,
|
||||
ProxyAzureCdnAutomation
|
||||
] if p.enabled} # type: ignore[truthy-function]
|
||||
] if p.enabled} # type: ignore[attr-defined]
|
||||
|
||||
|
||||
def create_proxy(pool: Pool, origin: Origin) -> bool:
|
||||
for desperate in [False, True]:
|
||||
for provider in PROXY_PROVIDERS.values():
|
||||
if origin.smart and not provider.smart_proxies:
|
||||
if origin.smart and not provider.smart_proxies: # type: ignore[attr-defined]
|
||||
continue # This origin cannot be supported on this provider
|
||||
if provider.smart_proxies and not (desperate or origin.smart):
|
||||
if provider.smart_proxies and not (desperate or origin.smart): # type: ignore[attr-defined]
|
||||
continue
|
||||
next_subgroup = provider.next_subgroup(origin.group_id)
|
||||
next_subgroup = provider.next_subgroup(origin.group_id) # type: ignore[attr-defined]
|
||||
if next_subgroup is None:
|
||||
continue
|
||||
proxy = Proxy()
|
||||
proxy.pool_id = pool.id
|
||||
proxy.origin_id = origin.id
|
||||
proxy.provider = provider.provider
|
||||
proxy.psg = provider.next_subgroup(origin.group_id)
|
||||
proxy.provider = provider.provider # type: ignore[attr-defined]
|
||||
proxy.psg = provider.next_subgroup(origin.group_id) # type: ignore[attr-defined]
|
||||
# The random usage below is good enough for its purpose: to create a slug that
|
||||
# hasn't been used recently.
|
||||
proxy.slug = tldextract.extract(origin.domain_name).domain[:5] + ''.join(
|
||||
|
@ -71,7 +72,7 @@ class ProxyMetaAutomation(BaseAutomation):
|
|||
for proxy in proxies:
|
||||
if proxy.origin.destroyed is not None:
|
||||
proxy.deprecate(reason="origin_destroyed")
|
||||
if proxy.origin.smart and not PROXY_PROVIDERS[proxy.provider].smart_proxies:
|
||||
if proxy.origin.smart and not PROXY_PROVIDERS[proxy.provider].smart_proxies: # type: ignore[attr-defined]
|
||||
proxy.deprecate(reason="not_smart_enough")
|
||||
# Create new proxies
|
||||
pools = Pool.query.all()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue