class NetworkAdmin(admin.ModelAdmin):
exclude = ['enacted']
list_display = ("name", "subnet", "ports", "labels")
- inlines = [NetworkParameterInline, NetworkBoundSliversInline , RouterInline]
+ inlines = [NetworkParameterInline, NetworkBoundSliversInline, RouterInline]
class NetworkBoundSliverAdmin(admin.ModelAdmin):
exclude = ['enacted']
list_display = ("network", "sliver", "ip")
+class NetworkTemplateAdmin(admin.ModelAdmin):
+ exclude = ['enacted']
+ list_display = ("name", "guaranteedBandwidth", "visibility")
+
# 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(Router, RouterAdmin)
admin.site.register(NetworkParameterType, NetworkParameterTypeAdmin)
admin.site.register(NetworkBoundSliver, NetworkBoundSliverAdmin)
+admin.site.register(NetworkTemplate, NetworkTemplateAdmin)
if showAll:
admin.site.register(Tag, TagAdmin)
from .sliver import Sliver
from .reservation import ReservedResource
from .reservation import Reservation
-from .network import Network, NetworkParameterType, NetworkParameter, NetworkBoundSliver ,Router
+from .network import Network, NetworkParameterType, NetworkParameter, NetworkBoundSliver, NetworkTemplate, Router
# Create your models here.
-class Network(PlCoreBase):
+class NetworkTemplate(PlCoreBase):
VISIBILITY_CHOICES = (('public', 'public'), ('private', 'private'))
name = models.CharField(max_length=32)
+ guaranteedBandwidth = models.IntegerField(default=0)
+ visibility = models.CharField(max_length=30, choices=VISIBILITY_CHOICES, default="private")
+
+ def __unicode__(self): return u'%s' % (self.name)
+
+class Network(PlCoreBase):
+ name = models.CharField(max_length=32)
+ template = models.ForeignKey(NetworkTemplate)
subnet = models.CharField(max_length=32)
ports = models.CharField(max_length=1024)
labels = models.CharField(max_length=1024)
slice = models.ForeignKey(Slice, related_name="networks")
- visibility = models.CharField(max_length=30, choices=VISIBILITY_CHOICES, default="private")
+
guaranteedBandwidth = models.IntegerField(default=0)
permittedSlices = models.ManyToManyField(Slice, blank=True, related_name="permittedNetworks")
boundSlivers = models.ManyToManyField(Sliver, blank=True, related_name="boundNetworks", through="NetworkBoundSliver")