1 from types import StringTypes
2 from django.contrib.auth import authenticate
3 from plstackapi.openstack.manager import OpenStackManager
4 from plstackapi.core.models import Key
5 from plstackapi.core.api.users import _get_users
9 if isinstance(filter, StringTypes) and filter.isdigit():
11 if isinstance(filter, int):
12 keys = Key.objects.filter(id=filter)
13 elif isinstance(filter, StringTypes):
14 keys = Key.objects.filter(name=filter)
15 elif isinstance(filter, dict):
16 keys = Key.objects.filter(**filter)
21 def add_key(auth, fields):
22 user = authenticate(username=auth.get('username'),
23 password=auth.get('password'))
24 auth['tenant'] = user.site.login_base
25 manager = OpenStackManager(auth=auth, caller = user)
28 users = _get_users(fields.get('user'))
29 if users: fields['user'] = users[0]
32 key.os_manager = manager
36 def update_key(auth, id, **fields):
39 def delete_key(auth, filter={}):
40 user = authenticate(username=auth.get('username'),
41 password=auth.get('password'))
42 auth['tenant'] = user.site.login_base
43 manager = OpenStackManager(auth=auth, caller = user)
45 keys = _get_keys(filter)
47 key.os_manager = manager
51 def get_keys(auth, filter={}):
52 user = authenticate(username=auth.get('username'),
53 password=auth.get('password'))
54 keys = _get_keys(filter)