X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fmodels%2Fsliver.py;h=03fa1d89e8804c08fb8ce5c190c526e3a230c02b;hb=bf1153a32d6f27291dd7a3238bc1a9451e9d6154;hp=580c2af75a36215a5f53331d1eb775e64e1dadc3;hpb=30fd4291ad7fdb809bb8ebbf738c3195436c2455;p=plstackapi.git diff --git a/planetstack/core/models/sliver.py b/planetstack/core/models/sliver.py index 580c2af..03fa1d8 100644 --- a/planetstack/core/models/sliver.py +++ b/planetstack/core/models/sliver.py @@ -7,11 +7,11 @@ from core.models import Key from core.models import Slice from core.models import Node from core.models import Site -from core.models import DeploymentNetwork +from core.models import Deployment # Create your models here. class Sliver(PlCoreBase): - instance_id = models.CharField(max_length=200, help_text="Nova instance id") + instance_id = models.CharField(null=True, blank=True, max_length=200, help_text="Nova instance id") name = models.CharField(max_length=200, help_text="Sliver name") instance_name = models.CharField(blank=True, null=True, max_length=200, help_text="OpenStack generated name") ip = models.GenericIPAddressField(help_text="Sliver ip address", blank=True, null=True) @@ -19,19 +19,24 @@ class Sliver(PlCoreBase): key = models.ForeignKey(Key, related_name='slivers') slice = models.ForeignKey(Slice, related_name='slivers') node = models.ForeignKey(Node, related_name='slivers') - deploymentNetwork = models.ForeignKey(DeploymentNetwork, verbose_name='deployment', related_name='sliver_deploymentNetwork') - numberCores = models.IntegerField(verbose_name="Number of Cores", help_text="Number of cores for sliver", default=2) + deploymentNetwork = models.ForeignKey(Deployment, verbose_name='deployment', related_name='sliver_deploymentNetwork') + numberCores = models.IntegerField(verbose_name="Number of Cores", help_text="Number of cores for sliver", default=0) def __unicode__(self): return u'%s' % (self.instance_name) def save(self, *args, **kwds): - if not self.slice.subnet.exists(): - raise exceptions.ValidationError, "Slice %s has no subnet" % self.slice.name - + if not self.name: + self.name = self.slice.name + if not hasattr(self, 'os_manager'): + from openstack.manager import OpenStackManager + setattr(self, 'os_manager', OpenStackManager()) self.os_manager.save_sliver(self) super(Sliver, self).save(*args, **kwds) def delete(self, *args, **kwds): + if not hasattr(self, 'os_manager'): + from openstack.manager import OpenStackManager + setattr(self, 'os_manager', OpenStackManager()) self.os_manager.delete_sliver(self) super(Sliver, self).delete(*args, **kwds)