blob: d7a0ab7440b281266df16ffb1865db12e4bf847f [file] [log] [blame]
Sapan Bhatia24836f12013-08-27 10:16:05 -04001import os
2import base64
3from planetstack.config import Config
Sapan Bhatia04c94ad2013-09-02 18:00:28 -04004from observer.openstacksyncstep import OpenStackSyncStep
5from core.models.site import Site
Sapan Bhatia24836f12013-08-27 10:16:05 -04006
7class SyncSites(OpenStackSyncStep):
Tony Mackdacfb982013-09-24 21:57:16 -04008 provides=[Site]
9 requested_interval=0
Tony Mack66646d52013-09-24 21:47:12 -040010
11 def fetch_pending(self):
12 return Site.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
13
Tony Mackdacfb982013-09-24 21:57:16 -040014 def sync_record(self, site):
15 save_site = False
16 if not site.tenant_id:
17 tenant = self.driver.create_tenant(tenant_name=site.login_base,
18 description=site.name,
19 enabled=site.enabled)
20 site.tenant_id = tenant.id
21 save_site = True
22 # XXX - What's caller?
23 # self.driver.add_user_role(self.caller.kuser_id, tenant.id, 'admin')
Sapan Bhatia24836f12013-08-27 10:16:05 -040024
Tony Mackdacfb982013-09-24 21:57:16 -040025 # update the record
26 if site.id and site.tenant_id:
27 self.driver.update_tenant(site.tenant_id,
28 description=site.name,
29 enabled=site.enabled)
Sapan Bhatia24836f12013-08-27 10:16:05 -040030
Tony Mackdacfb982013-09-24 21:57:16 -040031 if (save_site):
32 site.save() #
Sapan Bhatia24836f12013-08-27 10:16:05 -040033