initial checkin
diff --git a/plstackapi/planetstack/api/__init__.py b/plstackapi/planetstack/api/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plstackapi/planetstack/api/__init__.py
diff --git a/plstackapi/planetstack/api/roles.py b/plstackapi/planetstack/api/roles.py
new file mode 100644
index 0000000..cd737b0
--- /dev/null
+++ b/plstackapi/planetstack/api/roles.py
@@ -0,0 +1,34 @@
+from plstackapi.openstack.client import OpenStackClient
+from plstackapi.openstack.driver import OpenStackDriver
+from plstackapi.planetstack.models import * 
+
+
+def auth_check(auth):
+    client = OpenStackShell(username=auth['Username'],
+                            password=auth['AuthMethod',
+                            tenant=auth['LoginBase'])
+    client.authenticate()
+    return client
+
+
+def add_role(auth, name):
+    client = auth_check(auth)
+    keystone_role = client.keystone.roles.create(name)
+    role = Role(role_type=name, role_id=keystone_role.id)
+    role.save()
+    return role
+
+def delete_role(auth, name):
+    client = auth_check(auth)
+    role = Role.objects.filter(role_type=name)
+    client.keystone.roles.delete(role.role_id)
+    role.delete()
+    return 1
+
+def get_roles(auth, filter):
+    client = auth_check(auth)
+    roles = Role.objects.filter(**filter)
+    return roles             
+        
+
+    
diff --git a/plstackapi/planetstack/views/__init__.py b/plstackapi/planetstack/views/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plstackapi/planetstack/views/__init__.py
diff --git a/plstackapi/planetstack/views/api_root.py b/plstackapi/planetstack/views/api_root.py
new file mode 100644
index 0000000..707e06b
--- /dev/null
+++ b/plstackapi/planetstack/views/api_root.py
@@ -0,0 +1,12 @@
+from rest_framework.decorators import api_view
+from rest_framework.response import Response
+from rest_framework.reverse import reverse
+
+@api_view(['GET'])
+def api_root(request, format=None):
+    return Response({
+        'nodes': reverse('node-list', request=request, format=format),
+        'sites': reverse('site-list', request=request, format=format),
+        'deploymentNetworks': reverse('deploymentnetwork-list', request=request, format=format),
+        'slices': reverse('slice-list', request=request, format=format)
+    })