From: smbaker Date: Wed, 24 Jul 2013 12:45:06 +0000 (-0700) Subject: network template support X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2c937367052edf6c45dbb4ae2d42cc7913b026a1;p=plstackapi.git network template support --- diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index e63a8ee..5bc1576 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -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) diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py index bcb31e4..627e346 100644 --- a/planetstack/core/models/__init__.py +++ b/planetstack/core/models/__init__.py @@ -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 diff --git a/planetstack/core/models/network.py b/planetstack/core/models/network.py index 5cbe19c..a15b222 100644 --- a/planetstack/core/models/network.py +++ b/planetstack/core/models/network.py @@ -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")