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 Key, User
6 def lookup_user(fields):
9 if isinstance(fields['user'], int):
10 users = User.objects.filter(id=fields['user'])
12 users = User.objects.filter(email=fields['user'])
17 def add_key(auth, fields):
18 driver = OpenStackDriver(client = auth_check(auth))
19 user = lookup_user(fields)
20 if user: fields['user'] = user
22 nova_fields = {'name': key.name,
24 nova_key = driver.create_keypair(**nova_fields)
28 def update_key(auth, id, **fields):
31 def delete_key(auth, filter={}):
32 driver = OpenStackDriver(client = auth_check(auth))
33 keys = Key.objects.filter(**filter)
35 driver.delete_keypair(name=key.name)
39 def get_keys(auth, filter={}):
40 client = auth_check(auth)
41 keys = Key.objects.filter(**filter)