From a79065435529e7ac0dd2daa1f4b3dd827cd3100b Mon Sep 17 00:00:00 2001 From: smbaker Date: Wed, 24 Jul 2013 02:09:51 -0700 Subject: [PATCH 1/1] add visibility, bind slivers to network --- planetstack/core/models/network.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/planetstack/core/models/network.py b/planetstack/core/models/network.py index 4b10bfe..5cbe19c 100644 --- a/planetstack/core/models/network.py +++ b/planetstack/core/models/network.py @@ -1,23 +1,33 @@ import os from django.db import models -from core.models import PlCoreBase, Site, Slice +from core.models import PlCoreBase, Site, Slice, Sliver from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic # Create your models here. class Network(PlCoreBase): + VISIBILITY_CHOICES = (('public', 'public'), ('private', 'private')) + 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") + visibility = models.CharField(max_length=30, choices=VISIBILITY_CHOICES, default="private") guaranteedBandwidth = models.IntegerField(default=0) permittedSlices = models.ManyToManyField(Slice, blank=True, related_name="permittedNetworks") - boundSlices = models.ManyToManyField(Slice, blank=True, related_name="boundNetworks") + boundSlivers = models.ManyToManyField(Sliver, blank=True, related_name="boundNetworks", through="NetworkBoundSliver") def __unicode__(self): return u'%s' % (self.name) +class NetworkBoundSliver(PlCoreBase): + network = models.ForeignKey(Network) + sliver = models.ForeignKey(Sliver) + ip = models.GenericIPAddressField(help_text="Sliver ip address", blank=True, null=True) + + def __unicode__(self): return u'foo!' + class Router(PlCoreBase): name = models.CharField(max_length=32) owner = models.ForeignKey(Slice, related_name="routers") -- 2.43.0