Refactor to /opt/planetstack, final tweaks to make sure planetstack can run in non-openstack mode, adjustments to GUI for model focus changes
diff --git a/planetstack/importer/plclassic/importer.py b/planetstack/importer/plclassic/importer.py
new file mode 100644
index 0000000..3a65dc3
--- /dev/null
+++ b/planetstack/importer/plclassic/importer.py
@@ -0,0 +1,70 @@
+import os
+#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+import sys
+from optparse import OptionParser
+from getpass import getpass
+import xmlrpclib
+from plclassic.site_importer import SiteImporter
+from plclassic.user_importer import UserImporter
+from plclassic.slice_importer import SliceImporter
+from plclassic.sliver_importer import SliverImporter
+
+
+class Call:
+    def __init__(self, callable, auth):
+        self.callable = callable
+        self.auth = auth
+
+    def __call__(self, *args, **kwds):
+        a = [self.auth] + list(args)
+        return self.callable(*a)
+
+class API():
+    def __init__(self, username, password, url):
+        self.auth = {'AuthMethod': 'password',
+                     'Username': username,
+                     'AuthString': password}
+        self.server = xmlrpclib.ServerProxy(url, allow_none=True)
+
+    def __getattr__(self, name):         
+        return Call(getattr(self.server, name), self.auth) 
+
+class Importer: 
+
+    def __init__(self, username, password, url):
+        api = API(username, password, url)
+        self.sites = SiteImporter(api)
+        self.slices = SliceImporter(api)
+        self.users = UserImporter(api)
+        self.slivers = SliverImporter(api)
+
+    def run(self):
+        self.sites.run()
+        self.users.run()
+        self.slices.run(remote_sites=self.sites.remote_sites, 
+                        local_sites=self.sites.local_sites)
+        self.slivers.run()           
+
+
+
+if __name__ == '__main__':
+    parser = OptionParser()
+        
+    parser.add_option("-u", "--username", dest="username",
+                        help="PLC username with which to authenticate")
+    parser.add_option("", "--url", dest="url",
+                        help="PLC url to contact")
+
+    (config, args) = parser.parse_args()
+    if len(sys.argv) == 1:
+        parser.print_help()
+        sys.exit(1)
+
+    password = None
+    try:
+        password = getpass()
+    except (EOFError, KeyboardInterrupt):
+        print
+        sys.exit(0)
+
+    Importer(config.username, password, config.url).run()