blob: 599e548603b64cd0e7672f0d9133d1463ec9c5d8 [file] [log] [blame]
Tony Mack09078f02013-04-02 07:53:46 -04001import os
Tony Mack59c762a2013-04-02 09:42:10 -04002os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plstackapi.planetstack.settings")
Tony Mackf593dba2013-03-24 13:17:43 -04003import xmlrpclib
Tony Mack743ddf22013-04-02 07:36:25 -04004from plstackapi.importer.plclassic.site_importer import SiteImporter
5from plstackapi.importer.plclassic.user_importer import UserImporter
6from plstackapi.importer.plclassic.slice_importer import SliceImporter
7from plstackapi.importer.plclassic.sliver_importer import SliverImporter
Tony Mackf593dba2013-03-24 13:17:43 -04008
9
10class Call:
11 def __init__(self, callable, auth):
12 self.callable = callable
13 self.auth = auth
14
15 def __call__(self, *args, **kwds):
16 a = [auth] + args
17 return self.callable(*a)
18
19class API():
Tony Mack59c762a2013-04-02 09:42:10 -040020 def __init__(self, username, password, url):
Tony Mack8eeddf92013-03-26 13:42:59 -040021 self.auth = {'AuthMethod': 'password',
Tony Mack59c762a2013-04-02 09:42:10 -040022 'Username': username,
23 'AuthString': password}
24 self.server = xmlrpclib.ServerProxy(url, allow_none=True)
Tony Mackf593dba2013-03-24 13:17:43 -040025
26 def __getattr__(self, name):
27 return Call(getattr(self.server, name), self.auth)
28
29class Importer:
30
Tony Mack59c762a2013-04-02 09:42:10 -040031 def __init__(self, username, password, url):
32 api = API(username, password, url)
Tony Mack743ddf22013-04-02 07:36:25 -040033 self.sites = SiteImporter(api)
34 self.slices = SliceImporter(api, remote_sites=self.sites.remote_sites, local_sites=self.sites.local_sites)
35 self.users = UserImporter(api)
36 self.slivers = SliverImporter(api)
Tony Mackf593dba2013-03-24 13:17:43 -040037
38 def run(self):
39 self.roles.run()
40 self.sites.run()
41 self.users.run()
42 self.slices.run()
43 self.slivers.run()
44
45
Tony Mack09078f02013-04-02 07:53:46 -040046
47if __name__ == '__main__':
Tony Mack09078f02013-04-02 07:53:46 -040048 Importer().run()