Sapan Bhatia | 26d40bc | 2014-05-12 15:28:02 -0400 | [diff] [blame] | 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 | |