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 .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
 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
+
+