summaryrefslogtreecommitdiffstats
path: root/keystone/db
diff options
context:
space:
mode:
authorZiad Sawalha <github@highbridgellc.com>2011-06-14 23:33:57 -0500
committerZiad Sawalha <github@highbridgellc.com>2011-06-14 23:33:57 -0500
commitffd23970d416e1e8eab3dbe6daecd80ed81c2be1 (patch)
treeb34c09cd6469010baa2c66b05cf6ca30ab897e87 /keystone/db
parent610e997fe665715a463177141c61b79f0df2e217 (diff)
Support for GET /v2.0/users and add cdn back to sampledata for v1.0 support
Diffstat (limited to 'keystone/db')
-rwxr-xr-xkeystone/db/sqlalchemy/api.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/keystone/db/sqlalchemy/api.py b/keystone/db/sqlalchemy/api.py
index df1d4d4e..9341954b 100755
--- a/keystone/db/sqlalchemy/api.py
+++ b/keystone/db/sqlalchemy/api.py
@@ -488,6 +488,57 @@ def user_get(id, session=None):
return result
+def user_get_page(marker, limit, session=None):
+ if not session:
+ session = get_session()
+
+ if marker:
+ return session.query(models.User).filter("id>:marker").params(\
+ marker='%s' % marker).order_by(\
+ models.User.id.desc()).limit(limit).all()
+ else:
+ return session.query(models.User).order_by(\
+ models.User.id.desc()).limit(limit).all()
+
+
+def user_get_page_markers(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 first is None:
+ return (None, None)
+ if marker is None:
+ marker = first.id
+ next = session.query(models.User).filter("id > :marker").params(\
+ marker='%s' % marker).order_by(\
+ models.User.id).limit(limit).all()
+ prev = session.query(models.User).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 user_get_email(email, session=None):
if not session:
session = get_session()