2 from django.db import models
3 from plstackapi.core.models import PlCoreBase
4 from plstackapi.core.models import User
5 from plstackapi.openstack.driver import OpenStackDriver
7 # Create your models here.
10 name = models.CharField(max_length=256, unique=True)
11 key_id = models.CharField(max_length=256, unique=True, blank=True)
12 key = models.CharField(max_length=512)
13 type = models.CharField(max_length=256)
14 blacklisted = models.BooleanField(default=False)
15 user = models.ForeignKey(User, related_name='keys')
17 def __unicode__(self): return u'%s' % (self.name)
19 def save(self, *args, **kwds):
20 driver = OpenStackDriver()
22 key_fields = {'name': self.name,
24 nova_key = driver.create_keypair(**key_fields)
26 self.key_id = nova_key.id
27 super(Key, self).save(*args, **kwds)
29 def delete(self, *args, **kwds):
30 driver = OpenStackDriver()
32 driver.delete_keypair(self.key_id)
33 super(Key, self).delete(*args, **kwds)