From: Tony Mack Date: Sun, 14 Apr 2013 17:51:19 +0000 (-0400) Subject: update Site admin X-Git-Tag: 1.0~113 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d9b4607819d985dee086ff4f435972d304e3a45e;p=plstackapi.git update Site admin --- diff --git a/plstackapi/core/models/site.py b/plstackapi/core/models/site.py index a2903f9..2148e48 100644 --- a/plstackapi/core/models/site.py +++ b/plstackapi/core/models/site.py @@ -2,7 +2,6 @@ import os from django.db import models from plstackapi.core.models import PlCoreBase from plstackapi.core.models import DeploymentNetwork - from plstackapi.openstack.driver import OpenStackDriver # Create your models here. @@ -10,7 +9,7 @@ from plstackapi.openstack.driver import OpenStackDriver class Site(PlCoreBase): - tenant_id = models.CharField(max_length=200, help_text="Keystone tenant id") + tenant_id = models.CharField(max_length=200, help_text="Keystone tenant id", blank=True) name = models.CharField(max_length=200, help_text="Name for this Site") site_url = models.URLField(null=True, blank=True, max_length=512, help_text="Site's Home URL Page") enabled = models.BooleanField(default=True, help_text="Status for this Site") @@ -24,6 +23,30 @@ class Site(PlCoreBase): def __unicode__(self): return u'%s' % (self.name) + def save(self, *args, **kwds): + driver = OpenStackDriver() + if not self.tenant_id: + tenant = driver.create_tenant(tenant_name=self.login_base, + description=self.name, + enabled=self.enabled) + self.tenant_id = tenant.id + # update the record + if self.id: + driver.update_tenant(self.tenant_id, + name=self.login_base, + description=self.name, + enabled=self.enabled) + + super(Site, self).save(*args, **kwds) + + + def delete(self, *args, **kwds): + driver = OpenStackDriver() + if self.tenant_id: + driver.delete_tenant(self.tenant_id) + super(Site, self).delete(*args, **kwds) + + class SitePrivilege(PlCoreBase): user = models.ForeignKey('User', related_name='site_privileges')