enabled keys
diff --git a/plstackapi/planetstack/api/keys.py b/plstackapi/planetstack/api/keys.py
new file mode 100644
index 0000000..771638e
--- /dev/null
+++ b/plstackapi/planetstack/api/keys.py
@@ -0,0 +1,45 @@
+from plstackapi.openstack.client import OpenStackClient
+from plstackapi.openstack.driver import OpenStackDriver
+from plstackapi.planetstack.api.auth import auth_check
+from plstackapi.planetstack.models import Key, User
+
+def lookup_user(fields):
+ user = None
+ if 'user' in fields:
+ if isinstance(fields['user'], int):
+ users = User.objects.filter(id=fields['user'])
+ else:
+ users = Site.objects.filter(email=fields['user'])
+ if users:
+ user = users[0]
+ return user
+
+def add_key(auth, fields):
+ driver = OpenStackDriver(client = auth_check(auth))
+ user = lookup_user(fields)
+ if user: fields['user'] = user
+ key = Key(**fields)
+ nova_fields = {'name': key.name,
+ 'key': key.key}
+ nova_key = driver.create_keypair(**nova_fields)
+ key.save()
+ return key
+
+def update_key(auth, id, **fields):
+ return
+
+def delete_user(auth, filter={}):
+ driver = OpenStackDriver(client = auth_check(auth))
+ keys = Key.objects.filter(**filter)
+ for key in keys:
+ driver.delete_key(name=key.name)
+ key.delete()
+ return 1
+
+def get_keys(auth, filter={}):
+ client = auth_check(auth)
+ keys = Key.objects.filter(**filter)
+ return keys
+
+
+