network model, wip
authorScott Baker <smbaker@gmail.com>
Fri, 12 Jul 2013 23:46:01 +0000 (16:46 -0700)
committerScott Baker <smbaker@gmail.com>
Fri, 12 Jul 2013 23:46:01 +0000 (16:46 -0700)
planetstack/core/models/__init__.py
planetstack/core/models/network.py [new file with mode: 0644]

index 2280822..e50b249 100644 (file)
@@ -7,6 +7,7 @@ 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
diff --git a/planetstack/core/models/network.py b/planetstack/core/models/network.py
new file mode 100644 (file)
index 0000000..a579490
--- /dev/null
@@ -0,0 +1,44 @@
+import os
+from django.db import models
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import Deployment
+
+# Create your models here.
+
+class Network(PlCoreBase):
+    name = models.CharField(max_length=32)
+    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")
+    guaranteedBandwidth = models.IntField()
+    permittedSlices = models.ManyToManyField(Slice, blank=True, related_name="permittedNetworks")
+    boundSlices = models.ManyToManyField(Slice, blank=True, related_name="boundNetworks")
+
+    def __unicode__(self):  return u'%s' % (self.name)
+
+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
+
+class ParameterType(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")
+    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
+    content_type = models.ForeignKey(ContentType)
+    object_id = models.PositiveIntegerField()
+    content_object = generic.GenericForeignKey('content_type', 'object_id')
+
+    def __unicode__(self):
+        return self.tagType.name
+
+