From: smbaker Date: Wed, 24 Jul 2013 09:09:51 +0000 (-0700) Subject: add visibility, bind slivers to network X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=a79065435529e7ac0dd2daa1f4b3dd827cd3100b;hp=0839599ac32e2b8ac72be4f5e64e6b9854b22e28;p=plstackapi.git add visibility, bind slivers to network --- 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")