This tree was mixed up, with an old version of the EC2 Observer. This
[plstackapi.git] / planetstack / ec2_observer / steps / sync_sites.py
index 5771aef..7a5c0dc 100644 (file)
@@ -2,20 +2,27 @@ import os
 import base64
 from django.db.models import F, Q
 from planetstack.config import Config
-from observer.syncstep import SyncStep
-from core.models.site import Site
+from ec2_observer.syncstep import SyncStep
+from core.models.site import *
 from ec2_observer.awslib import *
+import pdb
 
 class SyncSites(SyncStep):
-    provides=[Site]
-    requested_interval=3600
+       provides=[Site]
+       requested_interval=3600
+
+       def fetch_pending(self, deletion):
+
+               deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
+               current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+
+               zone_ret = aws_run('ec2 describe-availability-zones')
+               zones = zone_ret['AvailabilityZones']
 
-    def fetch_pending(self):
-               current_sites = Site.objects.all()
-               zones = aws_run('ec2 describe-availability-zones')
                available_sites = [zone['ZoneName'] for zone in zones]
+               site_names = [sd.site.name for sd in current_site_deployments]
 
-               new_site_names = list(set(available_sites) - set(zones))
+               new_site_names = list(set(available_sites) - set(site_names))
 
                new_sites = []
                for s in new_site_names:
@@ -27,8 +34,8 @@ class SyncSites(SyncStep):
                                                abbreviated_name=s)
                        new_sites.append(site)
                
-        return new_sites
+               return new_sites
 
-    def sync_record(self, site):
-        site.save()
+       def sync_record(self, site):
+               site.save()