From 76a6c504d987aec069ef11e46153379195e32fe7 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Fri, 12 Jul 2013 17:12:44 -0700 Subject: [PATCH] network model wip --- planetstack/core/admin.py | 28 ++++++++++++++++++++++++++++ planetstack/core/models/__init__.py | 4 ++-- planetstack/core/models/network.py | 16 ++++++++-------- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index 45b5903..6543bf9 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -682,6 +682,29 @@ class ReservationAdmin(admin.ModelAdmin): else: return [] +class NetworkParameterTypeAdmin(admin.ModelAdmin): + exclude = ['enacted'] + list_display = ("name", ) + +class RouterAdmin(admin.ModelAdmin): + exclude = ['enacted'] + list_display = ("name", ) + +class RouterInline(admin.TabularInline): + exclude = ['enacted'] + model = Router + extra = 0 + +class NetworkParameterInline(generic.GenericTabularInline): + exclude = ['enacted'] + model = NetworkParameter + extra = 1 + +class NetworkAdmin(admin.ModelAdmin): + exclude = ['enacted'] + list_display = ("name", "subnet", "ports", "labels") + inlines = [NetworkParameterInline] + # 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'], @@ -713,6 +736,11 @@ admin.site.register(ServiceClass, ServiceClassAdmin) admin.site.register(Reservation, ReservationAdmin) admin.site.register(TagType, TagTypeAdmin) +admin.site.register(Network, NetworkAdmin) +admin.site.register(Router, RouterAdmin) +admin.site.register(NetworkParameterType, NetworkParameterTypeAdmin) +#admin.site.register(Parameter, ParameterAdmin) + if showAll: admin.site.register(Tag, TagAdmin) admin.site.register(Node, NodeAdmin) diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py index e50b249..2114fc8 100644 --- a/planetstack/core/models/__init__.py +++ b/planetstack/core/models/__init__.py @@ -1,13 +1,12 @@ from .plcorebase import PlCoreBase from .deployment import Deployment from .project import Project -from .tag import Tag +from .tag import Tag, TagType from .site import Site from .site import SitePrivilege from .image import Image from .user import User from .role import Role -from .network import Network, Router, ParameterType, Parameter from .node import Node from .serviceclass import ServiceClass from .serviceresource import ServiceResource @@ -17,3 +16,4 @@ from .slicetag import SliceTag from .sliver import Sliver from .reservation import ReservedResource from .reservation import Reservation +from .network import Network, Router, NetworkParameterType, NetworkParameter diff --git a/planetstack/core/models/network.py b/planetstack/core/models/network.py index a579490..9a51702 100644 --- a/planetstack/core/models/network.py +++ b/planetstack/core/models/network.py @@ -1,8 +1,8 @@ import os from django.db import models -from core.models import PlCoreBase -from core.models import Site -from core.models import Deployment +from core.models import PlCoreBase, Site, Slice +from django.contrib.contenttypes.models import ContentType +from django.contrib.contenttypes import generic # Create your models here. @@ -12,7 +12,7 @@ class Network(PlCoreBase): ports = models.CharField(max_length=1024) labels = models.CharField(max_length=1024) slice = models.ForeignKey(Slice, related_name="networks") - guaranteedBandwidth = models.IntField() + guaranteedBandwidth = models.IntegerField() permittedSlices = models.ManyToManyField(Slice, blank=True, related_name="permittedNetworks") boundSlices = models.ManyToManyField(Slice, blank=True, related_name="boundNetworks") @@ -22,15 +22,15 @@ class Router(PlCoreBase): name = models.CharField(max_length=32) networks = models.ManyToManyField(Network, blank=True, related_name="routers") - def __unicode__(self): return u'%s' % (self.name)o + def __unicode__(self): return u'%s' % (self.name) -class ParameterType(PlCoreBase): +class NetworkParameterType(PlCoreBase): name = models.SlugField(help_text="The name of this tag", max_length=128) def __unicode__(self): return u'%s' % (self.name) -class Parameter(PlCoreBase): - parameterType = models.ForeignKey(ParameterType, related_name="parameters", help_text="The name of the parameter") +class NetworkParameter(PlCoreBase): + networkParameterType = models.ForeignKey(NetworkParameterType, related_name="parameters", help_text="The name of the parameter") value = models.CharField(help_text="The value of this parameter", max_length=1024) # The required fields to do a ObjectType lookup, and object_id assignment -- 2.43.0