observer for sites, slices and users
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 2f44f40..0c90b9a 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -126,24 +126,7 @@
class PlanetStackBaseAdmin(admin.ModelAdmin):
save_on_top = False
-class OSModelAdmin(PlanetStackBaseAdmin):
- """Attach client connection to openstack on delete() and save()"""
-
- def save_model(self, request, obj, form, change):
- if request.user.site:
- auth = request.session.get('auth', {})
- auth['tenant'] = request.user.site.login_base
- obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
- obj.save()
-
- def delete_model(self, request, obj):
- if request.user.site:
- auth = request.session.get('auth', {})
- auth['tenant'] = request.user.site.login_base
- obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
- obj.delete()
-
-class RoleAdmin(OSModelAdmin):
+class RoleAdmin(PlanetStackBaseAdmin):
fieldsets = [
('Role', {'fields': ['role_type']})
]
@@ -194,7 +177,7 @@
inline.model.os_manager = OpenStackManager(auth=auth, caller=request.user)
yield inline.get_formset(request, obj)
-class SiteAdmin(OSModelAdmin):
+class SiteAdmin(PlanetStackBaseAdmin):
fieldsets = [
(None, {'fields': ['name', 'site_url', 'enabled', 'is_public', 'login_base']}),
('Location', {'fields': ['latitude', 'longitude']}),
@@ -221,10 +204,6 @@
# hide MyInline in the add view
if obj is None:
continue
- # give inline object access to driver and caller
- auth = request.session.get('auth', {})
- #auth['tenant'] = request.user.site.login_base
- inline.model.os_manager = OpenStackManager(auth=auth, caller=request.user)
yield inline.get_formset(request, obj)
class SitePrivilegeAdmin(PlanetStackBaseAdmin):
@@ -268,20 +247,6 @@
qs = qs.filter(site__in=sites)
return qs
- def save_model(self, request, obj, form, change):
- # update openstack connection to use this site/tenant
- auth = request.session.get('auth', {})
- #auth['tenant'] = obj.site.login_base
- obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
- obj.save()
-
- def delete_model(self, request, obj):
- # update openstack connection to use this site/tenant
- auth = request.session.get('auth', {})
- #auth['tenant'] = obj.site.login_base
- obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
- obj.delete()
-
class SliceAdmin(OSModelAdmin):
fields = ['name', 'site', 'serviceClass', 'description', 'slice_url']
list_display = ('name', 'site','serviceClass', 'slice_url')
diff --git a/planetstack/core/models/site.py b/planetstack/core/models/site.py
index db4b1ef..81bf5f3 100644
--- a/planetstack/core/models/site.py
+++ b/planetstack/core/models/site.py
@@ -19,22 +19,6 @@
def __unicode__(self): return u'%s' % (self.name)
- def save(self, *args, **kwds):
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.save_site(self)
- super(Site, self).save(*args, **kwds)
-
-
- def delete(self, *args, **kwds):
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.delete_site(self)
- super(Site, self).delete(*args, **kwds)
-
-
class SitePrivilege(PlCoreBase):
user = models.ForeignKey('User', related_name='site_privileges')
diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py
index cc7dcce..d6908a7 100644
--- a/planetstack/core/models/slice.py
+++ b/planetstack/core/models/slice.py
@@ -31,19 +31,8 @@
# will fail unless it is allowed. But, we we really don't want it to
# ever save None, so fix it up here.
self.serviceClass = ServiceClass.get_default()
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.save_slice(self)
super(Slice, self).save(*args, **kwds)
- def delete(self, *args, **kwds):
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.delete_slice(self)
- super(Slice, self).delete(*args, **kwds)
-
class SliceMembership(PlCoreBase):
user = models.ForeignKey('User', related_name='slice_memberships')
slice = models.ForeignKey('Slice', related_name='slice_memberships')
diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py
index f00d5eb..758bcbf 100644
--- a/planetstack/core/models/user.py
+++ b/planetstack/core/models/user.py
@@ -68,6 +68,10 @@
is_admin = models.BooleanField(default=True)
is_staff = models.BooleanField(default=True)
+ created = models.DateTimeField(auto_now_add=True)
+ updated = models.DateTimeField(auto_now=True)
+ enacted = models.DateTimeField(null=True, default=None)
+
timezone = TimeZoneField()
objects = UserManager()
@@ -114,19 +118,6 @@
return roles
def save(self, *args, **kwds):
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.save_user(self)
-
if not self.id:
self.set_password(self.password)
super(User, self).save(*args, **kwds)
-
- def delete(self, *args, **kwds):
- if not hasattr(self, 'os_manager'):
- from openstack.manager import OpenStackManager
- setattr(self, 'os_manager', OpenStackManager())
- self.os_manager.delete_user(self)
-
- super(User, self).delete(*args, **kwds)