summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystonelight/backends/kvs.py17
-rw-r--r--keystonelight/identity.py12
-rw-r--r--keystonelight/test.py11
-rw-r--r--tests/default_fixtures.py7
-rw-r--r--tests/test_backend_kvs.py5
5 files changed, 47 insertions, 5 deletions
diff --git a/keystonelight/backends/kvs.py b/keystonelight/backends/kvs.py
index 5e5e3be2..37b1aa02 100644
--- a/keystonelight/backends/kvs.py
+++ b/keystonelight/backends/kvs.py
@@ -59,8 +59,11 @@ class KvsIdentity(object):
def get_extras(self, user_id, tenant_id):
return self.db.get('extras-%s-%s' % (tenant_id, user_id))
+ def get_role(self, role_id):
+ role_ref = self.db.get('role-%s' % role_id)
+ return role_ref
+
def create_user(self, id, user):
- print user
self.db.set('user-%s' % id, user)
self.db.set('user_name-%s' % user['name'], user)
return user
@@ -110,6 +113,18 @@ class KvsIdentity(object):
self.db.delete('extras-%s-%s' % (tenant_id, user_id))
return None
+ def create_role(self, id, role):
+ self.db.set('role-%s' % id, role)
+ return role
+
+ def update_role(self, id, role):
+ self.db.set('role-%s' % id, role)
+ return role
+
+ def delete_role(self, id):
+ self.db.delete('role-%s' % id)
+ return None
+
class KvsToken(object):
def __init__(self, options, db=None):
diff --git a/keystonelight/identity.py b/keystonelight/identity.py
index 42c73e05..47d5403d 100644
--- a/keystonelight/identity.py
+++ b/keystonelight/identity.py
@@ -34,6 +34,9 @@ class Manager(object):
def get_extras(self, context, user_id, tenant_id):
return self.driver.get_extras(user_id, tenant_id)
+ def get_role(self, context, role_id):
+ return self.driver.get_role(role_id)
+
# CRUD operations
def create_user(self, context, user_id, data):
return self.driver.create_user(user_id, data)
@@ -61,3 +64,12 @@ class Manager(object):
def delete_extras(self, context, user_id, tenant_id):
return self.driver.delete_extras(user_id, tenant_id)
+
+ def create_role(self, context, role_id, data):
+ return self.driver.create_role(role_id, data)
+
+ def update_role(self, context, role_id, data):
+ return self.driver.update_role(role_id, data)
+
+ def delete_role(self, context, role_id):
+ return self.driver.delete_role(role_id)
diff --git a/keystonelight/test.py b/keystonelight/test.py
index 5e420e3e..bcfee343 100644
--- a/keystonelight/test.py
+++ b/keystonelight/test.py
@@ -4,6 +4,7 @@ import os
import unittest
import subprocess
import sys
+import time
from paste import deploy
@@ -27,13 +28,23 @@ def checkout_vendor(repo, rev):
name = name[:-4]
revdir = os.path.join(VENDOR, '%s-%s' % (name, rev.replace('/', '_')))
+ modcheck = os.path.join(VENDOR, '.%s-%s' % (name, rev.replace('/', '_')))
try:
+ if os.path.exists(modcheck):
+ mtime = os.stat(modcheck).st_mtime
+ if int(time.time()) - mtime < 1000:
+ return revdir
+
if not os.path.exists(revdir):
utils.git('clone', repo, revdir)
cd(revdir)
utils.git('pull')
utils.git('checkout', '-q', rev)
+
+ # write out a modified time
+ with open(modcheck, 'w') as fd:
+ fd.write('1')
except subprocess.CalledProcessError as e:
logging.warning('Failed to checkout %s', repo)
pass
diff --git a/tests/default_fixtures.py b/tests/default_fixtures.py
index 15a8b60a..8a6d6f3a 100644
--- a/tests/default_fixtures.py
+++ b/tests/default_fixtures.py
@@ -10,7 +10,6 @@ EXTRAS = [
{'user': 'foo', 'tenant': 'bar', 'extra': 'extra'},
]
-#ROLES = [
-# {'id': 'keystone_admin', 'name': 'Keystone Admin'},
-# ]
-ROLES = []
+ROLES = [
+ {'id': 'keystone_admin', 'name': 'Keystone Admin'},
+ ]
diff --git a/tests/test_backend_kvs.py b/tests/test_backend_kvs.py
index df88733d..8ec1e607 100644
--- a/tests/test_backend_kvs.py
+++ b/tests/test_backend_kvs.py
@@ -97,6 +97,11 @@ class KvsIdentity(test.TestCase):
tenant_id=self.tenant_bar['id'])
self.assertDictEquals(extras_ref, self.extras_foobar)
+ def test_get_role(self):
+ role_ref = self.identity_api.get_role(
+ role_id=self.role_keystone_admin['id'])
+ self.assertDictEquals(role_ref, self.role_keystone_admin)
+
class KvsToken(test.TestCase):
def setUp(self):