key is now just an attribute of the user model. Added 'creator' field to sliver model
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index d54387f..1dbe0d7 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -32,7 +32,7 @@
class SliverInline(admin.TabularInline):
model = Sliver
- fields = ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'key', 'node', 'deploymentNetwork']
+ fields = ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'node', 'deploymentNetwork']
extra = 0
#readonly_fields = ['ip', 'instance_name', 'image']
readonly_fields = ['ip', 'instance_name']
@@ -333,6 +333,7 @@
auth = request.session.get('auth', {})
auth['tenant'] = obj.name # meed to connect using slice's tenant
inline.model.os_manager = OpenStackManager(auth=auth, caller=request.user)
+ inline.model.creator = request.user
yield inline.get_formset(request, obj)
def get_queryset(self, request):
@@ -469,6 +470,7 @@
auth = request.session.get('auth', {})
auth['tenant'] = obj.slice.name
obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
+ obj.creator = request.user
obj.save()
def delete_model(self, request, obj):
@@ -486,7 +488,7 @@
class Meta:
model = User
- fields = ('email', 'firstname', 'lastname', 'phone', 'key', 'site')
+ fields = ('email', 'firstname', 'lastname', 'phone', 'public_key', 'site')
def clean_password2(self):
# Check that the two password entries match
@@ -539,13 +541,13 @@
inlines = [SitePrivilegeInline, SliceMembershipInline]
fieldsets = (
(None, {'fields': ('email', 'password', 'site', 'is_admin', 'timezone')}),
- ('Personal info', {'fields': ('firstname','lastname','phone', 'key')}),
+ ('Personal info', {'fields': ('firstname','lastname','phone', 'public_key')}),
#('Important dates', {'fields': ('last_login',)}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
- 'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'key','password1', 'password2', 'is_admin')}
+ 'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'public_key','password1', 'password2', 'is_admin')}
),
)
search_fields = ('email',)
diff --git a/planetstack/core/models/plcorebase.py b/planetstack/core/models/plcorebase.py
index ed7c3ff..709fdc6 100644
--- a/planetstack/core/models/plcorebase.py
+++ b/planetstack/core/models/plcorebase.py
@@ -6,6 +6,7 @@
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
+ enacted = models.DateTimeField(null=True, default=None)
class Meta:
abstract = True
diff --git a/planetstack/core/models/sliver.py b/planetstack/core/models/sliver.py
index 03fa1d8..72ad66d 100644
--- a/planetstack/core/models/sliver.py
+++ b/planetstack/core/models/sliver.py
@@ -3,11 +3,11 @@
from django.core import exceptions
from core.models import PlCoreBase
from core.models import Image
-from core.models import Key
from core.models import Slice
from core.models import Node
from core.models import Site
from core.models import Deployment
+from core.models import User
# Create your models here.
class Sliver(PlCoreBase):
@@ -16,7 +16,8 @@
instance_name = models.CharField(blank=True, null=True, max_length=200, help_text="OpenStack generated name")
ip = models.GenericIPAddressField(help_text="Sliver ip address", blank=True, null=True)
image = models.ForeignKey(Image, related_name='slivers')
- key = models.ForeignKey(Key, related_name='slivers')
+ #key = models.ForeignKey(Key, related_name='slivers')
+ creator = models.ForeignKey(User, related_name='slivers', blank=True, null=True)
slice = models.ForeignKey(Slice, related_name='slivers')
node = models.ForeignKey(Node, related_name='slivers')
deploymentNetwork = models.ForeignKey(Deployment, verbose_name='deployment', related_name='sliver_deploymentNetwork')
diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py
index 055b6cd..d494ede 100644
--- a/planetstack/core/models/user.py
+++ b/planetstack/core/models/user.py
@@ -63,7 +63,8 @@
phone = models.CharField(null=True, blank=True, help_text="phone number contact", max_length=100)
user_url = models.URLField(null=True, blank=True)
site = models.ForeignKey(Site, related_name='users', verbose_name="Site this user will be homed too", null=True)
- key = models.ForeignKey(Key, related_name='user', null=True, blank=True)
+ #key = models.ForeignKey(Key, related_name='user', null=True, blank=True)
+ public_key = models.CharField(null=True, blank=True, max_length=1024, help_text="Public key string")
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=True)
@@ -84,6 +85,10 @@
# The user is identified by their email address
return self.email
+ @property
+ def keyname(self):
+ return self.email[:self.email.find('@')]
+
def __unicode__(self):
return self.email
diff --git a/planetstack/core/serializers.py b/planetstack/core/serializers.py
index 447bac4..fd0c6c6 100644
--- a/planetstack/core/serializers.py
+++ b/planetstack/core/serializers.py
@@ -28,8 +28,9 @@
'firstname',
'lastname',
'email',
- 'password',
- 'phone',
+ 'password',
+ 'phone',
+ 'public_key',
'user_url',
'is_admin',
'site',