1 from plstackapi.openstack.client import OpenStackClient
2 from plstackapi.openstack.driver import OpenStackDriver
3 from plstackapi.planetstack.api.auth import auth_check
4 from plstackapi.planetstack.models import User, Site
6 def lookup_site(fields):
9 if isinstance(fields['site'], int):
10 sites = Site.objects.filter(id=fields['site'])
12 sites = Site.objects.filter(login_base=fields['site'])
17 def add_user(auth, fields):
18 driver = OpenStackDriver(client = auth_check(auth))
19 site = lookup_site(fields)
20 if site: fields['site'] = site
22 nova_fields = {'name': user.email[:site.email.find('@')],
24 'password': user.password,
25 'enabled': user.enabled}
26 user = driver.create_user(**nova_fields)
27 #driver.add_user_role(user.id, user.site.tenant_id, 'user')
32 def update_user(auth, id, **fields):
33 driver = OpenStackDriver(client = auth_check(auth))
34 users = User.objects.filter(id=id)
41 nova_fields['name'] = fields['email'][:self.email.find('@')]
42 nova_fields['email'] = fields['email']
43 if 'password' in fields:
44 nova_fields['password'] = fields['password']
45 if 'enabled' in fields:
46 nova_fields['enabled'] = fields['enabled']
47 driver.update_user(user.user_id, **nova_fields)
48 site = lookup_site(fields)
49 if site: fields['site'] = site
53 def delete_user(auth, filter={}):
54 driver = OpenStackDriver(client = auth_check(auth))
55 users = Users.objects.filter(**filter)
57 driver.delete_user(id=user.user_id)
61 def get_users(auth, filter={}):
62 client = auth_check(auth)
63 users = User.objects.filter(**filter)