From 9b8ac493b1bff299ff0ab99f21e7265f66bebb60 Mon Sep 17 00:00:00 2001 From: Iain Learmonth Date: Sun, 8 May 2022 10:47:01 +0100 Subject: [PATCH] mirrors: deprecate orphaned proxies fixes #5 --- app/terraform/proxy/__init__.py | 16 ++++++++++++++++ app/terraform/proxy/azure_cdn.py | 3 +-- app/terraform/proxy/cloudfront.py | 3 +-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/terraform/proxy/__init__.py b/app/terraform/proxy/__init__.py index 7e47e96..0ed7768 100644 --- a/app/terraform/proxy/__init__.py +++ b/app/terraform/proxy/__init__.py @@ -41,6 +41,17 @@ class ProxyAutomation(BaseAutomation): db.session.add(proxy) db.session.commit() + def deprecate_orphaned_proxies(self): + proxies = Proxy.query.filter( + Proxy.destroyed == None, + Proxy.provider == self.provider, + Proxy.deprecated == None + ).all() + for proxy in proxies: + if proxy.origin.destroyed is not None: + proxy.deprecate(reason="origin_destroyed") + db.session.commit() + def destroy_expired_proxies(self): cutoff = datetime.datetime.utcnow() - datetime.timedelta(days=3) proxies = Proxy.query.filter( @@ -53,6 +64,11 @@ class ProxyAutomation(BaseAutomation): proxy.updated = datetime.datetime.utcnow() db.session.commit() + def pre_housekeeping(self): + self.create_missing_proxies() + self.deprecate_orphaned_proxies() + self.destroy_expired_proxies() + def generate_terraform(self): self.write_terraform_config( self.template, diff --git a/app/terraform/proxy/azure_cdn.py b/app/terraform/proxy/azure_cdn.py index fdc195e..c6fcf08 100644 --- a/app/terraform/proxy/azure_cdn.py +++ b/app/terraform/proxy/azure_cdn.py @@ -232,8 +232,7 @@ def import_monitor_alerts(): if __name__ == "__main__": with app.app_context(): auto = ProxyAzureCdnAutomation() - auto.create_missing_proxies() - auto.destroy_expired_proxies() + auto.pre_housekeeping() auto.generate_terraform() auto.terraform_init() auto.terraform_apply(refresh=False, parallelism=1) # Rate limits are problem diff --git a/app/terraform/proxy/cloudfront.py b/app/terraform/proxy/cloudfront.py index 19bbfd9..0c68b39 100644 --- a/app/terraform/proxy/cloudfront.py +++ b/app/terraform/proxy/cloudfront.py @@ -149,8 +149,7 @@ def import_cloudwatch_alarms(): if __name__ == "__main__": with app.app_context(): auto = ProxyCloudfrontAutomation() - auto.destroy_expired_proxies() - auto.create_missing_proxies() + auto.pre_housekeeping() auto.generate_terraform() auto.terraform_init() auto.terraform_apply(refresh=False)