Changed DeploymentNetwork to Deployment, adjusted initial_json to include service...
[plstackapi.git] / planetstack / openstack / manager.py
index 857e225..4ddd7f6 100644 (file)
@@ -1,5 +1,7 @@
 import os
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+import string
+import random
 
 from netaddr import IPAddress, IPNetwork
 from planetstack import settings
@@ -15,6 +17,10 @@ except:
 
 manager_enabled = Config().api_nova_enabled
 
+
+def random_string(size=6):
+    return ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(size))
+
 def require_enabled(callable):
     def wrapper(*args, **kwds):
         if manager_enabled and has_openstack:
@@ -74,16 +80,16 @@ class OpenStackManager:
 
     @require_enabled
     def save_key(self, key):
-        if not key.key_id:
-            key_fields = {'name': key.user.email[:key.user.email.find('@')],
+        if not key.nkey_id:
+            key_fields = {'name': random_string(8),
                           'key': key.key}
             nova_key = self.driver.create_keypair(**key_fields)
-            key.key_id = nova_key.id        
+            key.nkey_id = nova_key.id        
 
     @require_enabled
     def delete_key(self, key):
-        if key.key_id:
-            self.driver.delete_keypair(key.key_id)
+        if key.nkey_id:
+            self.driver.delete_keypair(key.nkey_id)
 
     @require_enabled
     def save_user(self, user):
@@ -250,7 +256,7 @@ class OpenStackManager:
             if 'viccidev10' not in node.name:
                 nodes_dict[node.name] = node 
         
-        deployment = DeploymentNetwork.objects.filter(name='VICCI')[0]
+        deployment = Deployment.objects.filter(name='VICCI')[0]
         login_bases = ['princeton', 'stanford', 'gt', 'uw', 'mpisws']
         sites = Site.objects.filter(login_base__in=login_bases)
         # collect nova nodes: