set django_settings_module path
[plstackapi.git] / plstackapi / importer / plclassic / importer.py
1 import os
2 import xmlrpclib
3 from plstackapi.importer.plclassic.site_importer import SiteImporter
4 from plstackapi.importer.plclassic.user_importer import UserImporter
5 from plstackapi.importer.plclassic.slice_importer import SliceImporter
6 from plstackapi.importer.plclassic.sliver_importer import SliverImporter
7
8
9 class 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
18 class API():
19     def __init__(self):
20         self.auth = {'AuthMethod': 'password',
21                      'Username': None,
22                      'AuthString': None}
23         self.server = xmlrpclib.ServerProxy("URL", allow_none=True)
24
25     def __getattr__(self, name):         
26         return Call(getattr(self.server, name), self.auth) 
27
28 class Importer: 
29
30     def __init__(self):
31         api = API()
32         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)
36
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
45
46 if __name__ == '__main__':
47     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plstackapi.planetstack.settings")
48     Importer().run()