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',