Added ec2 observer, WIP
[plstackapi.git] / planetstack / ec2_observer / steps / sync_sites.py
1 import os
2 import base64
3 from django.db.models import F, Q
4 from planetstack.config import Config
5 from observer.syncstep import SyncStep
6 from core.models.site import Site
7 from ec2_observer.awslib import *
8
9 class SyncSites(SyncStep):
10     provides=[Site]
11     requested_interval=3600
12
13     def fetch_pending(self):
14                 current_sites = Site.objects.all()
15                 zones = aws_run('ec2 describe-availability-zones')
16                 available_sites = [zone['ZoneName'] for zone in zones]
17
18                 new_site_names = list(set(available_sites) - set(zones))
19
20                 new_sites = []
21                 for s in new_site_names:
22                         site = Site(name=s,
23                                                 login_base=s,
24                                                 site_url="www.amazon.com",
25                                                 enabled=True,
26                                                 is_public=True,
27                                                 abbreviated_name=s)
28                         new_sites.append(site)
29                 
30         return new_sites
31
32     def sync_record(self, site):
33         site.save()
34