From defe249174034828d265bf406e737e953c883ab7 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Fri, 12 Jul 2013 16:46:01 -0700 Subject: [PATCH 1/1] network model, wip --- planetstack/core/models/__init__.py | 1 + planetstack/core/models/network.py | 44 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 planetstack/core/models/network.py diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py index 2280822..e50b249 100644 --- a/planetstack/core/models/__init__.py +++ b/planetstack/core/models/__init__.py @@ -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 index 0000000..a579490 --- /dev/null +++ b/planetstack/core/models/network.py @@ -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 + + -- 2.43.0