summaryrefslogtreecommitdiffstats
path: root/keystone/db
diff options
context:
space:
mode:
authorRamana Juvvadi <rjuvvadi@hcl.com>2011-05-08 16:02:22 -0500
committerRamana Juvvadi <rjuvvadi@hcl.com>2011-05-08 16:02:22 -0500
commitf1493d5585ea7cdc2d48c8e83f8cfecae14ac821 (patch)
treee0cc30e8f0963900c1d32a479d248769d9132273 /keystone/db
parent4edf39136f6c40c8e0133549f52a94776c2ec6f3 (diff)
merging changes from sai branch
Diffstat (limited to 'keystone/db')
-rw-r--r--keystone/db/sqlalchemy/api.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/keystone/db/sqlalchemy/api.py b/keystone/db/sqlalchemy/api.py
index 751721f5..049c1bac 100644
--- a/keystone/db/sqlalchemy/api.py
+++ b/keystone/db/sqlalchemy/api.py
@@ -221,6 +221,22 @@ def user_get_by_group(user_id, group_id, session=None):
return result
+def user_tenant_group(values):
+ user_ref = models.UserGroupAssociation()
+ user_ref.update(values)
+ user_ref.save()
+ return user_ref
+
+
+def user_tenant_group_delete(id, group_id, session=None):
+ if not session:
+ session = get_session()
+ with session.begin():
+ usertenantgroup_ref = user_get_by_group(id, group_id, session)
+ session.delete(usertenantgroup_ref)
+
+
+
def user_create(values):
user_ref = models.User()
user_ref.update(values)
@@ -252,6 +268,60 @@ def user_update(id, values, session=None):
user_ref.update(values)
user_ref.save(session=session)
+def users_tenant_group_get_page(group_id, marker, limit, session=None):
+ if not session:
+ session = get_session()
+ uga = aliased(models.UserGroupAssociation)
+ user = aliased(models.User)
+ if marker:
+ return session.query(user, uga).join(
+ (uga, uga.user_id == user.id)).\
+ filter(uga.group_id == group_id).\
+ filter("id>=:marker").params(
+ marker='%s' % marker).order_by(
+ user.id).limit(limit).all()
+ else:
+ return session.query(user, uga).\
+ join((uga, uga.user_id == user.id)).\
+ filter(uga.group_id == group_id).order_by(
+ user.id).limit(limit).all()
+def users_tenant_group_get_page_markers(group_id, marker,limit,session=None):
+ if not session:
+ session = get_session()
+ first = session.query(models.User).order_by(\
+ models.User.id).first()
+ last = session.query(models.User).order_by(\
+ models.User.id.desc()).first()
+ if marker is None:
+ marker = first.id
+ next = session.query(models.User).filter_by(\
+ group_id=group_id).filter("id > :marker").params(\
+ marker = '%s' % marker).order_by(\
+ models.User.id).limit(limit).all()
+ prev=session.query(models.User).filter_by(\
+ group_id = group_id).filter("id < :marker").params(\
+ marker = '%s' % marker).order_by(\
+ models.User.id.desc()).limit(int(limit)).all()
+ if len(next) == 0:
+ next = last
+ else:
+ for t in next:
+ next = t
+ if len(prev) == 0:
+ prev = first
+ else:
+ for t in prev:
+ prev = t
+ if prev.id == marker:
+ prev = None
+ else:
+ prev=prev.id
+ if next.id == last.id:
+ next = None
+ else:
+ next = next.id
+ return (prev, next)
+
def group_get(id, session=None):
if not session: