save() and delete() uses caller's credentials to init openstackdriver client
[plstackapi.git] / plstackapi / core / models / key.py
index e224831..3e4f56f 100644 (file)
@@ -1,8 +1,7 @@
 import os
 from django.db import models
 from plstackapi.core.models import PlCoreBase
-from plstackapi.core.models import User
-from plstackapi.openstack.driver import OpenStackDriver
+from plstackapi.core.models import PLUser
 
 # Create your models here.
 
@@ -12,22 +11,20 @@ class Key(PlCoreBase):
     key = models.CharField(max_length=512)
     type = models.CharField(max_length=256)
     blacklisted = models.BooleanField(default=False)
-    user = models.ForeignKey(User, related_name='keys')
+    user = models.ForeignKey(PLUser, related_name='keys')
 
     def __unicode__(self):  return u'%s' % (self.name)
 
     def save(self, *args, **kwds):
-        driver = OpenStackDriver()
         if not self.key_id:
             key_fields = {'name': self.name,
                           'key': self.key}
-            nova_key = driver.create_keypair(**key_fields)
+            nova_key = self.driver.create_keypair(**key_fields)
             self.key_id = nova_key.id
         super(Key, self).save(*args, **kwds)
 
     def delete(self, *args, **kwds):
-        driver  = OpenStackDriver()
         if self.key_id:
-            driver.delete_keypair(self.key_id)
+            self.driver.delete_keypair(self.key_id)
         super(Key, self).delete(*args, **kwds)