blob: 4f57c3bb5df8effe7f228ff32880be29c1bafa14 [file] [log] [blame]
from plstackapi.core.models import Slice
class SliceImporter:
def __init__(self, api):
self.api = api
self.remote_slices = {}
self.local_slices = {}
def run(self, remote_sites={}, local_sites={}):
if not remote_sites:
sites = self.api.GetSites({'peer_id': None})
for site in sites:
remote_sites[site['site_id']] = site
if not local_sites:
from plstackapi.core.models import Site
sites = Site.objects.all()
for site in sites:
local_sites[site.login_base] = site
db_slices = Slice.objects.all()
for db_slice in db_slices:
self.local_slices[db_slice.name] = db_slice
print "%s local slices" % len(db_slices)
slices = self.api.GetSlices({'peer_id': None})
print "%s remote slices" % len(slices)
count = 0
for slice in slices:
self.remote_slices[slice['slice_id']] = slice
if slice['name'] not in self.local_slices:
site = local_sites[remote_sites[slice['site_id']]['login_base']]
new_slice = Slice(name=slice['name'],
instantiation=slice['instantiation'],
omf_friendly = False,
description = slice['description'],
slice_url = slice['url'],
site = site)
new_slice.save()
count += 1
self.local_slices[new_slice.name] = new_slice
print "Imported %s slices" % count