This tree was mixed up, with an old version of the EC2 Observer. This
change copies across the version demo'd the OpenCloud developer meeting.
diff --git a/planetstack/ec2_observer/steps/sync_sites.py b/planetstack/ec2_observer/steps/sync_sites.py
index 5771aef..7a5c0dc 100644
--- a/planetstack/ec2_observer/steps/sync_sites.py
+++ b/planetstack/ec2_observer/steps/sync_sites.py
@@ -2,20 +2,27 @@
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):
- current_sites = Site.objects.all()
- zones = aws_run('ec2 describe-availability-zones')
+ 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']
+
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 @@
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()