from ec2_observer.awslib import *
import pdb
-class SyncSiteDeployments(SyncStep):
- requested_interval=86400
- provides=[SiteDeployments]
-
- def fetch_pending(self, deletion):
- zone_ret = aws_run('ec2 describe-availability-zones')
- zones = zone_ret['AvailabilityZones']
- available_sites = [zone['ZoneName'] for zone in zones]
-
- current_sites = []
- for s in available_sites:
- site = Site.objects.filter(Q(name=s))
- if (site):
- current_sites.append(site[0])
-
- # OK not to catch exception
- # The syncstep should catch it
- # At any rate, we should not run if there are no deployments
- deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
- site_dict = {}
-
- for sd in current_site_deployments:
- site_dict[sd.site]=sd
-
- updated_site_deployments = []
- for site in current_sites:
- try:
- site_record = site_dict[site]
- except KeyError:
- sd = SiteDeployments(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
- updated_site_deployments.append(sd)
-
- return updated_site_deployments
-
-
- def sync_record(self, site_deployment):
- site_deployment.save()
+class SyncSiteDeployment(SyncStep):
+ requested_interval=86400
+ provides=[SiteDeployment]
+
+ def fetch_pending(self, deletion):
+ if (deletion):
+ return []
+
+ zone_ret = aws_run('ec2 describe-availability-zones')
+ zones = zone_ret['AvailabilityZones']
+ available_sites = [zone['ZoneName'] for zone in zones]
+
+ current_sites = []
+ for s in available_sites:
+ site = Site.objects.filter(Q(name=s))
+ if (site):
+ current_sites.append(site[0])
+
+ # OK not to catch exception
+ # The syncstep should catch it
+ # At any rate, we should not run if there are no deployments
+ deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
+ current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
+ site_dict = {}
+
+ for sd in current_site_deployments:
+ site_dict[sd.site]=sd
+
+ updated_site_deployments = []
+ for site in current_sites:
+ try:
+ site_record = site_dict[site]
+ except KeyError:
+ sd = SiteDeployment(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
+ updated_site_deployments.append(sd)
+
+ return updated_site_deployments
+
+
+ def sync_record(self, site_deployment):
+ site_deployment.save()