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 @@
 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 @@
 
 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 @@
 
     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')
