from types import StringTypes
-from openstack.client import OpenStackClient
-from openstack.driver import OpenStackDriver
+from django.contrib.auth import authenticate
+from openstack.manager import OpenStackManager
from core.models import Key
-from core.api.auth import auth_check
from core.api.users import _get_users
return keys
def add_key(auth, fields):
- driver = OpenStackDriver(client = auth_check(auth))
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
+ auth['tenant'] = user.site.login_base
+ manager = OpenStackManager(auth=auth, caller = user)
+
+ # look up user object
users = _get_users(fields.get('user'))
if users: fields['user'] = users[0]
+ # save
key = Key(**fields)
- nova_fields = {'name': key.name,
- 'key': key.key}
- nova_key = driver.create_keypair(**nova_fields)
- key.nkey_id = nova_key.id
+ key.os_manager = manager
key.save()
return key
return
def delete_key(auth, filter={}):
- driver = OpenStackDriver(client = auth_check(auth))
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
+ auth['tenant'] = user.site.login_base
+ manager = OpenStackManager(auth=auth, caller = user)
+
keys = _get_keys(filter)
for key in keys:
- driver.delete_keypair(id=key.nkey_id)
+ key.os_manager = manager
key.delete()
return 1
def get_keys(auth, filter={}):
- client = auth_check(auth)
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
keys = _get_keys(filter)
return keys