blob: 8898e2b1fefc8c12d10a76ddb43eadc64b3e2297 [file] [log] [blame]
Tony Mack09078f02013-04-02 07:53:46 -04001import os
Tony Mackf593dba2013-03-24 13:17:43 -04002import xmlrpclib
Tony Mack743ddf22013-04-02 07:36:25 -04003from plstackapi.importer.plclassic.site_importer import SiteImporter
4from plstackapi.importer.plclassic.user_importer import UserImporter
5from plstackapi.importer.plclassic.slice_importer import SliceImporter
6from plstackapi.importer.plclassic.sliver_importer import SliverImporter
Tony Mackf593dba2013-03-24 13:17:43 -04007
8
9class Call:
10 def __init__(self, callable, auth):
11 self.callable = callable
12 self.auth = auth
13
14 def __call__(self, *args, **kwds):
15 a = [auth] + args
16 return self.callable(*a)
17
18class API():
19 def __init__(self):
Tony Mack8eeddf92013-03-26 13:42:59 -040020 self.auth = {'AuthMethod': 'password',
21 'Username': None,
22 'AuthString': None}
Tony Mackf593dba2013-03-24 13:17:43 -040023 self.server = xmlrpclib.ServerProxy("URL", allow_none=True)
24
25 def __getattr__(self, name):
26 return Call(getattr(self.server, name), self.auth)
27
28class Importer:
29
30 def __init__(self):
Tony Mack743ddf22013-04-02 07:36:25 -040031 api = API()
Tony Mack743ddf22013-04-02 07:36:25 -040032 self.sites = SiteImporter(api)
33 self.slices = SliceImporter(api, remote_sites=self.sites.remote_sites, local_sites=self.sites.local_sites)
34 self.users = UserImporter(api)
35 self.slivers = SliverImporter(api)
Tony Mackf593dba2013-03-24 13:17:43 -040036
37 def run(self):
38 self.roles.run()
39 self.sites.run()
40 self.users.run()
41 self.slices.run()
42 self.slivers.run()
43
44
Tony Mack09078f02013-04-02 07:53:46 -040045
46if __name__ == '__main__':
47 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plstackapi.planetstack.settings")
48 Importer().run()