blob: 771638e60721e00b000d2b5ef0c54eb35a9655f8 [file] [log] [blame]
Tony Macke4cee7a2013-04-09 12:45:32 -04001from plstackapi.openstack.client import OpenStackClient
2from plstackapi.openstack.driver import OpenStackDriver
3from plstackapi.planetstack.api.auth import auth_check
4from plstackapi.planetstack.models import Key, User
5
6def lookup_user(fields):
7 user = None
8 if 'user' in fields:
9 if isinstance(fields['user'], int):
10 users = User.objects.filter(id=fields['user'])
11 else:
12 users = Site.objects.filter(email=fields['user'])
13 if users:
14 user = users[0]
15 return user
16
17def add_key(auth, fields):
18 driver = OpenStackDriver(client = auth_check(auth))
19 user = lookup_user(fields)
20 if user: fields['user'] = user
21 key = Key(**fields)
22 nova_fields = {'name': key.name,
23 'key': key.key}
24 nova_key = driver.create_keypair(**nova_fields)
25 key.save()
26 return key
27
28def update_key(auth, id, **fields):
29 return
30
31def delete_user(auth, filter={}):
32 driver = OpenStackDriver(client = auth_check(auth))
33 keys = Key.objects.filter(**filter)
34 for key in keys:
35 driver.delete_key(name=key.name)
36 key.delete()
37 return 1
38
39def get_keys(auth, filter={}):
40 client = auth_check(auth)
41 keys = Key.objects.filter(**filter)
42 return keys
43
44
45