use command line options
[plstackapi.git] / plstackapi / importer / plclassic / slice_importer.py
1 from plstackapi.core.models import Slice
2
3 class SliceImporter:
4
5     def __init__(self, api):
6         self.api = api
7         self.remote_slices = {}
8         self.local_slices = {}
9
10     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
22         db_slices = Slice.objects.all()
23         for db_slice in db_slices:
24             self.local_slices[db_slice.name] = db_slice
25
26         slices = api.GetSlices()
27         count = 0 
28         for slice in slices:
29             self.remote_slice[slice['slice_id']] = slice
30             if slice['name'] not in self.local_slices:
31                 site = local_sites[remote_sites[slice['site_id']]['login_base']]
32                 new_slices = Slice(name=slice['name'],
33                                    instantiation=slice['instantiation'],
34                                    omf_friendly = False,
35                                    description = slice['description'],
36                                    slice_url = slice['url'],
37                                    site = site)
38                 new_slice.save()
39                 count += 1
40                 self.local_slices[new_slice.name] = new_slice
41         print "Imported %s slices" % count
42
43           
44