diff --git a/keystonelight/backends/kvs.py b/keystonelight/backends/kvs.py index 5e5e3be276..37b1aa0282 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 42c73e0543..47d5403df6 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 5e420e3e98..bcfee343a2 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 15a8b60a34..8a6d6f3a77 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 df88733d42..8ec1e60720 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):