we can no longer access the user from the key object, so just make up a random key...
[plstackapi.git] / planetstack / openstack / manager.py
index 788699b..b4697ce 100644 (file)
@@ -1,3 +1,8 @@
+import os
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+import string
+import random
+
 from netaddr import IPAddress, IPNetwork
 from planetstack import settings
 from django.core import management
@@ -10,8 +15,11 @@ try:
 except:
     has_openstack = False
 
-#manager_enabled = Config().api_nova_enabled
-manager_enabled = False
+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):
@@ -72,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):
@@ -277,6 +285,7 @@ class OpenStackManager:
         Node.objects.filter(name__in=old_node_names).delete()
 
     def refresh_images(self):
+        from core.models.image import Image
         # collect local images
         images = Image.objects.all()
         images_dict = {}