refactor
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 4 Feb 2014 20:33:45 +0000 (15:33 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 4 Feb 2014 20:33:45 +0000 (15:33 -0500)
planetstack/core/admin.py
planetstack/core/models/deployment.py
planetstack/core/models/network.py
planetstack/core/models/plcorebase.py
planetstack/core/models/reservation.py
planetstack/core/models/site.py
planetstack/core/models/slice.py
planetstack/core/models/slicetag.py
planetstack/core/models/sliver.py
planetstack/core/models/tag.py

index 2dbf2c4..853e5ce 100644 (file)
@@ -394,6 +394,19 @@ class PlainTextWidget(forms.HiddenInput):
 
 class PlanetStackBaseAdmin(ReadOnlyAwareAdmin):
     save_on_top = False
+    
+    def save_model(self, request, obj, form, change):
+        # update openstack connection to use this site/tenant
+        obj.save_by_user(request.user)
+
+    def delete_model(self, request, obj):
+        obj.delete_by_user(request.user)
+
+    def save_formset(self, request, form, formset, change):
+        instances = formset.save(commit=False)
+        for instance in instances:
+            instance.save_by_user(request.user)
+        formset.save_m2m()
 
 class SliceRoleAdmin(PlanetStackBaseAdmin):
     model = SliceRole
@@ -532,6 +545,13 @@ class SiteAdmin(PlanetStackBaseAdmin):
     accountLink.allow_tags = True
     accountLink.short_description = "Billing"
 
+    def save_model(self, request, obj, form, change):
+        # update openstack connection to use this site/tenant
+        obj.save_by_user(request.user) 
+
+    def delete_model(self, request, obj):
+        obj.delete_by_user(request.user)
+        
 
 class SitePrivilegeAdmin(PlanetStackBaseAdmin):
     fieldList = ['user', 'site', 'role']
index ea77dea..b97432b 100644 (file)
@@ -44,10 +44,6 @@ class DeploymentPrivilege(PlCoreBase):
                 return True
         return False
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(DeploymentPrivilege, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index 7b9364c..23ef6ea 100644 (file)
@@ -53,10 +53,6 @@ class Network(PlCoreBase):
     def can_update(self, user):
         return self.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.slice.can_update(user):
-            super(Network, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -89,10 +85,6 @@ class NetworkSlice(PlCoreBase):
     def can_update(self, user):
         return self.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.slice.can_update(user):
-            super(NetworkSlice, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -128,10 +120,6 @@ class NetworkSliver(PlCoreBase):
     def can_update(self, user):
         return self.sliver.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.sliver.can_update(user):
-            super(NetworkSliver, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index 9838d7f..8c5bddc 100644 (file)
@@ -70,6 +70,10 @@ class PlCoreBase(models.Model):
         if self.can_update(user):
             self.save(*args, **kwds)
 
+    def delete_by_user(self, user, *args, **kwds):
+        if self.can_update(user):
+            self.delete(*args, **kwds)
+
     @property
     def _dict(self):
         return model_to_dict(self, fields=[field.name for field in
index e89b4c8..db3769f 100644 (file)
@@ -22,10 +22,6 @@ class Reservation(PlCoreBase):
     def can_update(self, user):
         return self.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(Reservation, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -49,10 +45,6 @@ class ReservedResource(PlCoreBase):
     def can_update(self, user):
         return self.sliver.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(ReservedResource, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index 8e77404..34699d8 100644 (file)
@@ -36,10 +36,6 @@ class Site(PlCoreBase):
                 return True
         return False 
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(Site, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -81,10 +77,6 @@ class SitePrivilege(PlCoreBase):
                 return True
         return False 
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(SitePrivilege, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -127,10 +119,6 @@ class DeploymentPrivilege(PlCoreBase):
                 return True
         return False
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(DeploymentPrivilege, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index 533165f..823b1d1 100644 (file)
@@ -53,11 +53,6 @@ class Slice(PlCoreBase):
                 return True
         return False
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(Slice, self).save(*args, **kwds)
-
-    
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
@@ -90,10 +85,6 @@ class SlicePrivilege(PlCoreBase):
                 return True
         return False
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(SlicePrivilege, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index e815721..ea1d026 100644 (file)
@@ -13,10 +13,6 @@ class SliceTag(PlCoreBase):
     def can_update(self, user):
         return self.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(SliceTag, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index 1c4a134..29ae0d4 100644 (file)
@@ -47,10 +47,6 @@ class Sliver(PlCoreBase):
     def can_update(self, user):
         return self.slice.can_update(user)
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.slice.can_update(user):
-            super(Sliver, self).save(*args, **kwds)  
-
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
index ef746da..7818c32 100644 (file)
@@ -28,10 +28,6 @@ class Tag(PlCoreBase):
             return True
         return False
 
-    def save_by_user(self, user, *args, **kwds):
-        if self.can_update(user):
-            super(Tag, self).save(*args, **kwds)
-
     @staticmethod
     def select_by_user(user):
         return Tag.objects.all()