network model wip
authorScott Baker <smbaker@gmail.com>
Sat, 13 Jul 2013 00:12:44 +0000 (17:12 -0700)
committerScott Baker <smbaker@gmail.com>
Sat, 13 Jul 2013 00:12:44 +0000 (17:12 -0700)
planetstack/core/admin.py
planetstack/core/models/__init__.py
planetstack/core/models/network.py

index 45b5903..6543bf9 100644 (file)
@@ -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)
index e50b249..2114fc8 100644 (file)
@@ -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
index a579490..9a51702 100644 (file)
@@ -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