ordering = ('email',)
filter_horizontal = ()
+class ServiceResourceInline(admin.TabularInline):
+ model = ServiceResource
+ extra = 0
+
+class ServiceClassAdmin(admin.ModelAdmin):
+ list_display = ('name', 'commitment', 'membershipFee')
+ inlines = [ServiceResourceInline]
+
+class ServiceResourceAdmin(admin.ModelAdmin):
+ list_display = ('serviceClass', 'name', 'cost', 'calendarReservable', 'maxUnitsDeployment', 'maxUnitsNode')
+
# register a signal that caches the user's credentials when they log in
def cache_credentials(sender, user, request, **kwds):
auth = {'username': request.POST['username'],
admin.site.register(Key, KeyAdmin)
admin.site.register(Role, RoleAdmin)
admin.site.register(DeploymentNetwork, DeploymentNetworkAdmin)
+admin.site.register(ServiceClass, ServiceClassAdmin)
+admin.site.register(ServiceResource, ServiceResourceAdmin)
from .slice import SliceMembership
from .sliver import Sliver
from .subnet import Subnet
+from .serviceclass import ServiceClass
+from .serviceresource import ServiceResource
--- /dev/null
+import os
+from django.db import models
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import DeploymentNetwork
+
+# Create your models here.
+
+class ServiceClass(PlCoreBase):
+ name = models.CharField(max_length=32)
+ description = models.CharField(max_length=255)
+ commitment = models.IntegerField(default=365)
+ membershipFee = models.IntegerField(default=0)
+ membershipFeeMonths = models.IntegerField(default=12)
+ upgradeRequiresApproval = models.BooleanField(default=False)
+ upgradeFrom = models.ManyToManyField('self', blank=True, null=True)
+
+ def __unicode__(self): return u'%s' % (self.name)
+
--- /dev/null
+import os
+from django.db import models
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import DeploymentNetwork
+from core.models import ServiceClass
+
+# Create your models here.
+
+class ServiceResource(PlCoreBase):
+ serviceClass = models.ForeignKey(ServiceClass, related_name = "resources")
+ name = models.CharField(max_length=32)
+ maxUnitsDeployment = models.IntegerField(default=1)
+ maxUnitsNode = models.IntegerField(default=1)
+ maxDuration = models.IntegerField(default=1)
+ bucketInRate = models.IntegerField(default=0)
+ bucketMaxSize = models.IntegerField(default=0)
+ cost = models.IntegerField(default=0)
+ calendarReservable = models.BooleanField(default=True)
+
+ def __unicode__(self): return u'%s' % (self.name)