X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fmodels%2Fslice.py;h=cc7dcce47eab41dff469d2e500453519640e8ddf;hb=bf1153a32d6f27291dd7a3238bc1a9451e9d6154;hp=2fd9fd3ec526fb684572694ca324ebe61877c275;hpb=aa1bcd5fe20fa845d065bc55d90c87708126bff4;p=plstackapi.git diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py index 2fd9fd3..cc7dcce 100644 --- a/planetstack/core/models/slice.py +++ b/planetstack/core/models/slice.py @@ -4,8 +4,8 @@ from core.models import PlCoreBase from core.models import Site from core.models import User from core.models import Role -from core.models import DeploymentNetwork -from openstack.manager import OpenStackManager +from core.models import Deployment +from core.models import ServiceClass # Create your models here. @@ -21,22 +21,27 @@ class Slice(PlCoreBase): router_id = models.CharField(null=True, blank=True, max_length=256, help_text="Quantum router id") subnet_id = models.CharField(null=True, blank=True, max_length=256, help_text="Quantum subnet id") - SVC_CLASS_CHOICES = (('besteffort', 'Best Effort'), ('silver', 'Silver'), ('gold','Gold')) - serviceClass = models.CharField(verbose_name="Service Class",default="besteffort",help_text="The Service Class of this slice", max_length=30, choices=SVC_CLASS_CHOICES) - + serviceClass = models.ForeignKey(ServiceClass, related_name = "slices", null=True, default=ServiceClass.get_default) def __unicode__(self): return u'%s' % (self.name) def save(self, *args, **kwds): + if self.serviceClass is None: + # We allowed None=True for serviceClass because Django evolution + # will fail unless it is allowed. But, we we really don't want it to + # ever save None, so fix it up here. + self.serviceClass = ServiceClass.get_default() if not hasattr(self, 'os_manager'): + from openstack.manager import OpenStackManager setattr(self, 'os_manager', OpenStackManager()) - self.os_manager.save_slice(self) + self.os_manager.save_slice(self) super(Slice, 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_slice(self) + self.os_manager.delete_slice(self) super(Slice, self).delete(*args, **kwds) class SliceMembership(PlCoreBase): @@ -48,6 +53,7 @@ class SliceMembership(PlCoreBase): def save(self, *args, **kwds): if not hasattr(self, 'os_manager'): + from openstack.manager import OpenStackManager setattr(self, 'os_manager', OpenStackManager()) if self.os_manager.driver: self.os_manager.driver.add_user_role(self.user.kuser_id, self.slice.tenant_id, self.role.role_type) @@ -55,6 +61,7 @@ class SliceMembership(PlCoreBase): def delete(self, *args, **kwds): if not hasattr(self, 'os_manager'): + from openstack.manager import OpenStackManager setattr(self, 'os_manager', OpenStackManager()) if self.os_manager.driver: self.os_manager.driver.delete_user_role(self.user.kuser_id, self.slice.tenant_id, self.role.role_type)