fix openstack integration
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 58e9689..20c3a81 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -423,14 +423,14 @@
     list_filter = ('site',)
     inlines = [SitePrivilegeInline, SliceMembershipInline]
     fieldsets = (
-        (None, {'fields': ('email', 'password', 'site')}),
+        (None, {'fields': ('email', 'password', 'site', 'is_admin')}),
         ('Personal info', {'fields': ('firstname','lastname','phone', 'key')}),
         #('Important dates', {'fields': ('last_login',)}),
     )
     add_fieldsets = (
         (None, {
             'classes': ('wide',),
-            'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'key','password1', 'password2')}
+            'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'key','password1', 'password2', 'is_admin')}
         ),
     )
     search_fields = ('email',)
diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py
index 0fe5e47..d922802 100644
--- a/planetstack/core/models/__init__.py
+++ b/planetstack/core/models/__init__.py
@@ -10,7 +10,5 @@
 from .slice import Slice
 from .slice import SliceMembership
 from .sliver import Sliver
-from .subnet import Subnet
 from .serviceclass import ServiceClass
 from .serviceresource import ServiceResource
-
diff --git a/planetstack/core/models/key.py b/planetstack/core/models/key.py
index 7a8b322..6fd7c34 100644
--- a/planetstack/core/models/key.py
+++ b/planetstack/core/models/key.py
@@ -1,8 +1,6 @@
 import os
 from django.db import models
 from core.models import PlCoreBase
-from openstack.manager import OpenStackManager
-
 
 # Create your models here.
 
@@ -17,13 +15,15 @@
 
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
+            from openstack.manager import OpenStackManager
             setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.save_key(self)
+        self.os_manager.save_key(self)
         super(Key, 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_key(self)
+        self.os_manager.delete_key(self)
         super(Key, self).delete(*args, **kwds) 
     
diff --git a/planetstack/core/models/role.py b/planetstack/core/models/role.py
index d3c577d..f6c2f2c 100644
--- a/planetstack/core/models/role.py
+++ b/planetstack/core/models/role.py
@@ -2,7 +2,6 @@
 import datetime
 from django.db import models
 from core.models import PlCoreBase
-from openstack.manager import OpenStackManager
 
 class Role(PlCoreBase):
 
@@ -15,13 +14,15 @@
 
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
+            from openstack.manager import OpenStackManager
             setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.save_role(self)
+        self.os_manager.save_role(self)
         super(Role, 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_role(self)   
+        self.os_manager.delete_role(self)   
         super(Role, self).delete(*args, **kwds)
             
diff --git a/planetstack/core/models/site.py b/planetstack/core/models/site.py
index 11e6a28..8626a0d 100644
--- a/planetstack/core/models/site.py
+++ b/planetstack/core/models/site.py
@@ -2,7 +2,6 @@
 from django.db import models
 from core.models import PlCoreBase
 from core.models import DeploymentNetwork
-from openstack.manager import OpenStackManager
 
 class Site(PlCoreBase):
 
@@ -22,15 +21,17 @@
 
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
+            from openstack.manager import OpenStackManager
             setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.save_site(self)
+        self.os_manager.save_site(self)
         super(Site, 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_site(self)
+        self.os_manager.delete_site(self)
         super(Site, self).delete(*args, **kwds)         
         
 
@@ -44,12 +45,14 @@
 
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
+            from openstack.manager import OpenStackManager
             setattr(self, 'os_manager', OpenStackManager())
             self.os_manager.driver.add_user_role(self.user.kuser_id, self.site.tenant_id, self.role.role_type)
         super(SitePrivilege, 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.driver.delete_user_role(self.user.kuser_id, self.site.tenant_id, self.role.role_type)
         super(SitePrivilege, self).delete(*args, **kwds)
diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py
index 2fd9fd3..edbe824 100644
--- a/planetstack/core/models/slice.py
+++ b/planetstack/core/models/slice.py
@@ -5,7 +5,6 @@
 from core.models import User
 from core.models import Role
 from core.models import DeploymentNetwork
-from openstack.manager import OpenStackManager
 
 # Create your models here.
 
@@ -29,14 +28,16 @@
 
     def save(self, *args, **kwds):
         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 +49,7 @@
 
     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 +57,7 @@
 
     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)
diff --git a/planetstack/core/models/sliver.py b/planetstack/core/models/sliver.py
index 8ebcbd4..ff074a6 100644
--- a/planetstack/core/models/sliver.py
+++ b/planetstack/core/models/sliver.py
@@ -8,7 +8,6 @@
 from core.models import Node
 from core.models import Site
 from core.models import DeploymentNetwork
-from openstack.manager import OpenStackManager
 
 # Create your models here.
 class Sliver(PlCoreBase):
@@ -30,12 +29,14 @@
         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)
+        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)
+        self.os_manager.delete_sliver(self)
         super(Sliver, self).delete(*args, **kwds)
diff --git a/planetstack/core/models/subnet.py b/planetstack/core/models/subnet.py
deleted file mode 100644
index 37175ec..0000000
--- a/planetstack/core/models/subnet.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import os
-import commands    
-from django.db import models
-from core.models import PlCoreBase
-from core.models import Slice
-from openstack.manager import OpenStackManager
-
-# Create your models here.
-
-class Subnet(PlCoreBase):
-    subnet_id = models.CharField(max_length=256, unique=True)
-    cidr = models.CharField(max_length=20)
-    ip_version = models.IntegerField()
-    start = models.IPAddressField()
-    end = models.IPAddressField()
-    slice = models.ForeignKey(Slice, related_name='subnet')
-
-    def __unicode__(self):  return u'%s' % (self.slice.name)
-
-    def save(self, *args, **kwds):
-        if not hasattr(self, 'os_manager'):
-            setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.save_subnet(self)
-        super(Subnet, self).save(*args, **kwds)
-
-    def delete(self, *args, **kwds):
-        if not hasattr(self, 'os_manager'):
-            setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.delete_subnet(self)
-        super(Subnet, self).delete(*args, **kwds)
diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py
index 38c0d89..e6c42e7 100644
--- a/planetstack/core/models/user.py
+++ b/planetstack/core/models/user.py
@@ -5,7 +5,6 @@
 from core.models import PlCoreBase
 from core.models import Site
 from core.models import Key
-from openstack.manager import OpenStackManager
 from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
 
 # Create your models here.
@@ -110,8 +109,9 @@
 
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
+            from openstack.manager import OpenStackManager 
             setattr(self, 'os_manager', OpenStackManager())
-            self.os_manager.save_user(self)
+        self.os_manager.save_user(self)
 
         if not self.id:
             self.set_password(self.password)    
@@ -119,7 +119,8 @@
 
     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_user(self)
+        self.os_manager.delete_user(self)
 
         super(User, self).delete(*args, **kwds)    
diff --git a/planetstack/openstack/driver.py b/planetstack/openstack/driver.py
index eba424a..f84fbb8 100644
--- a/planetstack/openstack/driver.py
+++ b/planetstack/openstack/driver.py
@@ -2,7 +2,6 @@
 from planetstack.config import Config
 from openstack.client import OpenStackClient
 
-has_openstack = False
 class OpenStackDriver:
 
     def __init__(self, config = None, client=None): 
@@ -12,10 +11,7 @@
             self.config = Config() 
 
         self.admin_client = OpenStackClient()
-        if has_openstack:
-            self.admin_user = self.admin_client.keystone.users.find(name=self.admin_client.keystone.username)
-        else:
-            self.admin_user = None
+        self.admin_user = self.admin_client.keystone.users.find(name=self.admin_client.keystone.username)
 
         if client:
             self.shell = client
diff --git a/planetstack/openstack/manager.py b/planetstack/openstack/manager.py
index 788699b..857e225 100644
--- a/planetstack/openstack/manager.py
+++ b/planetstack/openstack/manager.py
@@ -1,3 +1,6 @@
+import os
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+
 from netaddr import IPAddress, IPNetwork
 from planetstack import settings
 from django.core import management
@@ -10,8 +13,7 @@
 except:
     has_openstack = False
 
-#manager_enabled = Config().api_nova_enabled
-manager_enabled = False
+manager_enabled = Config().api_nova_enabled
 
 def require_enabled(callable):
     def wrapper(*args, **kwds):
@@ -277,6 +279,7 @@
         Node.objects.filter(name__in=old_node_names).delete()
 
     def refresh_images(self):
+        from core.models.image import Image
         # collect local images
         images = Image.objects.all()
         images_dict = {}