3 from django.db.models import F, Q
4 from planetstack.config import Config
5 from ec2_observer.syncstep import SyncStep
6 from core.models.site import *
7 from ec2_observer.awslib import *
10 class SyncSites(SyncStep):
12 requested_interval=3600
14 def fetch_pending(self, deletion):
18 deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
19 current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
21 zone_ret = aws_run('ec2 describe-availability-zones')
22 zones = zone_ret['AvailabilityZones']
24 available_sites = [zone['ZoneName'] for zone in zones]
25 site_names = [sd.site.name for sd in current_site_deployments]
27 new_site_names = list(set(available_sites) - set(site_names))
30 for s in new_site_names:
33 site_url="www.amazon.com",
37 new_sites.append(site)
41 def sync_record(self, site):