network template support
authorsmbaker <smbaker@fc8-storktest.lan>
Wed, 24 Jul 2013 12:45:06 +0000 (05:45 -0700)
committersmbaker <smbaker@fc8-storktest.lan>
Wed, 24 Jul 2013 12:45:06 +0000 (05:45 -0700)
planetstack/core/admin.py
planetstack/core/models/__init__.py
planetstack/core/models/network.py

index e63a8ee..5bc1576 100644 (file)
@@ -761,12 +761,16 @@ class NetworkBoundSliversInline(admin.TabularInline):
 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'],
@@ -802,6 +806,7 @@ admin.site.register(Network, NetworkAdmin)
 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)
index bcb31e4..627e346 100644 (file)
@@ -16,4 +16,4 @@ from .slicetag import SliceTag
 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
index 5cbe19c..a15b222 100644 (file)
@@ -6,15 +6,23 @@ from django.contrib.contenttypes import generic
 
 # 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")