fix NameError
[plstackapi.git] / plstackapi / planetstack / api / users.py
index 403f079..f02f9d2 100644 (file)
@@ -3,23 +3,29 @@ from plstackapi.openstack.driver import OpenStackDriver
 from plstackapi.planetstack.api.auth import auth_check
 from plstackapi.planetstack.models import User, Site
  
-
-def add_user(auth, fields):
-    driver = OpenStackDriver(client = auth_check(auth))
-    user = User(**fields)
+def lookup_site(fields):
+    site = None
     if 'site' in fields:
         if isinstance(fields['site'], int):
             sites = Site.objects.filter(id=fields['site'])
         else:
             sites = Site.objects.filter(login_base=fields['site'])
         if sites:
-            user.site = sites[0]      
-    nova_fields = {'name': user.email[:self.email.find('@')],
+            site = sites[0]
+    return site 
+
+def add_user(auth, fields):
+    driver = OpenStackDriver(client = auth_check(auth))
+    site = lookup_site(fields) 
+    if site: fields['site'] = site     
+    user = User(**fields)
+    nova_fields = {'name': user.email[:user.email.find('@')],
                    'email': user.email, 
-                   'password': user.name,
+                   'password': fields.get('password'),
                    'enabled': user.enabled}    
-    user = driver.create_user(**nova_fields)
-    user.user_id=user.id
+    nova_user = driver.create_user(**nova_fields)
+    #driver.add_user_role(user.id, user.site.tenant_id, 'user')
+    user.user_id=nova_user.id
     user.save()
     return user
 
@@ -39,12 +45,14 @@ def update_user(auth, id, **fields):
     if 'enabled' in fields:
         nova_fields['enabled'] = fields['enabled']
     driver.update_user(user.user_id, **nova_fields)
+    site = lookup_site(fields)
+    if site: fields['site'] = site
     user.update(**fields)
     return user 
 
 def delete_user(auth, filter={}):
     driver = OpenStackDriver(client = auth_check(auth))   
-    users = Users.objects.filter(**filter)
+    users = User.objects.filter(**filter)
     for user in users:
         driver.delete_user(id=user.user_id) 
         user.delete()