1 from plstackapi.openstack.client import OpenStackClient
2 from plstackapi.openstack.driver import OpenStackDriver
3 from plstackapi.core.api.auth import auth_check
4 from plstackapi.core.models import Key, User
5 from plstackapi.core.api.users import _get_users
9 if isinstance(filter, int):
10 keys = Key.objects.filter(id=filter)
11 elif isinstance(filter, StringTypes):
12 keys = Key.objects.filter(name=filter)
13 elif isinstance(filer, dict):
14 keys = Key.objects.filter(**filter)
19 def add_key(auth, fields):
20 driver = OpenStackDriver(client = auth_check(auth))
21 users = _get_users(fields.get('user'))
22 if users: fields['user'] = users[0]
24 nova_fields = {'name': key.name,
26 nova_key = driver.create_keypair(**nova_fields)
30 def update_key(auth, id, **fields):
33 def delete_key(auth, filter={}):
34 driver = OpenStackDriver(client = auth_check(auth))
35 keys = _get_keys(filter)
37 driver.delete_keypair(name=key.name)
41 def get_keys(auth, filter={}):
42 client = auth_check(auth)
43 keys = _get_keys(filter)