blob: 4f7504d076fd4aae9a6e4d7fb8f47fceab5c5d30 [file] [log] [blame]
Tony Mack743ddf22013-04-02 07:36:25 -04001from plstackapi.core.models import Slice
Tony Mackf593dba2013-03-24 13:17:43 -04002
3class SliceImporter:
4
Tony Mack743ddf22013-04-02 07:36:25 -04005 def __init__(self, api):
6 self.api = api
7 self.remote_slices = {}
8 self.local_slices = {}
Tony Mackf593dba2013-03-24 13:17:43 -04009
Tony Mack743ddf22013-04-02 07:36:25 -040010 def run(self, remote_sites={}, local_sites={}):
11 if not remote_sites:
12 sites = self.api.GetSites()
13 for site in sites:
14 remote_sites[site['site_id']] = site
15
16 if not local_sites:
17 from models import Site
18 sites = Site.objects.all()
19 for site in sites:
20 local_sites[site.login_base] = site
21
Tony Mackf593dba2013-03-24 13:17:43 -040022 db_slices = Slice.objects.all()
Tony Mack743ddf22013-04-02 07:36:25 -040023 for db_slice in db_slices:
24 self.local_slices[db_slice.name] = db_slice
25
26 slices = api.GetSlices()
Tony Mackf593dba2013-03-24 13:17:43 -040027 for slice in slices:
Tony Mack743ddf22013-04-02 07:36:25 -040028 self.remote_slice[slice['slice_id']] = slice
29 if slice['name'] not in self.local_slices:
30 site = local_sites[remote_sites[slice['site_id']]['login_base']]
Tony Mackf593dba2013-03-24 13:17:43 -040031 new_slices = Slice(name=slice['name'],
32 instantiation=slice['instantiation'],
33 omf_friendly = False,
34 description = slice['description'],
Tony Mack743ddf22013-04-02 07:36:25 -040035 slice_url = slice['url'],
36 site = site)
37 new_slice.save()
38 self.local_slices[new_slice.name] = new_slice
Tony Mackf593dba2013-03-24 13:17:43 -040039
40
41